@taiga-ui/kit 5.23.0 → 5.24.0-canary.3f61c9e

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 (109) hide show
  1. package/components/input-color/input-color-content.component.d.ts +1 -0
  2. package/components/input-date-multi/input-date-multi.directive.d.ts +11 -3
  3. package/components/input-date-range/input-date-range.directive.d.ts +24 -4
  4. package/components/input-range/input-range.component.d.ts +10 -2
  5. package/components/line-clamp/line-clamp.component.d.ts +2 -0
  6. package/components/multi-select/multi-select-native/multi-select-native.component.d.ts +1 -2
  7. package/components/range/range.component.d.ts +10 -2
  8. package/components/textarea/textarea.component.d.ts +12 -2
  9. package/directives/tooltip/tooltip.directive.d.ts +1 -1
  10. package/directives/unfinished-validator/unfinished-validator-refresh.directive.d.ts +6 -3
  11. package/fesm2022/taiga-ui-kit-components-accordion.mjs +2 -2
  12. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  13. package/fesm2022/taiga-ui-kit-components-avatar.mjs +9 -9
  14. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  15. package/fesm2022/taiga-ui-kit-components-badge.mjs +2 -2
  16. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  17. package/fesm2022/taiga-ui-kit-components-block.mjs +2 -2
  18. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  19. package/fesm2022/taiga-ui-kit-components-chip.mjs +2 -2
  20. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-kit-components-comment.mjs +3 -3
  22. package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-kit-components-compass.mjs +2 -2
  24. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-kit-components-copy.mjs +2 -2
  26. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-kit-components-files.mjs +6 -6
  28. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-kit-components-input-color.mjs +3 -2
  30. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +10 -2
  32. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +29 -5
  34. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +3 -3
  36. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-kit-components-input-date.mjs +4 -4
  38. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +2 -2
  40. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-kit-components-input-month.mjs +4 -4
  42. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-kit-components-input-number.mjs +7 -5
  44. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +2 -2
  46. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +3 -3
  48. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-kit-components-input-range.mjs +10 -2
  50. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +2 -2
  52. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-kit-components-input-time.mjs +3 -3
  54. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-kit-components-like.mjs +2 -2
  56. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +13 -10
  58. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-kit-components-message.mjs +2 -2
  60. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-kit-components-meter.mjs +3 -3
  62. package/fesm2022/taiga-ui-kit-components-meter.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +7 -6
  64. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-kit-components-pin.mjs +3 -3
  66. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-kit-components-preview.mjs +3 -3
  68. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-kit-components-progress.mjs +6 -6
  70. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +2 -2
  72. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-kit-components-range.mjs +14 -2
  74. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-kit-components-segmented.mjs +3 -3
  76. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs +2 -2
  78. package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-kit-components-status.mjs +3 -3
  80. package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-kit-components-switch.mjs +2 -2
  82. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-kit-components-tabs.mjs +7 -6
  84. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-kit-components-textarea.mjs +19 -5
  86. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-kit-components-tiles.mjs +4 -4
  88. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-kit-components-toast.mjs +2 -2
  90. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +3 -3
  92. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +2 -2
  94. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-kit-directives-connected.mjs +3 -3
  96. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-kit-directives-fade.mjs +3 -3
  98. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +3 -3
  100. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +2 -2
  102. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +3 -3
  104. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +4 -3
  106. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +20 -11
  108. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  109. package/package.json +37 -37
@@ -1,12 +1,12 @@
1
1
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, ChangeDetectionStrategy, Component, INJECTOR, effect, afterNextRender, Directive, signal, computed, input, output } from '@angular/core';
3
+ import { inject, ChangeDetectionStrategy, Component, INJECTOR, effect, afterNextRender, Directive, signal, computed, input, output, DestroyRef } from '@angular/core';
4
4
  import { takeUntilDestroyed, toSignal, toObservable } from '@angular/core/rxjs-interop';
5
5
  import * as i1 from '@taiga-ui/cdk/directives/transitioned';
6
6
  import { TuiTransitioned } from '@taiga-ui/cdk/directives/transitioned';
7
7
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
8
8
  import * as i3 from '@taiga-ui/core/portals/hint';
9
- import { TuiHintComponent, tuiGetHintProviders, TuiHintDirective, TUI_HINT_COMPONENT, TuiHint } from '@taiga-ui/core/portals/hint';
9
+ import { TuiHintComponent, TuiHintDirective, TUI_HINT_COMPONENT, TuiHint } from '@taiga-ui/core/portals/hint';
10
10
  import { TUI_FONT_OFFSET } from '@taiga-ui/core/utils/miscellaneous';
11
11
  import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
12
12
  import { startWith, pairwise, switchMap, of, fromEvent, filter, map } from 'rxjs';
@@ -30,11 +30,11 @@ class TuiLineClampBox extends TuiHintComponent {
30
30
  return this.accessor.getClientRect().width;
31
31
  }
32
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiLineClampBox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TuiLineClampBox, isStandalone: true, selector: "tui-line-clamp-box", host: { properties: { "style.line-height.px": "host.line()", "style.min-width.px": "width" } }, providers: tuiGetHintProviders(), usesInheritance: true, ngImport: i0, template: '<ng-container *polymorpheusOutlet="content() as text">{{ text }}</ng-container>', isInline: true, styles: [":host{position:absolute;box-shadow:var(--tui-shadow-medium);inline-size:min-content;padding:.75rem 1rem;margin-inline-start:calc(-1px - 1rem);margin-block-start:calc(-1px - .75rem);border-radius:var(--tui-radius-l);box-sizing:content-box;border:1px solid var(--tui-border-normal);background:var(--tui-background-base);color:var(--tui-text-primary);overflow-wrap:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TuiLineClampBox, isStandalone: true, selector: "tui-line-clamp-box", host: { properties: { "style.line-height.px": "host.line()", "style.min-width.px": "width" } }, usesInheritance: true, ngImport: i0, template: '<ng-container *polymorpheusOutlet="content() as text">{{ text }}</ng-container>', isInline: true, styles: [":host{position:absolute;box-shadow:var(--tui-shadow-medium);inline-size:min-content;padding:.75rem 1rem;margin-inline-start:calc(-1px - 1rem);margin-block-start:calc(-1px - .75rem);border-radius:var(--tui-radius-l);box-sizing:content-box;border:1px solid var(--tui-border-normal);background:var(--tui-background-base);color:var(--tui-text-primary);overflow-wrap:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
34
  }
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiLineClampBox, decorators: [{
36
36
  type: Component,
37
- args: [{ selector: 'tui-line-clamp-box', imports: [PolymorpheusOutlet], template: '<ng-container *polymorpheusOutlet="content() as text">{{ text }}</ng-container>', changeDetection: ChangeDetectionStrategy.OnPush, providers: tuiGetHintProviders(), host: { '[style.line-height.px]': 'host.line()', '[style.min-width.px]': 'width' }, styles: [":host{position:absolute;box-shadow:var(--tui-shadow-medium);inline-size:min-content;padding:.75rem 1rem;margin-inline-start:calc(-1px - 1rem);margin-block-start:calc(-1px - .75rem);border-radius:var(--tui-radius-l);box-sizing:content-box;border:1px solid var(--tui-border-normal);background:var(--tui-background-base);color:var(--tui-text-primary);overflow-wrap:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade}\n"] }]
37
+ args: [{ selector: 'tui-line-clamp-box', imports: [PolymorpheusOutlet], template: '<ng-container *polymorpheusOutlet="content() as text">{{ text }}</ng-container>', changeDetection: ChangeDetectionStrategy.OnPush, host: { '[style.line-height.px]': 'host.line()', '[style.min-width.px]': 'width' }, styles: [":host{position:absolute;box-shadow:var(--tui-shadow-medium);inline-size:min-content;padding:.75rem 1rem;margin-inline-start:calc(-1px - 1rem);margin-block-start:calc(-1px - .75rem);border-radius:var(--tui-radius-l);box-sizing:content-box;border:1px solid var(--tui-border-normal);background:var(--tui-background-base);color:var(--tui-text-primary);overflow-wrap:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade}\n"] }]
38
38
  }] });
39
39
 
40
40
  /**
@@ -110,6 +110,7 @@ class TuiLineClamp {
110
110
  this.options = inject(TUI_LINE_CLAMP_OPTIONS);
111
111
  this.el = tuiInjectElement();
112
112
  this.overflows = signal(0);
113
+ this.destroyed = signal(false);
113
114
  this.overflown = signal(false);
114
115
  this.maxHeight = computed(() => this.line() * this.linesLimit());
115
116
  this.line = computed(() => this.lineHeight() + this.offset());
@@ -124,12 +125,14 @@ class TuiLineClamp {
124
125
  ? of(next)
125
126
  : fromEvent(this.el, 'transitionend').pipe(filter((e) => e.target === e.currentTarget), map(() => next)))), { initialValue: 0 });
126
127
  this.computedContent = computed(() => this.showHint() && this.overflown() ? this.content() : '');
128
+ inject(DestroyRef).onDestroy(() => this.destroyed.set(true));
127
129
  }
128
130
  setOverflown(overflown) {
129
- if (this.overflown() !== overflown) {
130
- this.overflown.set(overflown);
131
- this.overflownChange.emit(overflown);
131
+ if (this.destroyed() || this.overflown() === overflown) {
132
+ return;
132
133
  }
134
+ this.overflown.set(overflown);
135
+ this.overflownChange.emit(overflown);
133
136
  }
134
137
  /**
135
138
  * Both axes can overflow at once, and turning the clamp on can stop one of them,
@@ -140,7 +143,7 @@ class TuiLineClamp {
140
143
  this.setOverflown(this.overflows() > 0);
141
144
  }
142
145
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiLineClamp, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.25", type: TuiLineClamp, isStandalone: true, selector: "tui-line-clamp", inputs: { lineHeight: { classPropertyName: "lineHeight", publicName: "lineHeight", isSignal: true, isRequired: false, transformFunction: null }, linesLimit: { classPropertyName: "linesLimit", publicName: "linesLimit", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, showHint: { classPropertyName: "showHint", publicName: "showHint", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { overflownChange: "overflownChange" }, host: { properties: { "class._overflown": "overflown()", "style.line-height.px": "line()", "style.max-height.px": "maxHeight()" } }, providers: [{ provide: TUI_HINT_COMPONENT, useValue: TuiLineClampBox }], hostDirectives: [{ directive: i1.TuiTransitioned }, { directive: TuiLineClampFallback }], ngImport: i0, template: "<div\n tuiLineClampPosition\n class=\"t-wrapper\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.word-break]=\"lineClamp() > 1 ? 'break-word' : 'break-all'\"\n [tuiHint]=\"computedContent()\"\n (animationcancel.self)=\"onOverflow(false)\"\n (animationstart.self)=\"onOverflow(true)\"\n>\n <ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>\n</div>\n", styles: [":host{transition-property:max-height;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:relative;display:block;overflow:hidden}:host._overflown .t-wrapper{-webkit-box-orient:vertical}.t-wrapper{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere}@supports (animation-timeline: --name){@keyframes tuiEmpty{}.t-wrapper{max-block-size:inherit;animation-name:tuiEmpty,tuiEmpty;animation-timeline:scroll(self block),scroll(self inline)}}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"], outputs: ["tuiHintVisible"] }, { kind: "directive", type: TuiLineClampPositionDirective, selector: "[tuiLineClampPosition]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.25", type: TuiLineClamp, isStandalone: true, selector: "tui-line-clamp", inputs: { lineHeight: { classPropertyName: "lineHeight", publicName: "lineHeight", isSignal: true, isRequired: false, transformFunction: null }, linesLimit: { classPropertyName: "linesLimit", publicName: "linesLimit", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, showHint: { classPropertyName: "showHint", publicName: "showHint", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { overflownChange: "overflownChange" }, host: { properties: { "class._overflown": "overflown()", "style.line-height.px": "line()", "style.max-height.px": "maxHeight()" } }, providers: [{ provide: TUI_HINT_COMPONENT, useValue: TuiLineClampBox }], hostDirectives: [{ directive: i1.TuiTransitioned }, { directive: TuiLineClampFallback }], ngImport: i0, template: "<div\n tuiLineClampPosition\n class=\"t-wrapper\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.word-break]=\"lineClamp() > 1 ? 'break-word' : 'break-all'\"\n [tuiHint]=\"computedContent()\"\n (animationcancel.self)=\"onOverflow(false)\"\n (animationstart.self)=\"onOverflow(true)\"\n>\n <ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>\n</div>\n", styles: [":host{transition-property:max-height;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:relative;display:block;overflow:hidden}:host._overflown .t-wrapper{-webkit-box-orient:vertical}.t-wrapper{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere}@supports (animation-timeline: --name){@keyframes tuiEmpty{}.t-wrapper{max-block-size:inherit}:host(:not([ngh])) .t-wrapper{animation-name:tuiEmpty,tuiEmpty;animation-timeline:scroll(self block),scroll(self inline)}}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"], outputs: ["tuiHintVisible"] }, { kind: "directive", type: TuiLineClampPositionDirective, selector: "[tuiLineClampPosition]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
144
147
  }
145
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiLineClamp, decorators: [{
146
149
  type: Component,
@@ -148,8 +151,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
148
151
  '[class._overflown]': 'overflown()',
149
152
  '[style.line-height.px]': 'line()',
150
153
  '[style.max-height.px]': 'maxHeight()',
151
- }, template: "<div\n tuiLineClampPosition\n class=\"t-wrapper\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.word-break]=\"lineClamp() > 1 ? 'break-word' : 'break-all'\"\n [tuiHint]=\"computedContent()\"\n (animationcancel.self)=\"onOverflow(false)\"\n (animationstart.self)=\"onOverflow(true)\"\n>\n <ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>\n</div>\n", styles: [":host{transition-property:max-height;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:relative;display:block;overflow:hidden}:host._overflown .t-wrapper{-webkit-box-orient:vertical}.t-wrapper{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere}@supports (animation-timeline: --name){@keyframes tuiEmpty{}.t-wrapper{max-block-size:inherit;animation-name:tuiEmpty,tuiEmpty;animation-timeline:scroll(self block),scroll(self inline)}}\n"] }]
152
- }] });
154
+ }, template: "<div\n tuiLineClampPosition\n class=\"t-wrapper\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.word-break]=\"lineClamp() > 1 ? 'break-word' : 'break-all'\"\n [tuiHint]=\"computedContent()\"\n (animationcancel.self)=\"onOverflow(false)\"\n (animationstart.self)=\"onOverflow(true)\"\n>\n <ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>\n</div>\n", styles: [":host{transition-property:max-height;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:relative;display:block;overflow:hidden}:host._overflown .t-wrapper{-webkit-box-orient:vertical}.t-wrapper{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere}@supports (animation-timeline: --name){@keyframes tuiEmpty{}.t-wrapper{max-block-size:inherit}:host(:not([ngh])) .t-wrapper{animation-name:tuiEmpty,tuiEmpty;animation-timeline:scroll(self block),scroll(self inline)}}\n"] }]
155
+ }], ctorParameters: () => [] });
153
156
 
154
157
  /**
155
158
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-line-clamp.mjs","sources":["../../../projects/kit/components/line-clamp/line-clamp.options.ts","../../../projects/kit/components/line-clamp/line-clamp-box.component.ts","../../../projects/kit/components/line-clamp/line-clamp-fallback.directive.ts","../../../projects/kit/components/line-clamp/line-clamp-position.directive.ts","../../../projects/kit/components/line-clamp/line-clamp.component.ts","../../../projects/kit/components/line-clamp/line-clamp.template.html","../../../projects/kit/components/line-clamp/taiga-ui-kit-components-line-clamp.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiLineClampOptions {\n readonly showHint: boolean;\n}\n\nexport const TUI_LINE_CLAMP_DEFAULT_OPTIONS: TuiLineClampOptions = {showHint: true};\n\n/**\n * Default parameters for LineClamp component\n */\nexport const [TUI_LINE_CLAMP_OPTIONS, tuiLineClampOptionsProvider] = tuiCreateOptions(\n TUI_LINE_CLAMP_DEFAULT_OPTIONS,\n);\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {tuiGetHintProviders, TuiHintComponent} from '@taiga-ui/core/portals/hint';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiLineClamp} from './line-clamp.component';\n\n@Component({\n selector: 'tui-line-clamp-box',\n imports: [PolymorpheusOutlet],\n template:\n '<ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>',\n styleUrl: './line-clamp-box.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: tuiGetHintProviders(),\n host: {'[style.line-height.px]': 'host.line()', '[style.min-width.px]': 'width'},\n})\nexport class TuiLineClampBox extends TuiHintComponent {\n protected readonly host = inject(TuiLineClamp);\n\n protected get width(): number {\n return this.accessor.getClientRect().width;\n }\n}\n","import {afterNextRender, Directive, effect, inject, INJECTOR} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_TIMELINE_SUPPORT} from '@taiga-ui/core/tokens';\n\nimport {TuiLineClamp} from './line-clamp.component';\n\ntype Measure = Pick<Element, 'clientWidth' | 'scrollHeight' | 'scrollWidth'>;\n\n/**\n * Detects overflow by measuring, for browsers without scroll timeline support (see component\n * styles)\n */\n@Directive({\n selector: '[tuiLineClampFallback]',\n providers: [WaResizeObserverService],\n host: {'(mouseenter)': 'apply(measure())'},\n})\nexport class TuiLineClampFallback {\n private readonly host = inject(TuiLineClamp);\n private readonly injector = inject(INJECTOR);\n private readonly el = tuiInjectElement();\n\n /**\n * Reads of all instances are batched into the `earlyRead`\n * phase, so writes of one of them do not force a reflow for the next one\n */\n protected readonly refresh =\n !inject(TUI_TIMELINE_SUPPORT) &&\n effect(() => {\n this.host.content();\n this.host.maxHeight();\n\n afterNextRender(\n {\n earlyRead: () => this.measure(),\n write: (measure) => this.apply(measure),\n },\n {injector: this.injector},\n );\n });\n\n protected readonly resize =\n !inject(TUI_TIMELINE_SUPPORT) &&\n inject(WaResizeObserverService)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.apply(this.measure()));\n\n protected measure(): Measure {\n const {scrollHeight, scrollWidth, clientWidth} =\n this.el.firstElementChild ?? this.el;\n\n return {scrollHeight, scrollWidth, clientWidth};\n }\n\n protected apply({scrollHeight, scrollWidth, clientWidth}: Measure): void {\n this.host.setOverflown(\n scrollHeight > this.host.maxHeight() || scrollWidth > clientWidth,\n );\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport {\n tuiAsPositionAccessor,\n TuiPositionAccessor,\n type TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TuiHintDirective} from '@taiga-ui/core/portals/hint';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\n@Directive({\n selector: '[tuiLineClampPosition]',\n providers: [tuiAsPositionAccessor(TuiLineClampPositionDirective)],\n})\nexport class TuiLineClampPositionDirective extends TuiPositionAccessor {\n private readonly accessor = inject<TuiRectAccessor>(TuiHintDirective);\n\n public readonly type = 'hint';\n\n public getPosition(): TuiPoint {\n const {top, left} = this.accessor.getClientRect();\n\n return [left, top];\n }\n}\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport {toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {TuiTransitioned} from '@taiga-ui/cdk/directives/transitioned';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_HINT_COMPONENT, TuiHint} from '@taiga-ui/core/portals/hint';\nimport {TUI_FONT_OFFSET} from '@taiga-ui/core/utils/miscellaneous';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {filter, fromEvent, map, of, pairwise, startWith, switchMap} from 'rxjs';\n\nimport {TUI_LINE_CLAMP_OPTIONS} from './line-clamp.options';\nimport {TuiLineClampBox} from './line-clamp-box.component';\nimport {TuiLineClampFallback} from './line-clamp-fallback.directive';\nimport {TuiLineClampPositionDirective} from './line-clamp-position.directive';\n\n@Component({\n selector: 'tui-line-clamp',\n imports: [PolymorpheusOutlet, TuiHint, TuiLineClampPositionDirective],\n templateUrl: './line-clamp.template.html',\n styleUrl: './line-clamp.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{provide: TUI_HINT_COMPONENT, useValue: TuiLineClampBox}],\n hostDirectives: [TuiTransitioned, TuiLineClampFallback],\n host: {\n '[class._overflown]': 'overflown()',\n '[style.line-height.px]': 'line()',\n '[style.max-height.px]': 'maxHeight()',\n },\n})\nexport class TuiLineClamp {\n private readonly offset = inject(TUI_FONT_OFFSET);\n private readonly options = inject(TUI_LINE_CLAMP_OPTIONS);\n private readonly el = tuiInjectElement();\n private readonly overflows = signal(0);\n\n protected readonly overflown = signal(false);\n\n public readonly maxHeight = computed(() => this.line() * this.linesLimit());\n public readonly line = computed(() => this.lineHeight() + this.offset());\n public readonly lineHeight = input(24);\n public readonly linesLimit = input(1);\n public readonly content = input<PolymorpheusContent>();\n\n public readonly showHint = input<boolean, BooleanInput>(this.options.showHint, {\n transform: coerceBooleanProperty,\n });\n\n public readonly overflownChange = output<boolean>();\n\n protected readonly lineClamp = toSignal(\n toObservable(this.linesLimit).pipe(\n startWith(1),\n pairwise(),\n switchMap(([prev, next]) =>\n next >= prev\n ? of(next)\n : fromEvent(this.el, 'transitionend').pipe(\n filter((e) => e.target === e.currentTarget),\n map(() => next),\n ),\n ),\n ),\n {initialValue: 0},\n );\n\n protected readonly computedContent = computed(() =>\n this.showHint() && this.overflown() ? this.content() : '',\n );\n\n public setOverflown(overflown: boolean): void {\n if (this.overflown() !== overflown) {\n this.overflown.set(overflown);\n this.overflownChange.emit(overflown);\n }\n }\n\n /**\n * Both axes can overflow at once, and turning the clamp on can stop one of them,\n * so a single axis going quiet does not mean the content fits\n */\n protected onOverflow(overflown: boolean): void {\n this.overflows.update((val) => val + (overflown ? 1 : -1));\n\n this.setOverflown(this.overflows() > 0);\n }\n}\n","<div\n tuiLineClampPosition\n class=\"t-wrapper\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.word-break]=\"lineClamp() > 1 ? 'break-word' : 'break-all'\"\n [tuiHint]=\"computedContent()\"\n (animationcancel.self)=\"onOverflow(false)\"\n (animationstart.self)=\"onOverflow(true)\"\n>\n <ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TuiLineClampFallback"],"mappings":";;;;;;;;;;;;;;;;;MAMa,8BAA8B,GAAwB,EAAC,QAAQ,EAAE,IAAI;AAElF;;AAEG;AACI,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,GAAG,gBAAgB,CACjF,8BAA8B;;ACI5B,MAAO,eAAgB,SAAQ,gBAAgB,CAAA;AAVrD,IAAA,WAAA,GAAA;;AAWuB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;AAKjD,IAAA;AAHG,IAAA,IAAc,KAAK,GAAA;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK;IAC9C;+GALS,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,iKAHb,mBAAmB,EAAE,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAH5B,iFAAiF,wfAF3E,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAQnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;+BACI,oBAAoB,EAAA,OAAA,EACrB,CAAC,kBAAkB,CAAC,YAEzB,iFAAiF,EAAA,eAAA,EAEpE,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,mBAAmB,EAAE,EAAA,IAAA,EAC1B,EAAC,wBAAwB,EAAE,aAAa,EAAE,sBAAsB,EAAE,OAAO,EAAC,EAAA,MAAA,EAAA,CAAA,gbAAA,CAAA,EAAA;;;ACJpF;;;AAGG;MAMU,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;AAMqB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;AAC3B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAE;AAExC;;;AAGG;AACgB,QAAA,IAAA,CAAA,OAAO,GACtB,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC7B,MAAM,CAAC,MAAK;AACR,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnB,gBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAErB,gBAAA,eAAe,CACX;AACI,oBAAA,SAAS,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE;oBAC/B,KAAK,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;iBAC1C,EACD,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAC5B;AACL,YAAA,CAAC,CAAC;AAEa,QAAA,IAAA,CAAA,MAAM,GACrB,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC7B,MAAM,CAAC,uBAAuB;iBACzB,IAAI,CAAC,kBAAkB,EAAE;AACzB,iBAAA,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAcvD,IAAA;IAZa,OAAO,GAAA;AACb,QAAA,MAAM,EAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAC,GAC1C,IAAI,CAAC,EAAE,CAAC,iBAAiB,IAAI,IAAI,CAAC,EAAE;AAExC,QAAA,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAC;IACnD;AAEU,IAAA,KAAK,CAAC,EAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAU,EAAA;AAC7D,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAClB,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,WAAW,GAAG,WAAW,CACpE;IACL;+GAzCS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAHlB,CAAC,uBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAG3B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;oBAClC,SAAS,EAAE,CAAC,uBAAuB,CAAC;AACpC,oBAAA,IAAI,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;AAC7C,iBAAA;;;ACLK,MAAO,6BAA8B,SAAQ,mBAAmB,CAAA;AAJtE,IAAA,WAAA,GAAA;;AAKqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAkB,gBAAgB,CAAC;QAErD,IAAA,CAAA,IAAI,GAAG,MAAM;AAOhC,IAAA;IALU,WAAW,GAAA;AACd,QAAA,MAAM,EAAC,GAAG,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAEjD,QAAA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;IACtB;+GATS,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,qEAF3B,CAAC,qBAAqB,CAAC,6BAA6B,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAExD,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,SAAS,EAAE,CAAC,qBAAqB,CAAA,6BAAA,CAA+B,CAAC;AACpE,iBAAA;;;MCyBY,YAAY,CAAA;AAdzB,IAAA,WAAA,GAAA;AAeqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AAChC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAAC;QACxC,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;AAEnB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;AAE5B,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;QACrB,IAAA,CAAA,OAAO,GAAG,KAAK,EAAuB;QAEtC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC3E,YAAA,SAAS,EAAE,qBAAqB;AACnC,SAAA,CAAC;QAEc,IAAA,CAAA,eAAe,GAAG,MAAM,EAAW;AAEhC,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CACnC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAC9B,SAAS,CAAC,CAAC,CAAC,EACZ,QAAQ,EAAE,EACV,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KACnB,IAAI,IAAI;AACJ,cAAE,EAAE,CAAC,IAAI;cACP,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC,IAAI,CACpC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa,CAAC,EAC3C,GAAG,CAAC,MAAM,IAAI,CAAC,CAClB,CACV,CACJ,EACD,EAAC,YAAY,EAAE,CAAC,EAAC,CACpB;QAEkB,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAC1C,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAC5D;AAkBJ,IAAA;AAhBU,IAAA,YAAY,CAAC,SAAkB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;QACxC;IACJ;AAEA;;;AAGG;AACO,IAAA,UAAU,CAAC,SAAkB,EAAA;QACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3C;+GAvDS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,4wBARV,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,eAAe,EAAC,CAAC,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAAA,oBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BzE,6ZAWA,EAAA,MAAA,EAAA,CAAA,8fAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDcc,kBAAkB,mUAAW,6BAA6B,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAY3D,YAAY,EAAA,UAAA,EAAA,CAAA;kBAdxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EACjB,CAAC,kBAAkB,EAAE,OAAO,EAAE,6BAA6B,CAAC,EAAA,eAAA,EAGpD,uBAAuB,CAAC,MAAM,aACpC,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,eAAe,EAAC,CAAC,EAAA,cAAA,EACrD,CAAC,eAAe,EAAE,oBAAoB,CAAC,EAAA,IAAA,EACjD;AACF,wBAAA,oBAAoB,EAAE,aAAa;AACnC,wBAAA,wBAAwB,EAAE,QAAQ;AAClC,wBAAA,uBAAuB,EAAE,aAAa;AACzC,qBAAA,EAAA,QAAA,EAAA,6ZAAA,EAAA,MAAA,EAAA,CAAA,8fAAA,CAAA,EAAA;;;AEnCL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-line-clamp.mjs","sources":["../../../projects/kit/components/line-clamp/line-clamp.options.ts","../../../projects/kit/components/line-clamp/line-clamp-box.component.ts","../../../projects/kit/components/line-clamp/line-clamp-fallback.directive.ts","../../../projects/kit/components/line-clamp/line-clamp-position.directive.ts","../../../projects/kit/components/line-clamp/line-clamp.component.ts","../../../projects/kit/components/line-clamp/line-clamp.template.html","../../../projects/kit/components/line-clamp/taiga-ui-kit-components-line-clamp.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiLineClampOptions {\n readonly showHint: boolean;\n}\n\nexport const TUI_LINE_CLAMP_DEFAULT_OPTIONS: TuiLineClampOptions = {showHint: true};\n\n/**\n * Default parameters for LineClamp component\n */\nexport const [TUI_LINE_CLAMP_OPTIONS, tuiLineClampOptionsProvider] = tuiCreateOptions(\n TUI_LINE_CLAMP_DEFAULT_OPTIONS,\n);\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiHintComponent} from '@taiga-ui/core/portals/hint';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiLineClamp} from './line-clamp.component';\n\n@Component({\n selector: 'tui-line-clamp-box',\n imports: [PolymorpheusOutlet],\n template:\n '<ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>',\n styleUrl: './line-clamp-box.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'[style.line-height.px]': 'host.line()', '[style.min-width.px]': 'width'},\n})\nexport class TuiLineClampBox extends TuiHintComponent {\n protected readonly host = inject(TuiLineClamp);\n\n protected get width(): number {\n return this.accessor.getClientRect().width;\n }\n}\n","import {afterNextRender, Directive, effect, inject, INJECTOR} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_TIMELINE_SUPPORT} from '@taiga-ui/core/tokens';\n\nimport {TuiLineClamp} from './line-clamp.component';\n\ntype Measure = Pick<Element, 'clientWidth' | 'scrollHeight' | 'scrollWidth'>;\n\n/**\n * Detects overflow by measuring, for browsers without scroll timeline support (see component\n * styles)\n */\n@Directive({\n selector: '[tuiLineClampFallback]',\n providers: [WaResizeObserverService],\n host: {'(mouseenter)': 'apply(measure())'},\n})\nexport class TuiLineClampFallback {\n private readonly host = inject(TuiLineClamp);\n private readonly injector = inject(INJECTOR);\n private readonly el = tuiInjectElement();\n\n /**\n * Reads of all instances are batched into the `earlyRead`\n * phase, so writes of one of them do not force a reflow for the next one\n */\n protected readonly refresh =\n !inject(TUI_TIMELINE_SUPPORT) &&\n effect(() => {\n this.host.content();\n this.host.maxHeight();\n\n afterNextRender(\n {\n earlyRead: () => this.measure(),\n write: (measure) => this.apply(measure),\n },\n {injector: this.injector},\n );\n });\n\n protected readonly resize =\n !inject(TUI_TIMELINE_SUPPORT) &&\n inject(WaResizeObserverService)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.apply(this.measure()));\n\n protected measure(): Measure {\n const {scrollHeight, scrollWidth, clientWidth} =\n this.el.firstElementChild ?? this.el;\n\n return {scrollHeight, scrollWidth, clientWidth};\n }\n\n protected apply({scrollHeight, scrollWidth, clientWidth}: Measure): void {\n this.host.setOverflown(\n scrollHeight > this.host.maxHeight() || scrollWidth > clientWidth,\n );\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport {\n tuiAsPositionAccessor,\n TuiPositionAccessor,\n type TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TuiHintDirective} from '@taiga-ui/core/portals/hint';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\n@Directive({\n selector: '[tuiLineClampPosition]',\n providers: [tuiAsPositionAccessor(TuiLineClampPositionDirective)],\n})\nexport class TuiLineClampPositionDirective extends TuiPositionAccessor {\n private readonly accessor = inject<TuiRectAccessor>(TuiHintDirective);\n\n public readonly type = 'hint';\n\n public getPosition(): TuiPoint {\n const {top, left} = this.accessor.getClientRect();\n\n return [left, top];\n }\n}\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport {toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {TuiTransitioned} from '@taiga-ui/cdk/directives/transitioned';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_HINT_COMPONENT, TuiHint} from '@taiga-ui/core/portals/hint';\nimport {TUI_FONT_OFFSET} from '@taiga-ui/core/utils/miscellaneous';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {filter, fromEvent, map, of, pairwise, startWith, switchMap} from 'rxjs';\n\nimport {TUI_LINE_CLAMP_OPTIONS} from './line-clamp.options';\nimport {TuiLineClampBox} from './line-clamp-box.component';\nimport {TuiLineClampFallback} from './line-clamp-fallback.directive';\nimport {TuiLineClampPositionDirective} from './line-clamp-position.directive';\n\n@Component({\n selector: 'tui-line-clamp',\n imports: [PolymorpheusOutlet, TuiHint, TuiLineClampPositionDirective],\n templateUrl: './line-clamp.template.html',\n styleUrl: './line-clamp.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{provide: TUI_HINT_COMPONENT, useValue: TuiLineClampBox}],\n hostDirectives: [TuiTransitioned, TuiLineClampFallback],\n host: {\n '[class._overflown]': 'overflown()',\n '[style.line-height.px]': 'line()',\n '[style.max-height.px]': 'maxHeight()',\n },\n})\nexport class TuiLineClamp {\n private readonly offset = inject(TUI_FONT_OFFSET);\n private readonly options = inject(TUI_LINE_CLAMP_OPTIONS);\n private readonly el = tuiInjectElement();\n private readonly overflows = signal(0);\n private readonly destroyed = signal(false);\n\n protected readonly overflown = signal(false);\n\n public readonly maxHeight = computed(() => this.line() * this.linesLimit());\n public readonly line = computed(() => this.lineHeight() + this.offset());\n public readonly lineHeight = input(24);\n public readonly linesLimit = input(1);\n public readonly content = input<PolymorpheusContent>();\n\n public readonly showHint = input<boolean, BooleanInput>(this.options.showHint, {\n transform: coerceBooleanProperty,\n });\n\n public readonly overflownChange = output<boolean>();\n\n protected readonly lineClamp = toSignal(\n toObservable(this.linesLimit).pipe(\n startWith(1),\n pairwise(),\n switchMap(([prev, next]) =>\n next >= prev\n ? of(next)\n : fromEvent(this.el, 'transitionend').pipe(\n filter((e) => e.target === e.currentTarget),\n map(() => next),\n ),\n ),\n ),\n {initialValue: 0},\n );\n\n protected readonly computedContent = computed(() =>\n this.showHint() && this.overflown() ? this.content() : '',\n );\n\n constructor() {\n inject(DestroyRef).onDestroy(() => this.destroyed.set(true));\n }\n\n public setOverflown(overflown: boolean): void {\n if (this.destroyed() || this.overflown() === overflown) {\n return;\n }\n\n this.overflown.set(overflown);\n this.overflownChange.emit(overflown);\n }\n\n /**\n * Both axes can overflow at once, and turning the clamp on can stop one of them,\n * so a single axis going quiet does not mean the content fits\n */\n protected onOverflow(overflown: boolean): void {\n this.overflows.update((val) => val + (overflown ? 1 : -1));\n\n this.setOverflown(this.overflows() > 0);\n }\n}\n","<div\n tuiLineClampPosition\n class=\"t-wrapper\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.word-break]=\"lineClamp() > 1 ? 'break-word' : 'break-all'\"\n [tuiHint]=\"computedContent()\"\n (animationcancel.self)=\"onOverflow(false)\"\n (animationstart.self)=\"onOverflow(true)\"\n>\n <ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TuiLineClampFallback"],"mappings":"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"}
@@ -7,11 +7,11 @@ import { TUI_APPEARANCE_OPTIONS, TuiWithAppearance } from '@taiga-ui/core/direct
7
7
 
8
8
  class Styles {
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-message-5.23.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiMessage]:where(*[data-tui-version=\"5.23.0\"]){display:inline-flex;padding:.5rem .625rem;min-block-size:2.25rem;block-size:auto;box-sizing:border-box;inline-size:fit-content;isolation:isolate;white-space:nowrap;text-align:start;font:var(--tui-typography-ui-m);border-radius:var(--tui-radius-l)}[tuiMessage]:where(*[data-tui-version=\"5.23.0\"])>[tuiLink]{color:inherit!important;text-decoration:underline solid!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-message-5.24.0-canary.3f61c9e"], ngImport: i0, template: '', isInline: true, styles: ["[tuiMessage]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]){display:inline-flex;padding:.5rem .625rem;min-block-size:2.25rem;block-size:auto;box-sizing:border-box;inline-size:fit-content;isolation:isolate;white-space:nowrap;text-align:start;font:var(--tui-typography-ui-m);border-radius:var(--tui-radius-l)}[tuiMessage]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiLink]{color:inherit!important;text-decoration:underline solid!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
13
13
  type: Component,
14
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-message-${TUI_VERSION}`, styles: ["[tuiMessage]:where(*[data-tui-version=\"5.23.0\"]){display:inline-flex;padding:.5rem .625rem;min-block-size:2.25rem;block-size:auto;box-sizing:border-box;inline-size:fit-content;isolation:isolate;white-space:nowrap;text-align:start;font:var(--tui-typography-ui-m);border-radius:var(--tui-radius-l)}[tuiMessage]:where(*[data-tui-version=\"5.23.0\"])>[tuiLink]{color:inherit!important;text-decoration:underline solid!important}\n"] }]
14
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-message-${TUI_VERSION}`, styles: ["[tuiMessage]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]){display:inline-flex;padding:.5rem .625rem;min-block-size:2.25rem;block-size:auto;box-sizing:border-box;inline-size:fit-content;isolation:isolate;white-space:nowrap;text-align:start;font:var(--tui-typography-ui-m);border-radius:var(--tui-radius-l)}[tuiMessage]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiLink]{color:inherit!important;text-decoration:underline solid!important}\n"] }]
15
15
  }] });
16
16
  class TuiMessage {
17
17
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-message.mjs","sources":["../../../projects/kit/components/message/message.directive.ts","../../../projects/kit/components/message/taiga-ui-kit-components-message.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\n\n@Component({\n template: '',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import '@taiga-ui/styles/components/message.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: `tui-message-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiMessage]',\n providers: [\n {\n provide: TUI_APPEARANCE_OPTIONS,\n useValue: {appearance: 'neutral'},\n },\n ],\n hostDirectives: [TuiWithAppearance],\n})\nexport class TuiMessage {\n protected readonly nothing = tuiWithStyles(Styles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAaA,MAWM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,0GAVE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6aAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAUV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAXX,SAAS;+BACI,EAAE,EAAA,aAAA,EAMG,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,CAAA,YAAA,EAAe,WAAW,CAAA,CAAE,EAAA,MAAA,EAAA,CAAA,6aAAA,CAAA,EAAA;;MAc7B,UAAU,CAAA;AAVvB,IAAA,WAAA,GAAA;AAWuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AACrD,IAAA;+GAFY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EARR;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,QAAQ,EAAE,EAAC,UAAU,EAAE,SAAS,EAAC;AACpC,aAAA;AACJ,SAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,UAAU,EAAA,UAAA,EAAA,CAAA;kBAVtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,QAAQ,EAAE,EAAC,UAAU,EAAE,SAAS,EAAC;AACpC,yBAAA;AACJ,qBAAA;oBACD,cAAc,EAAE,CAAC,iBAAiB,CAAC;AACtC,iBAAA;;;ACnCD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-message.mjs","sources":["../../../projects/kit/components/message/message.directive.ts","../../../projects/kit/components/message/taiga-ui-kit-components-message.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\n\n@Component({\n template: '',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import '@taiga-ui/styles/components/message.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: `tui-message-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiMessage]',\n providers: [\n {\n provide: TUI_APPEARANCE_OPTIONS,\n useValue: {appearance: 'neutral'},\n },\n ],\n hostDirectives: [TuiWithAppearance],\n})\nexport class TuiMessage {\n protected readonly nothing = tuiWithStyles(Styles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAaA,MAWM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,yHAVE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2cAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAUV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAXX,SAAS;+BACI,EAAE,EAAA,aAAA,EAMG,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,CAAA,YAAA,EAAe,WAAW,CAAA,CAAE,EAAA,MAAA,EAAA,CAAA,2cAAA,CAAA,EAAA;;MAc7B,UAAU,CAAA;AAVvB,IAAA,WAAA,GAAA;AAWuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AACrD,IAAA;+GAFY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EARR;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,QAAQ,EAAE,EAAC,UAAU,EAAE,SAAS,EAAC;AACpC,aAAA;AACJ,SAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,UAAU,EAAA,UAAA,EAAA,CAAA;kBAVtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,QAAQ,EAAE,EAAC,UAAU,EAAE,SAAS,EAAC;AACpC,yBAAA;AACJ,qBAAA;oBACD,cAAc,EAAE,CAAC,iBAAiB,CAAC;AACtC,iBAAA;;;ACnCD;;AAEG;;;;"}
@@ -5,11 +5,11 @@ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
 
6
6
  class Styles {
7
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-meter-5.23.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiMeter]:where(*[data-tui-version=\"5.23.0\"]){--t-min: attr(min type(<number>), 0);--t-max: attr(max type(<number>), 1);--t-low: attr(low type(<number>), var(--t-min));--t-high: attr(high type(<number>), var(--t-max));--t-optimum: attr(optimum type(<number>), calc(var(--t-max) - var(--t-min) / 2));--t-value: attr(value type(<number>), 0);--t-a: calc((var(--t-low) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-b: calc((var(--t-high) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-c: calc((var(--t-optimum) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-1: min(var(--t-a), var(--t-b), var(--t-c));--t-2: min(max(var(--t-a), var(--t-b)), max(var(--t-b), var(--t-c)), max(var(--t-a), var(--t-c)));--t-3: max(var(--t-a), var(--t-b), var(--t-c));--t-dir: clamp(-1, (var(--t-high) - var(--t-optimum)) * 9999, 1);--t-center: calc((var(--t-1) + var(--t-3)) / 2);--t-delta: calc(var(--t-3) - var(--t-1));--t-start: calc(var(--t-center) - (var(--t-delta) * var(--t-dir) / 2));--t-end: calc(var(--t-center) + (var(--t-delta) * var(--t-dir) / 2));--t-good: calc(100% * (((var(--t-start)) - .5) * var(--t-dir) + .5));--t-mid: calc(100% * (((var(--t-2)) - .5) * var(--t-dir) + .5));--t-bad: calc(100% * (((var(--t-end)) - .5) * var(--t-dir) + .5));position:relative;margin:0;block-size:1rem;inline-size:100%;border-radius:1rem;background:linear-gradient(calc(90deg * var(--t-dir)),var(--tui-status-positive) var(--t-good),var(--tui-status-warning) var(--t-mid),var(--tui-status-negative) var(--t-bad));transform:scaleX(var(--tui-inline));mask-clip:no-clip;-webkit-mask-image:radial-gradient(circle at calc(.5rem + (100% - 1rem) * (var(--t-value) - var(--t-min)) / (var(--t-max) - var(--t-min))) .5rem,black calc(.5rem - .5px),transparent .5rem,transparent .75rem,black calc(.75rem + .5px));mask-image:radial-gradient(circle at calc(.5rem + (100% - 1rem) * (var(--t-value) - var(--t-min)) / (var(--t-max) - var(--t-min))) .5rem,black calc(.5rem - .5px),transparent .5rem,transparent .75rem,black calc(.75rem + .5px))}[tuiMeter]:where(*[data-tui-version=\"5.23.0\"])::-webkit-meter-inner-element{display:none}[tuiMeter]:where(*[data-tui-version=\"5.23.0\"])::-moz-meter-bar{background:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-meter-5.24.0-canary.3f61c9e"], ngImport: i0, template: '', isInline: true, styles: ["[tuiMeter]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]){--t-min: attr(min type(<number>), 0);--t-max: attr(max type(<number>), 1);--t-low: attr(low type(<number>), var(--t-min));--t-high: attr(high type(<number>), var(--t-max));--t-optimum: attr(optimum type(<number>), calc(var(--t-max) - var(--t-min) / 2));--t-value: attr(value type(<number>), 0);--t-a: calc((var(--t-low) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-b: calc((var(--t-high) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-c: calc((var(--t-optimum) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-1: min(var(--t-a), var(--t-b), var(--t-c));--t-2: min(max(var(--t-a), var(--t-b)), max(var(--t-b), var(--t-c)), max(var(--t-a), var(--t-c)));--t-3: max(var(--t-a), var(--t-b), var(--t-c));--t-dir: clamp(-1, (var(--t-high) - var(--t-optimum)) * 9999, 1);--t-center: calc((var(--t-1) + var(--t-3)) / 2);--t-delta: calc(var(--t-3) - var(--t-1));--t-start: calc(var(--t-center) - (var(--t-delta) * var(--t-dir) / 2));--t-end: calc(var(--t-center) + (var(--t-delta) * var(--t-dir) / 2));--t-good: calc(100% * (((var(--t-start)) - .5) * var(--t-dir) + .5));--t-mid: calc(100% * (((var(--t-2)) - .5) * var(--t-dir) + .5));--t-bad: calc(100% * (((var(--t-end)) - .5) * var(--t-dir) + .5));position:relative;margin:0;block-size:1rem;inline-size:100%;border-radius:1rem;background:linear-gradient(calc(90deg * var(--t-dir)),var(--tui-status-positive) var(--t-good),var(--tui-status-warning) var(--t-mid),var(--tui-status-negative) var(--t-bad));transform:scaleX(var(--tui-inline));mask-clip:no-clip;-webkit-mask-image:radial-gradient(circle at calc(.5rem + (100% - 1rem) * (var(--t-value) - var(--t-min)) / (var(--t-max) - var(--t-min))) .5rem,black calc(.5rem - .5px),transparent .5rem,transparent .75rem,black calc(.75rem + .5px));mask-image:radial-gradient(circle at calc(.5rem + (100% - 1rem) * (var(--t-value) - var(--t-min)) / (var(--t-max) - var(--t-min))) .5rem,black calc(.5rem - .5px),transparent .5rem,transparent .75rem,black calc(.75rem + .5px))}[tuiMeter]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])::-webkit-meter-inner-element{display:none}[tuiMeter]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])::-moz-meter-bar{background:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9
9
  }
10
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
11
11
  type: Component,
12
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-meter-${TUI_VERSION}`, styles: ["[tuiMeter]:where(*[data-tui-version=\"5.23.0\"]){--t-min: attr(min type(<number>), 0);--t-max: attr(max type(<number>), 1);--t-low: attr(low type(<number>), var(--t-min));--t-high: attr(high type(<number>), var(--t-max));--t-optimum: attr(optimum type(<number>), calc(var(--t-max) - var(--t-min) / 2));--t-value: attr(value type(<number>), 0);--t-a: calc((var(--t-low) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-b: calc((var(--t-high) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-c: calc((var(--t-optimum) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-1: min(var(--t-a), var(--t-b), var(--t-c));--t-2: min(max(var(--t-a), var(--t-b)), max(var(--t-b), var(--t-c)), max(var(--t-a), var(--t-c)));--t-3: max(var(--t-a), var(--t-b), var(--t-c));--t-dir: clamp(-1, (var(--t-high) - var(--t-optimum)) * 9999, 1);--t-center: calc((var(--t-1) + var(--t-3)) / 2);--t-delta: calc(var(--t-3) - var(--t-1));--t-start: calc(var(--t-center) - (var(--t-delta) * var(--t-dir) / 2));--t-end: calc(var(--t-center) + (var(--t-delta) * var(--t-dir) / 2));--t-good: calc(100% * (((var(--t-start)) - .5) * var(--t-dir) + .5));--t-mid: calc(100% * (((var(--t-2)) - .5) * var(--t-dir) + .5));--t-bad: calc(100% * (((var(--t-end)) - .5) * var(--t-dir) + .5));position:relative;margin:0;block-size:1rem;inline-size:100%;border-radius:1rem;background:linear-gradient(calc(90deg * var(--t-dir)),var(--tui-status-positive) var(--t-good),var(--tui-status-warning) var(--t-mid),var(--tui-status-negative) var(--t-bad));transform:scaleX(var(--tui-inline));mask-clip:no-clip;-webkit-mask-image:radial-gradient(circle at calc(.5rem + (100% - 1rem) * (var(--t-value) - var(--t-min)) / (var(--t-max) - var(--t-min))) .5rem,black calc(.5rem - .5px),transparent .5rem,transparent .75rem,black calc(.75rem + .5px));mask-image:radial-gradient(circle at calc(.5rem + (100% - 1rem) * (var(--t-value) - var(--t-min)) / (var(--t-max) - var(--t-min))) .5rem,black calc(.5rem - .5px),transparent .5rem,transparent .75rem,black calc(.75rem + .5px))}[tuiMeter]:where(*[data-tui-version=\"5.23.0\"])::-webkit-meter-inner-element{display:none}[tuiMeter]:where(*[data-tui-version=\"5.23.0\"])::-moz-meter-bar{background:none}\n"] }]
12
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-meter-${TUI_VERSION}`, styles: ["[tuiMeter]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]){--t-min: attr(min type(<number>), 0);--t-max: attr(max type(<number>), 1);--t-low: attr(low type(<number>), var(--t-min));--t-high: attr(high type(<number>), var(--t-max));--t-optimum: attr(optimum type(<number>), calc(var(--t-max) - var(--t-min) / 2));--t-value: attr(value type(<number>), 0);--t-a: calc((var(--t-low) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-b: calc((var(--t-high) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-c: calc((var(--t-optimum) - var(--t-min)) / (var(--t-max) - var(--t-min)));--t-1: min(var(--t-a), var(--t-b), var(--t-c));--t-2: min(max(var(--t-a), var(--t-b)), max(var(--t-b), var(--t-c)), max(var(--t-a), var(--t-c)));--t-3: max(var(--t-a), var(--t-b), var(--t-c));--t-dir: clamp(-1, (var(--t-high) - var(--t-optimum)) * 9999, 1);--t-center: calc((var(--t-1) + var(--t-3)) / 2);--t-delta: calc(var(--t-3) - var(--t-1));--t-start: calc(var(--t-center) - (var(--t-delta) * var(--t-dir) / 2));--t-end: calc(var(--t-center) + (var(--t-delta) * var(--t-dir) / 2));--t-good: calc(100% * (((var(--t-start)) - .5) * var(--t-dir) + .5));--t-mid: calc(100% * (((var(--t-2)) - .5) * var(--t-dir) + .5));--t-bad: calc(100% * (((var(--t-end)) - .5) * var(--t-dir) + .5));position:relative;margin:0;block-size:1rem;inline-size:100%;border-radius:1rem;background:linear-gradient(calc(90deg * var(--t-dir)),var(--tui-status-positive) var(--t-good),var(--tui-status-warning) var(--t-mid),var(--tui-status-negative) var(--t-bad));transform:scaleX(var(--tui-inline));mask-clip:no-clip;-webkit-mask-image:radial-gradient(circle at calc(.5rem + (100% - 1rem) * (var(--t-value) - var(--t-min)) / (var(--t-max) - var(--t-min))) .5rem,black calc(.5rem - .5px),transparent .5rem,transparent .75rem,black calc(.75rem + .5px));mask-image:radial-gradient(circle at calc(.5rem + (100% - 1rem) * (var(--t-value) - var(--t-min)) / (var(--t-max) - var(--t-min))) .5rem,black calc(.5rem - .5px),transparent .5rem,transparent .75rem,black calc(.75rem + .5px))}[tuiMeter]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])::-webkit-meter-inner-element{display:none}[tuiMeter]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])::-moz-meter-bar{background:none}\n"] }]
13
13
  }] });
14
14
  class TuiMeter {
15
15
  constructor() {
@@ -22,7 +22,7 @@ class TuiMeter {
22
22
  this.value = input('0');
23
23
  }
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiMeter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiMeter, isStandalone: true, selector: "meter[tuiMeter]", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, low: { classPropertyName: "low", publicName: "low", isSignal: true, isRequired: false, transformFunction: null }, high: { classPropertyName: "high", publicName: "high", isSignal: true, isRequired: false, transformFunction: null }, optimum: { classPropertyName: "optimum", publicName: "optimum", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.23.0" }, properties: { "attr.high": "high()", "attr.low": "low()", "attr.max": "max()", "attr.min": "min()", "attr.optimum": "optimum()", "attr.value": "value()", "style.--t-high": "high()", "style.--t-low": "low()", "style.--t-max": "max()", "style.--t-min": "min()", "style.--t-optimum": "optimum()", "style.--t-value": "value()" } }, ngImport: i0 }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiMeter, isStandalone: true, selector: "meter[tuiMeter]", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, low: { classPropertyName: "low", publicName: "low", isSignal: true, isRequired: false, transformFunction: null }, high: { classPropertyName: "high", publicName: "high", isSignal: true, isRequired: false, transformFunction: null }, optimum: { classPropertyName: "optimum", publicName: "optimum", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.24.0-canary.3f61c9e" }, properties: { "attr.high": "high()", "attr.low": "low()", "attr.max": "max()", "attr.min": "min()", "attr.optimum": "optimum()", "attr.value": "value()", "style.--t-high": "high()", "style.--t-low": "low()", "style.--t-max": "max()", "style.--t-min": "min()", "style.--t-optimum": "optimum()", "style.--t-value": "value()" } }, ngImport: i0 }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiMeter, decorators: [{
28
28
  type: Directive,
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-meter.mjs","sources":["../../../projects/kit/components/meter/meter.directive.ts","../../../projects/kit/components/meter/taiga-ui-kit-components-meter.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import '@taiga-ui/styles/components/meter.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: `tui-meter-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n selector: 'meter[tuiMeter]',\n host: {\n 'data-tui-version': TUI_VERSION,\n '[attr.high]': 'high()',\n '[attr.low]': 'low()',\n '[attr.max]': 'max()',\n '[attr.min]': 'min()',\n '[attr.optimum]': 'optimum()',\n '[attr.value]': 'value()',\n '[style.--t-high]': 'high()',\n '[style.--t-low]': 'low()',\n '[style.--t-max]': 'max()',\n '[style.--t-min]': 'min()',\n '[style.--t-optimum]': 'optimum()',\n '[style.--t-value]': 'value()',\n },\n})\nexport class TuiMeter {\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly min = input('0');\n public readonly max = input('1');\n public readonly low = input('0');\n public readonly high = input('1');\n public readonly optimum = input('0.5');\n public readonly value = input('0');\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-meter.mjs","sources":["../../../projects/kit/components/meter/meter.directive.ts","../../../projects/kit/components/meter/taiga-ui-kit-components-meter.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import '@taiga-ui/styles/components/meter.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: `tui-meter-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n selector: 'meter[tuiMeter]',\n host: {\n 'data-tui-version': TUI_VERSION,\n '[attr.high]': 'high()',\n '[attr.low]': 'low()',\n '[attr.max]': 'max()',\n '[attr.min]': 'min()',\n '[attr.optimum]': 'optimum()',\n '[attr.value]': 'value()',\n '[style.--t-high]': 'high()',\n '[style.--t-low]': 'low()',\n '[style.--t-max]': 'max()',\n '[style.--t-min]': 'min()',\n '[style.--t-optimum]': 'optimum()',\n '[style.--t-value]': 'value()',\n },\n})\nexport class TuiMeter {\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly min = input('0');\n public readonly max = input('1');\n public readonly low = input('0');\n public readonly high = input('1');\n public readonly optimum = input('0.5');\n public readonly value = input('0');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,11 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { contentChildren, inject, computed, input, ChangeDetectionStrategy, Component, Directive } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { tuiIsPresent, tuiIsFlat } from '@taiga-ui/cdk/utils/miscellaneous';
5
- import * as i3 from '@taiga-ui/core/components/data-list';
5
+ import * as i2 from '@taiga-ui/core/components/data-list';
6
6
  import { TuiOptionWithValue, tuiAsOptionContent, TuiDataList } from '@taiga-ui/core/components/data-list';
7
7
  import { TuiLink } from '@taiga-ui/core/components/link';
8
- import * as i2 from '@taiga-ui/core/components/textfield';
9
- import { TuiTextfieldComponent, TUI_TEXTFIELD_OPTIONS, TuiTextfieldMultiComponent, TuiSelectLike, TuiTextfield } from '@taiga-ui/core/components/textfield';
8
+ import { TuiTextfieldComponent, TUI_TEXTFIELD_OPTIONS, TuiTextfieldMultiComponent, TuiTextfield } from '@taiga-ui/core/components/textfield';
10
9
  import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
11
10
  import { TUI_MULTI_SELECT_TEXTS } from '@taiga-ui/kit/tokens';
12
11
  import { tuiInjectValue } from '@taiga-ui/kit/utils';
@@ -18,7 +17,7 @@ import { TuiControl } from '@taiga-ui/cdk/classes';
18
17
  import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils/di';
19
18
  import * as i1 from '@taiga-ui/kit/components/input-chip';
20
19
  import { TuiInputChipDirective } from '@taiga-ui/kit/components/input-chip';
21
- import * as i4 from '@taiga-ui/core/portals/dropdown';
20
+ import * as i3 from '@taiga-ui/core/portals/dropdown';
22
21
 
23
22
  class TuiMultiSelectGroupComponent {
24
23
  constructor() {
@@ -133,12 +132,14 @@ class TuiMultiSelectNative {
133
132
  this.textfield.cva()?.onChange(items.filter((_, i) => options.includes(i)));
134
133
  }
135
134
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiMultiSelectNative, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiMultiSelectNative, isStandalone: true, selector: "select[tuiMultiSelect]", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "multiple": "" }, listeners: { "click.stop.zoneless": "0", "input": "onInput()" }, properties: { "size": "mobile ? 1 : 2" } }, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [{ directive: i1.TuiInputChipDirective }, { directive: i2.TuiSelectLike }], ngImport: i0, template: "@let list = items();\n@if (list && !isFlat(list)) {\n @for (label of labels(); track $index) {\n <optgroup [label]=\"label\">\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: list[$index]}\" />\n </optgroup>\n }\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (group of list; track $index) {\n <tui-opt-group\n tuiMultiSelectGroup\n [label]=\"labels()[$index] || ''\"\n >\n @for (item of group; track $index) {\n <button\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-opt-group>\n }\n </tui-data-list>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: list}\" />\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (item of list; track $index) {\n <button\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-data-list>\n }\n}\n\n<ng-template\n #options\n let-items\n>\n @for (option of items; track option) {\n <option\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i3.TuiOption, selector: "button[tuiOption], a[tuiOption], label[tuiOption]", inputs: ["disabled"] }, { kind: "directive", type: i3.TuiOptionWithValue, selector: "button[tuiOption][value], a[tuiOption][value], label[tuiOption][value]", inputs: ["disabled", "value"] }, { kind: "directive", type: i3.TuiOptGroup, selector: "tui-opt-group", inputs: ["label"] }, { kind: "component", type: TuiMultiSelectGroupComponent, selector: "tui-opt-group[tuiMultiSelectGroup]", inputs: ["label"] }, { kind: "directive", type: i4.TuiDropdownContent, selector: "ng-template[tuiDropdown]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiMultiSelectNative, isStandalone: true, selector: "select[tuiMultiSelect]", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "autocomplete": "off", "multiple": "", "tuiSelectLike": "" }, listeners: { "click.stop.zoneless": "0", "input": "onInput()" }, properties: { "size": "mobile ? 1 : 2" } }, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [{ directive: i1.TuiInputChipDirective }], ngImport: i0, template: "@let list = items();\n@if (list && !isFlat(list)) {\n @for (label of labels(); track $index) {\n <optgroup [label]=\"label\">\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: list[$index]}\" />\n </optgroup>\n }\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (group of list; track $index) {\n <tui-opt-group\n tuiMultiSelectGroup\n [label]=\"labels()[$index] || ''\"\n >\n @for (item of group; track $index) {\n <button\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-opt-group>\n }\n </tui-data-list>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: list}\" />\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (item of list; track $index) {\n <button\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-data-list>\n }\n}\n\n<ng-template\n #options\n let-items\n>\n @for (option of items; track option) {\n <option\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i2.TuiOption, selector: "button[tuiOption], a[tuiOption], label[tuiOption]", inputs: ["disabled"] }, { kind: "directive", type: i2.TuiOptionWithValue, selector: "button[tuiOption][value], a[tuiOption][value], label[tuiOption][value]", inputs: ["disabled", "value"] }, { kind: "directive", type: i2.TuiOptGroup, selector: "tui-opt-group", inputs: ["label"] }, { kind: "component", type: TuiMultiSelectGroupComponent, selector: "tui-opt-group[tuiMultiSelectGroup]", inputs: ["label"] }, { kind: "directive", type: i3.TuiDropdownContent, selector: "ng-template[tuiDropdown]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
137
136
  }
138
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiMultiSelectNative, decorators: [{
139
138
  type: Component,
140
- args: [{ selector: 'select[tuiMultiSelect]', imports: [NgTemplateOutlet, TuiDataList, TuiMultiSelectGroupComponent, TuiTextfield], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [TuiInputChipDirective, TuiSelectLike], host: {
139
+ args: [{ selector: 'select[tuiMultiSelect]', imports: [NgTemplateOutlet, TuiDataList, TuiMultiSelectGroupComponent, TuiTextfield], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [TuiInputChipDirective], host: {
140
+ autocomplete: 'off',
141
141
  multiple: '',
142
+ tuiSelectLike: '', // selector for styles
142
143
  '[size]': 'mobile ? 1 : 2',
143
144
  '(click.stop.zoneless)': '0',
144
145
  '(input)': 'onInput()',
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-multi-select.mjs","sources":["../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.template.html","../../../projects/kit/components/multi-select/multi-select-option/multi-select-option.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.component.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.template.html","../../../projects/kit/components/multi-select/multi-select.ts","../../../projects/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n inject,\n input,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_MULTI_SELECT_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n imports: [TuiLink],\n templateUrl: './multi-select-group.template.html',\n styleUrl: './multi-select-group.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMultiSelectGroupComponent<T> {\n private readonly options = contentChildren(TuiOptionWithValue<T>);\n private readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n private readonly textfield = inject(TuiTextfieldComponent, {optional: true});\n\n private readonly control =\n this.textfield?.control() || inject(NgControl, {optional: true});\n\n protected readonly values = computed(() => this.options().map(({value}) => value()));\n protected readonly texts = inject(TUI_MULTI_SELECT_TEXTS);\n protected readonly value = tuiInjectValue<readonly T[] | null>();\n\n protected readonly checked = computed(() =>\n this.values().every((item) =>\n this.value()?.some(\n (v) => tuiIsPresent(item) && this.handlers.identityMatcher()(item, v),\n ),\n ),\n );\n\n public readonly label = input('');\n\n protected toggle(): void {\n const values = this.values().filter(tuiIsPresent);\n const matcher = this.handlers.identityMatcher();\n const value = this.value() || [];\n const others = value.filter((a) => values.every((b) => !matcher(a, b)));\n const next = this.checked() ? others : others.concat(values);\n const cva = this.textfield?.child();\n\n if (cva) {\n cva.onChange(next);\n } else {\n this.control?.control?.setValue(next);\n }\n }\n}\n","@if (values().length) {\n <span class=\"t-label\">\n {{ label() }}\n <button\n tuiLink\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ texts()[checked() ? 'none' : 'all'] }}\n </button>\n </span>\n}\n<ng-content />\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCheckbox} from '@taiga-ui/core/components/checkbox';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n imports: [TuiCheckbox],\n template: `\n @if (option) {\n <input\n aria-hidden=\"true\"\n tuiCheckbox\n type=\"checkbox\"\n [checked]=\"selected()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n }\n `,\n styles: `\n :host[data-size='m'] input {\n margin-inline-start: 0.25rem;\n }\n\n :host-context(tui-dropdown-mobile) [tuiCheckbox],\n :host-context(tui-sheet-dialog) [tuiCheckbox] {\n order: 100;\n margin-inline-start: auto;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'[attr.aria-selected]': 'selected()'},\n})\nexport class TuiMultiSelectOption<T> {\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n controlValue.some(\n (item) =>\n this.handlers?.identityMatcher()(item, optionValue) ??\n item === optionValue,\n ),\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Directive({\n selector: '[tuiMultiSelectGroup]',\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n})\nexport class TuiMultiSelectGroupDirective {\n constructor() {\n tuiInjectElement()\n .closest('[role=\"listbox\"]')\n ?.setAttribute('aria-multiselectable', 'true');\n }\n}\n","import {NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject, input} from '@angular/core';\nimport {WA_IS_ANDROID, WA_IS_IOS} from '@ng-web-apis/platform';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFlat, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsOptionContent, TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {\n TuiSelectLike,\n TuiTextfield,\n TuiTextfieldMultiComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\n\nimport {TuiMultiSelectGroupComponent} from '../multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Component({\n selector: 'select[tuiMultiSelect]',\n imports: [NgTemplateOutlet, TuiDataList, TuiMultiSelectGroupComponent, TuiTextfield],\n templateUrl: './multi-select-native.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n hostDirectives: [TuiInputChipDirective, TuiSelectLike],\n host: {\n multiple: '',\n '[size]': 'mobile ? 1 : 2',\n '(click.stop.zoneless)': '0',\n '(input)': 'onInput()',\n },\n})\nexport class TuiMultiSelectNative<T> {\n private readonly control: TuiControl<readonly T[]> = inject(TuiControl);\n private readonly textfield = inject(TuiTextfieldMultiComponent);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n\n protected readonly mobile =\n inject(WA_IS_IOS) || (inject(WA_IS_ANDROID) && 'showPicker' in this.el);\n\n protected readonly isSelected = computed(\n (value = this.control.value()) =>\n (x: T) =>\n tuiIsPresent(value) &&\n value.some((item) => this.handlers.identityMatcher()(x, item)),\n );\n\n public readonly items = input<ReadonlyArray<readonly T[]> | readonly T[] | null>([]);\n public readonly labels = input<readonly string[]>([]);\n public readonly placeholder = input('');\n\n protected readonly binding = tuiDirectiveBinding(\n TuiTextfieldMultiComponent,\n 'filler',\n this.placeholder,\n {},\n );\n\n protected onInput(): void {\n const items = this.items()?.flat() || [];\n const options = Array.from(this.el.selectedOptions).map(({index}) => index);\n\n this.textfield.cva()?.onChange(items.filter((_, i) => options.includes(i)));\n }\n}\n","@let list = items();\n@if (list && !isFlat(list)) {\n @for (label of labels(); track $index) {\n <optgroup [label]=\"label\">\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: list[$index]}\" />\n </optgroup>\n }\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (group of list; track $index) {\n <tui-opt-group\n tuiMultiSelectGroup\n [label]=\"labels()[$index] || ''\"\n >\n @for (item of group; track $index) {\n <button\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-opt-group>\n }\n </tui-data-list>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: list}\" />\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (item of list; track $index) {\n <button\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-data-list>\n }\n}\n\n<ng-template\n #options\n let-items\n>\n @for (option of items; track option) {\n <option\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n }\n</ng-template>\n","import {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\nimport {TuiMultiSelectNative} from './multi-select-native/multi-select-native.component';\n\nexport const TuiMultiSelect = [\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiMultiSelectNative,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-multi-select.mjs","sources":["../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.template.html","../../../projects/kit/components/multi-select/multi-select-option/multi-select-option.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.component.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.template.html","../../../projects/kit/components/multi-select/multi-select.ts","../../../projects/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n inject,\n input,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_MULTI_SELECT_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n imports: [TuiLink],\n templateUrl: './multi-select-group.template.html',\n styleUrl: './multi-select-group.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMultiSelectGroupComponent<T> {\n private readonly options = contentChildren(TuiOptionWithValue<T>);\n private readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n private readonly textfield = inject(TuiTextfieldComponent, {optional: true});\n\n private readonly control =\n this.textfield?.control() || inject(NgControl, {optional: true});\n\n protected readonly values = computed(() => this.options().map(({value}) => value()));\n protected readonly texts = inject(TUI_MULTI_SELECT_TEXTS);\n protected readonly value = tuiInjectValue<readonly T[] | null>();\n\n protected readonly checked = computed(() =>\n this.values().every((item) =>\n this.value()?.some(\n (v) => tuiIsPresent(item) && this.handlers.identityMatcher()(item, v),\n ),\n ),\n );\n\n public readonly label = input('');\n\n protected toggle(): void {\n const values = this.values().filter(tuiIsPresent);\n const matcher = this.handlers.identityMatcher();\n const value = this.value() || [];\n const others = value.filter((a) => values.every((b) => !matcher(a, b)));\n const next = this.checked() ? others : others.concat(values);\n const cva = this.textfield?.child();\n\n if (cva) {\n cva.onChange(next);\n } else {\n this.control?.control?.setValue(next);\n }\n }\n}\n","@if (values().length) {\n <span class=\"t-label\">\n {{ label() }}\n <button\n tuiLink\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ texts()[checked() ? 'none' : 'all'] }}\n </button>\n </span>\n}\n<ng-content />\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCheckbox} from '@taiga-ui/core/components/checkbox';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n imports: [TuiCheckbox],\n template: `\n @if (option) {\n <input\n aria-hidden=\"true\"\n tuiCheckbox\n type=\"checkbox\"\n [checked]=\"selected()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n }\n `,\n styles: `\n :host[data-size='m'] input {\n margin-inline-start: 0.25rem;\n }\n\n :host-context(tui-dropdown-mobile) [tuiCheckbox],\n :host-context(tui-sheet-dialog) [tuiCheckbox] {\n order: 100;\n margin-inline-start: auto;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'[attr.aria-selected]': 'selected()'},\n})\nexport class TuiMultiSelectOption<T> {\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n controlValue.some(\n (item) =>\n this.handlers?.identityMatcher()(item, optionValue) ??\n item === optionValue,\n ),\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Directive({\n selector: '[tuiMultiSelectGroup]',\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n})\nexport class TuiMultiSelectGroupDirective {\n constructor() {\n tuiInjectElement()\n .closest('[role=\"listbox\"]')\n ?.setAttribute('aria-multiselectable', 'true');\n }\n}\n","import {NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject, input} from '@angular/core';\nimport {WA_IS_ANDROID, WA_IS_IOS} from '@ng-web-apis/platform';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFlat, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsOptionContent, TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {\n TuiTextfield,\n TuiTextfieldMultiComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\n\nimport {TuiMultiSelectGroupComponent} from '../multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Component({\n selector: 'select[tuiMultiSelect]',\n imports: [NgTemplateOutlet, TuiDataList, TuiMultiSelectGroupComponent, TuiTextfield],\n templateUrl: './multi-select-native.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n hostDirectives: [TuiInputChipDirective],\n host: {\n autocomplete: 'off',\n multiple: '',\n tuiSelectLike: '', // selector for styles\n '[size]': 'mobile ? 1 : 2',\n '(click.stop.zoneless)': '0',\n '(input)': 'onInput()',\n },\n})\nexport class TuiMultiSelectNative<T> {\n private readonly control: TuiControl<readonly T[]> = inject(TuiControl);\n private readonly textfield = inject(TuiTextfieldMultiComponent);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n\n protected readonly mobile =\n inject(WA_IS_IOS) || (inject(WA_IS_ANDROID) && 'showPicker' in this.el);\n\n protected readonly isSelected = computed(\n (value = this.control.value()) =>\n (x: T) =>\n tuiIsPresent(value) &&\n value.some((item) => this.handlers.identityMatcher()(x, item)),\n );\n\n public readonly items = input<ReadonlyArray<readonly T[]> | readonly T[] | null>([]);\n public readonly labels = input<readonly string[]>([]);\n public readonly placeholder = input('');\n\n protected readonly binding = tuiDirectiveBinding(\n TuiTextfieldMultiComponent,\n 'filler',\n this.placeholder,\n {},\n );\n\n protected onInput(): void {\n const items = this.items()?.flat() || [];\n const options = Array.from(this.el.selectedOptions).map(({index}) => index);\n\n this.textfield.cva()?.onChange(items.filter((_, i) => options.includes(i)));\n }\n}\n","@let list = items();\n@if (list && !isFlat(list)) {\n @for (label of labels(); track $index) {\n <optgroup [label]=\"label\">\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: list[$index]}\" />\n </optgroup>\n }\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (group of list; track $index) {\n <tui-opt-group\n tuiMultiSelectGroup\n [label]=\"labels()[$index] || ''\"\n >\n @for (item of group; track $index) {\n <button\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-opt-group>\n }\n </tui-data-list>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: list}\" />\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (item of list; track $index) {\n <button\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-data-list>\n }\n}\n\n<ng-template\n #options\n let-items\n>\n @for (option of items; track option) {\n <option\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n }\n</ng-template>\n","import {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\nimport {TuiMultiSelectNative} from './multi-select-native/multi-select-native.component';\n\nexport const TuiMultiSelect = [\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiMultiSelectNative,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -6,11 +6,11 @@ import { tuiBadgeOptionsProvider } from '@taiga-ui/kit/components/badge';
6
6
 
7
7
  class Styles {
8
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-pin-5.23.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiPin]:where(*[data-tui-version=\"5.23.0\"]){--t-scale: calc(1 + (var(--tui-font-scale) - 1) / 2);--t-size: calc(2rem * var(--t-scale));transition-property:min-inline-size,grid-template-columns,block-size,border,margin,font;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:grid;isolation:isolate;align-items:center;grid-template-rows:100%;grid-template-columns:var(--t-size) 1fr;min-inline-size:var(--t-size);max-inline-size:calc(11.25rem * var(--t-scale));block-size:var(--t-size);text-align:center;border-radius:100rem;font:var(--tui-typography-ui-xs);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 calc(.125rem * var(--t-scale)) var(--tui-background-elevation-1);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):empty{--t-size: calc(.75rem * var(--t-scale))}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has([tuiPin]){border-color:currentColor;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>*,[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):before,[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):after{transition-duration:inherit!important}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>input{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>tui-icon:not([tuiBadge]){transition-property:inline-size,font-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);font-size:1.25rem;block-size:100%;inline-size:100%;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>tui-icon:not([tuiBadge]):before{transition-property:font-size;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiPin]{color:inherit;border:.125rem solid;font:inherit;background:none;transform:none;box-shadow:none;grid-template-columns:100% 0fr}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiBadge]{transition-property:inset;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:absolute;inset-block-start:-.25rem;inset-inline-end:-.25rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiTitle]{transition-property:opacity,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:static;font:var(--tui-typography-ui-xs);font-weight:700;color:var(--tui-text-primary);margin-inline:.5rem .75rem;gap:.125rem;white-space:nowrap}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiTitle]:before{transition-property:mask-position;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset:-1px 0;z-index:-1;inset-inline-end:-1px;background:var(--tui-background-elevation-1);border-radius:100rem;-webkit-mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));-webkit-mask-position:calc(var(--tui-inline) * var(--t-size) / 2);mask-position:calc(var(--tui-inline) * var(--t-size) / 2);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiTitle] [tuiSubtitle]{display:flex;align-items:center;gap:.125rem;font:var(--tui-typography-ui-2xs);color:var(--tui-text-secondary)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiTitle] [tuiSubtitle] tui-icon:not([tuiBadge]){font-size:.75rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked){--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked) tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked)>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked)>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked)>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked):after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open{--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open:after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;z-index:-1;inset-block:50% calc(-.625rem * var(--t-scale));inset-inline:50% calc(-.25rem * var(--t-scale));box-sizing:border-box;border-width:calc(2.2rem * var(--t-scale)) calc(1.875rem * var(--t-scale));border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));transform-origin:top var(--tui-inline-start);pointer-events:none;-webkit-mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(calc(var(--tui-inline) * -50%),-50%);opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-pin-5.24.0-canary.3f61c9e"], ngImport: i0, template: '', isInline: true, styles: ["[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]){--t-scale: calc(1 + (var(--tui-font-scale) - 1) / 2);--t-size: calc(2rem * var(--t-scale));transition-property:min-inline-size,grid-template-columns,block-size,border,margin,font;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:grid;isolation:isolate;align-items:center;grid-template-rows:100%;grid-template-columns:var(--t-size) 1fr;min-inline-size:var(--t-size);max-inline-size:calc(11.25rem * var(--t-scale));block-size:var(--t-size);text-align:center;border-radius:100rem;font:var(--tui-typography-ui-xs);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 calc(.125rem * var(--t-scale)) var(--tui-background-elevation-1);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):empty{--t-size: calc(.75rem * var(--t-scale))}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has([tuiPin]){border-color:currentColor;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>*,[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):before,[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):after{transition-duration:inherit!important}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>input{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>tui-icon:not([tuiBadge]){transition-property:inline-size,font-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);font-size:1.25rem;block-size:100%;inline-size:100%;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>tui-icon:not([tuiBadge]):before{transition-property:font-size;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiPin]{color:inherit;border:.125rem solid;font:inherit;background:none;transform:none;box-shadow:none;grid-template-columns:100% 0fr}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiBadge]{transition-property:inset;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:absolute;inset-block-start:-.25rem;inset-inline-end:-.25rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiTitle]{transition-property:opacity,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:static;font:var(--tui-typography-ui-xs);font-weight:700;color:var(--tui-text-primary);margin-inline:.5rem .75rem;gap:.125rem;white-space:nowrap}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiTitle]:before{transition-property:mask-position;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset:-1px 0;z-index:-1;inset-inline-end:-1px;background:var(--tui-background-elevation-1);border-radius:100rem;-webkit-mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));-webkit-mask-position:calc(var(--tui-inline) * var(--t-size) / 2);mask-position:calc(var(--tui-inline) * var(--t-size) / 2);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiTitle] [tuiSubtitle]{display:flex;align-items:center;gap:.125rem;font:var(--tui-typography-ui-2xs);color:var(--tui-text-secondary)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiTitle] [tuiSubtitle] tui-icon:not([tuiBadge]){font-size:.75rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked){--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked) tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked)>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked)>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked)>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked):after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open{--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open:after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;z-index:-1;inset-block:50% calc(-.625rem * var(--t-scale));inset-inline:50% calc(-.25rem * var(--t-scale));box-sizing:border-box;border-width:calc(2.2rem * var(--t-scale)) calc(1.875rem * var(--t-scale));border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));transform-origin:top var(--tui-inline-start);pointer-events:none;-webkit-mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(calc(var(--tui-inline) * -50%),-50%);opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10
10
  }
11
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
12
12
  type: Component,
13
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-pin-${TUI_VERSION}`, styles: ["[tuiPin]:where(*[data-tui-version=\"5.23.0\"]){--t-scale: calc(1 + (var(--tui-font-scale) - 1) / 2);--t-size: calc(2rem * var(--t-scale));transition-property:min-inline-size,grid-template-columns,block-size,border,margin,font;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:grid;isolation:isolate;align-items:center;grid-template-rows:100%;grid-template-columns:var(--t-size) 1fr;min-inline-size:var(--t-size);max-inline-size:calc(11.25rem * var(--t-scale));block-size:var(--t-size);text-align:center;border-radius:100rem;font:var(--tui-typography-ui-xs);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 calc(.125rem * var(--t-scale)) var(--tui-background-elevation-1);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):empty{--t-size: calc(.75rem * var(--t-scale))}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has([tuiPin]){border-color:currentColor;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>*,[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):before,[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):after{transition-duration:inherit!important}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>input{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>tui-icon:not([tuiBadge]){transition-property:inline-size,font-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);font-size:1.25rem;block-size:100%;inline-size:100%;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>tui-icon:not([tuiBadge]):before{transition-property:font-size;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiPin]{color:inherit;border:.125rem solid;font:inherit;background:none;transform:none;box-shadow:none;grid-template-columns:100% 0fr}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiBadge]{transition-property:inset;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:absolute;inset-block-start:-.25rem;inset-inline-end:-.25rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiTitle]{transition-property:opacity,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:static;font:var(--tui-typography-ui-xs);font-weight:700;color:var(--tui-text-primary);margin-inline:.5rem .75rem;gap:.125rem;white-space:nowrap}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiTitle]:before{transition-property:mask-position;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset:-1px 0;z-index:-1;inset-inline-end:-1px;background:var(--tui-background-elevation-1);border-radius:100rem;-webkit-mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));-webkit-mask-position:calc(var(--tui-inline) * var(--t-size) / 2);mask-position:calc(var(--tui-inline) * var(--t-size) / 2);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiTitle] [tuiSubtitle]{display:flex;align-items:center;gap:.125rem;font:var(--tui-typography-ui-2xs);color:var(--tui-text-secondary)}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])>[tuiTitle] [tuiSubtitle] tui-icon:not([tuiBadge]){font-size:.75rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked){--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked) tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked)>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked)>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked)>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):has(:checked):after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open{--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.23.0\"])._open:after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;z-index:-1;inset-block:50% calc(-.625rem * var(--t-scale));inset-inline:50% calc(-.25rem * var(--t-scale));box-sizing:border-box;border-width:calc(2.2rem * var(--t-scale)) calc(1.875rem * var(--t-scale));border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));transform-origin:top var(--tui-inline-start);pointer-events:none;-webkit-mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}[tuiPin]:where(*[data-tui-version=\"5.23.0\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(calc(var(--tui-inline) * -50%),-50%);opacity:0}\n"] }]
13
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-pin-${TUI_VERSION}`, styles: ["[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]){--t-scale: calc(1 + (var(--tui-font-scale) - 1) / 2);--t-size: calc(2rem * var(--t-scale));transition-property:min-inline-size,grid-template-columns,block-size,border,margin,font;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:grid;isolation:isolate;align-items:center;grid-template-rows:100%;grid-template-columns:var(--t-size) 1fr;min-inline-size:var(--t-size);max-inline-size:calc(11.25rem * var(--t-scale));block-size:var(--t-size);text-align:center;border-radius:100rem;font:var(--tui-typography-ui-xs);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 calc(.125rem * var(--t-scale)) var(--tui-background-elevation-1);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):empty{--t-size: calc(.75rem * var(--t-scale))}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has([tuiPin]){border-color:currentColor;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>*,[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):before,[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):after{transition-duration:inherit!important}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>input{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>tui-icon:not([tuiBadge]){transition-property:inline-size,font-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);font-size:1.25rem;block-size:100%;inline-size:100%;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>tui-icon:not([tuiBadge]):before{transition-property:font-size;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiPin]{color:inherit;border:.125rem solid;font:inherit;background:none;transform:none;box-shadow:none;grid-template-columns:100% 0fr}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiBadge]{transition-property:inset;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:absolute;inset-block-start:-.25rem;inset-inline-end:-.25rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiTitle]{transition-property:opacity,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:static;font:var(--tui-typography-ui-xs);font-weight:700;color:var(--tui-text-primary);margin-inline:.5rem .75rem;gap:.125rem;white-space:nowrap}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiTitle]:before{transition-property:mask-position;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset:-1px 0;z-index:-1;inset-inline-end:-1px;background:var(--tui-background-elevation-1);border-radius:100rem;-webkit-mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));-webkit-mask-position:calc(var(--tui-inline) * var(--t-size) / 2);mask-position:calc(var(--tui-inline) * var(--t-size) / 2);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiTitle] [tuiSubtitle]{display:flex;align-items:center;gap:.125rem;font:var(--tui-typography-ui-2xs);color:var(--tui-text-secondary)}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])>[tuiTitle] [tuiSubtitle] tui-icon:not([tuiBadge]){font-size:.75rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked){--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked) tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked)>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked)>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked)>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):has(:checked):after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open{--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"])._open:after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;z-index:-1;inset-block:50% calc(-.625rem * var(--t-scale));inset-inline:50% calc(-.25rem * var(--t-scale));box-sizing:border-box;border-width:calc(2.2rem * var(--t-scale)) calc(1.875rem * var(--t-scale));border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));transform-origin:top var(--tui-inline-start);pointer-events:none;-webkit-mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}[tuiPin]:where(*[data-tui-version=\"5.24.0-canary.3f61c9e\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(calc(var(--tui-inline) * -50%),-50%);opacity:0}\n"] }]
14
14
  }] });
15
15
  class TuiPin {
16
16
  constructor() {
@@ -18,7 +18,7 @@ class TuiPin {
18
18
  this.open = input('', { alias: 'tuiPin' });
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiPin, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiPin, isStandalone: true, selector: "[tuiPin]", inputs: { open: { classPropertyName: "open", publicName: "tuiPin", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.23.0", "tuiPin": "" }, properties: { "class._open": "open()" } }, providers: [tuiBadgeOptionsProvider({ appearance: 'primary', size: 's' })], ngImport: i0 }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiPin, isStandalone: true, selector: "[tuiPin]", inputs: { open: { classPropertyName: "open", publicName: "tuiPin", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.24.0-canary.3f61c9e", "tuiPin": "" }, properties: { "class._open": "open()" } }, providers: [tuiBadgeOptionsProvider({ appearance: 'primary', size: 's' })], ngImport: i0 }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiPin, decorators: [{
24
24
  type: Directive,