@taiga-ui/kit 3.41.1 → 3.42.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 (379) hide show
  1. package/bundles/taiga-ui-kit-classes.umd.js.map +1 -1
  2. package/bundles/taiga-ui-kit-components-accordion.umd.js +2 -2
  3. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-components-arrow.umd.js +2 -2
  5. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-components-avatar.umd.js +1 -1
  7. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-badged-content.umd.js +1 -1
  9. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +1 -1
  11. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +1 -1
  13. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-calendar-range.umd.js +1 -1
  15. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-carousel.umd.js +25 -25
  17. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +1 -1
  19. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +1 -1
  21. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  23. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-combo-box.umd.js +1 -1
  25. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +2 -2
  27. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-elastic-container.umd.js +1 -1
  29. package/bundles/taiga-ui-kit-components-elastic-container.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-files.umd.js +3 -5
  31. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-copy.umd.js +2 -2
  33. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-count.umd.js +2 -2
  35. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +1 -1
  37. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
  39. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-date.umd.js +1 -1
  41. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-files.umd.js +2 -2
  43. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-inline.umd.js +1 -1
  45. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -1
  47. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -1
  49. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-number.umd.js +2 -2
  51. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -2
  53. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +2 -2
  55. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-phone.umd.js +2 -2
  57. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-range.umd.js +1 -1
  59. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-slider.umd.js +19 -19
  61. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-tag.umd.js +2 -2
  63. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-time.umd.js +2 -2
  65. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-year.umd.js +1 -1
  67. package/bundles/taiga-ui-kit-components-input-year.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input.umd.js +1 -1
  69. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-items-with-more.umd.js +3 -3
  71. package/bundles/taiga-ui-kit-components-items-with-more.umd.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +5 -5
  73. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-multi-select.umd.js +4 -4
  75. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-pagination.umd.js +1 -1
  77. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js +2 -2
  79. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-progress.umd.js +2 -2
  81. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-prompt.umd.js +1 -1
  83. package/bundles/taiga-ui-kit-components-prompt.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-push.umd.js +3 -3
  85. package/bundles/taiga-ui-kit-components-push.umd.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-radio-block.umd.js +1 -1
  87. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +1 -1
  89. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-radio-list.umd.js +1 -1
  91. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-radio.umd.js +2 -2
  93. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-range.umd.js +1 -1
  95. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-rating.umd.js +2 -2
  97. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-select.umd.js +4 -4
  99. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-slider.umd.js +2 -2
  101. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-tabs.umd.js +5 -5
  103. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-tag.umd.js +2 -2
  105. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-textarea.umd.js +2 -2
  107. package/bundles/taiga-ui-kit-components-textarea.umd.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-tiles.umd.js +130 -49
  109. package/bundles/taiga-ui-kit-components-tiles.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-toggle.umd.js +2 -2
  111. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-tree.umd.js +6 -14
  113. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  114. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +1 -1
  115. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-tokens.umd.js +226 -234
  117. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  118. package/components/arrow/arrow.options.d.ts +1 -1
  119. package/components/arrow/arrow.providers.d.ts +1 -1
  120. package/components/avatar/avatar.options.d.ts +1 -1
  121. package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -1
  122. package/components/files/file/file-options.d.ts +1 -2
  123. package/components/input-copy/input-copy.options.d.ts +3 -3
  124. package/components/input-count/input-count.options.d.ts +5 -5
  125. package/components/input-files/input-files.options.d.ts +2 -2
  126. package/components/input-number/input-number.options.d.ts +4 -4
  127. package/components/input-phone/input-phone.options.d.ts +1 -1
  128. package/components/input-tag/input-tag.options.d.ts +1 -1
  129. package/components/input-time/input-time.options.d.ts +3 -3
  130. package/components/items-with-more/items-with-more.service.d.ts +2 -2
  131. package/components/line-clamp/line-clamp.component.d.ts +2 -2
  132. package/components/pdf-viewer/pdf-viewer.options.d.ts +1 -1
  133. package/components/prompt/prompt.component.d.ts +3 -3
  134. package/components/push/push.options.d.ts +4 -4
  135. package/components/radio/radio.options.d.ts +2 -2
  136. package/components/rating/rating.options.d.ts +3 -3
  137. package/components/tabs/tabs.options.d.ts +1 -1
  138. package/components/tabs/underline/underline.component.d.ts +2 -2
  139. package/components/tag/tag.options.d.ts +1 -1
  140. package/components/tiles/index.d.ts +1 -0
  141. package/components/tiles/tile-handle.directive.d.ts +3 -1
  142. package/components/tiles/tile.component.d.ts +7 -14
  143. package/components/tiles/tile.service.d.ts +22 -0
  144. package/components/tiles/tiles.module.d.ts +1 -2
  145. package/components/toggle/toggle.options.d.ts +5 -5
  146. package/components/tree/misc/tree.interfaces.d.ts +1 -1
  147. package/components/tree/misc/tree.tokens.d.ts +2 -2
  148. package/esm2015/classes/stringifiable-item.js +1 -1
  149. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +2 -2
  150. package/esm2015/components/accordion/accordion.component.js +2 -2
  151. package/esm2015/components/arrow/arrow.options.js +3 -3
  152. package/esm2015/components/arrow/arrow.providers.js +3 -3
  153. package/esm2015/components/avatar/avatar.options.js +3 -3
  154. package/esm2015/components/badged-content/badged-content.component.js +2 -2
  155. package/esm2015/components/breadcrumbs/breadcrumbs.options.js +3 -3
  156. package/esm2015/components/calendar-month/calendar-month.component.js +2 -2
  157. package/esm2015/components/calendar-range/calendar-range.component.js +2 -2
  158. package/esm2015/components/carousel/carousel.component.js +4 -4
  159. package/esm2015/components/checkbox/checkbox.component.js +2 -2
  160. package/esm2015/components/checkbox-block/checkbox-block.component.js +2 -2
  161. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +2 -2
  162. package/esm2015/components/combo-box/combo-box.component.js +2 -2
  163. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  164. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  165. package/esm2015/components/elastic-container/elastic-container.component.js +2 -2
  166. package/esm2015/components/files/file/file-options.js +3 -5
  167. package/esm2015/components/files/file/file.component.js +2 -2
  168. package/esm2015/components/files/files.component.js +2 -2
  169. package/esm2015/components/input/input.component.js +2 -2
  170. package/esm2015/components/input-copy/input-copy.component.js +2 -2
  171. package/esm2015/components/input-copy/input-copy.options.js +3 -3
  172. package/esm2015/components/input-count/input-count.component.js +2 -2
  173. package/esm2015/components/input-count/input-count.options.js +3 -3
  174. package/esm2015/components/input-date/input-date.component.js +2 -2
  175. package/esm2015/components/input-date-range/input-date-range.component.js +2 -2
  176. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  177. package/esm2015/components/input-files/input-files.component.js +2 -2
  178. package/esm2015/components/input-files/input-files.options.js +3 -3
  179. package/esm2015/components/input-inline/input-inline.component.js +2 -2
  180. package/esm2015/components/input-month/input-month.component.js +2 -2
  181. package/esm2015/components/input-month-range/input-month-range.component.js +2 -2
  182. package/esm2015/components/input-number/input-number.component.js +2 -2
  183. package/esm2015/components/input-number/input-number.options.js +3 -3
  184. package/esm2015/components/input-password/input-password.component.js +2 -2
  185. package/esm2015/components/input-password/input-password.options.js +3 -3
  186. package/esm2015/components/input-phone/input-phone.component.js +2 -2
  187. package/esm2015/components/input-phone/input-phone.options.js +3 -3
  188. package/esm2015/components/input-phone-international/input-phone-international.component.js +2 -2
  189. package/esm2015/components/input-phone-international/input-phone-international.options.js +3 -3
  190. package/esm2015/components/input-range/input-range.component.js +2 -2
  191. package/esm2015/components/input-slider/input-slider.component.js +6 -6
  192. package/esm2015/components/input-tag/input-tag.component.js +2 -2
  193. package/esm2015/components/input-tag/input-tag.options.js +3 -3
  194. package/esm2015/components/input-time/input-time.component.js +2 -2
  195. package/esm2015/components/input-time/input-time.options.js +3 -3
  196. package/esm2015/components/input-year/input-year.component.js +2 -2
  197. package/esm2015/components/items-with-more/items-with-more.service.js +4 -4
  198. package/esm2015/components/line-clamp/line-clamp.component.js +5 -5
  199. package/esm2015/components/line-clamp/line-clamp.options.js +3 -3
  200. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  201. package/esm2015/components/multi-select/multi-select.options.js +3 -3
  202. package/esm2015/components/multi-select/native-multi-select/native-multi-select-group.component.js +2 -2
  203. package/esm2015/components/multi-select/native-multi-select/native-multi-select.component.js +2 -2
  204. package/esm2015/components/pagination/pagination.component.js +2 -2
  205. package/esm2015/components/pdf-viewer/pdf-viewer.component.js +2 -2
  206. package/esm2015/components/pdf-viewer/pdf-viewer.options.js +3 -3
  207. package/esm2015/components/progress/progress-circle/progress-circle.component.js +2 -2
  208. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +2 -2
  209. package/esm2015/components/prompt/prompt.component.js +2 -2
  210. package/esm2015/components/push/push-alert.component.js +2 -2
  211. package/esm2015/components/push/push.component.js +2 -2
  212. package/esm2015/components/push/push.options.js +3 -3
  213. package/esm2015/components/radio/radio.component.js +2 -2
  214. package/esm2015/components/radio/radio.options.js +3 -3
  215. package/esm2015/components/radio-block/radio-block.component.js +2 -2
  216. package/esm2015/components/radio-labeled/radio-labeled.component.js +2 -2
  217. package/esm2015/components/radio-list/radio-list.component.js +2 -2
  218. package/esm2015/components/range/range.component.js +2 -2
  219. package/esm2015/components/rating/rating.component.js +2 -2
  220. package/esm2015/components/rating/rating.options.js +3 -3
  221. package/esm2015/components/select/native-select/native-select-group.component.js +2 -2
  222. package/esm2015/components/select/native-select/native-select.component.js +2 -2
  223. package/esm2015/components/select/select.component.js +2 -2
  224. package/esm2015/components/select/select.options.js +3 -3
  225. package/esm2015/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.js +2 -2
  226. package/esm2015/components/slider/slider.options.js +3 -3
  227. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +2 -2
  228. package/esm2015/components/tabs/tabs.options.js +3 -3
  229. package/esm2015/components/tabs/underline/underline.component.js +4 -4
  230. package/esm2015/components/tag/tag.component.js +2 -2
  231. package/esm2015/components/tag/tag.options.js +3 -3
  232. package/esm2015/components/textarea/deprecated.js +2 -2
  233. package/esm2015/components/textarea/textarea.component.js +2 -2
  234. package/esm2015/components/tiles/index.js +2 -1
  235. package/esm2015/components/tiles/tile-handle.directive.js +24 -9
  236. package/esm2015/components/tiles/tile.component.js +20 -35
  237. package/esm2015/components/tiles/tile.service.js +84 -0
  238. package/esm2015/components/tiles/tiles.component.js +3 -7
  239. package/esm2015/components/tiles/tiles.module.js +3 -5
  240. package/esm2015/components/toggle/toggle.component.js +2 -2
  241. package/esm2015/components/toggle/toggle.options.js +3 -3
  242. package/esm2015/components/tree/components/tree/tree.component.js +2 -2
  243. package/esm2015/components/tree/components/tree-item-content/tree-item-content.component.js +2 -2
  244. package/esm2015/components/tree/misc/tree.interfaces.js +1 -1
  245. package/esm2015/components/tree/misc/tree.tokens.js +6 -13
  246. package/esm2015/interfaces/file-like.js +1 -1
  247. package/esm2015/interfaces/mobile-calendar-data.js +1 -1
  248. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +2 -2
  249. package/esm2015/tokens/countries-masks.js +218 -220
  250. package/esm2015/tokens/input-date-options.js +3 -3
  251. package/esm2015/tokens/items-handlers.js +3 -3
  252. package/esm2015/tokens/tab-margin.js +3 -5
  253. package/esm2015/tokens/validation-errors.js +3 -5
  254. package/fesm2015/taiga-ui-kit-classes.js.map +1 -1
  255. package/fesm2015/taiga-ui-kit-components-accordion.js +2 -2
  256. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  257. package/fesm2015/taiga-ui-kit-components-arrow.js +3 -3
  258. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  259. package/fesm2015/taiga-ui-kit-components-avatar.js +2 -2
  260. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  261. package/fesm2015/taiga-ui-kit-components-badged-content.js +1 -1
  262. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  263. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +2 -2
  264. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  265. package/fesm2015/taiga-ui-kit-components-calendar-month.js +1 -1
  266. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  267. package/fesm2015/taiga-ui-kit-components-calendar-range.js +1 -1
  268. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  269. package/fesm2015/taiga-ui-kit-components-carousel.js +2 -2
  270. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  271. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +1 -1
  272. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  273. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +1 -1
  274. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  275. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  276. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  277. package/fesm2015/taiga-ui-kit-components-combo-box.js +1 -1
  278. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  279. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +2 -2
  280. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  281. package/fesm2015/taiga-ui-kit-components-elastic-container.js +1 -1
  282. package/fesm2015/taiga-ui-kit-components-elastic-container.js.map +1 -1
  283. package/fesm2015/taiga-ui-kit-components-files.js +5 -7
  284. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  285. package/fesm2015/taiga-ui-kit-components-input-copy.js +3 -3
  286. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  287. package/fesm2015/taiga-ui-kit-components-input-count.js +3 -3
  288. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  289. package/fesm2015/taiga-ui-kit-components-input-date-range.js +1 -1
  290. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  291. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  292. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  293. package/fesm2015/taiga-ui-kit-components-input-date.js +1 -1
  294. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  295. package/fesm2015/taiga-ui-kit-components-input-files.js +3 -3
  296. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  297. package/fesm2015/taiga-ui-kit-components-input-inline.js +1 -1
  298. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  299. package/fesm2015/taiga-ui-kit-components-input-month-range.js +1 -1
  300. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  301. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -1
  302. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  303. package/fesm2015/taiga-ui-kit-components-input-number.js +3 -3
  304. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  305. package/fesm2015/taiga-ui-kit-components-input-password.js +3 -3
  306. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  307. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +3 -3
  308. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  309. package/fesm2015/taiga-ui-kit-components-input-phone.js +3 -3
  310. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  311. package/fesm2015/taiga-ui-kit-components-input-range.js +1 -1
  312. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  313. package/fesm2015/taiga-ui-kit-components-input-slider.js +5 -5
  314. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  315. package/fesm2015/taiga-ui-kit-components-input-tag.js +3 -3
  316. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  317. package/fesm2015/taiga-ui-kit-components-input-time.js +3 -3
  318. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  319. package/fesm2015/taiga-ui-kit-components-input-year.js +1 -1
  320. package/fesm2015/taiga-ui-kit-components-input-year.js.map +1 -1
  321. package/fesm2015/taiga-ui-kit-components-input.js +1 -1
  322. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  323. package/fesm2015/taiga-ui-kit-components-items-with-more.js +3 -3
  324. package/fesm2015/taiga-ui-kit-components-items-with-more.js.map +1 -1
  325. package/fesm2015/taiga-ui-kit-components-line-clamp.js +6 -6
  326. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  327. package/fesm2015/taiga-ui-kit-components-multi-select.js +5 -5
  328. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  329. package/fesm2015/taiga-ui-kit-components-pagination.js +1 -1
  330. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  331. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js +3 -3
  332. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  333. package/fesm2015/taiga-ui-kit-components-progress.js +2 -2
  334. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  335. package/fesm2015/taiga-ui-kit-components-prompt.js +1 -1
  336. package/fesm2015/taiga-ui-kit-components-prompt.js.map +1 -1
  337. package/fesm2015/taiga-ui-kit-components-push.js +4 -4
  338. package/fesm2015/taiga-ui-kit-components-push.js.map +1 -1
  339. package/fesm2015/taiga-ui-kit-components-radio-block.js +1 -1
  340. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  341. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +1 -1
  342. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-radio-list.js +1 -1
  344. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  345. package/fesm2015/taiga-ui-kit-components-radio.js +3 -3
  346. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  347. package/fesm2015/taiga-ui-kit-components-range.js +1 -1
  348. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  349. package/fesm2015/taiga-ui-kit-components-rating.js +3 -3
  350. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  351. package/fesm2015/taiga-ui-kit-components-select.js +5 -5
  352. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  353. package/fesm2015/taiga-ui-kit-components-slider.js +3 -3
  354. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  355. package/fesm2015/taiga-ui-kit-components-tabs.js +6 -6
  356. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  357. package/fesm2015/taiga-ui-kit-components-tag.js +3 -3
  358. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  359. package/fesm2015/taiga-ui-kit-components-textarea.js +2 -2
  360. package/fesm2015/taiga-ui-kit-components-textarea.js.map +1 -1
  361. package/fesm2015/taiga-ui-kit-components-tiles.js +117 -47
  362. package/fesm2015/taiga-ui-kit-components-tiles.js.map +1 -1
  363. package/fesm2015/taiga-ui-kit-components-toggle.js +3 -3
  364. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  365. package/fesm2015/taiga-ui-kit-components-tree.js +7 -15
  366. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  367. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +1 -1
  368. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  369. package/fesm2015/taiga-ui-kit-tokens.js +221 -227
  370. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  371. package/interfaces/file-like.d.ts +2 -2
  372. package/interfaces/mobile-calendar-data.d.ts +3 -3
  373. package/package.json +4 -4
  374. package/tokens/countries-masks.d.ts +1 -2
  375. package/tokens/i18n.d.ts +5 -5
  376. package/tokens/input-date-options.d.ts +1 -1
  377. package/tokens/items-handlers.d.ts +2 -2
  378. package/tokens/tab-margin.d.ts +1 -2
  379. package/tokens/validation-errors.d.ts +1 -2
@@ -1,12 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, Input, Output, HostBinding, HostListener, NgZone, Directive, NgModule } from '@angular/core';
2
+ import { ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, Input, Output, HostBinding, HostListener, Injectable, ViewChild, Directive, NgModule } from '@angular/core';
3
3
  import { MutationObserverService, MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
4
- import { TuiDestroyService, TuiResizeService, tuiArrayShallowEquals, tuiZonefull, tuiGetActualTarget, tuiIsElement } from '@taiga-ui/cdk';
5
- import * as i3 from 'rxjs';
6
- import { Subject, timer, BehaviorSubject, combineLatest } from 'rxjs';
4
+ import { TuiDestroyService, TuiResizeService, tuiArrayShallowEquals, tuiPx, tuiGetActualTarget, tuiIsElement } from '@taiga-ui/cdk';
5
+ import * as i2 from 'rxjs';
6
+ import { Subject, timer, BehaviorSubject, Subscription, combineLatest } from 'rxjs';
7
7
  import { debounce, filter, map, distinctUntilChanged, startWith, debounceTime } from 'rxjs/operators';
8
- import * as i1 from '@angular/common';
9
- import { CommonModule } from '@angular/common';
8
+ import { __decorate } from 'tslib';
9
+ import { shouldCall } from '@tinkoff/ng-event-plugins';
10
10
 
11
11
  class TuiTilesComponent {
12
12
  constructor(el) {
@@ -54,16 +54,12 @@ TuiTilesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
54
54
  provide: MUTATION_OBSERVER_INIT,
55
55
  useValue: { childList: true },
56
56
  },
57
- ], ngImport: i0, template: `
58
- <ng-content></ng-content>
59
- `, isInline: true, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}tui-tile>.t-wrapper{position:absolute;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper{z-index:1;transition:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
57
+ ], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}tui-tile>.t-wrapper{position:absolute;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper{z-index:1;transition:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
60
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTilesComponent, decorators: [{
61
59
  type: Component,
62
60
  args: [{
63
61
  selector: 'tui-tiles',
64
- template: `
65
- <ng-content></ng-content>
66
- `,
62
+ template: '<ng-content></ng-content>',
67
63
  styleUrls: ['./tiles.style.less'],
68
64
  encapsulation: ViewEncapsulation.None,
69
65
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -94,28 +90,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
94
90
  args: ['pointerleave.silent']
95
91
  }] } });
96
92
 
97
- class TuiTileComponent {
98
- constructor(ngZone, el, tiles, resize$, mutation$) {
99
- this.ngZone = ngZone;
93
+ class TuiTileService {
94
+ constructor(el, tiles, resize$, mutation$) {
100
95
  this.el = el;
101
96
  this.tiles = tiles;
102
97
  this.resize$ = resize$;
103
98
  this.mutation$ = mutation$;
104
- this.width = 1;
105
- this.height = 1;
106
- this.dragged = false;
107
- this.offset$ = new BehaviorSubject([0, 0]);
99
+ this.sub = new Subscription();
100
+ this.offset$ = new BehaviorSubject([NaN, NaN]);
108
101
  this.position$ = combineLatest([
109
102
  this.offset$.pipe(distinctUntilChanged(tuiArrayShallowEquals)),
110
103
  this.resize$.pipe(startWith(null)),
111
104
  this.mutation$.pipe(startWith(null)),
112
105
  this.tiles.order$.pipe(debounceTime(0)),
113
- ]).pipe(map(([[left, top]]) => ({
114
- top: top || this.element.offsetTop,
115
- left: left || this.element.offsetLeft,
116
- width: this.element.clientWidth,
117
- height: this.element.clientHeight,
118
- })), tuiZonefull(this.ngZone));
106
+ ]).pipe(map(([offset]) => offset));
107
+ }
108
+ init(element) {
109
+ this.sub.add(this.position$.subscribe(offset => {
110
+ this.setPosition(element, offset);
111
+ this.setRect(element, offset);
112
+ }));
113
+ }
114
+ setOffset(offset) {
115
+ this.offset$.next(offset);
116
+ }
117
+ ngOnDestroy() {
118
+ this.sub.unsubscribe();
119
+ }
120
+ getRect([left, top]) {
121
+ return {
122
+ top: Number.isNaN(top) ? this.el.nativeElement.offsetTop : top,
123
+ left: Number.isNaN(left) ? this.el.nativeElement.offsetLeft : left,
124
+ width: this.el.nativeElement.clientWidth,
125
+ height: this.el.nativeElement.clientHeight,
126
+ right: NaN,
127
+ bottom: NaN,
128
+ };
129
+ }
130
+ setRect({ style }, offset) {
131
+ const { top, left, width, height } = this.getRect(offset);
132
+ style.top = tuiPx(top);
133
+ style.left = tuiPx(left);
134
+ style.width = tuiPx(width);
135
+ style.height = tuiPx(height);
136
+ }
137
+ setPosition(element, [left]) {
138
+ if (!Number.isNaN(left)) {
139
+ element.style.setProperty(`position`, `fixed`);
140
+ return;
141
+ }
142
+ const { style } = element;
143
+ const rect = element.getBoundingClientRect();
144
+ const host = this.el.nativeElement.getBoundingClientRect();
145
+ style.removeProperty(`position`);
146
+ style.top = tuiPx(rect.top - host.top + this.el.nativeElement.offsetTop);
147
+ style.left = tuiPx(rect.left - host.left + this.el.nativeElement.offsetLeft);
148
+ }
149
+ }
150
+ TuiTileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTileService, deps: [{ token: ElementRef }, { token: TuiTilesComponent }, { token: TuiResizeService }, { token: MutationObserverService }], target: i0.ɵɵFactoryTarget.Injectable });
151
+ TuiTileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTileService });
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTileService, decorators: [{
153
+ type: Injectable
154
+ }], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
155
+ type: Inject,
156
+ args: [ElementRef]
157
+ }] }, { type: TuiTilesComponent, decorators: [{
158
+ type: Inject,
159
+ args: [TuiTilesComponent]
160
+ }] }, { type: i2.Observable, decorators: [{
161
+ type: Inject,
162
+ args: [TuiResizeService]
163
+ }] }, { type: i2.Observable, decorators: [{
164
+ type: Inject,
165
+ args: [MutationObserverService]
166
+ }] }]; } });
167
+
168
+ class TuiTileComponent {
169
+ constructor(service, el, tiles) {
170
+ this.service = service;
171
+ this.el = el;
172
+ this.tiles = tiles;
173
+ this.width = 1;
174
+ this.height = 1;
175
+ this.dragged = false;
119
176
  }
120
177
  get column() {
121
178
  return `span var(--tui-width, ${this.width})`;
@@ -136,37 +193,40 @@ class TuiTileComponent {
136
193
  onTransitionEnd() {
137
194
  this.dragged = false;
138
195
  }
196
+ ngAfterViewInit() {
197
+ if (this.wrapper) {
198
+ this.service.init(this.wrapper.nativeElement);
199
+ }
200
+ }
139
201
  ngOnDestroy() {
140
202
  if (this.tiles.element === this.element) {
141
203
  this.tiles.element = null;
142
204
  }
143
205
  }
144
206
  }
145
- TuiTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTileComponent, deps: [{ token: NgZone }, { token: ElementRef }, { token: TuiTilesComponent }, { token: TuiResizeService }, { token: MutationObserverService }], target: i0.ɵɵFactoryTarget.Component });
146
- TuiTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTileComponent, selector: "tui-tile", inputs: { width: "width", height: "height" }, host: { listeners: { "pointerenter": "onEnter()" }, properties: { "class._dragged": "this.dragged", "style.gridColumn": "this.column", "style.gridRow": "this.row" } }, ngImport: i0, template: "<div\n *ngIf=\"position$ | async as position\"\n class=\"t-wrapper\"\n [style.top.px]=\"position.top\"\n [style.left.px]=\"position.left\"\n [style.width.px]=\"position.width\"\n [style.height.px]=\"position.height\"\n (transitionend.self)=\"onTransitionEnd()\"\n>\n <ng-content></ng-content>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
207
+ TuiTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTileComponent, deps: [{ token: TuiTileService }, { token: ElementRef }, { token: TuiTilesComponent }], target: i0.ɵɵFactoryTarget.Component });
208
+ TuiTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTileComponent, selector: "tui-tile", inputs: { width: "width", height: "height" }, host: { listeners: { "pointerenter": "onEnter()" }, properties: { "class._dragged": "this.dragged", "style.gridColumn": "this.column", "style.gridRow": "this.row" } }, providers: [TuiTileService], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }], ngImport: i0, template: "<div\n #wrapper\n class=\"t-wrapper\"\n (transitionend.self)=\"onTransitionEnd()\"\n>\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
147
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTileComponent, decorators: [{
148
210
  type: Component,
149
211
  args: [{
150
212
  selector: 'tui-tile',
151
213
  templateUrl: './tile.template.html',
152
214
  changeDetection: ChangeDetectionStrategy.OnPush,
215
+ providers: [TuiTileService],
153
216
  }]
154
- }], ctorParameters: function () { return [{ type: i0.NgZone, decorators: [{
217
+ }], ctorParameters: function () { return [{ type: TuiTileService, decorators: [{
155
218
  type: Inject,
156
- args: [NgZone]
219
+ args: [TuiTileService]
157
220
  }] }, { type: i0.ElementRef, decorators: [{
158
221
  type: Inject,
159
222
  args: [ElementRef]
160
223
  }] }, { type: TuiTilesComponent, decorators: [{
161
224
  type: Inject,
162
225
  args: [TuiTilesComponent]
163
- }] }, { type: i3.Observable, decorators: [{
164
- type: Inject,
165
- args: [TuiResizeService]
166
- }] }, { type: i3.Observable, decorators: [{
167
- type: Inject,
168
- args: [MutationObserverService]
169
- }] }]; }, propDecorators: { width: [{
226
+ }] }]; }, propDecorators: { wrapper: [{
227
+ type: ViewChild,
228
+ args: ['wrapper']
229
+ }], width: [{
170
230
  type: Input
171
231
  }], height: [{
172
232
  type: Input
@@ -184,8 +244,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
184
244
  args: ['pointerenter']
185
245
  }] } });
186
246
 
247
+ function isInteracting(x = NaN) {
248
+ return !Number.isNaN(x) || !Number.isNaN(this['x']);
249
+ }
187
250
  class TuiTileHandleDirective {
188
- constructor(tile) {
251
+ constructor(service, tile) {
252
+ this.service = service;
189
253
  this.tile = tile;
190
254
  this.x = NaN;
191
255
  this.y = NaN;
@@ -199,19 +263,23 @@ class TuiTileHandleDirective {
199
263
  this.onPointer(x, y);
200
264
  }
201
265
  onPointer(x = NaN, y = NaN) {
202
- this.x = x - this.tile.element.offsetLeft;
203
- this.y = y - this.tile.element.offsetTop;
266
+ const { left, top } = this.tile.element.getBoundingClientRect();
267
+ this.x = x - left;
268
+ this.y = y - top;
204
269
  this.tile.onDrag(!Number.isNaN(x));
205
- this.tile.offset$.next([0, 0]);
270
+ this.service.setOffset([NaN, NaN]);
206
271
  }
207
272
  onMove(x, y) {
208
273
  if (!Number.isNaN(this.x)) {
209
- this.tile.offset$.next([x - this.x, y - this.y]);
274
+ this.service.setOffset([x - this.x, y - this.y]);
210
275
  }
211
276
  }
212
277
  }
213
- TuiTileHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTileHandleDirective, deps: [{ token: TuiTileComponent }], target: i0.ɵɵFactoryTarget.Directive });
278
+ TuiTileHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTileHandleDirective, deps: [{ token: TuiTileService }, { token: TuiTileComponent }], target: i0.ɵɵFactoryTarget.Directive });
214
279
  TuiTileHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiTileHandleDirective, selector: "[tuiTileHandle]", host: { listeners: { "pointerdown.silent.prevent": "onStart($event)", "document:pointerup.silent": "onPointer()", "document:pointermove.silent": "onMove($event.x,$event.y)" }, properties: { "style.touchAction": "\"none\"" } }, ngImport: i0 });
280
+ __decorate([
281
+ shouldCall(isInteracting)
282
+ ], TuiTileHandleDirective.prototype, "onPointer", null);
215
283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTileHandleDirective, decorators: [{
216
284
  type: Directive,
217
285
  args: [{
@@ -220,7 +288,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
220
288
  '[style.touchAction]': '"none"',
221
289
  },
222
290
  }]
223
- }], ctorParameters: function () { return [{ type: TuiTileComponent, decorators: [{
291
+ }], ctorParameters: function () { return [{ type: TuiTileService, decorators: [{
292
+ type: Inject,
293
+ args: [TuiTileService]
294
+ }] }, { type: TuiTileComponent, decorators: [{
224
295
  type: Inject,
225
296
  args: [TuiTileComponent]
226
297
  }] }]; }, propDecorators: { onStart: [{
@@ -237,12 +308,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
237
308
  class TuiTilesModule {
238
309
  }
239
310
  TuiTilesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
240
- TuiTilesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTilesModule, declarations: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective], imports: [CommonModule], exports: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective] });
241
- TuiTilesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTilesModule, imports: [[CommonModule]] });
311
+ TuiTilesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTilesModule, declarations: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective], exports: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective] });
312
+ TuiTilesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTilesModule });
242
313
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTilesModule, decorators: [{
243
314
  type: NgModule,
244
315
  args: [{
245
- imports: [CommonModule],
246
316
  declarations: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective],
247
317
  exports: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective],
248
318
  }]
@@ -252,5 +322,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
252
322
  * Generated bundle index. Do not edit.
253
323
  */
254
324
 
255
- export { TuiTileComponent, TuiTileHandleDirective, TuiTilesComponent, TuiTilesModule };
325
+ export { TuiTileComponent, TuiTileHandleDirective, TuiTileService, TuiTilesComponent, TuiTilesModule };
256
326
  //# sourceMappingURL=taiga-ui-kit-components-tiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-tiles.js","sources":["../../../projects/kit/components/tiles/tiles.component.ts","../../../projects/kit/components/tiles/tile.component.ts","../../../projects/kit/components/tiles/tile.template.html","../../../projects/kit/components/tiles/tile-handle.directive.ts","../../../projects/kit/components/tiles/tiles.module.ts","../../../projects/kit/components/tiles/taiga-ui-kit-components-tiles.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n MUTATION_OBSERVER_INIT,\n MutationObserverService,\n} from '@ng-web-apis/mutation-observer';\nimport {TuiDestroyService, TuiResizeService} from '@taiga-ui/cdk';\nimport {BehaviorSubject, Subject, timer} from 'rxjs';\nimport {debounce, filter, map} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-tiles',\n template: `\n <ng-content></ng-content>\n `,\n styleUrls: ['./tiles.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiDestroyService,\n TuiResizeService,\n MutationObserverService,\n {\n provide: MUTATION_OBSERVER_INIT,\n useValue: {childList: true},\n },\n ],\n})\nexport class TuiTilesComponent {\n private readonly el$ = new Subject<Element | undefined>();\n\n @Input()\n debounce = 0;\n\n @Input()\n set order(map: Map<number, number>) {\n this.order$.next(map);\n }\n\n get order(): Map<number, number> {\n return this.order$.value;\n }\n\n @Output()\n readonly orderChange = this.el$.pipe(\n debounce(() => timer(this.debounce)),\n filter(this.filter.bind(this)),\n map(element => this.reorder(element)),\n );\n\n @HostBinding('class._dragged')\n element: Element | null = null;\n\n readonly order$ = new BehaviorSubject(new Map<number, number>());\n\n constructor(@Inject(ElementRef) private readonly el: ElementRef<Element>) {}\n\n @HostListener('pointerleave.silent')\n rearrange(element?: Element): void {\n this.el$.next(element);\n }\n\n private filter(element?: Element): element is Element {\n return !!this.element && !!element && this.element !== element;\n }\n\n private reorder(element: Element): Map<number, number> {\n const elements = Array.from(this.el.nativeElement.children);\n const currentIndex = elements.indexOf(this.element || element);\n const newIndex = elements.indexOf(element);\n const order = this.order.size\n ? new Map(this.order)\n : new Map(elements.map((_, index) => [index, index]));\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n\n order.set(currentIndex, placement);\n order.set(newIndex, dragged);\n\n this.order$.next(order);\n\n return order;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n} from '@angular/core';\nimport {MutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {tuiArrayShallowEquals, TuiResizeService, tuiZonefull} from '@taiga-ui/cdk';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {debounceTime, distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiTilesComponent} from './tiles.component';\n\n@Component({\n selector: 'tui-tile',\n templateUrl: './tile.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTileComponent implements OnDestroy {\n @Input()\n width = 1;\n\n @Input()\n height = 1;\n\n @HostBinding('class._dragged')\n dragged = false;\n\n readonly offset$ = new BehaviorSubject<[number, number]>([0, 0]);\n\n readonly position$ = combineLatest([\n this.offset$.pipe(distinctUntilChanged(tuiArrayShallowEquals)),\n this.resize$.pipe(startWith(null)),\n this.mutation$.pipe(startWith(null)),\n this.tiles.order$.pipe(debounceTime(0)),\n ]).pipe(\n map(([[left, top]]) => ({\n top: top || this.element.offsetTop,\n left: left || this.element.offsetLeft,\n width: this.element.clientWidth,\n height: this.element.clientHeight,\n })),\n tuiZonefull(this.ngZone),\n );\n\n constructor(\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n @Inject(TuiTilesComponent) private readonly tiles: TuiTilesComponent,\n @Inject(TuiResizeService) private readonly resize$: Observable<unknown>,\n @Inject(MutationObserverService) private readonly mutation$: Observable<unknown>,\n ) {}\n\n @HostBinding('style.gridColumn')\n get column(): string {\n return `span var(--tui-width, ${this.width})`;\n }\n\n @HostBinding('style.gridRow')\n get row(): string {\n return `span var(--tui-height, ${this.height})`;\n }\n\n get element(): HTMLElement {\n return this.el.nativeElement;\n }\n\n @HostListener('pointerenter')\n onEnter(): void {\n this.tiles.rearrange(this.element);\n }\n\n onDrag(dragged: boolean): void {\n this.dragged = this.dragged || dragged;\n this.tiles.element = dragged ? this.element : null;\n }\n\n onTransitionEnd(): void {\n this.dragged = false;\n }\n\n ngOnDestroy(): void {\n if (this.tiles.element === this.element) {\n this.tiles.element = null;\n }\n }\n}\n","<div\n *ngIf=\"position$ | async as position\"\n class=\"t-wrapper\"\n [style.top.px]=\"position.top\"\n [style.left.px]=\"position.left\"\n [style.width.px]=\"position.width\"\n [style.height.px]=\"position.height\"\n (transitionend.self)=\"onTransitionEnd()\"\n>\n <ng-content></ng-content>\n</div>\n","import {Directive, HostListener, Inject} from '@angular/core';\nimport {tuiGetActualTarget, tuiIsElement} from '@taiga-ui/cdk';\n\nimport {TuiTileComponent} from './tile.component';\n\n@Directive({\n selector: '[tuiTileHandle]',\n host: {\n '[style.touchAction]': '\"none\"',\n },\n})\nexport class TuiTileHandleDirective {\n private x = NaN;\n private y = NaN;\n\n constructor(@Inject(TuiTileComponent) private readonly tile: TuiTileComponent) {}\n\n @HostListener('pointerdown.silent.prevent', ['$event'])\n onStart(event: PointerEvent): void {\n const target = tuiGetActualTarget(event);\n const {x, y, pointerId} = event;\n\n if (tuiIsElement(target)) {\n target.releasePointerCapture(pointerId);\n }\n\n this.onPointer(x, y);\n }\n\n @HostListener('document:pointerup.silent')\n onPointer(x = NaN, y = NaN): void {\n this.x = x - this.tile.element.offsetLeft;\n this.y = y - this.tile.element.offsetTop;\n this.tile.onDrag(!Number.isNaN(x));\n this.tile.offset$.next([0, 0]);\n }\n\n @HostListener('document:pointermove.silent', ['$event.x', '$event.y'])\n onMove(x: number, y: number): void {\n if (!Number.isNaN(this.x)) {\n this.tile.offset$.next([x - this.x, y - this.y]);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {TuiTileComponent} from './tile.component';\nimport {TuiTileHandleDirective} from './tile-handle.directive';\nimport {TuiTilesComponent} from './tiles.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective],\n exports: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective],\n})\nexport class TuiTilesModule {}\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-tiles.js","sources":["../../../projects/kit/components/tiles/tiles.component.ts","../../../projects/kit/components/tiles/tile.service.ts","../../../projects/kit/components/tiles/tile.component.ts","../../../projects/kit/components/tiles/tile.template.html","../../../projects/kit/components/tiles/tile-handle.directive.ts","../../../projects/kit/components/tiles/tiles.module.ts","../../../projects/kit/components/tiles/taiga-ui-kit-components-tiles.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n MUTATION_OBSERVER_INIT,\n MutationObserverService,\n} from '@ng-web-apis/mutation-observer';\nimport {TuiDestroyService, TuiResizeService} from '@taiga-ui/cdk';\nimport {BehaviorSubject, Subject, timer} from 'rxjs';\nimport {debounce, filter, map} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-tiles',\n template: '<ng-content></ng-content>',\n styleUrls: ['./tiles.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiDestroyService,\n TuiResizeService,\n MutationObserverService,\n {\n provide: MUTATION_OBSERVER_INIT,\n useValue: {childList: true},\n },\n ],\n})\nexport class TuiTilesComponent {\n private readonly el$ = new Subject<Element | undefined>();\n\n @Input()\n debounce = 0;\n\n @Input()\n set order(map: Map<number, number>) {\n this.order$.next(map);\n }\n\n get order(): Map<number, number> {\n return this.order$.value;\n }\n\n @Output()\n readonly orderChange = this.el$.pipe(\n debounce(() => timer(this.debounce)),\n filter(this.filter.bind(this)),\n map(element => this.reorder(element)),\n );\n\n @HostBinding('class._dragged')\n element: Element | null = null;\n\n readonly order$ = new BehaviorSubject(new Map<number, number>());\n\n constructor(@Inject(ElementRef) private readonly el: ElementRef<Element>) {}\n\n @HostListener('pointerleave.silent')\n rearrange(element?: Element): void {\n this.el$.next(element);\n }\n\n private filter(element?: Element): element is Element {\n return !!this.element && !!element && this.element !== element;\n }\n\n private reorder(element: Element): Map<number, number> {\n const elements = Array.from(this.el.nativeElement.children);\n const currentIndex = elements.indexOf(this.element || element);\n const newIndex = elements.indexOf(element);\n const order = this.order.size\n ? new Map(this.order)\n : new Map(elements.map((_, index) => [index, index]));\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n\n order.set(currentIndex, placement);\n order.set(newIndex, dragged);\n\n this.order$.next(order);\n\n return order;\n }\n}\n","import {ElementRef, Inject, Injectable, OnDestroy} from '@angular/core';\nimport {MutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {tuiArrayShallowEquals, tuiPx, TuiResizeService} from '@taiga-ui/cdk';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {debounceTime, distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiTilesComponent} from './tiles.component';\n\n@Injectable()\nexport class TuiTileService implements OnDestroy {\n private readonly sub = new Subscription();\n\n private readonly offset$ = new BehaviorSubject<readonly [number, number]>([NaN, NaN]);\n\n private readonly position$: Observable<readonly [number, number]> = combineLatest([\n this.offset$.pipe(distinctUntilChanged(tuiArrayShallowEquals)),\n this.resize$.pipe(startWith(null)),\n this.mutation$.pipe(startWith(null)),\n this.tiles.order$.pipe(debounceTime(0)),\n ]).pipe(map(([offset]) => offset));\n\n constructor(\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n @Inject(TuiTilesComponent) private readonly tiles: TuiTilesComponent,\n @Inject(TuiResizeService) private readonly resize$: Observable<unknown>,\n @Inject(MutationObserverService) private readonly mutation$: Observable<unknown>,\n ) {}\n\n init(element: HTMLElement): void {\n this.sub.add(\n this.position$.subscribe(offset => {\n this.setPosition(element, offset);\n this.setRect(element, offset);\n }),\n );\n }\n\n setOffset(offset: readonly [number, number]): void {\n this.offset$.next(offset);\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n\n private getRect([left, top]: readonly [number, number]): ClientRect {\n return {\n top: Number.isNaN(top) ? this.el.nativeElement.offsetTop : top,\n left: Number.isNaN(left) ? this.el.nativeElement.offsetLeft : left,\n width: this.el.nativeElement.clientWidth,\n height: this.el.nativeElement.clientHeight,\n right: NaN,\n bottom: NaN,\n };\n }\n\n private setRect({style}: HTMLElement, offset: readonly [number, number]): void {\n const {top, left, width, height} = this.getRect(offset);\n\n style.top = tuiPx(top);\n style.left = tuiPx(left);\n style.width = tuiPx(width);\n style.height = tuiPx(height);\n }\n\n private setPosition(element: HTMLElement, [left]: readonly [number, number]): void {\n if (!Number.isNaN(left)) {\n element.style.setProperty(`position`, `fixed`);\n\n return;\n }\n\n const {style} = element;\n const rect = element.getBoundingClientRect();\n const host = this.el.nativeElement.getBoundingClientRect();\n\n style.removeProperty(`position`);\n style.top = tuiPx(rect.top - host.top + this.el.nativeElement.offsetTop);\n style.left = tuiPx(rect.left - host.left + this.el.nativeElement.offsetLeft);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\n\nimport {TuiTileService} from './tile.service';\nimport {TuiTilesComponent} from './tiles.component';\n\n@Component({\n selector: 'tui-tile',\n templateUrl: './tile.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiTileService],\n})\nexport class TuiTileComponent implements OnDestroy, AfterViewInit {\n @ViewChild('wrapper')\n private readonly wrapper?: ElementRef<HTMLElement>;\n\n @Input()\n width = 1;\n\n @Input()\n height = 1;\n\n @HostBinding('class._dragged')\n dragged = false;\n\n constructor(\n @Inject(TuiTileService) private readonly service: TuiTileService,\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n @Inject(TuiTilesComponent) private readonly tiles: TuiTilesComponent,\n ) {}\n\n @HostBinding('style.gridColumn')\n get column(): string {\n return `span var(--tui-width, ${this.width})`;\n }\n\n @HostBinding('style.gridRow')\n get row(): string {\n return `span var(--tui-height, ${this.height})`;\n }\n\n get element(): HTMLElement {\n return this.el.nativeElement;\n }\n\n @HostListener('pointerenter')\n onEnter(): void {\n this.tiles.rearrange(this.element);\n }\n\n onDrag(dragged: boolean): void {\n this.dragged = this.dragged || dragged;\n this.tiles.element = dragged ? this.element : null;\n }\n\n onTransitionEnd(): void {\n this.dragged = false;\n }\n\n ngAfterViewInit(): void {\n if (this.wrapper) {\n this.service.init(this.wrapper.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n if (this.tiles.element === this.element) {\n this.tiles.element = null;\n }\n }\n}\n","<div\n #wrapper\n class=\"t-wrapper\"\n (transitionend.self)=\"onTransitionEnd()\"\n>\n <ng-content></ng-content>\n</div>\n","import {Directive, HostListener, Inject} from '@angular/core';\nimport {tuiGetActualTarget, tuiIsElement} from '@taiga-ui/cdk';\nimport {shouldCall} from '@tinkoff/ng-event-plugins';\n\nimport {TuiTileComponent} from './tile.component';\nimport {TuiTileService} from './tile.service';\n\nfunction isInteracting(this: TuiTileHandleDirective, x = NaN): boolean {\n return !Number.isNaN(x) || !Number.isNaN(this['x']);\n}\n\n@Directive({\n selector: '[tuiTileHandle]',\n host: {\n '[style.touchAction]': '\"none\"',\n },\n})\nexport class TuiTileHandleDirective {\n private x = NaN;\n private y = NaN;\n\n constructor(\n @Inject(TuiTileService) private readonly service: TuiTileService,\n @Inject(TuiTileComponent) private readonly tile: TuiTileComponent,\n ) {}\n\n @HostListener('pointerdown.silent.prevent', ['$event'])\n onStart(event: PointerEvent): void {\n const target = tuiGetActualTarget(event);\n const {x, y, pointerId} = event;\n\n if (tuiIsElement(target)) {\n target.releasePointerCapture(pointerId);\n }\n\n this.onPointer(x, y);\n }\n\n @shouldCall(isInteracting)\n @HostListener('document:pointerup.silent')\n onPointer(x = NaN, y = NaN): void {\n const {left, top} = this.tile.element.getBoundingClientRect();\n\n this.x = x - left;\n this.y = y - top;\n this.tile.onDrag(!Number.isNaN(x));\n this.service.setOffset([NaN, NaN]);\n }\n\n @HostListener('document:pointermove.silent', ['$event.x', '$event.y'])\n onMove(x: number, y: number): void {\n if (!Number.isNaN(this.x)) {\n this.service.setOffset([x - this.x, y - this.y]);\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiTileComponent} from './tile.component';\nimport {TuiTileHandleDirective} from './tile-handle.directive';\nimport {TuiTilesComponent} from './tiles.component';\n\n@NgModule({\n declarations: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective],\n exports: [TuiTilesComponent, TuiTileComponent, TuiTileHandleDirective],\n})\nexport class TuiTilesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { ChangeDetectorRef, Component, ChangeDetectionStrategy, Optional, Self,
3
3
  import * as i5 from '@angular/forms';
4
4
  import { NgControl } from '@angular/forms';
5
5
  import * as i4 from '@taiga-ui/cdk';
6
- import { tuiCreateOptions, tuiProvideOptions, AbstractTuiControl, tuiIsNativeFocused, tuiAsFocusableItemAccessor, tuiAsControl, TuiFocusedModule, TuiFocusableModule, TuiPressedModule, TuiFocusVisibleModule, TuiCheckedModule } from '@taiga-ui/cdk';
6
+ import { tuiCreateToken, tuiProvideOptions, AbstractTuiControl, tuiIsNativeFocused, tuiAsFocusableItemAccessor, tuiAsControl, TuiFocusedModule, TuiFocusableModule, TuiPressedModule, TuiFocusVisibleModule, TuiCheckedModule } from '@taiga-ui/cdk';
7
7
  import * as i1 from '@taiga-ui/core';
8
8
  import { TuiAppearance, TuiModeDirective, TuiWrapperModule, TuiSvgModule, TuiLoaderModule } from '@taiga-ui/core';
9
9
  import * as i2 from '@angular/common';
@@ -32,7 +32,7 @@ const TUI_TOGGLE_DEFAULT_OPTIONS = {
32
32
  /**
33
33
  * Default parameters for Toggle component
34
34
  */
35
- const TUI_TOGGLE_OPTIONS = tuiCreateOptions(TUI_TOGGLE_DEFAULT_OPTIONS);
35
+ const TUI_TOGGLE_OPTIONS = tuiCreateToken(TUI_TOGGLE_DEFAULT_OPTIONS);
36
36
  function tuiToggleOptionsProvider(options) {
37
37
  return tuiProvideOptions(TUI_TOGGLE_OPTIONS, options, TUI_TOGGLE_DEFAULT_OPTIONS);
38
38
  }
@@ -91,7 +91,7 @@ TuiToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
91
91
  TuiToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiToggleComponent, selector: "tui-toggle", inputs: { singleColor: "singleColor", showIcons: "showIcons", showLoader: "showLoader", size: "size" }, host: { properties: { "class._checked": "value", "attr.data-size": "this.size", "attr.data-mode": "this.hostMode" } }, providers: [
92
92
  tuiAsFocusableItemAccessor(TuiToggleComponent),
93
93
  tuiAsControl(TuiToggleComponent),
94
- ], viewQueries: [{ propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiWrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocusVisible\"\n [hover]=\"pseudoHover\"\n [active]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n>\n <div class=\"t-toggle\">\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-loader\"\n [size]=\"loaderSize\"\n [inheritColor]=\"true\"\n [showLoader]=\"value\"\n ></tui-loader>\n <span\n *ngIf=\"showIcons && !showLoader\"\n class=\"t-icon-wrapper\"\n >\n <tui-svg\n *polymorpheusOutlet=\"iconOn as src; context: {$implicit: size}\"\n automation-id=\"tui-toggle__check-icon\"\n class=\"t-icon\"\n [src]=\"src\"\n ></tui-svg>\n </span>\n <div class=\"t-circle\"></div>\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-loader\"\n [size]=\"loaderSize\"\n [inheritColor]=\"true\"\n [showLoader]=\"!value\"\n ></tui-loader>\n <span\n *ngIf=\"showIcons && !showLoader\"\n class=\"t-icon-wrapper\"\n >\n <tui-svg\n *polymorpheusOutlet=\"iconOff as src; context: {$implicit: size}\"\n automation-id=\"tui-toggle__cancel-icon\"\n class=\"t-icon t-icon_off\"\n [src]=\"src\"\n ></tui-svg>\n </span>\n </div>\n <input\n #focusableElement\n type=\"checkbox\"\n role=\"switch\"\n automation-id=\"tui-toggle__checkbox\"\n class=\"t-checkbox\"\n [attr.aria-checked]=\"value\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [tuiFocusable]=\"focusable\"\n [(tuiChecked)]=\"value\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n />\n</div>\n", styles: [":host{position:relative;display:inline-block;vertical-align:middle;overflow:hidden;border-radius:6.25rem}:host[data-size=m]{width:2rem;height:1rem}:host[data-size=l]{width:3rem;height:1.5rem}.t-checkbox{padding:0;margin:0;border:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;height:100%;width:100%;opacity:0;cursor:pointer}.t-checkbox:-webkit-autofill,.t-checkbox:-webkit-autofill:hover,.t-checkbox:-webkit-autofill:focus{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}:host._disabled .t-checkbox{pointer-events:none;cursor:default}.t-toggle{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:center}:host[data-size=m] .t-toggle{width:3rem;height:1rem;transform:translate(-1rem)}:host[data-size=l] .t-toggle{width:4.5rem;height:1.5rem;transform:translate(-1.5rem)}:host._checked .t-toggle{transform:translate(0)}.t-circle{margin:.125rem 0;flex-shrink:0;border-radius:100%;background-color:var(--tui-base-01)}:host._disabled .t-circle_light{opacity:.24}:host[data-size=m] .t-circle{width:.75rem;height:.75rem}:host[data-size=l] .t-circle{width:1rem;height:1rem}:host._disabled .t-circle{background-color:var(--tui-base-01)}:host:not(._checked) .t-loader{color:var(--tui-base-06)}:host:not(._checked)._disabled .t-loader{color:var(--tui-base-05)}:host:not(._checked)[data-mode=onDark] .t-loader{color:var(--tui-text-03-night)}:host:not(._checked)[data-mode=onDark]._disabled .t-loader{color:var(--tui-clear-inverse-active)}:host:not(._checked)[data-mode=onLight] .t-loader{color:var(--tui-text-03)}:host:not(._checked)[data-mode=onLight]._disabled .t-loader{color:var(--tui-clear-active)}:host[data-size=m] .t-loader{width:.75rem;margin:0 .2rem;transform:scale(.75)}:host[data-size=l] .t-loader{width:1rem;margin:0 .25rem}.t-icon-wrapper{display:flex}.t-icon{opacity:.8}.t-icon_off{color:var(--tui-base-06)}:host._disabled .t-icon_off{color:var(--tui-base-05)}:host[data-mode=onDark] .t-icon_off{color:var(--tui-text-03-night)}:host[data-mode=onDark]._disabled .t-icon_off{color:var(--tui-clear-inverse-active)}:host[data-mode=onLight] .t-icon_off{color:var(--tui-text-03)}:host[data-mode=onLight]._disabled .t-icon_off{color:var(--tui-clear-active)}:host[data-size=m] .t-icon{width:1rem;height:1rem;transform:scale(.75)}:host[data-size=l] .t-icon{margin:0 .125rem;width:1.5rem;height:1.5rem}:host:hover .t-icon{opacity:1}\n"], components: [{ type: i1.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i4.TuiCheckedDirective, selector: "input[tuiChecked], input[tuiCheckedChange]", inputs: ["tuiChecked"], outputs: ["tuiCheckedChange"] }, { type: i4.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }, { type: i4.TuiFocusedDirective, selector: "[tuiFocusedChange]", outputs: ["tuiFocusedChange"] }, { type: i4.TuiFocusVisibleDirective, selector: "[tuiFocusVisibleChange]", outputs: ["tuiFocusVisibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
94
+ ], viewQueries: [{ propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiWrapper\n [active]=\"pseudoActive\"\n [appearance]=\"appearance\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocusVisible\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n>\n <div class=\"t-toggle\">\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-loader\"\n [inheritColor]=\"true\"\n [showLoader]=\"value\"\n [size]=\"loaderSize\"\n ></tui-loader>\n <span\n *ngIf=\"showIcons && !showLoader\"\n class=\"t-icon-wrapper\"\n >\n <tui-svg\n *polymorpheusOutlet=\"iconOn as src; context: {$implicit: size}\"\n automation-id=\"tui-toggle__check-icon\"\n class=\"t-icon\"\n [src]=\"src\"\n ></tui-svg>\n </span>\n <div class=\"t-circle\"></div>\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-loader\"\n [inheritColor]=\"true\"\n [showLoader]=\"!value\"\n [size]=\"loaderSize\"\n ></tui-loader>\n <span\n *ngIf=\"showIcons && !showLoader\"\n class=\"t-icon-wrapper\"\n >\n <tui-svg\n *polymorpheusOutlet=\"iconOff as src; context: {$implicit: size}\"\n automation-id=\"tui-toggle__cancel-icon\"\n class=\"t-icon t-icon_off\"\n [src]=\"src\"\n ></tui-svg>\n </span>\n </div>\n <input\n #focusableElement\n automation-id=\"tui-toggle__checkbox\"\n role=\"switch\"\n type=\"checkbox\"\n class=\"t-checkbox\"\n [attr.aria-checked]=\"value\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [tuiFocusable]=\"focusable\"\n [(tuiChecked)]=\"value\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n />\n</div>\n", styles: [":host{position:relative;display:inline-block;vertical-align:middle;overflow:hidden;border-radius:6.25rem}:host[data-size=m]{width:2rem;height:1rem}:host[data-size=l]{width:3rem;height:1.5rem}.t-checkbox{padding:0;margin:0;border:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;height:100%;width:100%;opacity:0;cursor:pointer}.t-checkbox:-webkit-autofill,.t-checkbox:-webkit-autofill:hover,.t-checkbox:-webkit-autofill:focus{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}:host._disabled .t-checkbox{pointer-events:none;cursor:default}.t-toggle{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:center}:host[data-size=m] .t-toggle{width:3rem;height:1rem;transform:translate(-1rem)}:host[data-size=l] .t-toggle{width:4.5rem;height:1.5rem;transform:translate(-1.5rem)}:host._checked .t-toggle{transform:translate(0)}.t-circle{margin:.125rem 0;flex-shrink:0;border-radius:100%;background-color:var(--tui-base-01)}:host._disabled .t-circle_light{opacity:.24}:host[data-size=m] .t-circle{width:.75rem;height:.75rem}:host[data-size=l] .t-circle{width:1rem;height:1rem}:host._disabled .t-circle{background-color:var(--tui-base-01)}:host:not(._checked) .t-loader{color:var(--tui-base-06)}:host:not(._checked)._disabled .t-loader{color:var(--tui-base-05)}:host:not(._checked)[data-mode=onDark] .t-loader{color:var(--tui-text-03-night)}:host:not(._checked)[data-mode=onDark]._disabled .t-loader{color:var(--tui-clear-inverse-active)}:host:not(._checked)[data-mode=onLight] .t-loader{color:var(--tui-text-03)}:host:not(._checked)[data-mode=onLight]._disabled .t-loader{color:var(--tui-clear-active)}:host[data-size=m] .t-loader{width:.75rem;margin:0 .2rem;transform:scale(.75)}:host[data-size=l] .t-loader{width:1rem;margin:0 .25rem}.t-icon-wrapper{display:flex}.t-icon{opacity:.8}.t-icon_off{color:var(--tui-base-06)}:host._disabled .t-icon_off{color:var(--tui-base-05)}:host[data-mode=onDark] .t-icon_off{color:var(--tui-text-03-night)}:host[data-mode=onDark]._disabled .t-icon_off{color:var(--tui-clear-inverse-active)}:host[data-mode=onLight] .t-icon_off{color:var(--tui-text-03)}:host[data-mode=onLight]._disabled .t-icon_off{color:var(--tui-clear-active)}:host[data-size=m] .t-icon{width:1rem;height:1rem;transform:scale(.75)}:host[data-size=l] .t-icon{margin:0 .125rem;width:1.5rem;height:1.5rem}:host:hover .t-icon{opacity:1}\n"], components: [{ type: i1.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i4.TuiCheckedDirective, selector: "input[tuiChecked], input[tuiCheckedChange]", inputs: ["tuiChecked"], outputs: ["tuiCheckedChange"] }, { type: i4.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }, { type: i4.TuiFocusedDirective, selector: "[tuiFocusedChange]", outputs: ["tuiFocusedChange"] }, { type: i4.TuiFocusVisibleDirective, selector: "[tuiFocusVisibleChange]", outputs: ["tuiFocusVisibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
95
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiToggleComponent, decorators: [{
96
96
  type: Component,
97
97
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-toggle.js","sources":["../../../projects/kit/components/toggle/toggle.options.ts","../../../projects/kit/components/toggle/toggle.component.ts","../../../projects/kit/components/toggle/toggle.template.html","../../../projects/kit/components/toggle/toggle.module.ts","../../../projects/kit/components/toggle/taiga-ui-kit-components-toggle.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {TuiContextWithImplicit, tuiCreateOptions, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiAppearance, TuiSizeL} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiToggleOptions {\n readonly icons: Readonly<{\n toggleOff: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n toggleOn: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n }>;\n readonly appearances: Readonly<{\n unchecked: string;\n checked: string;\n }>;\n readonly singleColor: boolean;\n readonly showIcons: boolean;\n readonly size: TuiSizeL;\n}\n\n/** Default values for the toggle options. */\nexport const TUI_TOGGLE_DEFAULT_OPTIONS: TuiToggleOptions = {\n icons: {\n toggleOff({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === `m` ? `tuiIconToggleOff` : `tuiIconToggleOffLarge`;\n },\n toggleOn({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === `m` ? `tuiIconToggleOn` : `tuiIconToggleOnLarge`;\n },\n },\n appearances: {\n checked: TuiAppearance.Primary,\n unchecked: TuiAppearance.Secondary,\n },\n singleColor: false,\n showIcons: false,\n size: `m`,\n};\n\n/**\n * Default parameters for Toggle component\n */\nexport const TUI_TOGGLE_OPTIONS = tuiCreateOptions(TUI_TOGGLE_DEFAULT_OPTIONS);\n\nexport function tuiToggleOptionsProvider(options: Partial<TuiToggleOptions>): Provider {\n return tuiProvideOptions(TUI_TOGGLE_OPTIONS, options, TUI_TOGGLE_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {TuiBrightness, TuiModeDirective, TuiSizeL, TuiSizeXS} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_TOGGLE_OPTIONS, TuiToggleOptions} from './toggle.options';\n\n@Component({\n selector: 'tui-toggle',\n templateUrl: './toggle.template.html',\n styleUrls: ['./toggle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiToggleComponent),\n tuiAsControl(TuiToggleComponent),\n ],\n host: {'[class._checked]': 'value'},\n})\nexport class TuiToggleComponent\n extends AbstractTuiControl<boolean>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n singleColor = this.options.singleColor;\n\n @Input()\n showIcons = this.options.showIcons;\n\n @Input()\n showLoader = false;\n\n @Input()\n @HostBinding('attr.data-size')\n size: TuiSizeL = this.options.size;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Optional()\n @Inject(TuiModeDirective)\n private readonly modeDirective: TuiModeDirective | null,\n @Inject(TUI_TOGGLE_OPTIONS)\n readonly options: TuiToggleOptions,\n ) {\n super(control, cdr);\n }\n\n get iconOn(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>> {\n return this.options.icons.toggleOn;\n }\n\n get iconOff(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>> {\n return this.options.icons.toggleOff;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.focusableElement ? this.focusableElement.nativeElement : null;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get appearance(): string {\n return this.singleColor || this.value\n ? this.options.appearances.checked\n : this.options.appearances.unchecked;\n }\n\n get sizeM(): boolean {\n return this.size === 'm';\n }\n\n get loaderSize(): TuiSizeXS {\n return this.sizeM ? 'xs' : 's';\n }\n\n @HostBinding('attr.data-mode')\n get hostMode(): TuiBrightness | null {\n return this.modeDirective ? this.modeDirective.mode : null;\n }\n\n /** @deprecated use 'value' setter */\n onChecked(checked: boolean): void {\n this.value = checked;\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n onFocusVisible(focusVisible: boolean): void {\n this.updateFocusVisible(focusVisible);\n }\n\n protected getFallbackValue(): boolean {\n return false;\n }\n}\n","<div\n tuiWrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocusVisible\"\n [hover]=\"pseudoHover\"\n [active]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n>\n <div class=\"t-toggle\">\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-loader\"\n [size]=\"loaderSize\"\n [inheritColor]=\"true\"\n [showLoader]=\"value\"\n ></tui-loader>\n <span\n *ngIf=\"showIcons && !showLoader\"\n class=\"t-icon-wrapper\"\n >\n <tui-svg\n *polymorpheusOutlet=\"iconOn as src; context: {$implicit: size}\"\n automation-id=\"tui-toggle__check-icon\"\n class=\"t-icon\"\n [src]=\"src\"\n ></tui-svg>\n </span>\n <div class=\"t-circle\"></div>\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-loader\"\n [size]=\"loaderSize\"\n [inheritColor]=\"true\"\n [showLoader]=\"!value\"\n ></tui-loader>\n <span\n *ngIf=\"showIcons && !showLoader\"\n class=\"t-icon-wrapper\"\n >\n <tui-svg\n *polymorpheusOutlet=\"iconOff as src; context: {$implicit: size}\"\n automation-id=\"tui-toggle__cancel-icon\"\n class=\"t-icon t-icon_off\"\n [src]=\"src\"\n ></tui-svg>\n </span>\n </div>\n <input\n #focusableElement\n type=\"checkbox\"\n role=\"switch\"\n automation-id=\"tui-toggle__checkbox\"\n class=\"t-checkbox\"\n [attr.aria-checked]=\"value\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [tuiFocusable]=\"focusable\"\n [(tuiChecked)]=\"value\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n />\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiCheckedModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {TuiLoaderModule, TuiSvgModule, TuiWrapperModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiToggleComponent} from './toggle.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusedModule,\n TuiFocusableModule,\n TuiPressedModule,\n TuiFocusVisibleModule,\n TuiCheckedModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiLoaderModule,\n PolymorpheusModule,\n ],\n declarations: [TuiToggleComponent],\n exports: [TuiToggleComponent],\n})\nexport class TuiToggleModule {}\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-toggle.js","sources":["../../../projects/kit/components/toggle/toggle.options.ts","../../../projects/kit/components/toggle/toggle.component.ts","../../../projects/kit/components/toggle/toggle.template.html","../../../projects/kit/components/toggle/toggle.module.ts","../../../projects/kit/components/toggle/taiga-ui-kit-components-toggle.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {TuiContextWithImplicit, tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiAppearance, TuiSizeL} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiToggleOptions {\n readonly appearances: Readonly<{\n checked: string;\n unchecked: string;\n }>;\n readonly icons: Readonly<{\n toggleOff: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n toggleOn: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n }>;\n readonly showIcons: boolean;\n readonly singleColor: boolean;\n readonly size: TuiSizeL;\n}\n\n/** Default values for the toggle options. */\nexport const TUI_TOGGLE_DEFAULT_OPTIONS: TuiToggleOptions = {\n icons: {\n toggleOff({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === `m` ? `tuiIconToggleOff` : `tuiIconToggleOffLarge`;\n },\n toggleOn({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === `m` ? `tuiIconToggleOn` : `tuiIconToggleOnLarge`;\n },\n },\n appearances: {\n checked: TuiAppearance.Primary,\n unchecked: TuiAppearance.Secondary,\n },\n singleColor: false,\n showIcons: false,\n size: `m`,\n};\n\n/**\n * Default parameters for Toggle component\n */\nexport const TUI_TOGGLE_OPTIONS = tuiCreateToken(TUI_TOGGLE_DEFAULT_OPTIONS);\n\nexport function tuiToggleOptionsProvider(options: Partial<TuiToggleOptions>): Provider {\n return tuiProvideOptions(TUI_TOGGLE_OPTIONS, options, TUI_TOGGLE_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {TuiBrightness, TuiModeDirective, TuiSizeL, TuiSizeXS} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_TOGGLE_OPTIONS, TuiToggleOptions} from './toggle.options';\n\n@Component({\n selector: 'tui-toggle',\n templateUrl: './toggle.template.html',\n styleUrls: ['./toggle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiToggleComponent),\n tuiAsControl(TuiToggleComponent),\n ],\n host: {'[class._checked]': 'value'},\n})\nexport class TuiToggleComponent\n extends AbstractTuiControl<boolean>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n singleColor = this.options.singleColor;\n\n @Input()\n showIcons = this.options.showIcons;\n\n @Input()\n showLoader = false;\n\n @Input()\n @HostBinding('attr.data-size')\n size: TuiSizeL = this.options.size;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Optional()\n @Inject(TuiModeDirective)\n private readonly modeDirective: TuiModeDirective | null,\n @Inject(TUI_TOGGLE_OPTIONS)\n readonly options: TuiToggleOptions,\n ) {\n super(control, cdr);\n }\n\n get iconOn(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>> {\n return this.options.icons.toggleOn;\n }\n\n get iconOff(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>> {\n return this.options.icons.toggleOff;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.focusableElement ? this.focusableElement.nativeElement : null;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get appearance(): string {\n return this.singleColor || this.value\n ? this.options.appearances.checked\n : this.options.appearances.unchecked;\n }\n\n get sizeM(): boolean {\n return this.size === 'm';\n }\n\n get loaderSize(): TuiSizeXS {\n return this.sizeM ? 'xs' : 's';\n }\n\n @HostBinding('attr.data-mode')\n get hostMode(): TuiBrightness | null {\n return this.modeDirective ? this.modeDirective.mode : null;\n }\n\n /** @deprecated use 'value' setter */\n onChecked(checked: boolean): void {\n this.value = checked;\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n onFocusVisible(focusVisible: boolean): void {\n this.updateFocusVisible(focusVisible);\n }\n\n protected getFallbackValue(): boolean {\n return false;\n }\n}\n","<div\n tuiWrapper\n [active]=\"pseudoActive\"\n [appearance]=\"appearance\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocusVisible\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n>\n <div class=\"t-toggle\">\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-loader\"\n [inheritColor]=\"true\"\n [showLoader]=\"value\"\n [size]=\"loaderSize\"\n ></tui-loader>\n <span\n *ngIf=\"showIcons && !showLoader\"\n class=\"t-icon-wrapper\"\n >\n <tui-svg\n *polymorpheusOutlet=\"iconOn as src; context: {$implicit: size}\"\n automation-id=\"tui-toggle__check-icon\"\n class=\"t-icon\"\n [src]=\"src\"\n ></tui-svg>\n </span>\n <div class=\"t-circle\"></div>\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-loader\"\n [inheritColor]=\"true\"\n [showLoader]=\"!value\"\n [size]=\"loaderSize\"\n ></tui-loader>\n <span\n *ngIf=\"showIcons && !showLoader\"\n class=\"t-icon-wrapper\"\n >\n <tui-svg\n *polymorpheusOutlet=\"iconOff as src; context: {$implicit: size}\"\n automation-id=\"tui-toggle__cancel-icon\"\n class=\"t-icon t-icon_off\"\n [src]=\"src\"\n ></tui-svg>\n </span>\n </div>\n <input\n #focusableElement\n automation-id=\"tui-toggle__checkbox\"\n role=\"switch\"\n type=\"checkbox\"\n class=\"t-checkbox\"\n [attr.aria-checked]=\"value\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [tuiFocusable]=\"focusable\"\n [(tuiChecked)]=\"value\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n />\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiCheckedModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {TuiLoaderModule, TuiSvgModule, TuiWrapperModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiToggleComponent} from './toggle.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusedModule,\n TuiFocusableModule,\n TuiPressedModule,\n TuiFocusVisibleModule,\n TuiCheckedModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiLoaderModule,\n PolymorpheusModule,\n ],\n declarations: [TuiToggleComponent],\n exports: [TuiToggleComponent],\n})\nexport class TuiToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Directive, Input, forwardRef, Component, ChangeDetectionStrategy, Injec
3
3
  import { Subject } from 'rxjs';
4
4
  import { startWith, map, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';
5
5
  import * as i2$1 from '@taiga-ui/cdk';
6
- import { EMPTY_ARRAY, ALWAYS_TRUE_HANDLER, EMPTY_FUNCTION, EMPTY_QUERY, tuiIsPresent, TuiLetModule } from '@taiga-ui/cdk';
6
+ import { EMPTY_ARRAY, ALWAYS_TRUE_HANDLER, EMPTY_FUNCTION, tuiCreateToken, EMPTY_QUERY, tuiIsPresent, TuiLetModule } from '@taiga-ui/cdk';
7
7
  import * as i2 from '@tinkoff/ng-polymorpheus';
8
8
  import { POLYMORPHEUS_CONTEXT, PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
9
9
  import * as i1 from '@taiga-ui/core';
@@ -48,7 +48,7 @@ class TuiTreeItemContentComponent {
48
48
  }
49
49
  }
50
50
  TuiTreeItemContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTreeItemContentComponent, deps: [{ token: TUI_COMMON_ICONS }, { token: POLYMORPHEUS_CONTEXT }, { token: forwardRef(() => TUI_TREE_CONTROLLER) }], target: i0.ɵɵFactoryTarget.Component });
51
- TuiTreeItemContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTreeItemContentComponent, selector: "tui-tree-item-content", host: { properties: { "class._expandable": "this.isExpandable" } }, ngImport: i0, template: "<button\n *ngIf=\"isExpandable\"\n tuiIconButton\n size=\"xs\"\n appearance=\"flat\"\n shape=\"rounded\"\n type=\"button\"\n class=\"t-button\"\n [class.t-button_expanded]=\"isExpanded\"\n [icon]=\"icons.more\"\n (click)=\"onClick()\"\n></button>\n<ng-container [ngTemplateOutlet]=\"context.template\"></ng-container>\n", styles: [":host{display:flex;align-items:center}:host :host-context(tui-tree-item._expandable):not(._expandable){padding-left:2rem}.t-button{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;margin-right:.5rem}.t-button_expanded{transform:rotate(90deg)}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
+ TuiTreeItemContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTreeItemContentComponent, selector: "tui-tree-item-content", host: { properties: { "class._expandable": "this.isExpandable" } }, ngImport: i0, template: "<button\n *ngIf=\"isExpandable\"\n appearance=\"flat\"\n shape=\"rounded\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_expanded]=\"isExpanded\"\n [icon]=\"icons.more\"\n (click)=\"onClick()\"\n></button>\n<ng-container [ngTemplateOutlet]=\"context.template\"></ng-container>\n", styles: [":host{display:flex;align-items:center}:host :host-context(tui-tree-item._expandable):not(._expandable){padding-left:2rem}.t-button{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;margin-right:.5rem}.t-button_expanded{transform:rotate(90deg)}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTreeItemContentComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{
@@ -84,9 +84,7 @@ const TUI_TREE_ACCESSOR = new InjectionToken(`[TUI_TREE_ACCESSOR]`);
84
84
  /**
85
85
  * Controller for expanding the tree
86
86
  */
87
- const TUI_TREE_CONTROLLER = new InjectionToken(`[TUI_TREE_CONTROLLER]`, {
88
- factory: () => TUI_DEFAULT_TREE_CONTROLLER,
89
- });
87
+ const TUI_TREE_CONTROLLER = tuiCreateToken(TUI_DEFAULT_TREE_CONTROLLER);
90
88
  /**
91
89
  * A node of a tree view
92
90
  */
@@ -94,9 +92,7 @@ const TUI_TREE_NODE = new InjectionToken(`[TUI_TREE_NODE]`);
94
92
  /**
95
93
  * A tree node placeholder for loading
96
94
  */
97
- const TUI_TREE_LOADING = new InjectionToken(`[TUI_TREE_LOADING]`, {
98
- factory: () => ({}),
99
- });
95
+ const TUI_TREE_LOADING = tuiCreateToken({});
100
96
  /**
101
97
  * A tree node starting point
102
98
  */
@@ -108,15 +104,11 @@ const TUI_TREE_LOADER = new InjectionToken(`[TUI_TREE_LOADER]`);
108
104
  /**
109
105
  * Content for a tree item
110
106
  */
111
- const TUI_TREE_CONTENT = new InjectionToken(`[TUI_TREE_CONTENT]`, {
112
- factory: () => TUI_TREE_ITEM_CONTENT,
113
- });
107
+ const TUI_TREE_CONTENT = tuiCreateToken(TUI_TREE_ITEM_CONTENT);
114
108
  /**
115
109
  * Nesting level of current TreeView node
116
110
  */
117
- const TUI_TREE_LEVEL = new InjectionToken(`[TUI_TREE_LEVEL]`, {
118
- factory: () => -1,
119
- });
111
+ const TUI_TREE_LEVEL = tuiCreateToken(-1);
120
112
 
121
113
  const TUI_TREE_ITEM_PROVIDERS = [
122
114
  {
@@ -250,7 +242,7 @@ TuiTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
250
242
  provide: TUI_TREE_NODE,
251
243
  useExisting: TuiTreeComponent,
252
244
  },
253
- ], viewQueries: [{ propertyName: "item", first: true, predicate: TuiTreeItemComponent, descendants: true }, { propertyName: "child", first: true, predicate: TuiTreeComponent, descendants: true }], ngImport: i0, template: "<tui-tree-item\n *tuiLet=\"children$ | async as children\"\n #view\n [tuiTreeNode]=\"value\"\n>\n <ng-container *ngIf=\"$any(value) !== children\">\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: value, node: view}\">\n {{ text }}\n </ng-container>\n </ng-container>\n <tui-tree\n *ngFor=\"let child of children; trackBy: trackBy\"\n [value]=\"child\"\n [content]=\"content\"\n [trackBy]=\"trackBy\"\n ></tui-tree>\n</tui-tree-item>\n", styles: [":host{position:relative;display:block}\n"], components: [{ type: TuiTreeItemComponent, selector: "tui-tree-item" }, { type: TuiTreeComponent, selector: "tui-tree[value]", inputs: ["value", "trackBy", "content"] }], directives: [{ type: i2$1.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: TuiTreeNodeDirective, selector: "tui-tree-item[tuiTreeNode]", inputs: ["tuiTreeNode"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
245
+ ], viewQueries: [{ propertyName: "item", first: true, predicate: TuiTreeItemComponent, descendants: true }, { propertyName: "child", first: true, predicate: TuiTreeComponent, descendants: true }], ngImport: i0, template: "<tui-tree-item\n *tuiLet=\"children$ | async as children\"\n #view\n [tuiTreeNode]=\"value\"\n>\n <ng-container *ngIf=\"$any(value) !== children\">\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: value, node: view}\">\n {{ text }}\n </ng-container>\n </ng-container>\n <tui-tree\n *ngFor=\"let child of children; trackBy: trackBy\"\n [content]=\"content\"\n [trackBy]=\"trackBy\"\n [value]=\"child\"\n ></tui-tree>\n</tui-tree-item>\n", styles: [":host{position:relative;display:block}\n"], components: [{ type: TuiTreeItemComponent, selector: "tui-tree-item" }, { type: TuiTreeComponent, selector: "tui-tree[value]", inputs: ["value", "trackBy", "content"] }], directives: [{ type: i2$1.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: TuiTreeNodeDirective, selector: "tui-tree-item[tuiTreeNode]", inputs: ["tuiTreeNode"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
254
246
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTreeComponent, decorators: [{
255
247
  type: Component,
256
248
  args: [{