@taiga-ui/kit 3.22.0 → 3.23.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 (290) hide show
  1. package/abstract/abstract-native-select.d.ts +18 -0
  2. package/abstract/index.d.ts +1 -0
  3. package/abstract/package.json +10 -0
  4. package/abstract/taiga-ui-kit-abstract.d.ts +5 -0
  5. package/bundles/taiga-ui-kit-abstract.umd.js +87 -0
  6. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -0
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js +2 -2
  8. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-avatar.umd.js +1 -1
  10. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-badge.umd.js +3 -3
  12. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-badged-content.umd.js +3 -3
  14. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-carousel.umd.js +1 -1
  16. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +5 -4
  18. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +3 -2
  20. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-checkbox.umd.js +3 -2
  22. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-combo-box.umd.js +7 -6
  24. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-files.umd.js +1 -1
  27. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-filter.umd.js +2 -2
  29. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-input-copy.umd.js +2 -2
  31. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-count.umd.js +5 -4
  33. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +16 -13
  35. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +4 -4
  37. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-date.umd.js +6 -5
  39. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-files.umd.js +5 -5
  41. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-inline.umd.js +3 -2
  43. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +3 -3
  45. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-month.umd.js +2 -2
  47. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-number.umd.js +4 -5
  49. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -2
  51. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +7 -6
  53. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-input-phone.umd.js +4 -4
  55. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-range.umd.js +1 -1
  57. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-slider.umd.js +2 -2
  59. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-tag.umd.js +10 -10
  61. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-time.umd.js +6 -7
  63. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-year.umd.js +2 -2
  65. package/bundles/taiga-ui-kit-components-input-year.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input.umd.js +2 -2
  67. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +2 -2
  69. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-multi-select.umd.js +59 -87
  71. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-push.umd.js +1 -1
  73. package/bundles/taiga-ui-kit-components-push.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-radio-block.umd.js +5 -4
  75. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +3 -2
  77. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-radio-list.umd.js +5 -4
  79. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-radio.umd.js +1 -1
  81. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-range.umd.js +2 -2
  83. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-rating.umd.js +2 -2
  85. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-select.umd.js +38 -83
  87. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-slider.umd.js +1 -1
  89. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-stepper.umd.js +10 -3
  91. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-tabs.umd.js +1 -1
  93. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-tag.umd.js +2 -12
  95. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  97. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-toggle.umd.js +6 -14
  99. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-tree.umd.js +3 -3
  101. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit.umd.js +10 -4
  103. package/bundles/taiga-ui-kit.umd.js.map +1 -1
  104. package/components/checkbox/checkbox.component.d.ts +1 -0
  105. package/components/checkbox-block/checkbox-block.component.d.ts +1 -0
  106. package/components/checkbox-labeled/checkbox-labeled.component.d.ts +1 -0
  107. package/components/combo-box/combo-box.component.d.ts +1 -0
  108. package/components/data-list-wrapper/data-list-wrapper.d.ts +1 -1
  109. package/components/input-count/input-count.component.d.ts +1 -0
  110. package/components/input-date-range/input-date-range.component.d.ts +1 -0
  111. package/components/input-inline/input-inline.component.d.ts +1 -0
  112. package/components/input-phone-international/input-phone-international.component.d.ts +1 -0
  113. package/components/input-tag/input-tag.component.d.ts +2 -2
  114. package/components/multi-select/multi-select.component.d.ts +2 -1
  115. package/components/multi-select/multi-select.directive.d.ts +1 -1
  116. package/components/multi-select/native-multi-select/native-multi-select.component.d.ts +1 -1
  117. package/components/multi-select/native-multi-select/native-multi-select.d.ts +4 -12
  118. package/components/radio-block/radio-block.component.d.ts +1 -0
  119. package/components/radio-labeled/radio-labeled.component.d.ts +1 -0
  120. package/components/radio-list/radio-list.component.d.ts +1 -0
  121. package/components/select/index.d.ts +0 -1
  122. package/components/select/native-select/native-select-group.component.d.ts +1 -1
  123. package/components/select/native-select/native-select.component.d.ts +1 -1
  124. package/components/stepper/stepper.component.d.ts +3 -1
  125. package/components/tag/tag.component.d.ts +0 -1
  126. package/components/toggle/toggle.component.d.ts +1 -1
  127. package/esm2015/abstract/abstract-native-select.js +49 -0
  128. package/esm2015/abstract/index.js +2 -0
  129. package/esm2015/abstract/taiga-ui-kit-abstract.js +5 -0
  130. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +3 -3
  131. package/esm2015/components/avatar/avatar.component.js +1 -1
  132. package/esm2015/components/badge/badge.component.js +4 -4
  133. package/esm2015/components/badged-content/badged-content.component.js +4 -4
  134. package/esm2015/components/carousel/carousel.component.js +1 -1
  135. package/esm2015/components/checkbox/checkbox.component.js +4 -3
  136. package/esm2015/components/checkbox-block/checkbox-block.component.js +6 -5
  137. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +4 -3
  138. package/esm2015/components/combo-box/combo-box-strict.directive.js +2 -2
  139. package/esm2015/components/combo-box/combo-box.component.js +7 -6
  140. package/esm2015/components/data-list-wrapper/data-list-wrapper.js +1 -1
  141. package/esm2015/components/files/files.component.js +1 -1
  142. package/esm2015/components/filter/filter.component.js +3 -3
  143. package/esm2015/components/input/input.component.js +3 -3
  144. package/esm2015/components/input-copy/input-copy.component.js +3 -3
  145. package/esm2015/components/input-count/input-count.component.js +6 -5
  146. package/esm2015/components/input-date/input-date.component.js +7 -6
  147. package/esm2015/components/input-date-range/input-date-range.component.js +17 -14
  148. package/esm2015/components/input-date-time/input-date-time.component.js +5 -5
  149. package/esm2015/components/input-files/input-files.component.js +6 -6
  150. package/esm2015/components/input-inline/input-inline.component.js +4 -3
  151. package/esm2015/components/input-month/input-month.component.js +3 -3
  152. package/esm2015/components/input-month-range/input-month-range.component.js +4 -4
  153. package/esm2015/components/input-number/input-number.component.js +5 -6
  154. package/esm2015/components/input-password/input-password.component.js +3 -3
  155. package/esm2015/components/input-phone/input-phone.component.js +5 -5
  156. package/esm2015/components/input-phone-international/input-phone-international.component.js +8 -7
  157. package/esm2015/components/input-range/input-range.component.js +2 -2
  158. package/esm2015/components/input-slider/input-slider.component.js +3 -3
  159. package/esm2015/components/input-tag/input-tag.component.js +11 -11
  160. package/esm2015/components/input-time/input-time.component.js +7 -8
  161. package/esm2015/components/input-year/input-year.component.js +3 -3
  162. package/esm2015/components/line-clamp/line-clamp-box.component.js +2 -2
  163. package/esm2015/components/line-clamp/line-clamp.component.js +1 -1
  164. package/esm2015/components/multi-select/multi-select.component.js +16 -9
  165. package/esm2015/components/multi-select/multi-select.directive.js +2 -4
  166. package/esm2015/components/multi-select/native-multi-select/native-multi-select-group.component.js +5 -4
  167. package/esm2015/components/multi-select/native-multi-select/native-multi-select.component.js +5 -4
  168. package/esm2015/components/multi-select/native-multi-select/native-multi-select.js +9 -41
  169. package/esm2015/components/push/push.component.js +1 -1
  170. package/esm2015/components/radio/radio.component.js +2 -2
  171. package/esm2015/components/radio-block/radio-block.component.js +6 -5
  172. package/esm2015/components/radio-labeled/radio-labeled.component.js +4 -3
  173. package/esm2015/components/radio-list/radio-list.component.js +6 -5
  174. package/esm2015/components/range/range.component.js +3 -3
  175. package/esm2015/components/rating/rating.component.js +3 -3
  176. package/esm2015/components/select/index.js +1 -2
  177. package/esm2015/components/select/native-select/native-select-group.component.js +3 -3
  178. package/esm2015/components/select/native-select/native-select.component.js +3 -3
  179. package/esm2015/components/select/select.component.js +6 -6
  180. package/esm2015/components/slider/helpers/slider-key-steps.directive.js +2 -2
  181. package/esm2015/components/stepper/stepper.component.js +10 -5
  182. package/esm2015/components/tabs/tab/tab.component.js +1 -1
  183. package/esm2015/components/tag/tag.component.js +3 -9
  184. package/esm2015/components/text-area/text-area.component.js +3 -3
  185. package/esm2015/components/toggle/toggle.component.js +7 -11
  186. package/esm2015/components/tree/components/tree/tree.component.js +4 -4
  187. package/esm2015/index.js +2 -1
  188. package/fesm2015/taiga-ui-kit-abstract.js +56 -0
  189. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -0
  190. package/fesm2015/taiga-ui-kit-components-accordion.js +2 -2
  191. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  192. package/fesm2015/taiga-ui-kit-components-avatar.js +1 -1
  193. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  194. package/fesm2015/taiga-ui-kit-components-badge.js +3 -3
  195. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  196. package/fesm2015/taiga-ui-kit-components-badged-content.js +3 -3
  197. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  198. package/fesm2015/taiga-ui-kit-components-carousel.js +1 -1
  199. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  200. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +5 -4
  201. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  202. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +3 -2
  203. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  204. package/fesm2015/taiga-ui-kit-components-checkbox.js +3 -2
  205. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  206. package/fesm2015/taiga-ui-kit-components-combo-box.js +7 -6
  207. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  208. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  209. package/fesm2015/taiga-ui-kit-components-files.js +1 -1
  210. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  211. package/fesm2015/taiga-ui-kit-components-filter.js +2 -2
  212. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  213. package/fesm2015/taiga-ui-kit-components-input-copy.js +2 -2
  214. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  215. package/fesm2015/taiga-ui-kit-components-input-count.js +5 -4
  216. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  217. package/fesm2015/taiga-ui-kit-components-input-date-range.js +16 -13
  218. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  219. package/fesm2015/taiga-ui-kit-components-input-date-time.js +4 -4
  220. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  221. package/fesm2015/taiga-ui-kit-components-input-date.js +6 -5
  222. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  223. package/fesm2015/taiga-ui-kit-components-input-files.js +5 -5
  224. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  225. package/fesm2015/taiga-ui-kit-components-input-inline.js +3 -2
  226. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  227. package/fesm2015/taiga-ui-kit-components-input-month-range.js +3 -3
  228. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  229. package/fesm2015/taiga-ui-kit-components-input-month.js +2 -2
  230. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  231. package/fesm2015/taiga-ui-kit-components-input-number.js +4 -5
  232. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  233. package/fesm2015/taiga-ui-kit-components-input-password.js +2 -2
  234. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  235. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +7 -6
  236. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  237. package/fesm2015/taiga-ui-kit-components-input-phone.js +4 -4
  238. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  239. package/fesm2015/taiga-ui-kit-components-input-range.js +1 -1
  240. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  241. package/fesm2015/taiga-ui-kit-components-input-slider.js +2 -2
  242. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  243. package/fesm2015/taiga-ui-kit-components-input-tag.js +10 -10
  244. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  245. package/fesm2015/taiga-ui-kit-components-input-time.js +6 -7
  246. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  247. package/fesm2015/taiga-ui-kit-components-input-year.js +2 -2
  248. package/fesm2015/taiga-ui-kit-components-input-year.js.map +1 -1
  249. package/fesm2015/taiga-ui-kit-components-input.js +2 -2
  250. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  251. package/fesm2015/taiga-ui-kit-components-line-clamp.js +2 -2
  252. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  253. package/fesm2015/taiga-ui-kit-components-multi-select.js +47 -70
  254. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  255. package/fesm2015/taiga-ui-kit-components-push.js +1 -1
  256. package/fesm2015/taiga-ui-kit-components-push.js.map +1 -1
  257. package/fesm2015/taiga-ui-kit-components-radio-block.js +5 -4
  258. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  259. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +3 -2
  260. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  261. package/fesm2015/taiga-ui-kit-components-radio-list.js +5 -4
  262. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  263. package/fesm2015/taiga-ui-kit-components-radio.js +1 -1
  264. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  265. package/fesm2015/taiga-ui-kit-components-range.js +2 -2
  266. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  267. package/fesm2015/taiga-ui-kit-components-rating.js +2 -2
  268. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  269. package/fesm2015/taiga-ui-kit-components-select.js +16 -52
  270. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  271. package/fesm2015/taiga-ui-kit-components-slider.js +1 -1
  272. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  273. package/fesm2015/taiga-ui-kit-components-stepper.js +9 -4
  274. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  275. package/fesm2015/taiga-ui-kit-components-tabs.js +1 -1
  276. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  277. package/fesm2015/taiga-ui-kit-components-tag.js +2 -8
  278. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  279. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  280. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  281. package/fesm2015/taiga-ui-kit-components-toggle.js +6 -10
  282. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  283. package/fesm2015/taiga-ui-kit-components-tree.js +3 -3
  284. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  285. package/fesm2015/taiga-ui-kit.js +1 -0
  286. package/fesm2015/taiga-ui-kit.js.map +1 -1
  287. package/index.d.ts +1 -0
  288. package/package.json +5 -4
  289. package/components/select/native-select/native-select.d.ts +0 -15
  290. package/esm2015/components/select/native-select/native-select.js +0 -42
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@taiga-ui/cdk'), require('@taiga-ui/kit/utils'), require('@angular/forms'), require('@taiga-ui/core'), require('@taiga-ui/kit/classes'), require('@taiga-ui/kit/components/arrow'), require('@taiga-ui/kit/components/input-tag'), require('@taiga-ui/kit/providers'), require('@taiga-ui/kit/tokens'), require('@angular/common'), require('@tinkoff/ng-polymorpheus'), require('@taiga-ui/kit/components/data-list-wrapper'), require('@taiga-ui/kit/components/multi-select-option'), require('rxjs'), require('rxjs/operators')) :
3
- typeof define === 'function' && define.amd ? define('@taiga-ui/kit/components/multi-select', ['exports', '@angular/core', '@taiga-ui/cdk', '@taiga-ui/kit/utils', '@angular/forms', '@taiga-ui/core', '@taiga-ui/kit/classes', '@taiga-ui/kit/components/arrow', '@taiga-ui/kit/components/input-tag', '@taiga-ui/kit/providers', '@taiga-ui/kit/tokens', '@angular/common', '@tinkoff/ng-polymorpheus', '@taiga-ui/kit/components/data-list-wrapper', '@taiga-ui/kit/components/multi-select-option', 'rxjs', 'rxjs/operators'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["taiga-ui"] = global["taiga-ui"] || {}, global["taiga-ui"].kit = global["taiga-ui"].kit || {}, global["taiga-ui"].kit.components = global["taiga-ui"].kit.components || {}, global["taiga-ui"].kit.components["multi-select"] = {}), global.ng.core, global.i3, global["taiga-ui"].kit.utils, global.ng.forms, global.i1, global["taiga-ui"].kit.classes, global["taiga-ui"].kit.components.arrow, global["taiga-ui"].kit.components["input-tag"], global["taiga-ui"].kit.providers, global["taiga-ui"].kit.tokens, global.ng.common, global.i6, global["taiga-ui"].kit.components["data-list-wrapper"], global["taiga-ui"].kit.components["multi-select-option"], global.rxjs, global.rxjs.operators));
5
- })(this, (function (exports, i0, i3, utils, i4, i1, classes, arrow, i2, providers, tokens, i2$1, i6, i1$1, multiSelectOption, rxjs, operators) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@taiga-ui/cdk'), require('@taiga-ui/kit/utils'), require('@angular/forms'), require('@taiga-ui/core'), require('@taiga-ui/kit/classes'), require('@taiga-ui/kit/components/arrow'), require('@taiga-ui/kit/components/input-tag'), require('@taiga-ui/kit/providers'), require('@taiga-ui/kit/tokens'), require('@taiga-ui/kit/abstract'), require('@angular/common'), require('@tinkoff/ng-polymorpheus'), require('@taiga-ui/kit/components/data-list-wrapper'), require('@taiga-ui/kit/components/multi-select-option'), require('rxjs'), require('rxjs/operators')) :
3
+ typeof define === 'function' && define.amd ? define('@taiga-ui/kit/components/multi-select', ['exports', '@angular/core', '@taiga-ui/cdk', '@taiga-ui/kit/utils', '@angular/forms', '@taiga-ui/core', '@taiga-ui/kit/classes', '@taiga-ui/kit/components/arrow', '@taiga-ui/kit/components/input-tag', '@taiga-ui/kit/providers', '@taiga-ui/kit/tokens', '@taiga-ui/kit/abstract', '@angular/common', '@tinkoff/ng-polymorpheus', '@taiga-ui/kit/components/data-list-wrapper', '@taiga-ui/kit/components/multi-select-option', 'rxjs', 'rxjs/operators'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["taiga-ui"] = global["taiga-ui"] || {}, global["taiga-ui"].kit = global["taiga-ui"].kit || {}, global["taiga-ui"].kit.components = global["taiga-ui"].kit.components || {}, global["taiga-ui"].kit.components["multi-select"] = {}), global.ng.core, global.i3, global["taiga-ui"].kit.utils, global.ng.forms, global.i1, global["taiga-ui"].kit.classes, global["taiga-ui"].kit.components.arrow, global["taiga-ui"].kit.components["input-tag"], global["taiga-ui"].kit.providers, global["taiga-ui"].kit.tokens, global["taiga-ui"].kit.abstract, global.ng.common, global.i6, global["taiga-ui"].kit.components["data-list-wrapper"], global["taiga-ui"].kit.components["multi-select-option"], global.rxjs, global.rxjs.operators));
5
+ })(this, (function (exports, i0, i3, utils, i4, i1, classes, arrow, i2, providers, tokens, abstract, i2$1, i6, i1$1, multiSelectOption, rxjs, operators) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -364,89 +364,24 @@
364
364
  useValue: Object.assign(Object.assign({}, TUI_MULTI_SELECT_DEFAULT_OPTIONS), options),
365
365
  }); };
366
366
 
367
- var TuiMultiSelectDirective = /** @class */ (function (_super) {
368
- __extends(TuiMultiSelectDirective, _super);
369
- function TuiMultiSelectDirective() {
367
+ var AbstractTuiNativeMultiSelect = /** @class */ (function (_super) {
368
+ __extends(AbstractTuiNativeMultiSelect, _super);
369
+ function AbstractTuiNativeMultiSelect() {
370
370
  var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
371
- _this.disableItemHandler = function (item) { return _this.host.disabledItemHandler(item); };
371
+ _this.selectedMapper = function (option, value) { return value.includes(option); };
372
372
  return _this;
373
373
  }
374
- Object.defineProperty(TuiMultiSelectDirective.prototype, "readOnly", {
375
- get: function () {
376
- return true;
377
- },
378
- enumerable: false,
379
- configurable: true
380
- });
381
- TuiMultiSelectDirective.prototype.onValueChange = function (_) {
382
- //
383
- };
384
- TuiMultiSelectDirective.prototype.onSelectionChange = function (value) {
385
- this.host.onValueChange(value);
386
- };
387
- return TuiMultiSelectDirective;
388
- }(i1.AbstractTuiTextfieldHost));
389
- TuiMultiSelectDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiMultiSelectDirective, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
390
- TuiMultiSelectDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiMultiSelectDirective, selector: "tui-multi-select", providers: [i1.tuiAsTextfieldHost(TuiMultiSelectDirective)], usesInheritance: true, ngImport: i0__namespace });
391
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiMultiSelectDirective, decorators: [{
392
- type: i0.Directive,
393
- args: [{
394
- selector: 'tui-multi-select',
395
- providers: [i1.tuiAsTextfieldHost(TuiMultiSelectDirective)],
396
- }]
397
- }] });
398
-
399
- var AbstractTuiNativeMultiSelect = /** @class */ (function () {
400
- function AbstractTuiNativeMultiSelect(host, control, elementRef, idService, cdr) {
401
- this.host = host;
402
- this.control = control;
403
- this.elementRef = elementRef;
404
- this.idService = idService;
405
- this.cdr = cdr;
406
- this.datalist = null;
407
- this.selectedMapper = function (option, value) { return value.includes(option); };
408
- }
409
- Object.defineProperty(AbstractTuiNativeMultiSelect.prototype, "id", {
410
- get: function () {
411
- return this.elementRef.nativeElement.id || this.idService.generate();
412
- },
413
- enumerable: false,
414
- configurable: true
415
- });
416
374
  AbstractTuiNativeMultiSelect.prototype.onValueChange = function () {
417
375
  var selectedOptions = this.elementRef.nativeElement.selectedOptions;
418
376
  this.host.onSelectionChange(Array.from(selectedOptions).map(function (option) { return option.value; }));
419
377
  };
420
378
  return AbstractTuiNativeMultiSelect;
421
- }());
422
- AbstractTuiNativeMultiSelect.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AbstractTuiNativeMultiSelect, deps: [{ token: i1.TUI_TEXTFIELD_HOST }, { token: i3.AbstractTuiControl }, { token: i0.ElementRef }, { token: i3.TuiIdService }, { token: i0.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
423
- AbstractTuiNativeMultiSelect.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: AbstractTuiNativeMultiSelect, host: { properties: { "id": "this.id" } }, viewQueries: [{ propertyName: "datalist", first: true, predicate: i1.TuiDataListDirective, descendants: true, read: i0.TemplateRef, static: true }], ngImport: i0__namespace });
379
+ }(abstract.AbstractTuiNativeSelect));
380
+ AbstractTuiNativeMultiSelect.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AbstractTuiNativeMultiSelect, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
381
+ AbstractTuiNativeMultiSelect.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: AbstractTuiNativeMultiSelect, usesInheritance: true, ngImport: i0__namespace });
424
382
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AbstractTuiNativeMultiSelect, decorators: [{
425
383
  type: i0.Directive
426
- }], ctorParameters: function () {
427
- return [{ type: TuiMultiSelectDirective, decorators: [{
428
- type: i0.Inject,
429
- args: [i1.TUI_TEXTFIELD_HOST]
430
- }] }, { type: i3__namespace.AbstractTuiControl, decorators: [{
431
- type: i0.Inject,
432
- args: [i3.AbstractTuiControl]
433
- }] }, { type: i0__namespace.ElementRef, decorators: [{
434
- type: i0.Inject,
435
- args: [i0.ElementRef]
436
- }] }, { type: i3__namespace.TuiIdService, decorators: [{
437
- type: i0.Inject,
438
- args: [i3.TuiIdService]
439
- }] }, { type: i0__namespace.ChangeDetectorRef, decorators: [{
440
- type: i0.Inject,
441
- args: [i0.ChangeDetectorRef]
442
- }] }];
443
- }, propDecorators: { datalist: [{
444
- type: i0.ViewChild,
445
- args: [i1.TuiDataListDirective, { read: i0.TemplateRef, static: true }]
446
- }], id: [{
447
- type: i0.HostBinding,
448
- args: ["id"]
449
- }] } });
384
+ }] });
450
385
 
451
386
  var TuiMultiSelectComponent = /** @class */ (function (_super) {
452
387
  __extends(TuiMultiSelectComponent, _super);
@@ -465,6 +400,7 @@
465
400
  _this.editable = true;
466
401
  _this.disabledItemHandler = _this.itemsHandlers.disabledItemHandler;
467
402
  _this.valueContent = _this.options.valueContent;
403
+ _this.tagValidator = i3.ALWAYS_TRUE_HANDLER;
468
404
  _this.rows = Infinity;
469
405
  _this.searchChange = new i0.EventEmitter();
470
406
  _this.datalist = '';
@@ -484,7 +420,7 @@
484
420
  });
485
421
  Object.defineProperty(TuiMultiSelectComponent.prototype, "arrow", {
486
422
  get: function () {
487
- return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;
423
+ return this.interactive ? this.arrowMode.interactive : this.arrowMode.disabled;
488
424
  },
489
425
  enumerable: false,
490
426
  configurable: true
@@ -560,7 +496,8 @@
560
496
  TuiMultiSelectComponent.prototype.handleOption = function (option) {
561
497
  var _c = this, value = _c.value, identityMatcher = _c.identityMatcher;
562
498
  var index = value.findIndex(function (item) { return identityMatcher(item, option); });
563
- this.updateValue(index === -1 ? __spreadArray(__spreadArray([], __read(value)), [option]) : value.filter(function (_, i) { return i !== index; }));
499
+ this.value =
500
+ index === -1 ? __spreadArray(__spreadArray([], __read(value)), [option]) : value.filter(function (_, i) { return i !== index; });
564
501
  this.updateSearch(null);
565
502
  };
566
503
  TuiMultiSelectComponent.prototype.onEnter = function (event) {
@@ -570,7 +507,7 @@
570
507
  return;
571
508
  }
572
509
  event.preventDefault();
573
- this.updateValue(i3.tuiArrayToggle(value, options[0]));
510
+ this.value = i3.tuiArrayToggle(value, options[0]);
574
511
  this.updateSearch(null);
575
512
  };
576
513
  TuiMultiSelectComponent.prototype.onClick = function (_c) {
@@ -583,13 +520,13 @@
583
520
  }
584
521
  };
585
522
  TuiMultiSelectComponent.prototype.onInput = function (value) {
586
- this.updateValue(value.map(function (_c) {
523
+ this.value = value.map(function (_c) {
587
524
  var item = _c.item;
588
525
  return item;
589
- }));
526
+ });
590
527
  };
591
528
  TuiMultiSelectComponent.prototype.onValueChange = function (value) {
592
- this.updateValue(value);
529
+ this.value = value;
593
530
  };
594
531
  TuiMultiSelectComponent.prototype.onSearch = function (search) {
595
532
  this.updateSearch(search);
@@ -611,12 +548,12 @@
611
548
  return TuiMultiSelectComponent;
612
549
  }(i3.AbstractTuiMultipleControl));
613
550
  TuiMultiSelectComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiMultiSelectComponent, deps: [{ token: i4.NgControl, optional: true, self: true }, { token: i0.ChangeDetectorRef }, { token: arrow.TUI_ARROW_MODE }, { token: tokens.TUI_ITEMS_HANDLERS }, { token: TUI_MULTI_SELECT_OPTIONS }, { token: i1.TUI_TEXTFIELD_WATCHED_CONTROLLER }, { token: i3.TUI_IS_MOBILE }], target: i0__namespace.ɵɵFactoryTarget.Component });
614
- TuiMultiSelectComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMultiSelectComponent, selector: "tui-multi-select", inputs: { stringify: "stringify", identityMatcher: "identityMatcher", expandable: "expandable", search: "search", placeholder: "placeholder", editable: "editable", disabledItemHandler: "disabledItemHandler", valueContent: "valueContent", rows: "rows" }, outputs: { searchChange: "searchChange" }, host: { properties: { "class._editable": "this.editable", "attr.data-size": "this.size" } }, providers: [
551
+ TuiMultiSelectComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMultiSelectComponent, selector: "tui-multi-select", inputs: { stringify: "stringify", identityMatcher: "identityMatcher", expandable: "expandable", search: "search", placeholder: "placeholder", editable: "editable", disabledItemHandler: "disabledItemHandler", valueContent: "valueContent", tagValidator: "tagValidator", rows: "rows" }, outputs: { searchChange: "searchChange" }, host: { properties: { "class._editable": "this.editable", "attr.data-size": "this.size" } }, providers: [
615
552
  i3.tuiAsFocusableItemAccessor(TuiMultiSelectComponent),
616
553
  i3.tuiAsControl(TuiMultiSelectComponent),
617
554
  i1.tuiAsDataListHost(TuiMultiSelectComponent),
618
555
  i1.TEXTFIELD_CONTROLLER_PROVIDER,
619
- ], queries: [{ propertyName: "accessor", first: true, predicate: i1.TUI_DATA_LIST_ACCESSOR, descendants: true }, { propertyName: "nativeSelect", first: true, predicate: AbstractTuiNativeMultiSelect, descendants: true, static: true }, { propertyName: "datalist", first: true, predicate: i1.TuiDataListDirective, descendants: true, read: i0.TemplateRef }], viewQueries: [{ propertyName: "hostedDropdown", first: true, predicate: i1.TuiHostedDropdownComponent, descendants: true }, { propertyName: "input", first: true, predicate: i2.TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativeDropdownMode\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n automation-id=\"tui-multi-select__input\"\n class=\"t-input\"\n [nativeId]=\"nativeId\"\n [tuiTextfieldIcon]=\"icon\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerWrapper\"\n [readOnly]=\"readOnly\"\n [inputHidden]=\"!editable\"\n [pseudoHover]=\"pseudoHover\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoInvalid]=\"computedInvalid\"\n [editable]=\"false\"\n [expandable]=\"expandable\"\n [removable]=\"!nativeDropdownMode\"\n [search]=\"searchOrSpace\"\n [rows]=\"rows\"\n [ngModel]=\"computedValue | tuiMapper : valueMapper : stringify\"\n (ngModelChange)=\"onInput($event)\"\n (searchChange)=\"onSearch($event)\"\n (keydown.space)=\"onSpace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (click.prevent)=\"onClick(inputTag)\"\n >\n <ng-content></ng-content>\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n ></ng-content>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n ></ng-container>\n </tui-input-tag>\n\n <div\n class=\"t-wrapper\"\n [class.t-wrapper_disabled]=\"disabled\"\n >\n <div\n *ngIf=\"computedGroup\"\n class=\"t-group\"\n [class.t-group_fullsize]=\"inputTag.labelOutside\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n\n <ng-template #icon>\n <div\n *ngIf=\"arrow\"\n tuiWrapper\n appearance=\"icon\"\n automation-id=\"tui-multi-select__arrow\"\n tuiPreventDefault=\"mousedown\"\n class=\"t-arrow\"\n [class.t-arrow_native-dropdown]=\"nativeDropdownMode\"\n >\n <ng-container *polymorpheusOutlet=\"arrow as text\">\n {{ text }}\n </ng-container>\n </div>\n </ng-template>\n </div>\n</tui-hosted-dropdown>\n", styles: [":host{position:relative;display:block;border-radius:var(--tui-radius-m)}:host._disabled{pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-input{border-radius:inherit}:host:not(._editable):not(._readonly) .t-input{cursor:pointer}.t-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none;justify-content:flex-end}.t-wrapper_disabled{opacity:var(--tui-disabled-opacity)}:host[data-size=s] .t-wrapper{height:var(--tui-height-s)}:host[data-size=m] .t-wrapper{height:var(--tui-height-m)}:host[data-size=l] .t-wrapper{height:var(--tui-height-l)}.t-group{display:flex;flex:1;align-items:center;padding:1.6875rem 0 .5625rem 1rem;overflow:hidden}.t-group_fullsize{padding-top:.0625rem;padding-bottom:0}:host[data-size=m] .t-group_fullsize.t-group_fullsize{padding-top:0}:host[data-size=m] .t-group{padding:1.1875rem 0 0 .75rem;font-size:.8125rem}.t-arrow{pointer-events:auto;cursor:pointer}.t-arrow_native-dropdown{pointer-events:none}\n"], components: [{ type: i1__namespace.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i2__namespace.TuiInputTagComponent, selector: "tui-input-tag", inputs: ["separator", "search", "editable", "tagValidator", "expandable", "rows", "inputHidden", "uniqueTags", "maxLength", "placeholder", "removable", "disabledItemHandler", "pseudoFocused"], outputs: ["searchChange"] }], directives: [{ type: i3__namespace.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1__namespace.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i4__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1__namespace.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i3__namespace.TuiPreventDefaultDirective, selector: "[tuiPreventDefault]", inputs: ["tuiPreventDefault"] }], pipes: { "tuiMapper": i3__namespace.TuiMapperPipe }, viewProviders: [providers.FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
556
+ ], queries: [{ propertyName: "accessor", first: true, predicate: i1.TUI_DATA_LIST_ACCESSOR, descendants: true }, { propertyName: "nativeSelect", first: true, predicate: AbstractTuiNativeMultiSelect, descendants: true, static: true }, { propertyName: "datalist", first: true, predicate: i1.TuiDataListDirective, descendants: true, read: i0.TemplateRef }], viewQueries: [{ propertyName: "hostedDropdown", first: true, predicate: i1.TuiHostedDropdownComponent, descendants: true }, { propertyName: "input", first: true, predicate: i2.TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativeDropdownMode\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n automation-id=\"tui-multi-select__input\"\n class=\"t-input\"\n [nativeId]=\"nativeId\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerWrapper\"\n [readOnly]=\"readOnly\"\n [inputHidden]=\"!editable\"\n [pseudoHover]=\"pseudoHover\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoInvalid]=\"computedInvalid\"\n [editable]=\"false\"\n [expandable]=\"expandable\"\n [removable]=\"!nativeDropdownMode\"\n [search]=\"searchOrSpace\"\n [tagValidator]=\"tagValidator | tuiMapper : disabledItemHandlerWrapper\"\n [rows]=\"rows\"\n [ngModel]=\"computedValue | tuiMapper : valueMapper : stringify\"\n (ngModelChange)=\"onInput($event)\"\n (searchChange)=\"onSearch($event)\"\n (keydown.space)=\"onSpace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (click.prevent)=\"onClick(inputTag)\"\n >\n <ng-content></ng-content>\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n ></ng-content>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n ></ng-container>\n </tui-input-tag>\n\n <div\n class=\"t-wrapper\"\n [class.t-wrapper_disabled]=\"disabled\"\n >\n <div\n *ngIf=\"computedGroup\"\n class=\"t-group\"\n [class.t-group_fullsize]=\"inputTag.labelOutside\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n\n <ng-template #icon>\n <div\n tuiWrapper\n appearance=\"icon\"\n automation-id=\"tui-multi-select__arrow\"\n tuiPreventDefault=\"mousedown\"\n class=\"t-arrow\"\n [class.t-arrow_native-dropdown]=\"nativeDropdownMode\"\n >\n <ng-container *polymorpheusOutlet=\"arrow as text\">\n {{ text }}\n </ng-container>\n </div>\n </ng-template>\n </div>\n</tui-hosted-dropdown>\n", styles: [":host{position:relative;display:block;border-radius:var(--tui-radius-m)}:host._disabled{pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-input{border-radius:inherit}:host:not(._editable):not(._readonly) .t-input{cursor:pointer}.t-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none;justify-content:flex-end}.t-wrapper_disabled{opacity:var(--tui-disabled-opacity)}:host[data-size=s] .t-wrapper{height:var(--tui-height-s)}:host[data-size=m] .t-wrapper{height:var(--tui-height-m)}:host[data-size=l] .t-wrapper{height:var(--tui-height-l)}.t-group{display:flex;flex:1;align-items:center;padding:1.6875rem 0 .5625rem 1rem;overflow:hidden}.t-group_fullsize{padding-top:.0625rem;padding-bottom:0}:host[data-size=m] .t-group_fullsize.t-group_fullsize{padding-top:0}:host[data-size=m] .t-group{padding:1.1875rem 0 0 .75rem;font-size:.8125rem}.t-arrow{pointer-events:auto;cursor:pointer}.t-arrow_native-dropdown{pointer-events:none}\n"], components: [{ type: i1__namespace.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i2__namespace.TuiInputTagComponent, selector: "tui-input-tag", inputs: ["separator", "search", "editable", "tagValidator", "expandable", "rows", "inputHidden", "uniqueTags", "maxLength", "placeholder", "removable", "disabledItemHandler", "pseudoFocused"], outputs: ["searchChange"] }], directives: [{ type: i3__namespace.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1__namespace.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i4__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1__namespace.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i3__namespace.TuiPreventDefaultDirective, selector: "[tuiPreventDefault]", inputs: ["tuiPreventDefault"] }], pipes: { "tuiMapper": i3__namespace.TuiMapperPipe }, viewProviders: [providers.FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
620
557
  __decorate([
621
558
  i3.tuiDefaultProp()
622
559
  ], TuiMultiSelectComponent.prototype, "stringify", void 0);
@@ -641,6 +578,9 @@
641
578
  __decorate([
642
579
  i3.tuiDefaultProp()
643
580
  ], TuiMultiSelectComponent.prototype, "valueContent", void 0);
581
+ __decorate([
582
+ i3.tuiDefaultProp()
583
+ ], TuiMultiSelectComponent.prototype, "tagValidator", void 0);
644
584
  __decorate([
645
585
  i3.tuiPure
646
586
  ], TuiMultiSelectComponent.prototype, "getStringifier", null);
@@ -717,6 +657,8 @@
717
657
  type: i0.Input
718
658
  }], valueContent: [{
719
659
  type: i0.Input
660
+ }], tagValidator: [{
661
+ type: i0.Input
720
662
  }], rows: [{
721
663
  type: i0.Input
722
664
  }], searchChange: [{
@@ -772,6 +714,36 @@
772
714
  }] }];
773
715
  }, propDecorators: { filter2d: [], filter: [] } });
774
716
 
717
+ var TuiMultiSelectDirective = /** @class */ (function (_super) {
718
+ __extends(TuiMultiSelectDirective, _super);
719
+ function TuiMultiSelectDirective() {
720
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
721
+ _this.disableItemHandler = function (item) { return _this.host.disabledItemHandler(item); };
722
+ return _this;
723
+ }
724
+ Object.defineProperty(TuiMultiSelectDirective.prototype, "readOnly", {
725
+ get: function () {
726
+ return true;
727
+ },
728
+ enumerable: false,
729
+ configurable: true
730
+ });
731
+ TuiMultiSelectDirective.prototype.onValueChange = function () { };
732
+ TuiMultiSelectDirective.prototype.onSelectionChange = function (value) {
733
+ this.host.onValueChange(value);
734
+ };
735
+ return TuiMultiSelectDirective;
736
+ }(i1.AbstractTuiTextfieldHost));
737
+ TuiMultiSelectDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiMultiSelectDirective, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
738
+ TuiMultiSelectDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiMultiSelectDirective, selector: "tui-multi-select", providers: [i1.tuiAsTextfieldHost(TuiMultiSelectDirective)], usesInheritance: true, ngImport: i0__namespace });
739
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiMultiSelectDirective, decorators: [{
740
+ type: i0.Directive,
741
+ args: [{
742
+ selector: 'tui-multi-select',
743
+ providers: [i1.tuiAsTextfieldHost(TuiMultiSelectDirective)],
744
+ }]
745
+ }] });
746
+
775
747
  var TuiMultiSelectGroupComponent = /** @class */ (function () {
776
748
  function TuiMultiSelectGroupComponent(multiSelectTexts$, host, control) {
777
749
  this.multiSelectTexts$ = multiSelectTexts$;
@@ -1018,7 +990,7 @@
1018
990
  provide: AbstractTuiNativeMultiSelect,
1019
991
  useExisting: TuiNativeMultiSelectComponent,
1020
992
  },
1021
- ], usesInheritance: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\"></ng-container>\n\n<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [disabledItemHandler]=\"host.disableItemHandler\"\n></tui-data-list-wrapper>\n<option\n *ngFor=\"let option of items\"\n [selected]=\"option | tuiMapper : selectedMapper : host.value\"\n [value]=\"option\"\n [disabled]=\"host.disableItemHandler(option)\"\n>\n {{ option }}\n</option>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1__namespace$1.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items"] }], directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4__namespace.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4__namespace.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "tuiMapper": i3__namespace.TuiMapperPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
993
+ ], usesInheritance: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\"></ng-container>\n\n<tui-data-list-wrapper\n *tuiDataList\n tuiMultiSelectGroup\n [items]=\"items\"\n [disabledItemHandler]=\"disabledItemHandler || host.disableItemHandler\"\n></tui-data-list-wrapper>\n<option\n *ngFor=\"let option of items\"\n [selected]=\"option | tuiMapper : selectedMapper : host.value\"\n [value]=\"option\"\n [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : host.disableItemHandler(option)\"\n>\n {{ option }}\n</option>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1__namespace$1.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items"] }], directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: TuiMultiSelectGroupDirective, selector: "[tuiMultiSelectGroup]" }, { type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4__namespace.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4__namespace.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "tuiMapper": i3__namespace.TuiMapperPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1022
994
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiNativeMultiSelectComponent, decorators: [{
1023
995
  type: i0.Component,
1024
996
  args: [{
@@ -1079,7 +1051,7 @@
1079
1051
  provide: AbstractTuiNativeMultiSelect,
1080
1052
  useExisting: TuiNativeMultiSelectGroupComponent,
1081
1053
  },
1082
- ], usesInheritance: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\"></ng-container>\n\n<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [labels]=\"labels\"\n [disabledItemHandler]=\"host.disableItemHandler\"\n></tui-data-list-wrapper>\n<optgroup\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n>\n <option\n *ngFor=\"let option of group\"\n [selected]=\"option | tuiMapper : selectedMapper : host.value\"\n [value]=\"option\"\n [disabled]=\"host.disableItemHandler(option)\"\n >\n {{ option }}\n </option>\n</optgroup>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1__namespace$1.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["items", "labels"] }], directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4__namespace.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4__namespace.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "tuiMapper": i3__namespace.TuiMapperPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1054
+ ], usesInheritance: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\"></ng-container>\n\n<tui-data-list-wrapper\n *tuiDataList\n tuiMultiSelectGroup\n [items]=\"items\"\n [labels]=\"labels\"\n [disabledItemHandler]=\"disabledItemHandler || host.disableItemHandler\"\n></tui-data-list-wrapper>\n<optgroup\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n>\n <option\n *ngFor=\"let option of group\"\n [selected]=\"option | tuiMapper : selectedMapper : host.value\"\n [value]=\"option\"\n [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : host.disableItemHandler(option)\"\n >\n {{ option }}\n </option>\n</optgroup>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1__namespace$1.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["items", "labels"] }], directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: TuiMultiSelectGroupDirective, selector: "[tuiMultiSelectGroup]" }, { type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4__namespace.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4__namespace.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "tuiMapper": i3__namespace.TuiMapperPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1083
1055
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiNativeMultiSelectGroupComponent, decorators: [{
1084
1056
  type: i0.Component,
1085
1057
  args: [{