@taiga-ui/kit 5.4.0 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/components/segmented/segmented.component.d.ts +6 -6
  2. package/fesm2022/taiga-ui-kit-components-accordion.mjs +5 -5
  3. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  4. package/fesm2022/taiga-ui-kit-components-avatar.mjs +15 -18
  5. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  6. package/fesm2022/taiga-ui-kit-components-badge.mjs +2 -2
  7. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  8. package/fesm2022/taiga-ui-kit-components-block.mjs +2 -2
  9. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  10. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  11. package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
  12. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  13. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
  14. package/fesm2022/taiga-ui-kit-components-chip.mjs +2 -2
  15. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  16. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +1 -1
  17. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  18. package/fesm2022/taiga-ui-kit-components-comment.mjs +4 -4
  19. package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
  20. package/fesm2022/taiga-ui-kit-components-compass.mjs +2 -2
  21. package/fesm2022/taiga-ui-kit-components-copy.mjs +6 -6
  22. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-kit-components-counter.mjs +2 -5
  24. package/fesm2022/taiga-ui-kit-components-counter.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  26. package/fesm2022/taiga-ui-kit-components-files.mjs +10 -10
  27. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs +2 -2
  30. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +7 -7
  32. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-kit-components-input-color.mjs +3 -3
  34. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +2 -2
  37. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-kit-components-input-date.mjs +4 -4
  39. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +2 -2
  41. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-kit-components-input-month.mjs +2 -2
  44. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-kit-components-input-number.mjs +9 -11
  46. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +6 -6
  48. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +3 -3
  50. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +2 -2
  52. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +4 -4
  55. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-kit-components-input-time.mjs +4 -4
  57. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-kit-components-input-year.mjs +2 -2
  59. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-kit-components-like.mjs +4 -4
  62. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +4 -7
  64. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-kit-components-message.mjs +2 -2
  66. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-kit-components-pagination.mjs +4 -5
  70. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-kit-components-pin.mjs +4 -8
  72. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-kit-components-preview.mjs +5 -5
  74. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-kit-components-progress.mjs +10 -10
  76. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +3 -3
  80. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-kit-components-range.mjs +6 -6
  82. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-kit-components-rating.mjs +4 -4
  84. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-kit-components-segmented.mjs +8 -3
  86. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-kit-components-select.mjs +2 -2
  88. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs +2 -2
  90. package/fesm2022/taiga-ui-kit-components-status.mjs +4 -4
  91. package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-kit-components-stepper.mjs +5 -5
  93. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-kit-components-switch.mjs +2 -6
  95. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-kit-components-tabs.mjs +5 -5
  97. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-kit-components-textarea.mjs +2 -2
  99. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-kit-components-tiles.mjs +4 -4
  101. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-kit-components-timeline.mjs +2 -2
  103. package/fesm2022/taiga-ui-kit-components-timeline.mjs.map +1 -1
  104. package/fesm2022/taiga-ui-kit-components-toast.mjs +4 -4
  105. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-kit-directives-appearance-proxy.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +3 -3
  109. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +2 -2
  111. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-kit-directives-connected.mjs +3 -3
  113. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-kit-directives-fade.mjs +7 -7
  115. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
  117. package/fesm2022/taiga-ui-kit-directives-password.mjs +1 -1
  118. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  119. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +5 -5
  120. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
  121. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +5 -5
  122. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs.map +1 -1
  123. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +5 -5
  124. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  125. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +2 -2
  126. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  127. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  128. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -1
  129. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs.map +1 -1
  130. package/package.json +120 -120
@@ -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 control =\n inject(TuiTextfieldComponent, {optional: true})?.control() ||\n 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 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\n this.control?.control?.setValue(this.checked() ? others : others.concat(values));\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 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 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\n private readonly control =\n inject(TuiTextfieldComponent, {optional: true})?.control() ||\n 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\n this.control?.control?.setValue(this.checked() ? others : others.concat(values));\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 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 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-notification-middle.mjs","sources":["../../../projects/kit/components/notification-middle/notification-middle.component.ts","../../../projects/kit/components/notification-middle/notification-middle.service.ts","../../../projects/kit/components/notification-middle/notification-middle.directive.ts","../../../projects/kit/components/notification-middle/taiga-ui-kit-components-notification-middle.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, isSignal, type Signal} from '@angular/core';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiLoader, tuiLoaderOptionsProvider} from '@taiga-ui/core/components/loader';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nexport interface TuiNotificationMiddleOptions {\n closable: Signal<boolean> | boolean;\n}\n\n@Component({\n selector: 'tui-notification-middle',\n imports: [PolymorpheusOutlet, TuiLoader],\n template: `\n <tui-loader class=\"t-loader\" />\n <ng-container *polymorpheusOutlet=\"context.content as text\">\n {{ text }}\n </ng-container>\n `,\n styleUrl: './notification-middle.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiLoaderOptionsProvider({size: 'l'})],\n hostDirectives: [\n TuiAnimated,\n {directive: WaResizeObserver, outputs: ['waResizeObserver']},\n ],\n host: {\n class: 'tui-backdrop-hidden',\n '(document:click.capture)': 'onClick($event.target)',\n '(document:keydown.esc)': 'onClick($event.currentTarget)',\n '(waResizeObserver)': 'el.style.setProperty(\"--t-width\", el.clientWidth + \"px\")',\n },\n})\nexport class TuiNotificationMiddleComponent {\n protected readonly el = tuiInjectElement();\n protected readonly context =\n injectContext<TuiPortalContext<TuiNotificationMiddleOptions>>();\n\n protected onClick(target: HTMLElement): void {\n if (this.closable && !this.el.contains(target)) {\n this.context.$implicit.complete();\n }\n }\n\n private get closable(): boolean {\n return isSignal(this.context.closable)\n ? this.context.closable()\n : this.context.closable;\n }\n}\n","import {Injectable} from '@angular/core';\nimport {TuiModalService} from '@taiga-ui/core/portals/modal';\n\nimport {\n TuiNotificationMiddleComponent,\n type TuiNotificationMiddleOptions,\n} from './notification-middle.component';\n\n@Injectable({providedIn: 'root'})\nexport class TuiNotificationMiddleService extends TuiModalService<TuiNotificationMiddleOptions> {\n protected readonly options = {closable: false};\n protected readonly content = TuiNotificationMiddleComponent;\n}\n","import {Directive, input} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {type TuiNotificationMiddleOptions} from './notification-middle.component';\nimport {TuiNotificationMiddleService} from './notification-middle.service';\n\n@Directive({\n selector: 'ng-template[tuiNotificationMiddle]',\n providers: [tuiAsPortal(TuiNotificationMiddleService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: [\n 'options: tuiNotificationMiddleOptions',\n 'open: tuiNotificationMiddle',\n ],\n outputs: ['openChange: tuiNotificationMiddleChange'],\n },\n ],\n})\nexport class TuiNotificationMiddle {\n public readonly tuiNotificationMiddleOptions = input<\n Partial<TuiNotificationMiddleOptions>\n >({});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-notification-middle.mjs","sources":["../../../projects/kit/components/notification-middle/notification-middle.component.ts","../../../projects/kit/components/notification-middle/notification-middle.service.ts","../../../projects/kit/components/notification-middle/notification-middle.directive.ts","../../../projects/kit/components/notification-middle/taiga-ui-kit-components-notification-middle.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, isSignal, type Signal} from '@angular/core';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiLoader, tuiLoaderOptionsProvider} from '@taiga-ui/core/components/loader';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nexport interface TuiNotificationMiddleOptions {\n closable: Signal<boolean> | boolean;\n}\n\n@Component({\n selector: 'tui-notification-middle',\n imports: [PolymorpheusOutlet, TuiLoader],\n template: `\n <tui-loader class=\"t-loader\" />\n <ng-container *polymorpheusOutlet=\"context.content as text\">\n {{ text }}\n </ng-container>\n `,\n styleUrl: './notification-middle.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiLoaderOptionsProvider({size: 'l'})],\n hostDirectives: [\n TuiAnimated,\n {directive: WaResizeObserver, outputs: ['waResizeObserver']},\n ],\n host: {\n class: 'tui-backdrop-hidden',\n '(document:click.capture)': 'onClick($event.target)',\n '(document:keydown.esc)': 'onClick($event.currentTarget)',\n '(waResizeObserver)': 'el.style.setProperty(\"--t-width\", el.clientWidth + \"px\")',\n },\n})\nexport class TuiNotificationMiddleComponent {\n protected readonly el = tuiInjectElement();\n\n protected readonly context =\n injectContext<TuiPortalContext<TuiNotificationMiddleOptions>>();\n\n protected onClick(target: HTMLElement): void {\n if (this.closable && !this.el.contains(target)) {\n this.context.$implicit.complete();\n }\n }\n\n private get closable(): boolean {\n return isSignal(this.context.closable)\n ? this.context.closable()\n : this.context.closable;\n }\n}\n","import {Injectable} from '@angular/core';\nimport {TuiModalService} from '@taiga-ui/core/portals/modal';\n\nimport {\n TuiNotificationMiddleComponent,\n type TuiNotificationMiddleOptions,\n} from './notification-middle.component';\n\n@Injectable({providedIn: 'root'})\nexport class TuiNotificationMiddleService extends TuiModalService<TuiNotificationMiddleOptions> {\n protected readonly options = {closable: false};\n protected readonly content = TuiNotificationMiddleComponent;\n}\n","import {Directive, input} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {type TuiNotificationMiddleOptions} from './notification-middle.component';\nimport {TuiNotificationMiddleService} from './notification-middle.service';\n\n@Directive({\n selector: 'ng-template[tuiNotificationMiddle]',\n providers: [tuiAsPortal(TuiNotificationMiddleService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: [\n 'options: tuiNotificationMiddleOptions',\n 'open: tuiNotificationMiddle',\n ],\n outputs: ['openChange: tuiNotificationMiddleChange'],\n },\n ],\n})\nexport class TuiNotificationMiddle {\n public readonly tuiNotificationMiddleOptions = input<\n Partial<TuiNotificationMiddleOptions>\n >({});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-pager.mjs","sources":["../../../projects/kit/components/pager/pager.component.ts","../../../projects/kit/components/pager/pager.component.html","../../../projects/kit/components/pager/taiga-ui-kit-components-pager.ts"],"sourcesContent":["import {NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n type ElementRef,\n inject,\n input,\n type OnChanges,\n signal,\n type TemplateRef,\n viewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {\n WA_MUTATION_OBSERVER_INIT,\n WaMutationObserverService,\n} from '@ng-web-apis/mutation-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\nimport {delay, map} from 'rxjs';\n\n@Component({\n selector: 'tui-pager',\n imports: [NgTemplateOutlet],\n templateUrl: './pager.component.html',\n styleUrl: './pager.styles.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n WaMutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n attributeOldValue: true,\n characterData: true,\n childList: true,\n subtree: true,\n },\n },\n ],\n host: {\n '[attr.data-size]': 'size()',\n '[style.--t-gap.px]': 'gap()',\n '[style.max-width.px]': 'maxWidth()',\n },\n})\nexport class TuiPager implements OnChanges, AfterViewInit {\n protected readonly items = viewChildren<ElementRef<HTMLElement>>('item');\n protected readonly start = signal(0);\n protected readonly end = signal(0);\n protected readonly left = signal(0);\n protected readonly gap = computed(() => (this.size() === 'm' ? 9 : 7));\n protected readonly maxWidth = toSignal(\n inject(WaMutationObserverService, {self: true}).pipe(\n delay(0),\n map(() => this.visibleWidth),\n tuiWatch(),\n takeUntilDestroyed(),\n ),\n {initialValue: 0},\n );\n\n public readonly max = input(6);\n public readonly count = input(6);\n public readonly size = input<TuiSizeS>('m');\n public readonly valueContent = input<TemplateRef<unknown>>();\n public readonly index = input(0);\n\n public ngOnChanges(): void {\n this.move();\n }\n\n public ngAfterViewInit(): void {\n this.move();\n }\n\n private get visibleRange(): [start: number, end: number] {\n const max = this.max() > this.count() ? this.count() : this.max();\n const start = Math.min(\n Math.max(this.index() - Math.floor(max / 2), 0),\n this.count() - max,\n );\n\n return [start, start + (max - 1)];\n }\n\n private get visibleWidth(): number {\n return (\n this.items()\n .map((item) => item.nativeElement.offsetWidth)\n .slice(this.start(), this.end() + 1)\n .reduce((sum, item) => sum + item + this.gap(), 0) - this.gap()\n );\n }\n\n private move(): void {\n const [start, end] = this.visibleRange;\n\n this.start.set(start);\n this.end.set(end);\n\n let left = this.start() * this.gap();\n\n for (let i = 0; i < this.start(); i++) {\n left += this.items()[i]?.nativeElement.offsetWidth ?? 0;\n }\n\n this.left.set(-1 * left);\n }\n}\n","<div\n class=\"t-items\"\n [style.transform]=\"`translateX(calc(var(--tui-inline) * ${left()}px))`\"\n>\n @for (_ of '-'.repeat(count()); track $index) {\n <div\n #item\n class=\"t-item\"\n [attr.data-index]=\"$index\"\n [class._active]=\"$index === index()\"\n [class._last]=\"$index === count() - 1\"\n [class._post-active]=\"$index === index() + 1\"\n [class._pre-active]=\"$index === index() - 1\"\n [class._pre-last]=\"$index === count() - 2\"\n [class._visible]=\"$index >= start() && $index <= end()\"\n >\n <ng-container *ngTemplateOutlet=\"valueContent() || null; context: {$implicit: $index}\" />\n </div>\n }\n</div>\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-pager.mjs","sources":["../../../projects/kit/components/pager/pager.component.ts","../../../projects/kit/components/pager/pager.component.html","../../../projects/kit/components/pager/taiga-ui-kit-components-pager.ts"],"sourcesContent":["import {NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n type ElementRef,\n inject,\n input,\n type OnChanges,\n signal,\n type TemplateRef,\n viewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {\n WA_MUTATION_OBSERVER_INIT,\n WaMutationObserverService,\n} from '@ng-web-apis/mutation-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\nimport {delay, map} from 'rxjs';\n\n@Component({\n selector: 'tui-pager',\n imports: [NgTemplateOutlet],\n templateUrl: './pager.component.html',\n styleUrl: './pager.styles.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n WaMutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n attributeOldValue: true,\n characterData: true,\n childList: true,\n subtree: true,\n },\n },\n ],\n host: {\n '[attr.data-size]': 'size()',\n '[style.--t-gap.px]': 'gap()',\n '[style.max-width.px]': 'maxWidth()',\n },\n})\nexport class TuiPager implements OnChanges, AfterViewInit {\n protected readonly items = viewChildren<ElementRef<HTMLElement>>('item');\n protected readonly start = signal(0);\n protected readonly end = signal(0);\n protected readonly left = signal(0);\n protected readonly gap = computed(() => (this.size() === 'm' ? 9 : 7));\n\n protected readonly maxWidth = toSignal(\n inject(WaMutationObserverService, {self: true}).pipe(\n delay(0),\n map(() => this.visibleWidth),\n tuiWatch(),\n takeUntilDestroyed(),\n ),\n {initialValue: 0},\n );\n\n public readonly max = input(6);\n public readonly count = input(6);\n public readonly size = input<TuiSizeS>('m');\n public readonly valueContent = input<TemplateRef<unknown>>();\n public readonly index = input(0);\n\n public ngOnChanges(): void {\n this.move();\n }\n\n public ngAfterViewInit(): void {\n this.move();\n }\n\n private get visibleRange(): [start: number, end: number] {\n const max = this.max() > this.count() ? this.count() : this.max();\n const start = Math.min(\n Math.max(this.index() - Math.floor(max / 2), 0),\n this.count() - max,\n );\n\n return [start, start + (max - 1)];\n }\n\n private get visibleWidth(): number {\n return (\n this.items()\n .map((item) => item.nativeElement.offsetWidth)\n .slice(this.start(), this.end() + 1)\n .reduce((sum, item) => sum + item + this.gap(), 0) - this.gap()\n );\n }\n\n private move(): void {\n const [start, end] = this.visibleRange;\n\n this.start.set(start);\n this.end.set(end);\n\n let left = this.start() * this.gap();\n\n for (let i = 0; i < this.start(); i++) {\n left += this.items()[i]?.nativeElement.offsetWidth ?? 0;\n }\n\n this.left.set(-1 * left);\n }\n}\n","<div\n class=\"t-items\"\n [style.transform]=\"`translateX(calc(var(--tui-inline) * ${left()}px))`\"\n>\n @for (_ of '-'.repeat(count()); track $index) {\n <div\n #item\n class=\"t-item\"\n [attr.data-index]=\"$index\"\n [class._active]=\"$index === index()\"\n [class._last]=\"$index === count() - 1\"\n [class._post-active]=\"$index === index() + 1\"\n [class._pre-active]=\"$index === index() - 1\"\n [class._pre-last]=\"$index === count() - 2\"\n [class._visible]=\"$index >= start() && $index <= end()\"\n >\n <ng-container *ngTemplateOutlet=\"valueContent() || null; context: {$implicit: $index}\" />\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -78,11 +78,10 @@ class TuiPagination {
78
78
  if (reverseElementIndex < this.sidePadding()) {
79
79
  return this.lastIndex() - reverseElementIndex;
80
80
  }
81
- if (elementIndex === this.sidePadding() && this.hasCollapsedItems(this.index())) {
82
- return null;
83
- }
84
- if (reverseElementIndex === this.sidePadding() &&
85
- this.hasCollapsedItems(this.reverseIndex())) {
81
+ if ((elementIndex === this.sidePadding() &&
82
+ this.hasCollapsedItems(this.index())) ||
83
+ (reverseElementIndex === this.sidePadding() &&
84
+ this.hasCollapsedItems(this.reverseIndex()))) {
86
85
  return null;
87
86
  }
88
87
  const computedIndex = this.index() - this.maxHalfLength() + elementIndex;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-pagination.mjs","sources":["../../../projects/kit/components/pagination/pagination.options.ts","../../../projects/kit/components/pagination/pagination.component.ts","../../../projects/kit/components/pagination/pagination.template.html","../../../projects/kit/components/pagination/taiga-ui-kit-components-pagination.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL} from '@taiga-ui/core/types';\n\nexport interface TuiPaginationOptions {\n readonly size: TuiSizeL;\n readonly appearance: TuiStringHandler<boolean>;\n}\n\nexport const [TUI_PAGINATION_OPTIONS, tuiPaginationOptionsProvider] =\n tuiCreateOptions<TuiPaginationOptions>({\n size: 'l',\n appearance: (isActive) => (isActive ? 'primary' : 'flat'),\n });\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n viewChildren,\n} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TUI_PAGINATION_TEXTS} from '@taiga-ui/kit/tokens';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_PAGINATION_OPTIONS} from './pagination.options';\n\nconst ELLIPSIS_ITEM_LENGTH = 1;\nconst ACTIVE_ITEM_LENGTH = 1;\n\n@Component({\n selector: 'tui-pagination',\n imports: [PolymorpheusOutlet, TuiButton],\n templateUrl: './pagination.template.html',\n styleUrl: './pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPagination {\n private readonly els = viewChildren('element', {read: ElementRef});\n private readonly el = tuiInjectElement();\n private readonly maxHalfLength = computed(\n () => this.sidePadding() + ELLIPSIS_ITEM_LENGTH + this.activePadding(),\n );\n\n private readonly maxElementsLength = computed(\n () => this.maxHalfLength() * 2 + ACTIVE_ITEM_LENGTH,\n );\n\n private readonly lastElementIndex = computed(() => this.elementsLength() - 1);\n private readonly itemsFit = computed(() => this.length() <= this.maxElementsLength());\n private readonly lastIndex = computed(() => this.length() - 1);\n private readonly reverseIndex = computed(\n (): number => this.lastIndex() - this.index(),\n );\n\n protected readonly texts = inject(TUI_PAGINATION_TEXTS);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly options = inject(TUI_PAGINATION_OPTIONS);\n protected readonly buttonSize = computed(() => (this.size() === 'm' ? 'xs' : 's'));\n protected readonly elementsLength = computed(() =>\n this.itemsFit() ? this.length() : this.maxElementsLength(),\n );\n\n public readonly length = input(1);\n public readonly focusable = input(true);\n public readonly size = input(this.options.size);\n public readonly disabled = input(false);\n public readonly activePadding = input(1);\n public readonly sidePadding = input(1);\n public readonly content = input<PolymorpheusContent<TuiContext<number>>>();\n public readonly index = model(0);\n public readonly arrowIsDisabledRight = computed(() => this.reverseIndex() === 0);\n public readonly arrowIsDisabledLeft = computed(() => this.index() === 0);\n public readonly nativeFocusableElement = computed((): HTMLElement | null => {\n if (this.disabled()) {\n return null;\n }\n\n let activeElementIndex = 0;\n\n for (let i = 0; i < this.elementsLength(); i++) {\n const itemIndex = this.getItemIndexByElementIndex(i);\n\n if (itemIndex) {\n activeElementIndex++;\n }\n\n if (itemIndex === this.index()) {\n break;\n }\n }\n\n return (\n this.els().find((_, index) => index === activeElementIndex)?.nativeElement ??\n null\n );\n });\n\n public get focused(): boolean {\n return tuiIsFocusedIn(this.el);\n }\n\n protected elementIsFocusable(index: number): boolean {\n return this.index() === index && !this.focused;\n }\n\n /**\n * Get index by element index\n * @param elementIndex\n * @returns index or null (for '…')\n */\n protected getItemIndexByElementIndex(elementIndex: number): number | null {\n const reverseElementIndex = this.lastElementIndex() - elementIndex;\n\n if (elementIndex < this.sidePadding()) {\n return elementIndex;\n }\n\n if (reverseElementIndex < this.sidePadding()) {\n return this.lastIndex() - reverseElementIndex;\n }\n\n if (elementIndex === this.sidePadding() && this.hasCollapsedItems(this.index())) {\n return null;\n }\n\n if (\n reverseElementIndex === this.sidePadding() &&\n this.hasCollapsedItems(this.reverseIndex())\n ) {\n return null;\n }\n\n const computedIndex = this.index() - this.maxHalfLength() + elementIndex;\n\n return tuiClamp(\n computedIndex,\n elementIndex,\n this.lastIndex() - reverseElementIndex,\n );\n }\n\n protected getElementMode(index = -1): string {\n return this.options.appearance(this.index() === index);\n }\n\n protected onElementClick(index: number): void {\n this.updateIndex(index);\n }\n\n protected onElementKeyDownArrowLeft(element: HTMLElement): void {\n if (element === this.els()[0]?.nativeElement) {\n return;\n }\n\n const previous = this.els().find(\n (_, index, array) => array[index + 1]?.nativeElement === element,\n );\n\n previous?.nativeElement.focus();\n }\n\n protected onElementKeyDownArrowRight(element: HTMLElement): void {\n if (element === this.els()[this.els().length - 1]?.nativeElement) {\n return;\n }\n\n const next = this.els().find(\n (_, index, array) => array[index - 1]?.nativeElement === element,\n );\n\n next?.nativeElement.focus();\n }\n\n protected onArrowClick(step: -1 | 1): void {\n this.tryChangeTo(step);\n this.nativeFocusableElement()?.focus();\n }\n\n /**\n * Are there collapsed items at that index\n * @param index\n * @returns there are collapsed items\n */\n private hasCollapsedItems(index: number): boolean {\n return !this.itemsFit() && index > this.maxHalfLength();\n }\n\n private tryChangeTo(step: -1 | 1): void {\n this.updateIndex(tuiClamp(this.index() + step, 0, this.lastIndex()));\n }\n\n private updateIndex(index: number): void {\n if (this.index() !== index) {\n this.index.set(index);\n }\n }\n}\n","<div class=\"t-content\">\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledLeft()\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize()\"\n (click)=\"onArrowClick(-1)\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[0] }}\n </button>\n @for (_ of '-'.repeat(elementsLength()); track $index) {\n @let index = getItemIndexByElementIndex($index);\n @if (index !== null) {\n <button\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled()\"\n [size]=\"buttonSize()\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content() || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n } @else {\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-ellipsis\"\n [class.t-ellipsis_small]=\"size() === 'm'\"\n ></div>\n }\n }\n\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledRight()\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize()\"\n (click)=\"onArrowClick(1)\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[1] }}\n </button>\n</div>\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-pagination.mjs","sources":["../../../projects/kit/components/pagination/pagination.options.ts","../../../projects/kit/components/pagination/pagination.component.ts","../../../projects/kit/components/pagination/pagination.template.html","../../../projects/kit/components/pagination/taiga-ui-kit-components-pagination.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL} from '@taiga-ui/core/types';\n\nexport interface TuiPaginationOptions {\n readonly size: TuiSizeL;\n readonly appearance: TuiStringHandler<boolean>;\n}\n\nexport const [TUI_PAGINATION_OPTIONS, tuiPaginationOptionsProvider] =\n tuiCreateOptions<TuiPaginationOptions>({\n size: 'l',\n appearance: (isActive) => (isActive ? 'primary' : 'flat'),\n });\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n viewChildren,\n} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TUI_PAGINATION_TEXTS} from '@taiga-ui/kit/tokens';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_PAGINATION_OPTIONS} from './pagination.options';\n\nconst ELLIPSIS_ITEM_LENGTH = 1;\nconst ACTIVE_ITEM_LENGTH = 1;\n\n@Component({\n selector: 'tui-pagination',\n imports: [PolymorpheusOutlet, TuiButton],\n templateUrl: './pagination.template.html',\n styleUrl: './pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPagination {\n private readonly els = viewChildren('element', {read: ElementRef});\n private readonly el = tuiInjectElement();\n\n private readonly maxHalfLength = computed(\n () => this.sidePadding() + ELLIPSIS_ITEM_LENGTH + this.activePadding(),\n );\n\n private readonly maxElementsLength = computed(\n () => this.maxHalfLength() * 2 + ACTIVE_ITEM_LENGTH,\n );\n\n private readonly lastElementIndex = computed(() => this.elementsLength() - 1);\n private readonly itemsFit = computed(() => this.length() <= this.maxElementsLength());\n private readonly lastIndex = computed(() => this.length() - 1);\n\n private readonly reverseIndex = computed(\n (): number => this.lastIndex() - this.index(),\n );\n\n protected readonly texts = inject(TUI_PAGINATION_TEXTS);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly options = inject(TUI_PAGINATION_OPTIONS);\n protected readonly buttonSize = computed(() => (this.size() === 'm' ? 'xs' : 's'));\n\n protected readonly elementsLength = computed(() =>\n this.itemsFit() ? this.length() : this.maxElementsLength(),\n );\n\n public readonly length = input(1);\n public readonly focusable = input(true);\n public readonly size = input(this.options.size);\n public readonly disabled = input(false);\n public readonly activePadding = input(1);\n public readonly sidePadding = input(1);\n public readonly content = input<PolymorpheusContent<TuiContext<number>>>();\n public readonly index = model(0);\n public readonly arrowIsDisabledRight = computed(() => this.reverseIndex() === 0);\n public readonly arrowIsDisabledLeft = computed(() => this.index() === 0);\n\n public readonly nativeFocusableElement = computed((): HTMLElement | null => {\n if (this.disabled()) {\n return null;\n }\n\n let activeElementIndex = 0;\n\n for (let i = 0; i < this.elementsLength(); i++) {\n const itemIndex = this.getItemIndexByElementIndex(i);\n\n if (itemIndex) {\n activeElementIndex++;\n }\n\n if (itemIndex === this.index()) {\n break;\n }\n }\n\n return (\n this.els().find((_, index) => index === activeElementIndex)?.nativeElement ??\n null\n );\n });\n\n public get focused(): boolean {\n return tuiIsFocusedIn(this.el);\n }\n\n protected elementIsFocusable(index: number): boolean {\n return this.index() === index && !this.focused;\n }\n\n /**\n * Get index by element index\n * @param elementIndex\n * @returns index or null (for '…')\n */\n protected getItemIndexByElementIndex(elementIndex: number): number | null {\n const reverseElementIndex = this.lastElementIndex() - elementIndex;\n\n if (elementIndex < this.sidePadding()) {\n return elementIndex;\n }\n\n if (reverseElementIndex < this.sidePadding()) {\n return this.lastIndex() - reverseElementIndex;\n }\n\n if (\n (elementIndex === this.sidePadding() &&\n this.hasCollapsedItems(this.index())) ||\n (reverseElementIndex === this.sidePadding() &&\n this.hasCollapsedItems(this.reverseIndex()))\n ) {\n return null;\n }\n\n const computedIndex = this.index() - this.maxHalfLength() + elementIndex;\n\n return tuiClamp(\n computedIndex,\n elementIndex,\n this.lastIndex() - reverseElementIndex,\n );\n }\n\n protected getElementMode(index = -1): string {\n return this.options.appearance(this.index() === index);\n }\n\n protected onElementClick(index: number): void {\n this.updateIndex(index);\n }\n\n protected onElementKeyDownArrowLeft(element: HTMLElement): void {\n if (element === this.els()[0]?.nativeElement) {\n return;\n }\n\n const previous = this.els().find(\n (_, index, array) => array[index + 1]?.nativeElement === element,\n );\n\n previous?.nativeElement.focus();\n }\n\n protected onElementKeyDownArrowRight(element: HTMLElement): void {\n if (element === this.els()[this.els().length - 1]?.nativeElement) {\n return;\n }\n\n const next = this.els().find(\n (_, index, array) => array[index - 1]?.nativeElement === element,\n );\n\n next?.nativeElement.focus();\n }\n\n protected onArrowClick(step: -1 | 1): void {\n this.tryChangeTo(step);\n this.nativeFocusableElement()?.focus();\n }\n\n /**\n * Are there collapsed items at that index\n * @param index\n * @returns there are collapsed items\n */\n private hasCollapsedItems(index: number): boolean {\n return !this.itemsFit() && index > this.maxHalfLength();\n }\n\n private tryChangeTo(step: -1 | 1): void {\n this.updateIndex(tuiClamp(this.index() + step, 0, this.lastIndex()));\n }\n\n private updateIndex(index: number): void {\n if (this.index() !== index) {\n this.index.set(index);\n }\n }\n}\n","<div class=\"t-content\">\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledLeft()\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize()\"\n (click)=\"onArrowClick(-1)\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[0] }}\n </button>\n @for (_ of '-'.repeat(elementsLength()); track $index) {\n @let index = getItemIndexByElementIndex($index);\n @if (index !== null) {\n <button\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled()\"\n [size]=\"buttonSize()\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content() || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n } @else {\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-ellipsis\"\n [class.t-ellipsis_small]=\"size() === 'm'\"\n ></div>\n }\n }\n\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledRight()\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize()\"\n (click)=\"onArrowClick(1)\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[1] }}\n </button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -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.20", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-pin-5.4.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiPin]:where(*[data-tui-version=\"5.4.0\"]){--t-size: 2rem;transition-property:inline-size,block-size,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-typography-body-s);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 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):empty{--t-size: .75rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.4.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.4.0\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])>tui-icon{transition-property:inline-size,block-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font-size:1.25rem;align-self:center}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked){--t-size: 3.5rem;font:var(--tui-typography-body-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked)>tui-icon{font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);opacity:1}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked):after{inset-block-start:4.5rem;opacity:1}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open{--t-size: 3.5rem;font:var(--tui-typography-body-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open>tui-icon{font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);opacity:1}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open:after{inset-block-start:4.5rem;opacity:1}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;inset-block:50% -.625rem;inset-inline:50% -.25rem;box-sizing:border-box;border-width:2.2rem 1.875rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);transform-origin:top var(--tui-inline-start);pointer-events:none;mask: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>') no-repeat}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;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 }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-pin-5.5.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiPin]:where(*[data-tui-version=\"5.5.0\"]){--t-size: 2rem;transition-property:inline-size,block-size,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-typography-body-s);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 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):empty{--t-size: .75rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.5.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.5.0\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])>tui-icon{transition-property:inline-size,block-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font-size:1.25rem;align-self:center}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked){--t-size: 3.5rem;font:var(--tui-typography-body-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked)>tui-icon{font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);opacity:1}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked):after{inset-block-start:4.5rem;opacity:1}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open{--t-size: 3.5rem;font:var(--tui-typography-body-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open>tui-icon{font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);opacity:1}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open:after{inset-block-start:4.5rem;opacity:1}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;inset-block:50% -.625rem;inset-inline:50% -.25rem;box-sizing:border-box;border-width:2.2rem 1.875rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);transform-origin:top var(--tui-inline-start);pointer-events:none;mask: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>') no-repeat}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;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
9
  }
10
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: Styles, decorators: [{
11
11
  type: Component,
12
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-pin-${TUI_VERSION}`, styles: ["[tuiPin]:where(*[data-tui-version=\"5.4.0\"]){--t-size: 2rem;transition-property:inline-size,block-size,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-typography-body-s);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 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):empty{--t-size: .75rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.4.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.4.0\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])>tui-icon{transition-property:inline-size,block-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font-size:1.25rem;align-self:center}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked){--t-size: 3.5rem;font:var(--tui-typography-body-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked)>tui-icon{font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);opacity:1}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):has(:checked):after{inset-block-start:4.5rem;opacity:1}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open{--t-size: 3.5rem;font:var(--tui-typography-body-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open>tui-icon{font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);opacity:1}[tuiPin]:where(*[data-tui-version=\"5.4.0\"])._open:after{inset-block-start:4.5rem;opacity:1}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;inset-block:50% -.625rem;inset-inline:50% -.25rem;box-sizing:border-box;border-width:2.2rem 1.875rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);transform-origin:top var(--tui-inline-start);pointer-events:none;mask: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>') no-repeat}[tuiPin]:where(*[data-tui-version=\"5.4.0\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;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"] }]
12
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-pin-${TUI_VERSION}`, styles: ["[tuiPin]:where(*[data-tui-version=\"5.5.0\"]){--t-size: 2rem;transition-property:inline-size,block-size,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-typography-body-s);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 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):empty{--t-size: .75rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.5.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.5.0\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])>tui-icon{transition-property:inline-size,block-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font-size:1.25rem;align-self:center}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked){--t-size: 3.5rem;font:var(--tui-typography-body-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked)>tui-icon{font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);opacity:1}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):has(:checked):after{inset-block-start:4.5rem;opacity:1}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open{--t-size: 3.5rem;font:var(--tui-typography-body-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open>tui-icon{font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);opacity:1}[tuiPin]:where(*[data-tui-version=\"5.5.0\"])._open:after{inset-block-start:4.5rem;opacity:1}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;inset-block:50% -.625rem;inset-inline:50% -.25rem;box-sizing:border-box;border-width:2.2rem 1.875rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1.875rem),-1.875rem);transform-origin:top var(--tui-inline-start);pointer-events:none;mask: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>') no-repeat}[tuiPin]:where(*[data-tui-version=\"5.5.0\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;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
13
  }] });
14
14
  class TuiPin {
15
15
  constructor() {
@@ -17,17 +17,13 @@ class TuiPin {
17
17
  this.open = input('', { alias: 'tuiPin' });
18
18
  }
19
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiPin, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.20", type: TuiPin, isStandalone: true, selector: "[tuiPin]", inputs: { open: { classPropertyName: "open", publicName: "tuiPin", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiPin": "", "data-tui-version": "5.4.0" }, properties: { "class._open": "open()" } }, ngImport: i0 }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.20", type: TuiPin, isStandalone: true, selector: "[tuiPin]", inputs: { open: { classPropertyName: "open", publicName: "tuiPin", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.5.0", "tuiPin": "" }, properties: { "class._open": "open()" } }, ngImport: i0 }); }
21
21
  }
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiPin, decorators: [{
23
23
  type: Directive,
24
24
  args: [{
25
25
  selector: '[tuiPin]',
26
- host: {
27
- tuiPin: '',
28
- 'data-tui-version': TUI_VERSION,
29
- '[class._open]': 'open()',
30
- },
26
+ host: { 'data-tui-version': TUI_VERSION, tuiPin: '', '[class._open]': 'open()' },
31
27
  }]
32
28
  }] });
33
29
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-pin.mjs","sources":["../../../projects/kit/components/pin/pin.directive.ts","../../../projects/kit/components/pin/taiga-ui-kit-components-pin.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/pin.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: `tui-pin-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiPin]',\n host: {\n tuiPin: '',\n 'data-tui-version': TUI_VERSION,\n '[class._open]': 'open()',\n },\n})\nexport class TuiPin {\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly open = input<boolean | ''>('', {alias: 'tuiPin'});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAUA,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,qGAVE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8yIAAA,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,QAAA,EAAW,WAAW,CAAA,CAAE,EAAA,MAAA,EAAA,CAAA,8yIAAA,CAAA,EAAA;;MAYzB,MAAM,CAAA;AARnB,IAAA,WAAA,GAAA;AASuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;QAElC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAe,EAAE,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;AACpE,IAAA;+GAJY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAN,MAAM,EAAA,UAAA,EAAA,CAAA;kBARlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,IAAI,EAAE;AACF,wBAAA,MAAM,EAAE,EAAE;AACV,wBAAA,kBAAkB,EAAE,WAAW;AAC/B,wBAAA,eAAe,EAAE,QAAQ;AAC5B,qBAAA;AACJ,iBAAA;;;AC9BD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-pin.mjs","sources":["../../../projects/kit/components/pin/pin.directive.ts","../../../projects/kit/components/pin/taiga-ui-kit-components-pin.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/pin.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: `tui-pin-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiPin]',\n host: {'data-tui-version': TUI_VERSION, tuiPin: '', '[class._open]': 'open()'},\n})\nexport class TuiPin {\n protected readonly nothing = tuiWithStyles(Styles);\n public readonly open = input<boolean | ''>('', {alias: 'tuiPin'});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAUA,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,qGAVE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8yIAAA,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,QAAA,EAAW,WAAW,CAAA,CAAE,EAAA,MAAA,EAAA,CAAA,8yIAAA,CAAA,EAAA;;MAQzB,MAAM,CAAA;AAJnB,IAAA,WAAA,GAAA;AAKuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;QAClC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAe,EAAE,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;AACpE,IAAA;+GAHY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAN,MAAM,EAAA,UAAA,EAAA,CAAA;kBAJlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,IAAI,EAAE,EAAC,kBAAkB,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAC;AACjF,iBAAA;;;AC1BD;;AAEG;;;;"}
@@ -46,11 +46,11 @@ class TuiPreviewDialog {
46
46
  this.context = injectContext();
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiPreviewDialog, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: TuiPreviewDialog, isStandalone: true, selector: "tui-preview-dialog", host: { attributes: { "data-tui-version": "5.4.0" }, listeners: { "document:keydown.esc.prevent": "context.$implicit.complete()" } }, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: `
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: TuiPreviewDialog, isStandalone: true, selector: "tui-preview-dialog", host: { attributes: { "data-tui-version": "5.5.0" }, listeners: { "document:keydown.esc.prevent": "context.$implicit.complete()" } }, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: `
50
50
  <ng-container *polymorpheusOutlet="context.content as text; context: context">
51
51
  {{ text }}
52
52
  </ng-container>
53
- `, isInline: true, styles: ["tui-preview-dialog:where(*[data-tui-version=\"5.4.0\"]){inline-size:100%;block-size:100%;overflow:hidden}tui-preview-dialog:where(*[data-tui-version=\"5.4.0\"]).tui-enter,tui-preview-dialog:where(*[data-tui-version=\"5.4.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"]){background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"])[data-state=hover]{background:#9f9f9fdb}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"])[data-state=active]{background:#9f9f9fbf}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
53
+ `, isInline: true, styles: ["tui-preview-dialog:where(*[data-tui-version=\"5.5.0\"]){inline-size:100%;block-size:100%;overflow:hidden}tui-preview-dialog:where(*[data-tui-version=\"5.5.0\"]).tui-enter,tui-preview-dialog:where(*[data-tui-version=\"5.5.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"]){background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"])[data-state=hover]{background:#9f9f9fdb}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"])[data-state=active]{background:#9f9f9fbf}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
54
54
  }
55
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiPreviewDialog, decorators: [{
56
56
  type: Component,
@@ -61,7 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
61
61
  `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiAnimated], host: {
62
62
  'data-tui-version': TUI_VERSION,
63
63
  '(document:keydown.esc.prevent)': 'context.$implicit.complete()',
64
- }, styles: ["tui-preview-dialog:where(*[data-tui-version=\"5.4.0\"]){inline-size:100%;block-size:100%;overflow:hidden}tui-preview-dialog:where(*[data-tui-version=\"5.4.0\"]).tui-enter,tui-preview-dialog:where(*[data-tui-version=\"5.4.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"]){background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"])[data-state=hover]{background:#9f9f9fdb}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.4.0\"])[data-state=active]{background:#9f9f9fbf}\n"] }]
64
+ }, styles: ["tui-preview-dialog:where(*[data-tui-version=\"5.5.0\"]){inline-size:100%;block-size:100%;overflow:hidden}tui-preview-dialog:where(*[data-tui-version=\"5.5.0\"]).tui-enter,tui-preview-dialog:where(*[data-tui-version=\"5.5.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"]){background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"])[data-state=hover]{background:#9f9f9fdb}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.5.0\"])[data-state=active]{background:#9f9f9fbf}\n"] }]
65
65
  }] });
66
66
 
67
67
  class TuiPreviewDialogService extends TuiModalService {
@@ -118,13 +118,13 @@ class TuiPreviewPagination {
118
118
  this.index.set(tuiClamp(this.index() + step, 0, this.length() - 1));
119
119
  }
120
120
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiPreviewPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.20", type: TuiPreviewPagination, isStandalone: true, selector: "tui-preview-pagination", inputs: { length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { index: "indexChange" }, host: { listeners: { "document:keydown.arrowRight.prevent": "onArrowClick(1)", "document:keydown.arrowLeft.prevent": "onArrowClick(-1)" } }, ngImport: i0, template: "<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_left\"\n [disabled]=\"!index()\"\n [iconStart]=\"icons.prev\"\n (click)=\"onArrowClick(-1)\"\n>\n {{ texts()[0] }}\n</button>\n{{ index() + 1 }}/{{ length() }}\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_right\"\n [disabled]=\"index() === length() - 1\"\n [iconStart]=\"icons.next\"\n (click)=\"onArrowClick(1)\"\n>\n {{ texts()[1] }}\n</button>\n", styles: [":host{border-radius:1rem;background:#686868f5;color:#fff;display:flex;font:var(--tui-typography-body-s);justify-content:space-between;align-items:center;inline-size:6.25rem}.t-arrow{transform:scaleX(var(--tui-inline))}.t-arrow_left{border-top-right-radius:0;border-bottom-right-radius:0}.t-arrow_right{border-top-left-radius:0;border-bottom-left-radius:0}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiPreviewAction, selector: "[tuiPreviewAction]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.20", type: TuiPreviewPagination, isStandalone: true, selector: "tui-preview-pagination", inputs: { length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { index: "indexChange" }, host: { listeners: { "document:keydown.arrowLeft.prevent": "onArrowClick(-1)", "document:keydown.arrowRight.prevent": "onArrowClick(1)" } }, ngImport: i0, template: "<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_left\"\n [disabled]=\"!index()\"\n [iconStart]=\"icons.prev\"\n (click)=\"onArrowClick(-1)\"\n>\n {{ texts()[0] }}\n</button>\n{{ index() + 1 }}/{{ length() }}\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_right\"\n [disabled]=\"index() === length() - 1\"\n [iconStart]=\"icons.next\"\n (click)=\"onArrowClick(1)\"\n>\n {{ texts()[1] }}\n</button>\n", styles: [":host{border-radius:1rem;background:#686868f5;color:#fff;display:flex;font:var(--tui-typography-body-s);justify-content:space-between;align-items:center;inline-size:6.25rem}.t-arrow{transform:scaleX(var(--tui-inline))}.t-arrow_left{border-top-right-radius:0;border-bottom-right-radius:0}.t-arrow_right{border-top-left-radius:0;border-bottom-left-radius:0}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiPreviewAction, selector: "[tuiPreviewAction]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
122
122
  }
123
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiPreviewPagination, decorators: [{
124
124
  type: Component,
125
125
  args: [{ selector: 'tui-preview-pagination', imports: [TuiButton, TuiPreviewAction], changeDetection: ChangeDetectionStrategy.OnPush, host: {
126
- '(document:keydown.arrowRight.prevent)': 'onArrowClick(1)',
127
126
  '(document:keydown.arrowLeft.prevent)': 'onArrowClick(-1)',
127
+ '(document:keydown.arrowRight.prevent)': 'onArrowClick(1)',
128
128
  }, template: "<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_left\"\n [disabled]=\"!index()\"\n [iconStart]=\"icons.prev\"\n (click)=\"onArrowClick(-1)\"\n>\n {{ texts()[0] }}\n</button>\n{{ index() + 1 }}/{{ length() }}\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_right\"\n [disabled]=\"index() === length() - 1\"\n [iconStart]=\"icons.next\"\n (click)=\"onArrowClick(1)\"\n>\n {{ texts()[1] }}\n</button>\n", styles: [":host{border-radius:1rem;background:#686868f5;color:#fff;display:flex;font:var(--tui-typography-body-s);justify-content:space-between;align-items:center;inline-size:6.25rem}.t-arrow{transform:scaleX(var(--tui-inline))}.t-arrow_left{border-top-right-radius:0;border-bottom-right-radius:0}.t-arrow_right{border-top-left-radius:0;border-bottom-left-radius:0}\n"] }]
129
129
  }] });
130
130