@taiga-ui/core 2.21.0 → 2.25.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 (724) hide show
  1. package/README.md +7 -3
  2. package/abstract/abstract-hint.d.ts +3 -1
  3. package/abstract/taiga-ui-core-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-core-abstract.umd.js +4 -2
  5. package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-core-abstract.umd.min.js +1 -1
  7. package/bundles/taiga-ui-core-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-core-components-button.umd.js +21 -7
  9. package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
  10. package/bundles/taiga-ui-core-components-button.umd.min.js +1 -1
  11. package/bundles/taiga-ui-core-components-button.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-core-components-calendar.umd.js +1 -1
  13. package/bundles/taiga-ui-core-components-calendar.umd.js.map +1 -1
  14. package/bundles/taiga-ui-core-components-calendar.umd.min.js +1 -1
  15. package/bundles/taiga-ui-core-components-calendar.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-core-components-data-list.umd.js +6 -5
  17. package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
  18. package/bundles/taiga-ui-core-components-data-list.umd.min.js +2 -2
  19. package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-core-components-dialog.umd.js +16 -40
  21. package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
  22. package/bundles/taiga-ui-core-components-dialog.umd.min.js +1 -1
  23. package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-core-components-dropdown-box.umd.js +1 -1
  25. package/bundles/taiga-ui-core-components-dropdown-box.umd.js.map +1 -1
  26. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js +1 -1
  27. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-core-components-error.umd.js +1 -1
  29. package/bundles/taiga-ui-core-components-error.umd.js.map +1 -1
  30. package/bundles/taiga-ui-core-components-error.umd.min.js +1 -1
  31. package/bundles/taiga-ui-core-components-error.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-core-components-expand.umd.js +3 -2
  33. package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
  34. package/bundles/taiga-ui-core-components-expand.umd.min.js +1 -1
  35. package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-core-components-group.umd.js.map +1 -1
  37. package/bundles/taiga-ui-core-components-group.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-core-components-hints-host.umd.js +20 -14
  39. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  40. package/bundles/taiga-ui-core-components-hints-host.umd.min.js +2 -2
  41. package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
  42. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +2 -15
  43. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  44. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js +1 -1
  45. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
  46. package/bundles/taiga-ui-core-components-label.umd.js +1 -1
  47. package/bundles/taiga-ui-core-components-label.umd.js.map +1 -1
  48. package/bundles/taiga-ui-core-components-label.umd.min.js +1 -1
  49. package/bundles/taiga-ui-core-components-label.umd.min.js.map +1 -1
  50. package/bundles/taiga-ui-core-components-link.umd.js +1 -1
  51. package/bundles/taiga-ui-core-components-link.umd.min.js +1 -1
  52. package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-core-components-loader.umd.js +2 -2
  54. package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
  55. package/bundles/taiga-ui-core-components-loader.umd.min.js +1 -1
  56. package/bundles/taiga-ui-core-components-loader.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-core-components-notification.umd.js +1 -1
  58. package/bundles/taiga-ui-core-components-notification.umd.min.js +1 -1
  59. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +2 -2
  60. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
  61. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js +1 -1
  62. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js.map +1 -1
  64. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.min.js.map +1 -1
  65. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +2 -2
  66. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js +1 -1
  67. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +138 -106
  68. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  69. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +2 -2
  70. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js +2 -2
  72. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
  73. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js +1 -1
  74. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
  76. package/bundles/taiga-ui-core-components-root.umd.min.js.map +1 -1
  77. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +61 -61
  78. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  79. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js +2 -2
  80. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js.map +1 -1
  81. package/bundles/taiga-ui-core-components-scrollbar.umd.js +52 -42
  82. package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
  83. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js +2 -2
  84. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
  85. package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
  86. package/bundles/taiga-ui-core-components-svg.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-core-components-theme-night.umd.js.map +1 -1
  88. package/bundles/taiga-ui-core-components-theme-night.umd.min.js.map +1 -1
  89. package/bundles/taiga-ui-core-components-tooltip.umd.js +1 -1
  90. package/bundles/taiga-ui-core-components-tooltip.umd.min.js +1 -1
  91. package/bundles/taiga-ui-core-components-wrapper.umd.js +1 -1
  92. package/bundles/taiga-ui-core-components-wrapper.umd.js.map +1 -1
  93. package/bundles/taiga-ui-core-components-wrapper.umd.min.js +1 -1
  94. package/bundles/taiga-ui-core-components-wrapper.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-core-components.umd.js +8 -8
  96. package/bundles/taiga-ui-core-components.umd.min.js +1 -1
  97. package/bundles/taiga-ui-core-constants.umd.js +12 -3
  98. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  99. package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
  100. package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
  101. package/bundles/taiga-ui-core-directives-border.umd.js +291 -0
  102. package/bundles/taiga-ui-core-directives-border.umd.js.map +1 -0
  103. package/bundles/taiga-ui-core-directives-border.umd.min.js +16 -0
  104. package/bundles/taiga-ui-core-directives-border.umd.min.js.map +1 -0
  105. package/bundles/taiga-ui-core-directives-color.umd.js.map +1 -1
  106. package/bundles/taiga-ui-core-directives-color.umd.min.js.map +1 -1
  107. package/bundles/taiga-ui-core-directives-described-by.umd.js.map +1 -1
  108. package/bundles/taiga-ui-core-directives-described-by.umd.min.js.map +1 -1
  109. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.js.map +1 -1
  110. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.min.js.map +1 -1
  111. package/bundles/taiga-ui-core-directives-hint-controller.umd.js.map +1 -1
  112. package/bundles/taiga-ui-core-directives-hint-controller.umd.min.js.map +1 -1
  113. package/bundles/taiga-ui-core-directives-hint.umd.js +7 -4
  114. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  115. package/bundles/taiga-ui-core-directives-hint.umd.min.js +1 -1
  116. package/bundles/taiga-ui-core-directives-hint.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-core-directives-manual-hint.umd.js +7 -4
  118. package/bundles/taiga-ui-core-directives-manual-hint.umd.js.map +1 -1
  119. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js +1 -1
  120. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-core-directives-mask-accessor.umd.js.map +1 -1
  122. package/bundles/taiga-ui-core-directives-mask-accessor.umd.min.js.map +1 -1
  123. package/bundles/taiga-ui-core-directives-mode.umd.js.map +1 -1
  124. package/bundles/taiga-ui-core-directives-mode.umd.min.js.map +1 -1
  125. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js +1 -1
  126. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js.map +1 -1
  127. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js +1 -1
  128. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js.map +1 -1
  130. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.min.js.map +1 -1
  131. package/bundles/taiga-ui-core-directives-table-mode.umd.js.map +1 -1
  132. package/bundles/taiga-ui-core-directives-table-mode.umd.min.js.map +1 -1
  133. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +9 -3
  134. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  135. package/bundles/taiga-ui-core-directives-textfield-controller.umd.min.js.map +1 -1
  136. package/bundles/taiga-ui-core-directives.umd.js +16 -8
  137. package/bundles/taiga-ui-core-directives.umd.js.map +1 -1
  138. package/bundles/taiga-ui-core-directives.umd.min.js +1 -1
  139. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js +1 -1
  140. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js.map +1 -1
  141. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js +1 -1
  142. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js.map +1 -1
  143. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js.map +1 -1
  144. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.min.js.map +1 -1
  145. package/bundles/taiga-ui-core-modules-notifications.umd.js +25 -25
  146. package/bundles/taiga-ui-core-modules-notifications.umd.js.map +1 -1
  147. package/bundles/taiga-ui-core-modules-notifications.umd.min.js +1 -1
  148. package/bundles/taiga-ui-core-modules-notifications.umd.min.js.map +1 -1
  149. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.js.map +1 -1
  150. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.min.js.map +1 -1
  151. package/bundles/taiga-ui-core-pipes-format-number.umd.js.map +1 -1
  152. package/bundles/taiga-ui-core-pipes-format-number.umd.min.js.map +1 -1
  153. package/bundles/taiga-ui-core-pipes-month.umd.js.map +1 -1
  154. package/bundles/taiga-ui-core-pipes-month.umd.min.js.map +1 -1
  155. package/bundles/taiga-ui-core-pipes-pluralize.umd.js.map +1 -1
  156. package/bundles/taiga-ui-core-pipes-pluralize.umd.min.js.map +1 -1
  157. package/bundles/taiga-ui-core-pipes.umd.js +12 -12
  158. package/bundles/taiga-ui-core-pipes.umd.min.js +1 -1
  159. package/bundles/taiga-ui-core-providers.umd.js +9 -9
  160. package/bundles/taiga-ui-core-providers.umd.js.map +1 -1
  161. package/bundles/taiga-ui-core-providers.umd.min.js +1 -1
  162. package/bundles/taiga-ui-core-services.umd.js.map +1 -1
  163. package/bundles/taiga-ui-core-services.umd.min.js.map +1 -1
  164. package/bundles/taiga-ui-core-tokens.umd.js +28 -19
  165. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  166. package/bundles/taiga-ui-core-tokens.umd.min.js +1 -1
  167. package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
  168. package/bundles/taiga-ui-core-utils-dom.umd.js +3 -1
  169. package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
  170. package/bundles/taiga-ui-core-utils-dom.umd.min.js +1 -1
  171. package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
  172. package/bundles/taiga-ui-core-utils-mask.umd.js +28 -8
  173. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  174. package/bundles/taiga-ui-core-utils-mask.umd.min.js +1 -1
  175. package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
  176. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +2 -4
  177. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
  178. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js +1 -1
  179. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js.map +1 -1
  180. package/components/button/button-options.d.ts +10 -0
  181. package/components/button/button.component.d.ts +8 -7
  182. package/components/button/index.d.ts +1 -0
  183. package/components/button/taiga-ui-core-components-button.metadata.json +1 -1
  184. package/components/calendar/taiga-ui-core-components-calendar.metadata.json +1 -1
  185. package/components/data-list/index.d.ts +1 -1
  186. package/components/data-list/taiga-ui-core-components-data-list.metadata.json +1 -1
  187. package/components/dialog/dialog.directive.d.ts +2 -11
  188. package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
  189. package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
  190. package/components/error/taiga-ui-core-components-error.metadata.json +1 -1
  191. package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
  192. package/components/group/taiga-ui-core-components-group.metadata.json +1 -1
  193. package/components/hints-host/index.d.ts +2 -2
  194. package/components/hints-host/taiga-ui-core-components-hints-host.metadata.json +1 -1
  195. package/components/hosted-dropdown/hosted-dropdown.component.d.ts +1 -3
  196. package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
  197. package/components/index.d.ts +1 -1
  198. package/components/label/taiga-ui-core-components-label.metadata.json +1 -1
  199. package/components/link/taiga-ui-core-components-link.metadata.json +1 -1
  200. package/components/loader/taiga-ui-core-components-loader.metadata.json +1 -1
  201. package/components/notification/taiga-ui-core-components-notification.metadata.json +1 -1
  202. package/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.metadata.json +1 -1
  203. package/components/primitive-checkbox/taiga-ui-core-components-primitive-checkbox.metadata.json +1 -1
  204. package/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.metadata.json +1 -1
  205. package/components/primitive-textfield/index.d.ts +1 -0
  206. package/components/primitive-textfield/primitive-textfield.component.d.ts +9 -16
  207. package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
  208. package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +18 -0
  209. package/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.metadata.json +1 -1
  210. package/components/root/taiga-ui-core-components-root.metadata.json +1 -1
  211. package/components/scroll-controls/index.d.ts +1 -1
  212. package/components/scroll-controls/taiga-ui-core-components-scroll-controls.metadata.json +1 -1
  213. package/components/scrollbar/index.d.ts +1 -1
  214. package/components/scrollbar/scrollable.directive.d.ts +5 -1
  215. package/components/scrollbar/scrollbar.component.d.ts +4 -3
  216. package/components/scrollbar/taiga-ui-core-components-scrollbar.metadata.json +1 -1
  217. package/components/svg/taiga-ui-core-components-svg.metadata.json +1 -1
  218. package/components/taiga-ui-core-components.metadata.json +1 -1
  219. package/components/theme-night/taiga-ui-core-components-theme-night.metadata.json +1 -1
  220. package/components/tooltip/taiga-ui-core-components-tooltip.metadata.json +1 -1
  221. package/components/wrapper/taiga-ui-core-components-wrapper.metadata.json +1 -1
  222. package/constants/events.d.ts +5 -0
  223. package/constants/index.d.ts +1 -1
  224. package/constants/media.d.ts +1 -0
  225. package/constants/regexp.d.ts +1 -0
  226. package/constants/taiga-ui-core-constants.metadata.json +1 -1
  227. package/constants/version.d.ts +1 -1
  228. package/directives/border/border.directive.d.ts +9 -0
  229. package/directives/border/border.module.d.ts +2 -0
  230. package/directives/border/index.d.ts +2 -0
  231. package/directives/border/package.json +13 -0
  232. package/directives/border/taiga-ui-core-directives-border.d.ts +4 -0
  233. package/directives/border/taiga-ui-core-directives-border.metadata.json +1 -0
  234. package/directives/color/index.d.ts +1 -1
  235. package/directives/color/taiga-ui-core-directives-color.metadata.json +1 -1
  236. package/directives/described-by/taiga-ui-core-directives-described-by.metadata.json +1 -1
  237. package/directives/dropdown-controller/taiga-ui-core-directives-dropdown-controller.metadata.json +1 -1
  238. package/directives/hint/hint.directive.d.ts +2 -2
  239. package/directives/hint/taiga-ui-core-directives-hint.metadata.json +1 -1
  240. package/directives/hint-controller/taiga-ui-core-directives-hint-controller.metadata.json +1 -1
  241. package/directives/index.d.ts +2 -1
  242. package/directives/manual-hint/manual-hint.directive.d.ts +2 -1
  243. package/directives/manual-hint/taiga-ui-core-directives-manual-hint.metadata.json +1 -1
  244. package/directives/mask-accessor/taiga-ui-core-directives-mask-accessor.metadata.json +1 -1
  245. package/directives/mode/taiga-ui-core-directives-mode.metadata.json +1 -1
  246. package/directives/pointer-hint/taiga-ui-core-directives-pointer-hint.metadata.json +1 -1
  247. package/directives/scroll-into-view/taiga-ui-core-directives-scroll-into-view.metadata.json +1 -1
  248. package/directives/table-mode/taiga-ui-core-directives-table-mode.metadata.json +1 -1
  249. package/directives/taiga-ui-core-directives.metadata.json +1 -1
  250. package/directives/textfield-controller/index.d.ts +2 -2
  251. package/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.metadata.json +1 -1
  252. package/directives/textfield-controller/textfield-controller.provider.d.ts +1 -1
  253. package/esm2015/abstract/abstract-hint.js +6 -4
  254. package/esm2015/components/button/button-options.js +10 -0
  255. package/esm2015/components/button/button.component.js +12 -8
  256. package/esm2015/components/button/button.module.js +1 -1
  257. package/esm2015/components/button/index.js +2 -1
  258. package/esm2015/components/calendar/calendar.component.js +2 -2
  259. package/esm2015/components/data-list/data-list.component.js +4 -3
  260. package/esm2015/components/data-list/data-list.module.js +2 -2
  261. package/esm2015/components/data-list/index.js +2 -2
  262. package/esm2015/components/data-list/option/option.component.js +4 -4
  263. package/esm2015/components/dialog/dialog.component.js +3 -3
  264. package/esm2015/components/dialog/dialog.directive.js +14 -36
  265. package/esm2015/components/dialog/dialog.module.js +1 -1
  266. package/esm2015/components/dialog/dialog.service.js +1 -1
  267. package/esm2015/components/dropdown-box/dropdown-box.component.js +1 -1
  268. package/esm2015/components/dropdown-box/dropdown-box.module.js +1 -1
  269. package/esm2015/components/error/error.component.js +1 -1
  270. package/esm2015/components/error/error.module.js +1 -1
  271. package/esm2015/components/expand/expand.component.js +4 -3
  272. package/esm2015/components/expand/expand.module.js +2 -2
  273. package/esm2015/components/group/group.component.js +1 -1
  274. package/esm2015/components/group/group.module.js +1 -1
  275. package/esm2015/components/hints-host/hint-box/hint-box.component.js +3 -3
  276. package/esm2015/components/hints-host/hint-box/hint-box.module.js +1 -1
  277. package/esm2015/components/hints-host/hints-host.component.js +3 -3
  278. package/esm2015/components/hints-host/hints-host.module.js +9 -3
  279. package/esm2015/components/hints-host/index.js +3 -3
  280. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +4 -13
  281. package/esm2015/components/hosted-dropdown/hosted-dropdown.module.js +2 -2
  282. package/esm2015/components/index.js +2 -2
  283. package/esm2015/components/label/label.component.js +2 -2
  284. package/esm2015/components/label/label.module.js +1 -1
  285. package/esm2015/components/link/link.component.js +1 -1
  286. package/esm2015/components/loader/loader.component.js +3 -3
  287. package/esm2015/components/loader/loader.module.js +1 -1
  288. package/esm2015/components/notification/notification.component.js +1 -1
  289. package/esm2015/components/primitive-calendar/primitive-calendar.component.js +3 -3
  290. package/esm2015/components/primitive-calendar/primitive-calendar.module.js +1 -1
  291. package/esm2015/components/primitive-checkbox/primitive-checkbox.component.js +1 -1
  292. package/esm2015/components/primitive-spin-button/primitive-spin-button.component.js +2 -2
  293. package/esm2015/components/primitive-textfield/index.js +2 -1
  294. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +38 -67
  295. package/esm2015/components/primitive-textfield/primitive-textfield.module.js +7 -2
  296. package/esm2015/components/primitive-textfield/primitive-textfield.providers.js +1 -1
  297. package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +65 -0
  298. package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  299. package/esm2015/components/root/root.module.js +1 -1
  300. package/esm2015/components/scroll-controls/index.js +2 -2
  301. package/esm2015/components/scroll-controls/scroll-controls.component.js +2 -2
  302. package/esm2015/components/scroll-controls/scroll-controls.module.js +2 -2
  303. package/esm2015/components/scrollbar/index.js +2 -2
  304. package/esm2015/components/scrollbar/scrollable.directive.js +18 -4
  305. package/esm2015/components/scrollbar/scrollbar.component.js +20 -18
  306. package/esm2015/components/scrollbar/scrollbar.module.js +1 -1
  307. package/esm2015/components/svg/svg.module.js +1 -1
  308. package/esm2015/components/theme-night/theme-night.module.js +1 -1
  309. package/esm2015/components/tooltip/tooltip.component.js +1 -1
  310. package/esm2015/components/wrapper/wrapper.component.js +1 -1
  311. package/esm2015/components/wrapper/wrapper.module.js +1 -1
  312. package/esm2015/constants/events.js +6 -1
  313. package/esm2015/constants/index.js +2 -2
  314. package/esm2015/constants/media.js +2 -1
  315. package/esm2015/constants/regexp.js +2 -1
  316. package/esm2015/constants/version.js +2 -2
  317. package/esm2015/directives/border/border.directive.js +42 -0
  318. package/esm2015/directives/border/border.module.js +13 -0
  319. package/esm2015/directives/border/index.js +3 -0
  320. package/esm2015/directives/border/taiga-ui-core-directives-border.js +5 -0
  321. package/esm2015/directives/color/color.module.js +1 -1
  322. package/esm2015/directives/color/index.js +2 -2
  323. package/esm2015/directives/described-by/described-by.module.js +1 -1
  324. package/esm2015/directives/dropdown-controller/dropdown-controller.directive.js +1 -1
  325. package/esm2015/directives/dropdown-controller/dropdown-controller.module.js +1 -1
  326. package/esm2015/directives/dropdown-controller/dropdown-controller.provider.js +1 -1
  327. package/esm2015/directives/dropdown-controller/dropdown-controller.token.js +1 -1
  328. package/esm2015/directives/hint/hint.directive.js +10 -7
  329. package/esm2015/directives/hint/hint.module.js +1 -1
  330. package/esm2015/directives/hint-controller/hint-controller.directive.js +1 -1
  331. package/esm2015/directives/hint-controller/hint-controller.module.js +1 -1
  332. package/esm2015/directives/hint-controller/hint-controller.provider.js +1 -1
  333. package/esm2015/directives/hint-controller/hint-controller.token.js +1 -1
  334. package/esm2015/directives/index.js +3 -2
  335. package/esm2015/directives/manual-hint/manual-hint.directive.js +10 -7
  336. package/esm2015/directives/manual-hint/manual-hint.module.js +1 -1
  337. package/esm2015/directives/mask-accessor/mask-accessor.module.js +1 -1
  338. package/esm2015/directives/mode/mode.module.js +1 -1
  339. package/esm2015/directives/pointer-hint/pointer-hint.directive.js +2 -2
  340. package/esm2015/directives/pointer-hint/pointer-hint.module.js +1 -1
  341. package/esm2015/directives/scroll-into-view/scroll-into-view.module.js +1 -1
  342. package/esm2015/directives/table-mode/table-mode.module.js +1 -1
  343. package/esm2015/directives/textfield-controller/index.js +3 -3
  344. package/esm2015/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
  345. package/esm2015/directives/textfield-controller/textfield-controller.module.js +1 -1
  346. package/esm2015/directives/textfield-controller/textfield-controller.provider.js +2 -2
  347. package/esm2015/directives/textfield-controller/textfield-size.directive.js +4 -2
  348. package/esm2015/directives/textfield-controller/textfield-type.directive.js +4 -2
  349. package/esm2015/directives/textfield-controller/textfield.controller.js +1 -1
  350. package/esm2015/interfaces/dialog-context.js +1 -1
  351. package/esm2015/interfaces/index.js +1 -1
  352. package/esm2015/interfaces/media.js +1 -0
  353. package/esm2015/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  354. package/esm2015/internal/svg-defs-host/svg-defs-host.module.js +1 -1
  355. package/esm2015/mask/index.js +1 -1
  356. package/esm2015/modules/notifications/index.js +3 -3
  357. package/esm2015/modules/notifications/notification-alert/Notification-alert.js +1 -1
  358. package/esm2015/modules/notifications/notification-alert/notification-alert.component.js +2 -2
  359. package/esm2015/modules/notifications/notifications-host/notifications-host.component.js +2 -2
  360. package/esm2015/modules/notifications/notifications.module.js +1 -1
  361. package/esm2015/modules/notifications/notifications.service.js +1 -1
  362. package/esm2015/pipes/calendar-sheet/calendar-sheet.module.js +1 -1
  363. package/esm2015/pipes/calendar-sheet/calendar-sheet.pipe.js +1 -1
  364. package/esm2015/pipes/calendar-sheet/index.js +2 -2
  365. package/esm2015/pipes/format-number/format-number.pipe.js +1 -1
  366. package/esm2015/pipes/index.js +2 -2
  367. package/esm2015/pipes/month/month.module.js +1 -1
  368. package/esm2015/pipes/pluralize/pluralize.module.js +1 -1
  369. package/esm2015/providers/index.js +2 -2
  370. package/esm2015/services/hint.service.js +1 -1
  371. package/esm2015/tokens/animation-options.js +1 -1
  372. package/esm2015/tokens/index.js +5 -4
  373. package/esm2015/tokens/media.js +9 -0
  374. package/esm2015/tokens/ordered-short-week-days.js +1 -1
  375. package/esm2015/types/marker-handler.js +1 -1
  376. package/esm2015/utils/dom/process-icon.js +4 -2
  377. package/esm2015/utils/mask/create-number-mask.js +28 -10
  378. package/esm2015/utils/miscellaneous/get-border.js +3 -5
  379. package/esm5/abstract/abstract-hint.js +6 -4
  380. package/esm5/components/button/button-options.js +10 -0
  381. package/esm5/components/button/button.component.js +12 -8
  382. package/esm5/components/button/button.module.js +1 -1
  383. package/esm5/components/button/index.js +2 -1
  384. package/esm5/components/calendar/calendar.component.js +2 -2
  385. package/esm5/components/data-list/data-list.component.js +4 -3
  386. package/esm5/components/data-list/data-list.module.js +2 -2
  387. package/esm5/components/data-list/index.js +2 -2
  388. package/esm5/components/data-list/option/option.component.js +4 -4
  389. package/esm5/components/dialog/dialog.component.js +3 -3
  390. package/esm5/components/dialog/dialog.directive.js +18 -43
  391. package/esm5/components/dialog/dialog.module.js +1 -1
  392. package/esm5/components/dialog/dialog.service.js +1 -1
  393. package/esm5/components/dropdown-box/dropdown-box.component.js +1 -1
  394. package/esm5/components/dropdown-box/dropdown-box.module.js +1 -1
  395. package/esm5/components/error/error.component.js +1 -1
  396. package/esm5/components/error/error.module.js +1 -1
  397. package/esm5/components/expand/expand.component.js +4 -3
  398. package/esm5/components/expand/expand.module.js +2 -2
  399. package/esm5/components/group/group.component.js +1 -1
  400. package/esm5/components/group/group.module.js +1 -1
  401. package/esm5/components/hints-host/hint-box/hint-box.component.js +3 -3
  402. package/esm5/components/hints-host/hint-box/hint-box.module.js +1 -1
  403. package/esm5/components/hints-host/hints-host.component.js +3 -3
  404. package/esm5/components/hints-host/hints-host.module.js +9 -3
  405. package/esm5/components/hints-host/index.js +3 -3
  406. package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +4 -17
  407. package/esm5/components/hosted-dropdown/hosted-dropdown.module.js +2 -2
  408. package/esm5/components/index.js +2 -2
  409. package/esm5/components/label/label.component.js +2 -2
  410. package/esm5/components/label/label.module.js +1 -1
  411. package/esm5/components/link/link.component.js +1 -1
  412. package/esm5/components/loader/loader.component.js +3 -3
  413. package/esm5/components/loader/loader.module.js +1 -1
  414. package/esm5/components/notification/notification.component.js +1 -1
  415. package/esm5/components/primitive-calendar/primitive-calendar.component.js +3 -3
  416. package/esm5/components/primitive-calendar/primitive-calendar.module.js +1 -1
  417. package/esm5/components/primitive-checkbox/primitive-checkbox.component.js +1 -1
  418. package/esm5/components/primitive-spin-button/primitive-spin-button.component.js +2 -2
  419. package/esm5/components/primitive-textfield/index.js +2 -1
  420. package/esm5/components/primitive-textfield/primitive-textfield.component.js +43 -104
  421. package/esm5/components/primitive-textfield/primitive-textfield.module.js +7 -2
  422. package/esm5/components/primitive-textfield/primitive-textfield.providers.js +1 -1
  423. package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +99 -0
  424. package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  425. package/esm5/components/root/root.module.js +1 -1
  426. package/esm5/components/scroll-controls/index.js +2 -2
  427. package/esm5/components/scroll-controls/scroll-controls.component.js +2 -2
  428. package/esm5/components/scroll-controls/scroll-controls.module.js +2 -2
  429. package/esm5/components/scrollbar/index.js +2 -2
  430. package/esm5/components/scrollbar/scrollable.directive.js +17 -5
  431. package/esm5/components/scrollbar/scrollbar.component.js +20 -22
  432. package/esm5/components/scrollbar/scrollbar.module.js +1 -1
  433. package/esm5/components/svg/svg.module.js +1 -1
  434. package/esm5/components/theme-night/theme-night.module.js +1 -1
  435. package/esm5/components/tooltip/tooltip.component.js +1 -1
  436. package/esm5/components/wrapper/wrapper.component.js +1 -1
  437. package/esm5/components/wrapper/wrapper.module.js +1 -1
  438. package/esm5/constants/events.js +6 -1
  439. package/esm5/constants/index.js +2 -2
  440. package/esm5/constants/media.js +2 -1
  441. package/esm5/constants/regexp.js +2 -1
  442. package/esm5/constants/version.js +2 -2
  443. package/esm5/directives/border/border.directive.js +51 -0
  444. package/esm5/directives/border/border.module.js +16 -0
  445. package/esm5/directives/border/index.js +3 -0
  446. package/esm5/directives/border/taiga-ui-core-directives-border.js +5 -0
  447. package/esm5/directives/color/color.module.js +1 -1
  448. package/esm5/directives/color/index.js +2 -2
  449. package/esm5/directives/described-by/described-by.module.js +1 -1
  450. package/esm5/directives/dropdown-controller/dropdown-controller.directive.js +1 -1
  451. package/esm5/directives/dropdown-controller/dropdown-controller.module.js +1 -1
  452. package/esm5/directives/dropdown-controller/dropdown-controller.provider.js +1 -1
  453. package/esm5/directives/dropdown-controller/dropdown-controller.token.js +1 -1
  454. package/esm5/directives/hint/hint.directive.js +10 -7
  455. package/esm5/directives/hint/hint.module.js +1 -1
  456. package/esm5/directives/hint-controller/hint-controller.directive.js +1 -1
  457. package/esm5/directives/hint-controller/hint-controller.module.js +1 -1
  458. package/esm5/directives/hint-controller/hint-controller.provider.js +1 -1
  459. package/esm5/directives/hint-controller/hint-controller.token.js +1 -1
  460. package/esm5/directives/index.js +3 -2
  461. package/esm5/directives/manual-hint/manual-hint.directive.js +10 -7
  462. package/esm5/directives/manual-hint/manual-hint.module.js +1 -1
  463. package/esm5/directives/mask-accessor/mask-accessor.module.js +1 -1
  464. package/esm5/directives/mode/mode.module.js +1 -1
  465. package/esm5/directives/pointer-hint/pointer-hint.directive.js +2 -2
  466. package/esm5/directives/pointer-hint/pointer-hint.module.js +1 -1
  467. package/esm5/directives/scroll-into-view/scroll-into-view.module.js +1 -1
  468. package/esm5/directives/table-mode/table-mode.module.js +1 -1
  469. package/esm5/directives/textfield-controller/index.js +3 -3
  470. package/esm5/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
  471. package/esm5/directives/textfield-controller/textfield-controller.module.js +1 -1
  472. package/esm5/directives/textfield-controller/textfield-controller.provider.js +2 -2
  473. package/esm5/directives/textfield-controller/textfield-size.directive.js +4 -2
  474. package/esm5/directives/textfield-controller/textfield-type.directive.js +4 -2
  475. package/esm5/directives/textfield-controller/textfield.controller.js +1 -1
  476. package/esm5/interfaces/dialog-context.js +1 -1
  477. package/esm5/interfaces/index.js +1 -1
  478. package/esm5/interfaces/media.js +1 -0
  479. package/esm5/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  480. package/esm5/internal/svg-defs-host/svg-defs-host.module.js +1 -1
  481. package/esm5/mask/index.js +1 -1
  482. package/esm5/modules/notifications/index.js +3 -3
  483. package/esm5/modules/notifications/notification-alert/Notification-alert.js +1 -1
  484. package/esm5/modules/notifications/notification-alert/notification-alert.component.js +2 -2
  485. package/esm5/modules/notifications/notifications-host/notifications-host.component.js +2 -2
  486. package/esm5/modules/notifications/notifications.module.js +1 -1
  487. package/esm5/modules/notifications/notifications.service.js +1 -1
  488. package/esm5/pipes/calendar-sheet/calendar-sheet.module.js +1 -1
  489. package/esm5/pipes/calendar-sheet/calendar-sheet.pipe.js +1 -1
  490. package/esm5/pipes/calendar-sheet/index.js +2 -2
  491. package/esm5/pipes/format-number/format-number.pipe.js +1 -1
  492. package/esm5/pipes/index.js +2 -2
  493. package/esm5/pipes/month/month.module.js +1 -1
  494. package/esm5/pipes/pluralize/pluralize.module.js +1 -1
  495. package/esm5/providers/index.js +2 -2
  496. package/esm5/services/hint.service.js +1 -1
  497. package/esm5/tokens/animation-options.js +1 -1
  498. package/esm5/tokens/index.js +5 -4
  499. package/esm5/tokens/media.js +9 -0
  500. package/esm5/tokens/ordered-short-week-days.js +1 -1
  501. package/esm5/types/marker-handler.js +1 -1
  502. package/esm5/utils/dom/process-icon.js +4 -2
  503. package/esm5/utils/mask/create-number-mask.js +30 -10
  504. package/esm5/utils/miscellaneous/get-border.js +3 -5
  505. package/fesm2015/taiga-ui-core-abstract.js +4 -2
  506. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  507. package/fesm2015/taiga-ui-core-components-button.js +21 -9
  508. package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
  509. package/fesm2015/taiga-ui-core-components-calendar.js +1 -1
  510. package/fesm2015/taiga-ui-core-components-calendar.js.map +1 -1
  511. package/fesm2015/taiga-ui-core-components-data-list.js +6 -5
  512. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  513. package/fesm2015/taiga-ui-core-components-dialog.js +16 -37
  514. package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
  515. package/fesm2015/taiga-ui-core-components-dropdown-box.js +1 -1
  516. package/fesm2015/taiga-ui-core-components-dropdown-box.js.map +1 -1
  517. package/fesm2015/taiga-ui-core-components-error.js +1 -1
  518. package/fesm2015/taiga-ui-core-components-error.js.map +1 -1
  519. package/fesm2015/taiga-ui-core-components-expand.js +3 -2
  520. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  521. package/fesm2015/taiga-ui-core-components-group.js.map +1 -1
  522. package/fesm2015/taiga-ui-core-components-hints-host.js +16 -10
  523. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  524. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +3 -12
  525. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  526. package/fesm2015/taiga-ui-core-components-label.js +1 -1
  527. package/fesm2015/taiga-ui-core-components-label.js.map +1 -1
  528. package/fesm2015/taiga-ui-core-components-link.js +1 -1
  529. package/fesm2015/taiga-ui-core-components-loader.js +2 -2
  530. package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
  531. package/fesm2015/taiga-ui-core-components-notification.js +1 -1
  532. package/fesm2015/taiga-ui-core-components-primitive-calendar.js +2 -2
  533. package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  534. package/fesm2015/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
  535. package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +2 -2
  536. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +102 -69
  537. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  538. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +2 -2
  539. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  540. package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
  541. package/fesm2015/taiga-ui-core-components-scroll-controls.js +56 -56
  542. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  543. package/fesm2015/taiga-ui-core-components-scrollbar.js +49 -33
  544. package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
  545. package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
  546. package/fesm2015/taiga-ui-core-components-theme-night.js.map +1 -1
  547. package/fesm2015/taiga-ui-core-components-tooltip.js +1 -1
  548. package/fesm2015/taiga-ui-core-components-wrapper.js +1 -1
  549. package/fesm2015/taiga-ui-core-components-wrapper.js.map +1 -1
  550. package/fesm2015/taiga-ui-core-components.js +1 -1
  551. package/fesm2015/taiga-ui-core-constants.js +11 -4
  552. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  553. package/fesm2015/taiga-ui-core-directives-border.js +57 -0
  554. package/fesm2015/taiga-ui-core-directives-border.js.map +1 -0
  555. package/fesm2015/taiga-ui-core-directives-color.js.map +1 -1
  556. package/fesm2015/taiga-ui-core-directives-described-by.js.map +1 -1
  557. package/fesm2015/taiga-ui-core-directives-dropdown-controller.js.map +1 -1
  558. package/fesm2015/taiga-ui-core-directives-hint-controller.js.map +1 -1
  559. package/fesm2015/taiga-ui-core-directives-hint.js +9 -6
  560. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  561. package/fesm2015/taiga-ui-core-directives-manual-hint.js +9 -6
  562. package/fesm2015/taiga-ui-core-directives-manual-hint.js.map +1 -1
  563. package/fesm2015/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  564. package/fesm2015/taiga-ui-core-directives-mode.js.map +1 -1
  565. package/fesm2015/taiga-ui-core-directives-pointer-hint.js +1 -1
  566. package/fesm2015/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  567. package/fesm2015/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
  568. package/fesm2015/taiga-ui-core-directives-table-mode.js.map +1 -1
  569. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +9 -3
  570. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  571. package/fesm2015/taiga-ui-core-directives.js +2 -1
  572. package/fesm2015/taiga-ui-core-directives.js.map +1 -1
  573. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  574. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  575. package/fesm2015/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
  576. package/fesm2015/taiga-ui-core-modules-notifications.js +24 -24
  577. package/fesm2015/taiga-ui-core-modules-notifications.js.map +1 -1
  578. package/fesm2015/taiga-ui-core-pipes-calendar-sheet.js.map +1 -1
  579. package/fesm2015/taiga-ui-core-pipes-format-number.js.map +1 -1
  580. package/fesm2015/taiga-ui-core-pipes-month.js.map +1 -1
  581. package/fesm2015/taiga-ui-core-pipes-pluralize.js.map +1 -1
  582. package/fesm2015/taiga-ui-core-pipes.js +1 -1
  583. package/fesm2015/taiga-ui-core-providers.js +7 -7
  584. package/fesm2015/taiga-ui-core-providers.js.map +1 -1
  585. package/fesm2015/taiga-ui-core-services.js.map +1 -1
  586. package/fesm2015/taiga-ui-core-tokens.js +28 -20
  587. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  588. package/fesm2015/taiga-ui-core-utils-dom.js +3 -1
  589. package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
  590. package/fesm2015/taiga-ui-core-utils-mask.js +27 -9
  591. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  592. package/fesm2015/taiga-ui-core-utils-miscellaneous.js +2 -4
  593. package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  594. package/fesm5/taiga-ui-core-abstract.js +4 -2
  595. package/fesm5/taiga-ui-core-abstract.js.map +1 -1
  596. package/fesm5/taiga-ui-core-components-button.js +21 -9
  597. package/fesm5/taiga-ui-core-components-button.js.map +1 -1
  598. package/fesm5/taiga-ui-core-components-calendar.js +1 -1
  599. package/fesm5/taiga-ui-core-components-calendar.js.map +1 -1
  600. package/fesm5/taiga-ui-core-components-data-list.js +6 -5
  601. package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
  602. package/fesm5/taiga-ui-core-components-dialog.js +20 -44
  603. package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
  604. package/fesm5/taiga-ui-core-components-dropdown-box.js +1 -1
  605. package/fesm5/taiga-ui-core-components-dropdown-box.js.map +1 -1
  606. package/fesm5/taiga-ui-core-components-error.js +1 -1
  607. package/fesm5/taiga-ui-core-components-error.js.map +1 -1
  608. package/fesm5/taiga-ui-core-components-expand.js +3 -2
  609. package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
  610. package/fesm5/taiga-ui-core-components-group.js.map +1 -1
  611. package/fesm5/taiga-ui-core-components-hints-host.js +16 -10
  612. package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
  613. package/fesm5/taiga-ui-core-components-hosted-dropdown.js +3 -16
  614. package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  615. package/fesm5/taiga-ui-core-components-label.js +1 -1
  616. package/fesm5/taiga-ui-core-components-label.js.map +1 -1
  617. package/fesm5/taiga-ui-core-components-link.js +1 -1
  618. package/fesm5/taiga-ui-core-components-loader.js +2 -2
  619. package/fesm5/taiga-ui-core-components-loader.js.map +1 -1
  620. package/fesm5/taiga-ui-core-components-notification.js +1 -1
  621. package/fesm5/taiga-ui-core-components-primitive-calendar.js +2 -2
  622. package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  623. package/fesm5/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
  624. package/fesm5/taiga-ui-core-components-primitive-spin-button.js +2 -2
  625. package/fesm5/taiga-ui-core-components-primitive-textfield.js +141 -106
  626. package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  627. package/fesm5/taiga-ui-core-components-primitive-year-picker.js +2 -2
  628. package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  629. package/fesm5/taiga-ui-core-components-root.js.map +1 -1
  630. package/fesm5/taiga-ui-core-components-scroll-controls.js +63 -63
  631. package/fesm5/taiga-ui-core-components-scroll-controls.js.map +1 -1
  632. package/fesm5/taiga-ui-core-components-scrollbar.js +51 -41
  633. package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
  634. package/fesm5/taiga-ui-core-components-svg.js.map +1 -1
  635. package/fesm5/taiga-ui-core-components-theme-night.js.map +1 -1
  636. package/fesm5/taiga-ui-core-components-tooltip.js +1 -1
  637. package/fesm5/taiga-ui-core-components-wrapper.js +1 -1
  638. package/fesm5/taiga-ui-core-components-wrapper.js.map +1 -1
  639. package/fesm5/taiga-ui-core-components.js +1 -1
  640. package/fesm5/taiga-ui-core-constants.js +11 -4
  641. package/fesm5/taiga-ui-core-constants.js.map +1 -1
  642. package/fesm5/taiga-ui-core-directives-border.js +69 -0
  643. package/fesm5/taiga-ui-core-directives-border.js.map +1 -0
  644. package/fesm5/taiga-ui-core-directives-color.js.map +1 -1
  645. package/fesm5/taiga-ui-core-directives-described-by.js.map +1 -1
  646. package/fesm5/taiga-ui-core-directives-dropdown-controller.js.map +1 -1
  647. package/fesm5/taiga-ui-core-directives-hint-controller.js.map +1 -1
  648. package/fesm5/taiga-ui-core-directives-hint.js +9 -6
  649. package/fesm5/taiga-ui-core-directives-hint.js.map +1 -1
  650. package/fesm5/taiga-ui-core-directives-manual-hint.js +9 -6
  651. package/fesm5/taiga-ui-core-directives-manual-hint.js.map +1 -1
  652. package/fesm5/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  653. package/fesm5/taiga-ui-core-directives-mode.js.map +1 -1
  654. package/fesm5/taiga-ui-core-directives-pointer-hint.js +1 -1
  655. package/fesm5/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  656. package/fesm5/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
  657. package/fesm5/taiga-ui-core-directives-table-mode.js.map +1 -1
  658. package/fesm5/taiga-ui-core-directives-textfield-controller.js +9 -3
  659. package/fesm5/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  660. package/fesm5/taiga-ui-core-directives.js +2 -1
  661. package/fesm5/taiga-ui-core-directives.js.map +1 -1
  662. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  663. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  664. package/fesm5/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
  665. package/fesm5/taiga-ui-core-modules-notifications.js +25 -25
  666. package/fesm5/taiga-ui-core-modules-notifications.js.map +1 -1
  667. package/fesm5/taiga-ui-core-pipes-calendar-sheet.js.map +1 -1
  668. package/fesm5/taiga-ui-core-pipes-format-number.js.map +1 -1
  669. package/fesm5/taiga-ui-core-pipes-month.js.map +1 -1
  670. package/fesm5/taiga-ui-core-pipes-pluralize.js.map +1 -1
  671. package/fesm5/taiga-ui-core-pipes.js +1 -1
  672. package/fesm5/taiga-ui-core-providers.js +7 -7
  673. package/fesm5/taiga-ui-core-providers.js.map +1 -1
  674. package/fesm5/taiga-ui-core-services.js.map +1 -1
  675. package/fesm5/taiga-ui-core-tokens.js +28 -20
  676. package/fesm5/taiga-ui-core-tokens.js.map +1 -1
  677. package/fesm5/taiga-ui-core-utils-dom.js +3 -1
  678. package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
  679. package/fesm5/taiga-ui-core-utils-mask.js +30 -10
  680. package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
  681. package/fesm5/taiga-ui-core-utils-miscellaneous.js +2 -4
  682. package/fesm5/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  683. package/interfaces/index.d.ts +2 -1
  684. package/interfaces/media.d.ts +6 -0
  685. package/interfaces/taiga-ui-core-interfaces.metadata.json +1 -1
  686. package/internal/primitive-year-month-pagination/taiga-ui-core-internal-primitive-year-month-pagination.metadata.json +1 -1
  687. package/internal/svg-defs-host/taiga-ui-core-internal-svg-defs-host.metadata.json +1 -1
  688. package/mask/index.d.ts +1 -1
  689. package/mask/taiga-ui-core-mask.metadata.json +1 -1
  690. package/modules/notifications/index.d.ts +2 -2
  691. package/modules/notifications/taiga-ui-core-modules-notifications.metadata.json +1 -1
  692. package/package.json +5 -5
  693. package/pipes/calendar-sheet/index.d.ts +1 -1
  694. package/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.metadata.json +1 -1
  695. package/pipes/index.d.ts +1 -1
  696. package/pipes/month/taiga-ui-core-pipes-month.metadata.json +1 -1
  697. package/pipes/pluralize/taiga-ui-core-pipes-pluralize.metadata.json +1 -1
  698. package/pipes/taiga-ui-core-pipes.metadata.json +1 -1
  699. package/providers/index.d.ts +1 -1
  700. package/providers/taiga-ui-core-providers.metadata.json +1 -1
  701. package/services/taiga-ui-core-services.metadata.json +1 -1
  702. package/styles/basic/main.less +2 -4
  703. package/styles/markup/tui-autofill.less +2 -0
  704. package/styles/markup/tui-container-old.less +69 -0
  705. package/styles/markup/tui-form-old.less +141 -0
  706. package/styles/markup/tui-form.less +12 -12
  707. package/styles/markup/tui-group-old.less +322 -0
  708. package/styles/markup/tui-group.less +2 -2
  709. package/styles/markup/tui-row-old.less +157 -0
  710. package/styles/markup/tui-table.less +2 -2
  711. package/styles/mixins/mixins.less +8 -3
  712. package/styles/mixins/picker.less +1 -1
  713. package/styles/mixins/textfield.less +37 -78
  714. package/styles/taiga-ui-global-old.less +18 -0
  715. package/styles/taiga-ui-local-old.less +7 -0
  716. package/styles/theme/variables.less +4 -0
  717. package/styles/theme/wrapper/table.less +4 -0
  718. package/styles/variables/media-old.less +48 -0
  719. package/styles/variables/media.less +4 -4
  720. package/tokens/index.d.ts +4 -3
  721. package/tokens/media.d.ts +3 -0
  722. package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
  723. package/utils/mask/create-number-mask.d.ts +1 -0
  724. package/utils/miscellaneous/get-border.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-primitive-year-picker.js","sources":["ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.component.ts","ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.module.ts","ng://@taiga-ui/core/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n inRange,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\n\n@Component({\n selector: 'tui-primitive-year-picker',\n templateUrl: './primitive-year-picker.template.html',\n styleUrls: ['./primitive-year-picker.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveYearPickerComponent {\n @Input()\n @tuiDefaultProp()\n value: TuiYear | TuiDayRange | null = null;\n\n @Input()\n @tuiDefaultProp()\n initialItem = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n min: TuiYear = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiYear = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<number> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly yearClick = new EventEmitter<TuiYear | TuiDayRange>();\n\n private hoveredItem: number | null = null;\n\n private pressedItem: number | null = null;\n\n private currentYear = TuiMonth.currentLocal().year;\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n const {value} = this;\n\n return !!value && this.isRange(value) && value.from.yearSame(value.to);\n }\n\n get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n get calculatedMin(): number {\n const initial = this.initialItem.year - LIMIT;\n\n return this.min.year > initial ? this.min.year : initial;\n }\n\n get calculatedMax(): number {\n const initial = this.initialItem.year + LIMIT;\n\n return this.max.year < initial ? this.max.year + 1 : initial;\n }\n\n isRange(item: TuiMonthRange | TuiYear): item is TuiMonthRange {\n return item instanceof TuiMonthRange;\n }\n\n scrollItemIntoView(item: number): boolean {\n return this.initialItem.year === item;\n }\n\n getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n getItemState(item: number): TuiInteractiveState | null {\n const {disabledItemHandler, max, pressedItem, hoveredItem} = this;\n\n if (\n max.year < item ||\n (disabledItemHandler !== ALWAYS_FALSE_HANDLER && disabledItemHandler(item))\n ) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem === item) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem === item) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: number): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiYear) {\n return value.year === item ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem > value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem < value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem < value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem > value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.End;\n }\n\n return value.from.yearSame(value.to) && value.from.year === item\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsToday(item: number): boolean {\n return this.currentYear === item;\n }\n\n itemIsInterval(item: number): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || !this.isRange(value)) {\n return false;\n }\n\n if (!value.from.yearSame(value.to)) {\n return value.from.year <= item && value.to.year > item;\n }\n\n if (hoveredItem === null || value.from.year === hoveredItem) {\n return false;\n }\n\n return inRange(\n item,\n Math.min(value.from.year, hoveredItem),\n Math.max(value.from.year, hoveredItem),\n );\n }\n\n onItemHovered(hovered: boolean, item: number) {\n this.updateHoveredItem(hovered, item);\n }\n\n onItemPressed(pressed: boolean, item: number) {\n this.updatePressedItem(pressed, item);\n }\n\n onItemClick(item: number) {\n this.yearClick.emit(new TuiYear(item));\n }\n\n private updateHoveredItem(hovered: boolean, item: number) {\n this.hoveredItem = hovered ? item : null;\n }\n\n private updatePressedItem(pressed: boolean, item: number) {\n this.pressedItem = pressed ? item : null;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiScrollIntoViewModule} from '@taiga-ui/core/directives/scroll-into-view';\n\nimport {TuiPrimitiveYearPickerComponent} from './primitive-year-picker.component';\n\n@NgModule({\n imports: [\n TuiHoveredModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n TuiLetModule,\n TuiScrollIntoViewModule,\n ],\n declarations: [TuiPrimitiveYearPickerComponent],\n exports: [TuiPrimitiveYearPickerComponent],\n})\nexport class TuiPrimitiveYearPickerModule {}\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-core-components-primitive-year-picker.js","sources":["ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.component.ts","ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.module.ts","ng://@taiga-ui/core/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n inRange,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\n\n@Component({\n selector: 'tui-primitive-year-picker',\n templateUrl: './primitive-year-picker.template.html',\n styleUrls: ['./primitive-year-picker.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveYearPickerComponent {\n @Input()\n @tuiDefaultProp()\n value: TuiYear | TuiDayRange | null = null;\n\n @Input()\n @tuiDefaultProp()\n initialItem = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n min: TuiYear = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiYear = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<number> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly yearClick = new EventEmitter<TuiYear | TuiDayRange>();\n\n private hoveredItem: number | null = null;\n\n private pressedItem: number | null = null;\n\n private currentYear = TuiMonth.currentLocal().year;\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n const {value} = this;\n\n return !!value && this.isRange(value) && value.from.yearSame(value.to);\n }\n\n get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n get calculatedMin(): number {\n const initial = this.initialItem.year - LIMIT;\n\n return this.min.year > initial ? this.min.year : initial;\n }\n\n get calculatedMax(): number {\n const initial = this.initialItem.year + LIMIT;\n\n return this.max.year < initial ? this.max.year + 1 : initial;\n }\n\n isRange(item: TuiMonthRange | TuiYear): item is TuiMonthRange {\n return item instanceof TuiMonthRange;\n }\n\n scrollItemIntoView(item: number): boolean {\n return this.initialItem.year === item;\n }\n\n getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n getItemState(item: number): TuiInteractiveState | null {\n const {disabledItemHandler, max, pressedItem, hoveredItem} = this;\n\n if (\n max.year < item ||\n (disabledItemHandler !== ALWAYS_FALSE_HANDLER && disabledItemHandler(item))\n ) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem === item) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem === item) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: number): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiYear) {\n return value.year === item ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem > value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem < value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem < value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem > value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.End;\n }\n\n return value.from.yearSame(value.to) && value.from.year === item\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsToday(item: number): boolean {\n return this.currentYear === item;\n }\n\n itemIsInterval(item: number): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || !this.isRange(value)) {\n return false;\n }\n\n if (!value.from.yearSame(value.to)) {\n return value.from.year <= item && value.to.year > item;\n }\n\n if (hoveredItem === null || value.from.year === hoveredItem) {\n return false;\n }\n\n return inRange(\n item,\n Math.min(value.from.year, hoveredItem),\n Math.max(value.from.year, hoveredItem),\n );\n }\n\n onItemHovered(hovered: boolean, item: number) {\n this.updateHoveredItem(hovered, item);\n }\n\n onItemPressed(pressed: boolean, item: number) {\n this.updatePressedItem(pressed, item);\n }\n\n onItemClick(item: number) {\n this.yearClick.emit(new TuiYear(item));\n }\n\n private updateHoveredItem(hovered: boolean, item: number) {\n this.hoveredItem = hovered ? item : null;\n }\n\n private updatePressedItem(pressed: boolean, item: number) {\n this.pressedItem = pressed ? item : null;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiScrollIntoViewModule} from '@taiga-ui/core/directives/scroll-into-view';\n\nimport {TuiPrimitiveYearPickerComponent} from './primitive-year-picker.component';\n\n@NgModule({\n imports: [\n TuiHoveredModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n TuiLetModule,\n TuiScrollIntoViewModule,\n ],\n declarations: [TuiPrimitiveYearPickerComponent],\n exports: [TuiPrimitiveYearPickerComponent],\n})\nexport class TuiPrimitiveYearPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-root.js","sources":["ng://@taiga-ui/core/components/root/root.component.ts","ng://@taiga-ui/core/components/root/root.module.ts","ng://@taiga-ui/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Optional,\n} from '@angular/core';\nimport {TUI_DIALOGS, TUI_IS_MOBILE, tuiAssert} from '@taiga-ui/cdk';\nimport {VERSION} from '@taiga-ui/core/constants';\nimport {TuiNotificationsHostComponent} from '@taiga-ui/core/modules/notifications';\nimport {TUI_ANIMATIONS_DURATION, TUI_ASSERT_ENABLED} from '@taiga-ui/core/tokens';\nimport {merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-root',\n templateUrl: 'root.template.html',\n styleUrls: ['./root.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-tui-version': VERSION,\n '[style.--tui-duration]': 'duration + \"ms\"',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$ =\n this.dialogs && !this.isMobile\n ? merge(...this.dialogs).pipe(map(({length}) => !length))\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(ElementRef) readonly elementRef: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_DIALOGS)\n readonly dialogs: readonly Observable<readonly unknown[]>[] | null,\n @Optional()\n @Inject(TuiNotificationsHostComponent)\n readonly notificationsHost: TuiNotificationsHostComponent,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_ASSERT_ENABLED) enabled: boolean,\n ) {\n tuiAssert.enabled = enabled;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiDialogHostModule, TuiDragModule, TuiPortalHostModule} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiPortalHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA;;IAiBI,0BAC8C,QAAgB,EAC7B,UAAmC,EAGvD,OAAyD,EAGzD,iBAAgD,EACjB,QAAiB,EAC7B,OAAgB;QATF,aAAQ,GAAR,QAAQ,CAAQ;QAC7B,eAAU,GAAV,UAAU,CAAyB;QAGvD,YAAO,GAAP,OAAO,CAAkD;QAGzD,sBAAiB,GAAjB,iBAAiB,CAA+B;QACjB,aAAQ,GAAR,QAAQ,CAAS;QAdpD,gBAAW,GAChB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;cACxB,KAAK,wBAAI,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,GAAG,CAAC,UAAC,EAAQ;oBAAP,kBAAM;gBAAM,OAAA,CAAC,MAAM;aAAA,CAAC,CAAC;cACvD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAczB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;KAC/B;;6CAZI,MAAM,SAAC,uBAAuB;gBACU,UAAU,uBAAlD,MAAM,SAAC,UAAU;gDACjB,QAAQ,YACR,MAAM,SAAC,WAAW;gBAIS,6BAA6B,uBAFxD,QAAQ,YACR,MAAM,SAAC,6BAA6B;8CAEpC,MAAM,SAAC,aAAa;8CACpB,MAAM,SAAC,kBAAkB;;IAhBrB,gBAAgB;QAV5B,SAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,6xBAAiC;YAEjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,IAAI,EAAE;gBACF,kBAAkB,EAAE,OAAO;gBAC3B,wBAAwB,EAAE,iBAAiB;aAC9C;;SACJ,CAAC;QAQO,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAC/B,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;QAEnB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;QAErC,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;QACrB,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;OAhBtB,gBAAgB,CAoB5B;IAAD,uBAAC;CApBD;;;ICFA;KAA6B;IAAhB,aAAa;QAdzB,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,kBAAkB;gBAClB,aAAa;gBACb,mBAAmB;gBACnB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,uBAAuB;aAC1B;YACD,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;OACW,aAAa,CAAG;IAAD,oBAAC;CAA7B;;ACvBA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-components-root.js","sources":["ng://@taiga-ui/core/components/root/root.component.ts","ng://@taiga-ui/core/components/root/root.module.ts","ng://@taiga-ui/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Optional,\n} from '@angular/core';\nimport {TUI_DIALOGS, TUI_IS_MOBILE, tuiAssert} from '@taiga-ui/cdk';\nimport {VERSION} from '@taiga-ui/core/constants';\nimport {TuiNotificationsHostComponent} from '@taiga-ui/core/modules/notifications';\nimport {TUI_ANIMATIONS_DURATION, TUI_ASSERT_ENABLED} from '@taiga-ui/core/tokens';\nimport {merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-root',\n templateUrl: 'root.template.html',\n styleUrls: ['./root.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-tui-version': VERSION,\n '[style.--tui-duration]': 'duration + \"ms\"',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$ =\n this.dialogs && !this.isMobile\n ? merge(...this.dialogs).pipe(map(({length}) => !length))\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(ElementRef) readonly elementRef: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_DIALOGS)\n readonly dialogs: readonly Observable<readonly unknown[]>[] | null,\n @Optional()\n @Inject(TuiNotificationsHostComponent)\n readonly notificationsHost: TuiNotificationsHostComponent,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_ASSERT_ENABLED) enabled: boolean,\n ) {\n tuiAssert.enabled = enabled;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiDialogHostModule, TuiDragModule, TuiPortalHostModule} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\n\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiPortalHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA;;IAiBI,0BAC8C,QAAgB,EAC7B,UAAmC,EAGvD,OAAyD,EAGzD,iBAAgD,EACjB,QAAiB,EAC7B,OAAgB;QATF,aAAQ,GAAR,QAAQ,CAAQ;QAC7B,eAAU,GAAV,UAAU,CAAyB;QAGvD,YAAO,GAAP,OAAO,CAAkD;QAGzD,sBAAiB,GAAjB,iBAAiB,CAA+B;QACjB,aAAQ,GAAR,QAAQ,CAAS;QAdpD,gBAAW,GAChB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;cACxB,KAAK,wBAAI,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,GAAG,CAAC,UAAC,EAAQ;oBAAP,kBAAM;gBAAM,OAAA,CAAC,MAAM;aAAA,CAAC,CAAC;cACvD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAczB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;KAC/B;;6CAZI,MAAM,SAAC,uBAAuB;gBACU,UAAU,uBAAlD,MAAM,SAAC,UAAU;gDACjB,QAAQ,YACR,MAAM,SAAC,WAAW;gBAIS,6BAA6B,uBAFxD,QAAQ,YACR,MAAM,SAAC,6BAA6B;8CAEpC,MAAM,SAAC,aAAa;8CACpB,MAAM,SAAC,kBAAkB;;IAhBrB,gBAAgB;QAV5B,SAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,6xBAAiC;YAEjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,IAAI,EAAE;gBACF,kBAAkB,EAAE,OAAO;gBAC3B,wBAAwB,EAAE,iBAAiB;aAC9C;;SACJ,CAAC;QAQO,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAC/B,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;QAEnB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;QAErC,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;QACrB,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;OAhBtB,gBAAgB,CAoB5B;IAAD,uBAAC;CApBD;;;ICDA;KAA6B;IAAhB,aAAa;QAdzB,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,kBAAkB;gBAClB,aAAa;gBACb,mBAAmB;gBACnB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,uBAAuB;aAC1B;YACD,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;OACW,aAAa,CAAG;IAAD,oBAAC;CAA7B;;ACxBA;;;;;;"}
@@ -1,13 +1,70 @@
1
- import { __read, __decorate, __param, __assign } from 'tslib';
1
+ import { __assign, __decorate, __param, __read } from 'tslib';
2
2
  import { DOCUMENT, ViewportScroller, CommonModule } from '@angular/common';
3
- import { NgZone, Inject, Renderer2, ElementRef, Optional, Input, Directive, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { Inject, NgZone, ElementRef, Optional, Component, ChangeDetectionStrategy, Renderer2, Input, Directive, NgModule } from '@angular/core';
4
4
  import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
5
- import { typedFromEvent, preventDefault, stopPropagation, tuiZonefree, POLLING_TIME, TuiDestroyService, tuiZoneOptimized, TuiLetModule } from '@taiga-ui/cdk';
6
- import { TUI_ELEMENT_REF, TUI_SCROLL_REF, TUI_ANIMATION_OPTIONS, TUI_MODE } from '@taiga-ui/core/tokens';
7
- import { merge, fromEvent, Observable } from 'rxjs';
8
- import { map, switchMap, takeUntil, throttleTime, startWith, distinctUntilChanged } from 'rxjs/operators';
5
+ import { tuiZoneOptimized, typedFromEvent, preventDefault, stopPropagation, tuiZonefree, POLLING_TIME, TuiDestroyService, TuiLetModule } from '@taiga-ui/cdk';
9
6
  import { tuiFadeIn } from '@taiga-ui/core/animations';
10
7
  import { MODE_PROVIDER } from '@taiga-ui/core/providers';
8
+ import { TUI_ANIMATION_OPTIONS, TUI_SCROLL_REF, TUI_MODE, TUI_ELEMENT_REF } from '@taiga-ui/core/tokens';
9
+ import { Observable, merge, fromEvent } from 'rxjs';
10
+ import { throttleTime, map, startWith, distinctUntilChanged, switchMap, takeUntil } from 'rxjs/operators';
11
+
12
+ // @dynamic
13
+ var TuiScrollControlsComponent = /** @class */ (function () {
14
+ function TuiScrollControlsComponent(options, ngZone, documentRef, scrollRef, animationFrame$, mode$) {
15
+ var _this = this;
16
+ this.options = options;
17
+ this.ngZone = ngZone;
18
+ this.documentRef = documentRef;
19
+ this.scrollRef = scrollRef;
20
+ this.animationFrame$ = animationFrame$;
21
+ this.mode$ = mode$;
22
+ this.refresh$ = this.animationFrame$.pipe(throttleTime(300), map(function () { return _this.scrollbars; }), startWith([false, false]), distinctUntilChanged(function (a, b) { return a[0] === b[0] && a[1] === b[1]; }), tuiZoneOptimized(this.ngZone));
23
+ this.animation = __assign({ value: '' }, this.options);
24
+ }
25
+ Object.defineProperty(TuiScrollControlsComponent.prototype, "scrollbars", {
26
+ get: function () {
27
+ var _a = this.scrollRef
28
+ ? this.scrollRef.nativeElement
29
+ : this.documentRef.documentElement, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, clientWidth = _a.clientWidth, scrollWidth = _a.scrollWidth;
30
+ return [
31
+ Math.ceil((clientHeight / scrollHeight) * 100) < 100,
32
+ Math.ceil((clientWidth / scrollWidth) * 100) < 100,
33
+ ];
34
+ },
35
+ enumerable: true,
36
+ configurable: true
37
+ });
38
+ TuiScrollControlsComponent.ctorParameters = function () { return [
39
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ANIMATION_OPTIONS,] }] },
40
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
41
+ { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
42
+ { type: ElementRef, decorators: [{ type: Optional }, { type: Inject, args: [TUI_SCROLL_REF,] }] },
43
+ { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
44
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_MODE,] }] }
45
+ ]; };
46
+ TuiScrollControlsComponent = __decorate([
47
+ Component({
48
+ selector: 'tui-scroll-controls',
49
+ template: "<ng-container *tuiLet=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n tuiScrollbarWrapper\n class=\"bar bar_vertical\"\n [@tuiFadeIn]=\"animation\"\n [class.bar_has-horizontal]=\"bars[1]\"\n >\n <div tuiScrollbar=\"vertical\" class=\"thumb\"></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n tuiScrollbarWrapper\n class=\"bar bar_horizontal\"\n [@tuiFadeIn]=\"animation\"\n [class.bar_has-vertical]=\"bars[0]\"\n >\n <div tuiScrollbar=\"horizontal\" class=\"thumb\"></div>\n </div>\n</ng-container>\n",
50
+ changeDetection: ChangeDetectionStrategy.OnPush,
51
+ animations: [tuiFadeIn],
52
+ providers: [MODE_PROVIDER],
53
+ host: {
54
+ '($.data-mode.attr)': 'mode$',
55
+ },
56
+ styles: [":host{position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-height:calc(100% - 1px);float:left;margin-right:calc(-100% + 1px);-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:calc(-100% + 1px);margin-inline-end:calc(-100% + 1px);pointer-events:none}.bar{position:absolute;right:0;bottom:0;pointer-events:auto}.bar_vertical{top:0;width:.875rem}.bar_horizontal{left:0;height:.875rem}.bar_has-horizontal{bottom:.5rem}.bar_has-vertical{right:.5rem}.thumb{transition-duration:.15s;transition-timing-function:ease-in-out;position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;background:var(--tui-text-01);background-clip:content-box;box-sizing:border-box;transition-property:width,height;opacity:.2}.thumb:hover{opacity:.24}.thumb:active{opacity:.48}:host[data-mode=onDark] .thumb{background-color:var(--tui-text-01-night)}.bar_vertical .thumb{right:0;width:.75rem;min-height:1.25rem}.bar_vertical .thumb:active,.bar_vertical:hover .thumb{width:.875rem}.bar_horizontal .thumb{bottom:0;height:.75rem;min-width:1.25rem}.bar_horizontal .thumb:active,.bar_horizontal:hover .thumb{height:.875rem}"]
57
+ }),
58
+ __param(0, Inject(TUI_ANIMATION_OPTIONS)),
59
+ __param(1, Inject(NgZone)),
60
+ __param(2, Inject(DOCUMENT)),
61
+ __param(3, Optional()),
62
+ __param(3, Inject(TUI_SCROLL_REF)),
63
+ __param(4, Inject(ANIMATION_FRAME)),
64
+ __param(5, Inject(TUI_MODE))
65
+ ], TuiScrollControlsComponent);
66
+ return TuiScrollControlsComponent;
67
+ }());
11
68
 
12
69
  var MIN_WIDTH = 24;
13
70
  // @dynamic
@@ -171,63 +228,6 @@ function getOffsetHorizontal(_a, _b) {
171
228
  return (clientX - left) / width;
172
229
  }
173
230
 
174
- // @dynamic
175
- var TuiScrollControlsComponent = /** @class */ (function () {
176
- function TuiScrollControlsComponent(options, ngZone, documentRef, scrollRef, animationFrame$, mode$) {
177
- var _this = this;
178
- this.options = options;
179
- this.ngZone = ngZone;
180
- this.documentRef = documentRef;
181
- this.scrollRef = scrollRef;
182
- this.animationFrame$ = animationFrame$;
183
- this.mode$ = mode$;
184
- this.refresh$ = this.animationFrame$.pipe(throttleTime(300), map(function () { return _this.scrollbars; }), startWith([false, false]), distinctUntilChanged(function (a, b) { return a[0] === b[0] && a[1] === b[1]; }), tuiZoneOptimized(this.ngZone));
185
- this.animation = __assign({ value: '' }, this.options);
186
- }
187
- Object.defineProperty(TuiScrollControlsComponent.prototype, "scrollbars", {
188
- get: function () {
189
- var _a = this.scrollRef
190
- ? this.scrollRef.nativeElement
191
- : this.documentRef.documentElement, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, clientWidth = _a.clientWidth, scrollWidth = _a.scrollWidth;
192
- return [
193
- Math.ceil((clientHeight / scrollHeight) * 100) < 100,
194
- Math.ceil((clientWidth / scrollWidth) * 100) < 100,
195
- ];
196
- },
197
- enumerable: true,
198
- configurable: true
199
- });
200
- TuiScrollControlsComponent.ctorParameters = function () { return [
201
- { type: undefined, decorators: [{ type: Inject, args: [TUI_ANIMATION_OPTIONS,] }] },
202
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
203
- { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
204
- { type: ElementRef, decorators: [{ type: Optional }, { type: Inject, args: [TUI_SCROLL_REF,] }] },
205
- { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
206
- { type: Observable, decorators: [{ type: Inject, args: [TUI_MODE,] }] }
207
- ]; };
208
- TuiScrollControlsComponent = __decorate([
209
- Component({
210
- selector: 'tui-scroll-controls',
211
- template: "<ng-container *tuiLet=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n tuiScrollbarWrapper\n class=\"bar bar_vertical\"\n [class.bar_has-horizontal]=\"bars[1]\"\n [@tuiFadeIn]=\"animation\"\n >\n <div tuiScrollbar=\"vertical\" class=\"thumb\"></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n tuiScrollbarWrapper\n class=\"bar bar_horizontal\"\n [class.bar_has-vertical]=\"bars[0]\"\n [@tuiFadeIn]=\"animation\"\n >\n <div tuiScrollbar=\"horizontal\" class=\"thumb\"></div>\n </div>\n</ng-container>\n",
212
- changeDetection: ChangeDetectionStrategy.OnPush,
213
- animations: [tuiFadeIn],
214
- providers: [MODE_PROVIDER],
215
- host: {
216
- '($.data-mode.attr)': 'mode$',
217
- },
218
- styles: [":host{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-height:calc(100% - 1px);float:left;margin-right:calc(-100% + 1px);pointer-events:none}.bar{position:absolute;right:0;bottom:0;pointer-events:auto}.bar_vertical{top:0;width:.875rem}.bar_horizontal{left:0;height:.875rem}.bar_has-horizontal{bottom:.5rem}.bar_has-vertical{right:.5rem}.thumb{transition-duration:.15s;transition-timing-function:ease-in-out;position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;background:var(--tui-text-01);background-clip:content-box;box-sizing:border-box;transition-property:width,height;opacity:.2}.thumb:hover{opacity:.24}.thumb:active{opacity:.48}:host[data-mode=onDark] .thumb{background-color:var(--tui-text-01-night)}.bar_vertical .thumb{right:0;width:.75rem;min-height:1.25rem}.bar_vertical .thumb:active,.bar_vertical:hover .thumb{width:.875rem}.bar_horizontal .thumb{bottom:0;height:.75rem;min-width:1.25rem}.bar_horizontal .thumb:active,.bar_horizontal:hover .thumb{height:.875rem}"]
219
- }),
220
- __param(0, Inject(TUI_ANIMATION_OPTIONS)),
221
- __param(1, Inject(NgZone)),
222
- __param(2, Inject(DOCUMENT)),
223
- __param(3, Optional()),
224
- __param(3, Inject(TUI_SCROLL_REF)),
225
- __param(4, Inject(ANIMATION_FRAME)),
226
- __param(5, Inject(TUI_MODE))
227
- ], TuiScrollControlsComponent);
228
- return TuiScrollControlsComponent;
229
- }());
230
-
231
231
  var TuiScrollbarWrapperDirective = /** @class */ (function () {
232
232
  function TuiScrollbarWrapperDirective() {
233
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-scroll-controls.js","sources":["ng://@taiga-ui/core/components/scroll-controls/scrollbar.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scroll-controls.component.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar-wrapper.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scroll-controls.module.ts","ng://@taiga-ui/core/components/scroll-controls/taiga-ui-core-components-scroll-controls.ts"],"sourcesContent":["import {DOCUMENT, ViewportScroller} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {\n POLLING_TIME,\n preventDefault,\n stopPropagation,\n TuiDestroyService,\n tuiZonefree,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiOrientationT} from '@taiga-ui/core/types';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {map, switchMap, takeUntil, throttleTime} from 'rxjs/operators';\n\nconst MIN_WIDTH = 24;\n\n// @dynamic\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollbarDirective {\n @Input()\n tuiScrollbar: TuiOrientationT = 'vertical';\n\n constructor(\n @Inject(NgZone) ngZone: NgZone,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ELEMENT_REF) private readonly wrapper: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly container: ElementRef<HTMLElement> | null,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(ViewportScroller) private readonly viewportScroller: ViewportScroller,\n ) {\n const {nativeElement} = this.elementRef;\n const mousedown$ = typedFromEvent(nativeElement, 'mousedown');\n const mousemove$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseup$ = typedFromEvent(this.documentRef, 'mouseup');\n const mousedownWrapper$ = typedFromEvent(wrapper.nativeElement, 'mousedown');\n\n merge(\n mousedownWrapper$.pipe(\n preventDefault(),\n map(event => this.getScrolled(event, 0.5, 0.5)),\n ),\n mousedown$.pipe(\n preventDefault(),\n stopPropagation(),\n switchMap(event => {\n const rect = nativeElement.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return mousemove$.pipe(\n map(event => this.getScrolled(event, vertical, horizontal)),\n takeUntil(mouseup$),\n );\n }),\n ),\n )\n .pipe(takeUntil(destroy$), tuiZonefree(ngZone))\n .subscribe(([scrollTop, scrollLeft]) => {\n const [x, y] = this.viewportScroller.getScrollPosition();\n\n if (!this.container) {\n this.viewportScroller.scrollToPosition([\n this.tuiScrollbar === 'vertical' ? x : scrollLeft,\n this.tuiScrollbar === 'vertical' ? scrollTop : y,\n ]);\n\n return;\n }\n\n if (this.tuiScrollbar === 'vertical') {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollTop',\n scrollTop,\n );\n } else {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollLeft',\n scrollLeft,\n );\n }\n });\n\n merge(\n fromEvent(\n this.container ? this.container.nativeElement : this.windowRef,\n 'scroll',\n ),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n )\n .pipe(takeUntil(destroy$), tuiZonefree(ngZone))\n .subscribe(() => {\n if (this.tuiScrollbar === 'vertical') {\n renderer.setStyle(nativeElement, 'top', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'height', `${this.view * 100}%`);\n } else {\n renderer.setStyle(nativeElement, 'left', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'width', `${this.view * 100}%`);\n }\n });\n }\n\n private get scrolled(): number {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private get compensation(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / clientHeight\n : MIN_WIDTH / clientWidth;\n }\n\n private get thumb(): number {\n const compensation = this.compensation || this.view;\n\n return this.scrolled * (1 - compensation);\n }\n\n private get view(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((clientHeight / scrollHeight) * 100) / 100\n : Math.ceil((clientWidth / scrollWidth) * 100) / 100;\n }\n\n private get computedContainer(): Element {\n return this.container\n ? this.container.nativeElement\n : this.documentRef.scrollingElement!;\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetVertical: number,\n offsetHorizontal: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.elementRef.nativeElement;\n const {top, left, width, height} =\n this.wrapper.nativeElement.getBoundingClientRect();\n\n const maxTop = this.computedContainer.scrollHeight - height;\n const maxLeft = this.computedContainer.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: ClientRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: ClientRect): number {\n return (clientX - left) / width;\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_ANIMATION_OPTIONS, TUI_MODE, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-scroll-controls',\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiScrollControlsComponent {\n readonly refresh$ = this.animationFrame$.pipe(\n throttleTime(300),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(this.ngZone),\n );\n\n readonly animation = {\n value: '',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef\n ? this.scrollRef.nativeElement\n : this.documentRef.documentElement;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core/tokens';\n\n@Directive({\n selector: '[tuiScrollbarWrapper]',\n providers: [\n {\n provide: TUI_ELEMENT_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollbarWrapperDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\nimport {TuiScrollControlsComponent} from './scroll-controls.component';\nimport {TuiScrollbarWrapperDirective} from './scrollbar-wrapper.directive';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [\n TuiScrollbarDirective,\n TuiScrollbarWrapperDirective,\n TuiScrollControlsComponent,\n ],\n exports: [TuiScrollControlsComponent],\n})\nexport class TuiScrollControlsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {TuiScrollbarWrapperDirective as ɵa} from './scrollbar-wrapper.directive';"],"names":[],"mappings":";;;;;;;;;;;AAwBA,IAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;IASI,+BACoB,MAAc,EACX,QAAmB,EACX,QAA0B,EAC5B,eAAmC,EAClB,OAAgC,EAGzD,SAAyC,EACvB,WAAqB,EACvB,SAAiB,EACb,UAAmC,EAC7B,gBAAkC;QAZjF,iBAqFC;QAhF6C,YAAO,GAAP,OAAO,CAAyB;QAGzD,cAAS,GAAT,SAAS,CAAgC;QACvB,gBAAW,GAAX,WAAW,CAAU;QACvB,cAAS,GAAT,SAAS,CAAQ;QACb,eAAU,GAAV,UAAU,CAAyB;QAC7B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAdjF,iBAAY,GAAoB,UAAU,CAAC;QAgBhC,IAAA,6CAAa,CAAoB;QACxC,IAAM,UAAU,GAAG,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC9D,IAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACjE,IAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAE7E,KAAK,CACD,iBAAiB,CAAC,IAAI,CAClB,cAAc,EAAE,EAChB,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAA,CAAC,CAClD,EACD,UAAU,CAAC,IAAI,CACX,cAAc,EAAE,EAChB,eAAe,EAAE,EACjB,SAAS,CAAC,UAAA,KAAK;YACX,IAAM,IAAI,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACnD,IAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChD,IAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAEpD,OAAO,UAAU,CAAC,IAAI,CAClB,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAA,CAAC,EAC3D,SAAS,CAAC,QAAQ,CAAC,CACtB,CAAC;SACL,CAAC,CACL,CACJ;aACI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;aAC9C,SAAS,CAAC,UAAC,EAAuB;gBAAvB,kBAAuB,EAAtB,iBAAS,EAAE,kBAAU;YACxB,IAAA,0DAAkD,EAAjD,SAAC,EAAE,SAA8C,CAAC;YAEzD,IAAI,CAAC,KAAI,CAAC,SAAS,EAAE;gBACjB,KAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;oBACnC,KAAI,CAAC,YAAY,KAAK,UAAU,GAAG,CAAC,GAAG,UAAU;oBACjD,KAAI,CAAC,YAAY,KAAK,UAAU,GAAG,SAAS,GAAG,CAAC;iBACnD,CAAC,CAAC;gBAEH,OAAO;aACV;YAED,IAAI,KAAI,CAAC,YAAY,KAAK,UAAU,EAAE;gBAClC,QAAQ,CAAC,WAAW,CAChB,KAAI,CAAC,SAAS,CAAC,aAAa,EAC5B,WAAW,EACX,SAAS,CACZ,CAAC;aACL;iBAAM;gBACH,QAAQ,CAAC,WAAW,CAChB,KAAI,CAAC,SAAS,CAAC,aAAa,EAC5B,YAAY,EACZ,UAAU,CACb,CAAC;aACL;SACJ,CAAC,CAAC;QAEP,KAAK,CACD,SAAS,CACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,EAC9D,QAAQ,CACX,EACD,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CACnD;aACI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;aAC9C,SAAS,CAAC;YACP,IAAI,KAAI,CAAC,YAAY,KAAK,UAAU,EAAE;gBAClC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAK,KAAI,CAAC,KAAK,GAAG,GAAG,MAAG,CAAC,CAAC;gBAChE,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAK,KAAI,CAAC,IAAI,GAAG,GAAG,MAAG,CAAC,CAAC;aACrE;iBAAM;gBACH,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAK,KAAI,CAAC,KAAK,GAAG,GAAG,MAAG,CAAC,CAAC;gBACjE,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAK,KAAI,CAAC,IAAI,GAAG,GAAG,MAAG,CAAC,CAAC;aACpE;SACJ,CAAC,CAAC;KACV;IAED,sBAAY,2CAAQ;aAApB;YACU,IAAA,2BAOoB,EANtB,wBAAS,EACT,8BAAY,EACZ,8BAAY,EACZ,0BAAU,EACV,4BAAW,EACX,4BACsB,CAAC;YAE3B,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;kBACjC,SAAS,IAAI,YAAY,GAAG,YAAY,CAAC;kBACzC,UAAU,IAAI,WAAW,GAAG,WAAW,CAAC,CAAC;SAClD;;;OAAA;IAED,sBAAY,+CAAY;aAAxB;YACU,IAAA,2BACoB,EADnB,8BAAY,EAAE,8BAAY,EAAE,4BAAW,EAAE,4BACtB,CAAC;YAE3B,IACI,CAAC,CAAC,YAAY,GAAG,YAAY,IAAI,YAAY,GAAG,SAAS;gBACrD,IAAI,CAAC,YAAY,KAAK,UAAU;iBACnC,CAAC,WAAW,GAAG,WAAW,IAAI,WAAW,GAAG,SAAS;oBAClD,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,EACzC;gBACE,OAAO,CAAC,CAAC;aACZ;YAED,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;kBACjC,SAAS,GAAG,YAAY;kBACxB,SAAS,GAAG,WAAW,CAAC;SACjC;;;OAAA;IAED,sBAAY,wCAAK;aAAjB;YACI,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC;YAEpD,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;SAC7C;;;OAAA;IAED,sBAAY,uCAAI;aAAhB;YACU,IAAA,2BACoB,EADnB,8BAAY,EAAE,8BAAY,EAAE,4BAAW,EAAE,4BACtB,CAAC;YAE3B,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;kBACjC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,YAAY,IAAI,GAAG,CAAC,GAAG,GAAG;kBACpD,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;SAC5D;;;OAAA;IAED,sBAAY,oDAAiB;aAA7B;YACI,OAAO,IAAI,CAAC,SAAS;kBACf,IAAI,CAAC,SAAS,CAAC,aAAa;kBAC5B,IAAI,CAAC,WAAW,CAAC,gBAAiB,CAAC;SAC5C;;;OAAA;IAEO,2CAAW,GAAnB,UACI,EAA8B,EAC9B,cAAsB,EACtB,gBAAwB;YAFvB,oBAAO,EAAE,oBAAO;QAIX,IAAA,kCAA2D,EAA1D,8BAAY,EAAE,4BAA4C,CAAC;QAC5D,IAAA,uDACgD,EAD/C,YAAG,EAAE,cAAI,EAAE,gBAAK,EAAE,kBAC6B,CAAC;QAEvD,IAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,MAAM,CAAC;QAC5D,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3D,IAAM,WAAW,GACb,CAAC,OAAO,GAAG,GAAG,GAAG,YAAY,GAAG,cAAc,KAAK,MAAM,GAAG,YAAY,CAAC,CAAC;QAC9E,IAAM,YAAY,GACd,CAAC,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,gBAAgB,KAAK,KAAK,GAAG,WAAW,CAAC,CAAC;QAE9E,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC;KACzD;;gBA7J2B,MAAM,uBAA7B,MAAM,SAAC,MAAM;gBACe,SAAS,uBAArC,MAAM,SAAC,SAAS;gBACoB,UAAU,uBAA9C,MAAM,SAAC,iBAAiB;gBACiB,UAAU,uBAAnD,MAAM,SAAC,eAAe;gBAC4B,UAAU,uBAA5D,MAAM,SAAC,eAAe;gBAGK,UAAU,uBAFrC,QAAQ,YACR,MAAM,SAAC,cAAc;gBAE0B,QAAQ,uBAAvD,MAAM,SAAC,QAAQ;gBAC4B,MAAM,uBAAjD,MAAM,SAAC,MAAM;gBACmC,UAAU,uBAA1D,MAAM,SAAC,UAAU;gBAC2C,gBAAgB,uBAA5E,MAAM,SAAC,gBAAgB;;IAd5B;QADC,KAAK,EAAE;+DACmC;IAFlC,qBAAqB;QAJjC,SAAS,CAAC;YACP,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,CAAC,iBAAiB,CAAC;SACjC,CAAC;QAMO,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;QACd,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;QACjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;QACvB,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;QACvB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;QAEtB,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;QACd,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;OAhBpB,qBAAqB,CAmKjC;IAAD,4BAAC;CAnKD,IAmKC;AAED,SAAS,iBAAiB,CAAC,EAAqB,EAAE,EAAyB;QAA/C,oBAAO;QAAgB,YAAG,EAAE,kBAAM;IAC1D,OAAO,CAAC,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAqB,EAAE,EAAyB;QAA/C,oBAAO;QAAgB,cAAI,EAAE,gBAAK;IAC5D,OAAO,CAAC,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC;AACpC;;ACvLA;;IA0BI,oCACoD,OAAyB,EACxC,MAAc,EACZ,WAAqB,EAGvC,SAAyC,EAChB,eAAmC,EAClD,KAAuC;QARtE,iBASI;QARgD,YAAO,GAAP,OAAO,CAAkB;QACxC,WAAM,GAAN,MAAM,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAU;QAGvC,cAAS,GAAT,SAAS,CAAgC;QAChB,oBAAe,GAAf,eAAe,CAAoB;QAClD,UAAK,GAAL,KAAK,CAAkC;QArB7D,aAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACzC,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,cAAM,OAAA,KAAI,CAAC,UAAU,GAAA,CAAC,EAC1B,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EACzB,oBAAoB,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAA,CAAC,EAC9D,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAChC,CAAC;QAEO,cAAS,GAAG,WACjB,KAAK,EAAE,EAAE,IACN,IAAI,CAAC,OAAO,CACT,CAAC;KAWP;IAEJ,sBAAY,kDAAU;aAAtB;YACU,IAAA;;kDAEgC,EAF/B,8BAAY,EAAE,8BAAY,EAAE,4BAAW,EAAE,4BAEV,CAAC;YAEvC,OAAO;gBACH,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,YAAY,IAAI,GAAG,CAAC,GAAG,GAAG;gBACpD,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG;aACrD,CAAC;SACL;;;OAAA;;gDAnBI,MAAM,SAAC,qBAAqB;gBACY,MAAM,uBAA9C,MAAM,SAAC,MAAM;gBACkC,QAAQ,uBAAvD,MAAM,SAAC,QAAQ;gBAGY,UAAU,uBAFrC,QAAQ,YACR,MAAM,SAAC,cAAc;gBAEqC,UAAU,uBAApE,MAAM,SAAC,eAAe;gBACW,UAAU,uBAA3C,MAAM,SAAC,QAAQ;;IAtBX,0BAA0B;QAXtC,SAAS,CAAC;YACP,QAAQ,EAAE,qBAAqB;YAC/B,4mBAA8C;YAE9C,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,UAAU,EAAE,CAAC,SAAS,CAAC;YACvB,SAAS,EAAE,CAAC,aAAa,CAAC;YAC1B,IAAI,EAAE;gBACF,oBAAoB,EAAE,OAAO;aAChC;;SACJ,CAAC;QAgBO,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAC7B,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;QACd,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;QAEtB,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;QACvB,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;OAtBZ,0BAA0B,CAmCtC;IAAD,iCAAC;CAnCD;;;ICnBA;KAA4C;IAA/B,4BAA4B;QATxC,SAAS,CAAC;YACP,QAAQ,EAAE,uBAAuB;YACjC,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,eAAe;oBACxB,WAAW,EAAE,UAAU;iBAC1B;aACJ;SACJ,CAAC;OACW,4BAA4B,CAAG;IAAD,mCAAC;CAA5C;;;ICIA;KAAuC;IAA1B,uBAAuB;QATnC,QAAQ,CAAC;YACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;YACrC,YAAY,EAAE;gBACV,qBAAqB;gBACrB,4BAA4B;gBAC5B,0BAA0B;aAC7B;YACD,OAAO,EAAE,CAAC,0BAA0B,CAAC;SACxC,CAAC;OACW,uBAAuB,CAAG;IAAD,8BAAC;CAAvC;;AChBA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-components-scroll-controls.js","sources":["ng://@taiga-ui/core/components/scroll-controls/scroll-controls.component.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar-wrapper.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scroll-controls.module.ts","ng://@taiga-ui/core/components/scroll-controls/taiga-ui-core-components-scroll-controls.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_ANIMATION_OPTIONS, TUI_MODE, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-scroll-controls',\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiScrollControlsComponent {\n readonly refresh$ = this.animationFrame$.pipe(\n throttleTime(300),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(this.ngZone),\n );\n\n readonly animation = {\n value: '',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef\n ? this.scrollRef.nativeElement\n : this.documentRef.documentElement;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","import {DOCUMENT, ViewportScroller} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {\n POLLING_TIME,\n preventDefault,\n stopPropagation,\n TuiDestroyService,\n tuiZonefree,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiOrientationT} from '@taiga-ui/core/types';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {map, switchMap, takeUntil, throttleTime} from 'rxjs/operators';\n\nconst MIN_WIDTH = 24;\n\n// @dynamic\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollbarDirective {\n @Input()\n tuiScrollbar: TuiOrientationT = 'vertical';\n\n constructor(\n @Inject(NgZone) ngZone: NgZone,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ELEMENT_REF) private readonly wrapper: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly container: ElementRef<HTMLElement> | null,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(ViewportScroller) private readonly viewportScroller: ViewportScroller,\n ) {\n const {nativeElement} = this.elementRef;\n const mousedown$ = typedFromEvent(nativeElement, 'mousedown');\n const mousemove$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseup$ = typedFromEvent(this.documentRef, 'mouseup');\n const mousedownWrapper$ = typedFromEvent(wrapper.nativeElement, 'mousedown');\n\n merge(\n mousedownWrapper$.pipe(\n preventDefault(),\n map(event => this.getScrolled(event, 0.5, 0.5)),\n ),\n mousedown$.pipe(\n preventDefault(),\n stopPropagation(),\n switchMap(event => {\n const rect = nativeElement.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return mousemove$.pipe(\n map(event => this.getScrolled(event, vertical, horizontal)),\n takeUntil(mouseup$),\n );\n }),\n ),\n )\n .pipe(takeUntil(destroy$), tuiZonefree(ngZone))\n .subscribe(([scrollTop, scrollLeft]) => {\n const [x, y] = this.viewportScroller.getScrollPosition();\n\n if (!this.container) {\n this.viewportScroller.scrollToPosition([\n this.tuiScrollbar === 'vertical' ? x : scrollLeft,\n this.tuiScrollbar === 'vertical' ? scrollTop : y,\n ]);\n\n return;\n }\n\n if (this.tuiScrollbar === 'vertical') {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollTop',\n scrollTop,\n );\n } else {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollLeft',\n scrollLeft,\n );\n }\n });\n\n merge(\n fromEvent(\n this.container ? this.container.nativeElement : this.windowRef,\n 'scroll',\n ),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n )\n .pipe(takeUntil(destroy$), tuiZonefree(ngZone))\n .subscribe(() => {\n if (this.tuiScrollbar === 'vertical') {\n renderer.setStyle(nativeElement, 'top', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'height', `${this.view * 100}%`);\n } else {\n renderer.setStyle(nativeElement, 'left', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'width', `${this.view * 100}%`);\n }\n });\n }\n\n private get scrolled(): number {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private get compensation(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / clientHeight\n : MIN_WIDTH / clientWidth;\n }\n\n private get thumb(): number {\n const compensation = this.compensation || this.view;\n\n return this.scrolled * (1 - compensation);\n }\n\n private get view(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((clientHeight / scrollHeight) * 100) / 100\n : Math.ceil((clientWidth / scrollWidth) * 100) / 100;\n }\n\n private get computedContainer(): Element {\n return this.container\n ? this.container.nativeElement\n : this.documentRef.scrollingElement!;\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetVertical: number,\n offsetHorizontal: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.elementRef.nativeElement;\n const {top, left, width, height} =\n this.wrapper.nativeElement.getBoundingClientRect();\n\n const maxTop = this.computedContainer.scrollHeight - height;\n const maxLeft = this.computedContainer.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: ClientRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: ClientRect): number {\n return (clientX - left) / width;\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core/tokens';\n\n@Directive({\n selector: '[tuiScrollbarWrapper]',\n providers: [\n {\n provide: TUI_ELEMENT_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollbarWrapperDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiScrollControlsComponent} from './scroll-controls.component';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TuiScrollbarWrapperDirective} from './scrollbar-wrapper.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [\n TuiScrollbarDirective,\n TuiScrollbarWrapperDirective,\n TuiScrollControlsComponent,\n ],\n exports: [TuiScrollControlsComponent],\n})\nexport class TuiScrollControlsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {TuiScrollbarWrapperDirective as ɵa} from './scrollbar-wrapper.directive';"],"names":[],"mappings":"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"}
@@ -1,19 +1,48 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { Directive, Inject, ElementRef, Input, HostBinding, ContentChild, HostListener, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
+ import { Directive, ElementRef, Inject, Input, HostBinding, HostListener, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { TUI_SCROLL_REF } from '@taiga-ui/core/tokens';
4
+ import { TUI_SCROLLABLE, TUI_SCROLL_INTO_VIEW } from '@taiga-ui/core/constants';
3
5
  import { CSS, USER_AGENT } from '@ng-web-apis/common';
4
6
  import { isFirefox, getElementOffset, TUI_IS_IOS, tuiDefaultProp } from '@taiga-ui/cdk';
5
- import { TUI_SCROLL_INTO_VIEW } from '@taiga-ui/core/constants';
6
- import { TUI_SCROLL_REF } from '@taiga-ui/core/tokens';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { TuiScrollControlsModule } from '@taiga-ui/core/components/scroll-controls';
9
9
 
10
+ var SCROLL_REF_SELECTOR = '[tuiScrollRef]';
11
+ var TuiScrollRefDirective = /** @class */ (function () {
12
+ function TuiScrollRefDirective() {
13
+ }
14
+ TuiScrollRefDirective = __decorate([
15
+ Directive({
16
+ selector: SCROLL_REF_SELECTOR,
17
+ providers: [
18
+ {
19
+ provide: TUI_SCROLL_REF,
20
+ useExisting: ElementRef,
21
+ },
22
+ ],
23
+ })
24
+ ], TuiScrollRefDirective);
25
+ return TuiScrollRefDirective;
26
+ }());
27
+
10
28
  var TuiScrollableDirective = /** @class */ (function () {
11
- function TuiScrollableDirective() {
29
+ function TuiScrollableDirective(elementRef) {
30
+ this.elementRef = elementRef;
12
31
  }
32
+ TuiScrollableDirective.prototype.ngOnInit = function () {
33
+ this.elementRef.nativeElement.dispatchEvent(new CustomEvent(TUI_SCROLLABLE, {
34
+ bubbles: true,
35
+ detail: this.elementRef.nativeElement,
36
+ }));
37
+ };
38
+ TuiScrollableDirective.ctorParameters = function () { return [
39
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
40
+ ]; };
13
41
  TuiScrollableDirective = __decorate([
14
42
  Directive({
15
43
  selector: '[tuiScrollable]',
16
- })
44
+ }),
45
+ __param(0, Inject(ElementRef))
17
46
  ], TuiScrollableDirective);
18
47
  return TuiScrollableDirective;
19
48
  }());
@@ -34,35 +63,35 @@ var TuiScrollbarComponent = /** @class */ (function () {
34
63
  this.userAgent = userAgent;
35
64
  this.isIos = isIos;
36
65
  this.hidden = false;
66
+ this.browserScrollRef = new ElementRef(this.elementRef.nativeElement);
67
+ this.delegated = false;
37
68
  this.isLegacy = !this.cssRef.supports('position', 'sticky') ||
38
69
  (isFirefox(this.userAgent) && !this.cssRef.supports('scrollbar-width', 'none'));
39
70
  }
40
71
  TuiScrollbarComponent_1 = TuiScrollbarComponent;
41
72
  Object.defineProperty(TuiScrollbarComponent.prototype, "showScrollbars", {
42
73
  get: function () {
43
- return !this.hidden && !this.isIos && (!this.isLegacy || !!this.scrollable);
44
- },
45
- enumerable: true,
46
- configurable: true
47
- });
48
- Object.defineProperty(TuiScrollbarComponent.prototype, "browserScrollRef", {
49
- get: function () {
50
- return this.scrollable || this.elementRef;
74
+ return !this.hidden && !this.isIos && (!this.isLegacy || this.delegated);
51
75
  },
52
76
  enumerable: true,
53
77
  configurable: true
54
78
  });
55
79
  Object.defineProperty(TuiScrollbarComponent.prototype, "showNative", {
56
80
  get: function () {
57
- return this.isLegacy && !this.hidden && !this.scrollable;
81
+ return this.isLegacy && !this.hidden && !this.delegated;
58
82
  },
59
83
  enumerable: true,
60
84
  configurable: true
61
85
  });
62
- TuiScrollbarComponent.prototype.scrollIntoView = function (event) {
63
- var detail = event.detail;
86
+ TuiScrollbarComponent.prototype.onScrollable = function (element) {
87
+ this.delegated = true;
88
+ this.browserScrollRef.nativeElement = element;
89
+ };
90
+ TuiScrollbarComponent.prototype.scrollIntoView = function (detail) {
91
+ if (this.delegated) {
92
+ return;
93
+ }
64
94
  var nativeElement = this.browserScrollRef.nativeElement;
65
- event.stopPropagation();
66
95
  var _a = getElementOffset(nativeElement, detail), offsetTop = _a.offsetTop, offsetLeft = _a.offsetLeft;
67
96
  nativeElement.scrollTop =
68
97
  offsetTop + detail.offsetHeight / 2 - nativeElement.clientHeight / 2;
@@ -80,15 +109,14 @@ var TuiScrollbarComponent = /** @class */ (function () {
80
109
  Input(),
81
110
  tuiDefaultProp()
82
111
  ], TuiScrollbarComponent.prototype, "hidden", void 0);
83
- __decorate([
84
- HostBinding('class._container'),
85
- ContentChild(TuiScrollableDirective, { read: ElementRef })
86
- ], TuiScrollbarComponent.prototype, "scrollable", void 0);
87
112
  __decorate([
88
113
  HostBinding('class._legacy')
89
114
  ], TuiScrollbarComponent.prototype, "showNative", null);
90
115
  __decorate([
91
- HostListener(TUI_SCROLL_INTO_VIEW, ['$event'])
116
+ HostListener(TUI_SCROLLABLE + ".stop", ['$event.detail'])
117
+ ], TuiScrollbarComponent.prototype, "onScrollable", null);
118
+ __decorate([
119
+ HostListener(TUI_SCROLL_INTO_VIEW + ".stop", ['$event.detail'])
92
120
  ], TuiScrollbarComponent.prototype, "scrollIntoView", null);
93
121
  TuiScrollbarComponent = TuiScrollbarComponent_1 = __decorate([
94
122
  Component({
@@ -102,7 +130,7 @@ var TuiScrollbarComponent = /** @class */ (function () {
102
130
  useFactory: scrollRefFactory,
103
131
  },
104
132
  ],
105
- styles: [":host{z-index:0;position:relative;display:flex;overflow:auto}:host:not(._legacy){scrollbar-width:none;-ms-overflow-style:none}:host:not(._legacy)::-webkit-scrollbar,:host:not(._legacy)::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._legacy{overflow:overlay}@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:0.001dpcm){:host._legacy::-webkit-scrollbar,:host._legacy::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:6px solid transparent}:host._legacy::-webkit-scrollbar{background-color:transparent}:host._legacy::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}:host._legacy::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}:host._legacy::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host._container tui-scroll-controls{position:absolute}.content{position:relative;z-index:0;flex:1;flex-basis:auto;width:100%;height:-webkit-max-content;height:-moz-max-content;height:max-content}"]
133
+ styles: [":host{z-index:0;position:relative;display:flex;overflow:auto}:host:not(._legacy){scrollbar-width:none;-ms-overflow-style:none}:host:not(._legacy)::-webkit-scrollbar,:host:not(._legacy)::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._legacy{overflow:overlay}@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:0.001dpcm){:host._legacy::-webkit-scrollbar,:host._legacy::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:6px solid transparent}:host._legacy::-webkit-scrollbar{background-color:transparent}:host._legacy::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}:host._legacy::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}:host._legacy::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}.content{position:relative;z-index:0;flex:1;flex-basis:auto;width:100%;height:-webkit-max-content;height:-moz-max-content;height:max-content}"]
106
134
  }),
107
135
  __param(0, Inject(CSS)),
108
136
  __param(1, Inject(ElementRef)),
@@ -112,24 +140,6 @@ var TuiScrollbarComponent = /** @class */ (function () {
112
140
  return TuiScrollbarComponent;
113
141
  }());
114
142
 
115
- var SCROLL_REF_SELECTOR = '[tuiScrollRef]';
116
- var TuiScrollRefDirective = /** @class */ (function () {
117
- function TuiScrollRefDirective() {
118
- }
119
- TuiScrollRefDirective = __decorate([
120
- Directive({
121
- selector: SCROLL_REF_SELECTOR,
122
- providers: [
123
- {
124
- provide: TUI_SCROLL_REF,
125
- useExisting: ElementRef,
126
- },
127
- ],
128
- })
129
- ], TuiScrollRefDirective);
130
- return TuiScrollRefDirective;
131
- }());
132
-
133
143
  var TuiScrollbarModule = /** @class */ (function () {
134
144
  function TuiScrollbarModule() {
135
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-scrollbar.js","sources":["ng://@taiga-ui/core/components/scrollbar/scrollable.directive.ts","ng://@taiga-ui/core/components/scrollbar/scrollbar.component.ts","ng://@taiga-ui/core/components/scrollbar/scroll-ref.directive.ts","ng://@taiga-ui/core/components/scrollbar/scrollbar.module.ts","ng://@taiga-ui/core/components/scrollbar/taiga-ui-core-components-scrollbar.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[tuiScrollable]',\n})\nexport class TuiScrollableDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {CSS, USER_AGENT} from '@ng-web-apis/common';\nimport {getElementOffset, isFirefox, TUI_IS_IOS, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_INTO_VIEW} from '@taiga-ui/core/constants';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiScrollableDirective} from './scrollable.directive';\n\nexport function scrollRefFactory({\n browserScrollRef,\n}: TuiScrollbarComponent): ElementRef<HTMLElement> {\n return browserScrollRef;\n}\n\n// @dynamic\n@Component({\n selector: 'tui-scrollbar',\n templateUrl: './scrollbar.template.html',\n styleUrls: ['./scrollbar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n deps: [TuiScrollbarComponent],\n useFactory: scrollRefFactory,\n },\n ],\n})\nexport class TuiScrollbarComponent {\n @Input()\n @tuiDefaultProp()\n hidden = false;\n\n @HostBinding('class._container')\n @ContentChild(TuiScrollableDirective, {read: ElementRef})\n readonly scrollable?: ElementRef<HTMLDivElement>;\n\n private readonly isLegacy: boolean =\n !this.cssRef.supports('position', 'sticky') ||\n (isFirefox(this.userAgent) && !this.cssRef.supports('scrollbar-width', 'none'));\n\n constructor(\n /**\n * TODO: remove \"any\" in new TS version; https://github.com/ng-web-apis/common/pull/6\n */\n @Inject(CSS) private readonly cssRef: any,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(TUI_IS_IOS) private readonly isIos: boolean,\n ) {}\n\n get showScrollbars(): boolean {\n return !this.hidden && !this.isIos && (!this.isLegacy || !!this.scrollable);\n }\n\n get browserScrollRef(): ElementRef<HTMLElement> {\n return this.scrollable || this.elementRef;\n }\n\n @HostBinding('class._legacy')\n get showNative(): boolean {\n return this.isLegacy && !this.hidden && !this.scrollable;\n }\n\n @HostListener(TUI_SCROLL_INTO_VIEW, ['$event'])\n scrollIntoView(event: CustomEvent<HTMLElement>) {\n const {detail} = event;\n const {nativeElement} = this.browserScrollRef;\n\n event.stopPropagation();\n\n const {offsetTop, offsetLeft} = getElementOffset(nativeElement, detail);\n\n nativeElement.scrollTop =\n offsetTop + detail.offsetHeight / 2 - nativeElement.clientHeight / 2;\n nativeElement.scrollLeft =\n offsetLeft + detail.offsetWidth / 2 - nativeElement.clientWidth / 2;\n }\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\n\n@Directive({\n selector: SCROLL_REF_SELECTOR,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollRefDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiScrollRefDirective} from './scroll-ref.directive';\nimport {TuiScrollableDirective} from './scrollable.directive';\nimport {TuiScrollbarComponent} from './scrollbar.component';\n\n@NgModule({\n imports: [CommonModule, TuiScrollControlsModule],\n declarations: [TuiScrollbarComponent, TuiScrollRefDirective, TuiScrollableDirective],\n exports: [TuiScrollbarComponent, TuiScrollRefDirective, TuiScrollableDirective],\n})\nexport class TuiScrollbarModule {}\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-core-components-scrollbar.js","sources":["ng://@taiga-ui/core/components/scrollbar/scroll-ref.directive.ts","ng://@taiga-ui/core/components/scrollbar/scrollable.directive.ts","ng://@taiga-ui/core/components/scrollbar/scrollbar.component.ts","ng://@taiga-ui/core/components/scrollbar/scrollbar.module.ts","ng://@taiga-ui/core/components/scrollbar/taiga-ui-core-components-scrollbar.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\n\n@Directive({\n selector: SCROLL_REF_SELECTOR,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollRefDirective {}\n","import {Directive, ElementRef, Inject, OnInit} from '@angular/core';\nimport {TUI_SCROLLABLE} from '@taiga-ui/core/constants';\n\n@Directive({\n selector: '[tuiScrollable]',\n})\nexport class TuiScrollableDirective implements OnInit {\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n\n ngOnInit() {\n this.elementRef.nativeElement.dispatchEvent(\n new CustomEvent(TUI_SCROLLABLE, {\n bubbles: true,\n detail: this.elementRef.nativeElement,\n }),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {CSS, USER_AGENT} from '@ng-web-apis/common';\nimport {getElementOffset, isFirefox, TUI_IS_IOS, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_INTO_VIEW, TUI_SCROLLABLE} from '@taiga-ui/core/constants';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nexport function scrollRefFactory({\n browserScrollRef,\n}: TuiScrollbarComponent): ElementRef<HTMLElement> {\n return browserScrollRef;\n}\n\n// @dynamic\n@Component({\n selector: 'tui-scrollbar',\n templateUrl: './scrollbar.template.html',\n styleUrls: ['./scrollbar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n deps: [TuiScrollbarComponent],\n useFactory: scrollRefFactory,\n },\n ],\n})\nexport class TuiScrollbarComponent {\n @Input()\n @tuiDefaultProp()\n hidden = false;\n\n readonly browserScrollRef = new ElementRef(this.elementRef.nativeElement);\n\n private delegated = false;\n\n private readonly isLegacy: boolean =\n !this.cssRef.supports('position', 'sticky') ||\n (isFirefox(this.userAgent) && !this.cssRef.supports('scrollbar-width', 'none'));\n\n constructor(\n /**\n * TODO: remove \"any\" in new TS version; https://github.com/ng-web-apis/common/pull/6\n */\n @Inject(CSS) private readonly cssRef: any,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(TUI_IS_IOS) private readonly isIos: boolean,\n ) {}\n\n get showScrollbars(): boolean {\n return !this.hidden && !this.isIos && (!this.isLegacy || this.delegated);\n }\n\n @HostBinding('class._legacy')\n get showNative(): boolean {\n return this.isLegacy && !this.hidden && !this.delegated;\n }\n\n @HostListener(`${TUI_SCROLLABLE}.stop`, ['$event.detail'])\n onScrollable(element: HTMLElement) {\n this.delegated = true;\n this.browserScrollRef.nativeElement = element;\n }\n\n @HostListener(`${TUI_SCROLL_INTO_VIEW}.stop`, ['$event.detail'])\n scrollIntoView(detail: HTMLElement) {\n if (this.delegated) {\n return;\n }\n\n const {nativeElement} = this.browserScrollRef;\n const {offsetTop, offsetLeft} = getElementOffset(nativeElement, detail);\n\n nativeElement.scrollTop =\n offsetTop + detail.offsetHeight / 2 - nativeElement.clientHeight / 2;\n nativeElement.scrollLeft =\n offsetLeft + detail.offsetWidth / 2 - nativeElement.clientWidth / 2;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\n\nimport {TuiScrollRefDirective} from './scroll-ref.directive';\nimport {TuiScrollableDirective} from './scrollable.directive';\nimport {TuiScrollbarComponent} from './scrollbar.component';\n\n@NgModule({\n imports: [CommonModule, TuiScrollControlsModule],\n declarations: [TuiScrollbarComponent, TuiScrollRefDirective, TuiScrollableDirective],\n exports: [TuiScrollbarComponent, TuiScrollRefDirective, TuiScrollableDirective],\n})\nexport class TuiScrollbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-svg.js","sources":["ng://@taiga-ui/core/components/svg/svg.component.ts","ng://@taiga-ui/core/components/svg/svg.module.ts","ng://@taiga-ui/core/components/svg/taiga-ui-core-components-svg.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n Sanitizer,\n SecurityContext,\n} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {USER_AGENT, WINDOW} from '@ng-web-apis/common';\nimport {\n getDocumentOrShadowRoot,\n isIE,\n tuiAssert,\n tuiCustomEvent,\n tuiPure,\n tuiRequiredSetter,\n TuiStaticRequestService,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {TUI_ICON_ERROR} from '@taiga-ui/core/constants';\nimport {TuiIconError} from '@taiga-ui/core/interfaces';\nimport {TuiSvgService} from '@taiga-ui/core/services';\nimport {TUI_ICONS_PATH, TUI_SANITIZER} from '@taiga-ui/core/tokens';\nimport {isPresumedHTMLString} from '@taiga-ui/core/utils/miscellaneous';\nimport {Observable, of, ReplaySubject} from 'rxjs';\nimport {catchError, map, startWith, switchMap} from 'rxjs/operators';\n\nconst UNDEFINED_NAMED_ICON = 'Attempted to use undefined named icon';\nconst MISSING_EXTERNAL_ICON = 'External icon is missing on the given URL';\nconst FAILED_EXTERNAL_ICON = 'Failed to load external SVG';\n\n// TODO: Consider moving to CDK along with SvgService and SvgDefsHostComponent\n// @dynamic\n@Component({\n selector: 'tui-svg',\n templateUrl: './svg.template.html',\n styleUrls: ['./svg.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSvgComponent {\n @Input()\n @tuiRequiredSetter()\n set src(src: string) {\n this.icon = src;\n this.src$.next();\n }\n\n readonly innerHTML$: Observable<SafeHtml>;\n\n private icon = '';\n private readonly src$ = new ReplaySubject<void>(1);\n private readonly isIE = isIE(this.userAgent);\n\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(TUI_ICONS_PATH) private readonly iconsPath: TuiStringHandler<string>,\n @Optional()\n @Inject(TUI_SANITIZER)\n private readonly tuiSanitizer: Sanitizer | null,\n @Inject(TuiSvgService) private readonly svgService: TuiSvgService,\n @Inject(TuiStaticRequestService)\n private readonly staticRequestService: TuiStaticRequestService,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n @Inject(ElementRef) private readonly elementRef: ElementRef<Element>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n ) {\n this.innerHTML$ = this.src$.pipe(\n switchMap(() =>\n this.isExternal\n ? this.getExternalIcon(this.icon)\n : of(this.getSafeHtml(this.icon)),\n ),\n startWith(''),\n );\n }\n\n get use(): string {\n return this.icon.includes('.svg#')\n ? this.icon\n : this.resolveName(this.icon, this.iconsPath);\n }\n\n get isInnerHTML(): boolean {\n return this.isSrc || this.isExternal || (this.isName && this.isShadowDOM);\n }\n\n private get isShadowDOM(): boolean {\n return (\n getDocumentOrShadowRoot(this.elementRef.nativeElement) !== this.documentRef\n );\n }\n\n private get isUse(): boolean {\n return this.use.includes('.svg#');\n }\n\n private get isExternal(): boolean {\n return this.isUrl || (this.isIE && this.isUse) || this.isCrossDomain;\n }\n\n private get isUrl(): boolean {\n return this.icon.endsWith('.svg');\n }\n\n private get isSrc(): boolean {\n return isPresumedHTMLString(this.icon);\n }\n\n private get isName(): boolean {\n return !this.isUrl && !this.isUse && !this.isSrc;\n }\n\n private get isCrossDomain(): boolean {\n const {use, isUse, windowRef} = this;\n\n return (\n isUse &&\n use.startsWith('http') &&\n !!windowRef.origin &&\n !use.startsWith(windowRef.origin)\n );\n }\n\n onError(message: string = MISSING_EXTERNAL_ICON) {\n const {icon} = this;\n const event = tuiCustomEvent<TuiIconError>(\n TUI_ICON_ERROR,\n {\n bubbles: true,\n detail: {\n message,\n icon,\n },\n },\n this.documentRef,\n );\n\n tuiAssert.assert(false, message, icon);\n this.elementRef.nativeElement.dispatchEvent(event);\n }\n\n @tuiPure\n private resolveName(name: string, iconsPath: TuiStringHandler<string>): string {\n return iconsPath(name);\n }\n\n private getSafeHtml(src: string): SafeHtml {\n return this.isSrc ? this.sanitize(src) : this.process(src);\n }\n\n private process(src: string): SafeHtml {\n const icon = this.svgService.getOriginal(src);\n\n if (this.isName && !icon && !!src) {\n this.onError(UNDEFINED_NAMED_ICON);\n }\n\n // Empty line for innerHTML when icon is shown through USE tag\n return !this.isShadowDOM || !this.isName ? '' : this.sanitize(icon || '');\n }\n\n private sanitize(src: string): SafeHtml | string {\n return this.tuiSanitizer\n ? this.sanitizer.bypassSecurityTrustHtml(\n this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '',\n )\n : src;\n }\n\n // @bad TODO: Create a simple XMLHttpRequest to Observable service\n private getExternalIcon(src: string): Observable<SafeHtml> {\n const url = src.includes('.svg') ? src : this.use;\n\n return this.staticRequestService.request(url).pipe(\n catchError(() => {\n this.onError(FAILED_EXTERNAL_ICON);\n\n return of('');\n }),\n map(response =>\n this.sanitize(response.replace('<svg', '<svg focusable=\"false\"')),\n ),\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\nimport {TuiSvgComponent} from './svg.component';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [TuiSvgComponent],\n exports: [TuiSvgComponent],\n})\nexport class TuiSvgModule {}\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-core-components-svg.js","sources":["ng://@taiga-ui/core/components/svg/svg.component.ts","ng://@taiga-ui/core/components/svg/svg.module.ts","ng://@taiga-ui/core/components/svg/taiga-ui-core-components-svg.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n Sanitizer,\n SecurityContext,\n} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {USER_AGENT, WINDOW} from '@ng-web-apis/common';\nimport {\n getDocumentOrShadowRoot,\n isIE,\n tuiAssert,\n tuiCustomEvent,\n tuiPure,\n tuiRequiredSetter,\n TuiStaticRequestService,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {TUI_ICON_ERROR} from '@taiga-ui/core/constants';\nimport {TuiIconError} from '@taiga-ui/core/interfaces';\nimport {TuiSvgService} from '@taiga-ui/core/services';\nimport {TUI_ICONS_PATH, TUI_SANITIZER} from '@taiga-ui/core/tokens';\nimport {isPresumedHTMLString} from '@taiga-ui/core/utils/miscellaneous';\nimport {Observable, of, ReplaySubject} from 'rxjs';\nimport {catchError, map, startWith, switchMap} from 'rxjs/operators';\n\nconst UNDEFINED_NAMED_ICON = 'Attempted to use undefined named icon';\nconst MISSING_EXTERNAL_ICON = 'External icon is missing on the given URL';\nconst FAILED_EXTERNAL_ICON = 'Failed to load external SVG';\n\n// TODO: Consider moving to CDK along with SvgService and SvgDefsHostComponent\n// @dynamic\n@Component({\n selector: 'tui-svg',\n templateUrl: './svg.template.html',\n styleUrls: ['./svg.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSvgComponent {\n @Input()\n @tuiRequiredSetter()\n set src(src: string) {\n this.icon = src;\n this.src$.next();\n }\n\n readonly innerHTML$: Observable<SafeHtml>;\n\n private icon = '';\n private readonly src$ = new ReplaySubject<void>(1);\n private readonly isIE = isIE(this.userAgent);\n\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(TUI_ICONS_PATH) private readonly iconsPath: TuiStringHandler<string>,\n @Optional()\n @Inject(TUI_SANITIZER)\n private readonly tuiSanitizer: Sanitizer | null,\n @Inject(TuiSvgService) private readonly svgService: TuiSvgService,\n @Inject(TuiStaticRequestService)\n private readonly staticRequestService: TuiStaticRequestService,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n @Inject(ElementRef) private readonly elementRef: ElementRef<Element>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n ) {\n this.innerHTML$ = this.src$.pipe(\n switchMap(() =>\n this.isExternal\n ? this.getExternalIcon(this.icon)\n : of(this.getSafeHtml(this.icon)),\n ),\n startWith(''),\n );\n }\n\n get use(): string {\n return this.icon.includes('.svg#')\n ? this.icon\n : this.resolveName(this.icon, this.iconsPath);\n }\n\n get isInnerHTML(): boolean {\n return this.isSrc || this.isExternal || (this.isName && this.isShadowDOM);\n }\n\n private get isShadowDOM(): boolean {\n return (\n getDocumentOrShadowRoot(this.elementRef.nativeElement) !== this.documentRef\n );\n }\n\n private get isUse(): boolean {\n return this.use.includes('.svg#');\n }\n\n private get isExternal(): boolean {\n return this.isUrl || (this.isIE && this.isUse) || this.isCrossDomain;\n }\n\n private get isUrl(): boolean {\n return this.icon.endsWith('.svg');\n }\n\n private get isSrc(): boolean {\n return isPresumedHTMLString(this.icon);\n }\n\n private get isName(): boolean {\n return !this.isUrl && !this.isUse && !this.isSrc;\n }\n\n private get isCrossDomain(): boolean {\n const {use, isUse, windowRef} = this;\n\n return (\n isUse &&\n use.startsWith('http') &&\n !!windowRef.origin &&\n !use.startsWith(windowRef.origin)\n );\n }\n\n onError(message: string = MISSING_EXTERNAL_ICON) {\n const {icon} = this;\n const event = tuiCustomEvent<TuiIconError>(\n TUI_ICON_ERROR,\n {\n bubbles: true,\n detail: {\n message,\n icon,\n },\n },\n this.documentRef,\n );\n\n tuiAssert.assert(false, message, icon);\n this.elementRef.nativeElement.dispatchEvent(event);\n }\n\n @tuiPure\n private resolveName(name: string, iconsPath: TuiStringHandler<string>): string {\n return iconsPath(name);\n }\n\n private getSafeHtml(src: string): SafeHtml {\n return this.isSrc ? this.sanitize(src) : this.process(src);\n }\n\n private process(src: string): SafeHtml {\n const icon = this.svgService.getOriginal(src);\n\n if (this.isName && !icon && !!src) {\n this.onError(UNDEFINED_NAMED_ICON);\n }\n\n // Empty line for innerHTML when icon is shown through USE tag\n return !this.isShadowDOM || !this.isName ? '' : this.sanitize(icon || '');\n }\n\n private sanitize(src: string): SafeHtml | string {\n return this.tuiSanitizer\n ? this.sanitizer.bypassSecurityTrustHtml(\n this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '',\n )\n : src;\n }\n\n // @bad TODO: Create a simple XMLHttpRequest to Observable service\n private getExternalIcon(src: string): Observable<SafeHtml> {\n const url = src.includes('.svg') ? src : this.use;\n\n return this.staticRequestService.request(url).pipe(\n catchError(() => {\n this.onError(FAILED_EXTERNAL_ICON);\n\n return of('');\n }),\n map(response =>\n this.sanitize(response.replace('<svg', '<svg focusable=\"false\"')),\n ),\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiSvgComponent} from './svg.component';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [TuiSvgComponent],\n exports: [TuiSvgComponent],\n})\nexport class TuiSvgModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-theme-night.js","sources":["ng://@taiga-ui/core/components/theme-night/theme-night.component.ts","ng://@taiga-ui/core/components/theme-night/theme-night.module.ts","ng://@taiga-ui/core/components/theme-night/taiga-ui-core-components-theme-night.ts"],"sourcesContent":["import {Component, ViewEncapsulation} from '@angular/core';\nimport {AbstractTuiThemeSwitcher} from '@taiga-ui/cdk';\n\n// @dynamic\n@Component({\n selector: 'tui-theme-night',\n template: '',\n styleUrls: ['./theme-night.style.less'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TuiThemeNightComponent extends AbstractTuiThemeSwitcher {}\n","import {NgModule} from '@angular/core';\nimport {TuiThemeNightComponent} from './theme-night.component';\n\n@NgModule({\n declarations: [TuiThemeNightComponent],\n exports: [TuiThemeNightComponent],\n})\nexport class TuiThemeNightModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;IAO4C,0CAAwB;IAApE;;KAAuE;IAA1D,sBAAsB;QANlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,QAAQ,EAAE,EAAE;YAEZ,aAAa,EAAE,iBAAiB,CAAC,IAAI;;SACxC,CAAC;OACW,sBAAsB,CAAoC;IAAD,6BAAC;CAAA,CAA3B,wBAAwB;;;ICHpE;KAAmC;IAAtB,mBAAmB;QAJ/B,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;YACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAnC;;ACPA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-components-theme-night.js","sources":["ng://@taiga-ui/core/components/theme-night/theme-night.component.ts","ng://@taiga-ui/core/components/theme-night/theme-night.module.ts","ng://@taiga-ui/core/components/theme-night/taiga-ui-core-components-theme-night.ts"],"sourcesContent":["import {Component, ViewEncapsulation} from '@angular/core';\nimport {AbstractTuiThemeSwitcher} from '@taiga-ui/cdk';\n\n// @dynamic\n@Component({\n selector: 'tui-theme-night',\n template: '',\n styleUrls: ['./theme-night.style.less'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TuiThemeNightComponent extends AbstractTuiThemeSwitcher {}\n","import {NgModule} from '@angular/core';\n\nimport {TuiThemeNightComponent} from './theme-night.component';\n\n@NgModule({\n declarations: [TuiThemeNightComponent],\n exports: [TuiThemeNightComponent],\n})\nexport class TuiThemeNightModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;IAO4C,0CAAwB;IAApE;;KAAuE;IAA1D,sBAAsB;QANlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,QAAQ,EAAE,EAAE;YAEZ,aAAa,EAAE,iBAAiB,CAAC,IAAI;;SACxC,CAAC;OACW,sBAAsB,CAAoC;IAAD,6BAAC;CAAA,CAA3B,wBAAwB;;;ICFpE;KAAmC;IAAtB,mBAAmB;QAJ/B,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;YACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAnC;;ACRA;;;;;;"}
@@ -77,7 +77,7 @@ var TuiTooltipComponent = /** @class */ (function () {
77
77
  TuiTooltipComponent = __decorate([
78
78
  Component({
79
79
  selector: 'tui-tooltip',
80
- template: "<tui-svg\n class=\"icon\"\n src=\"tuiIconTooltipLarge\"\n automation-id=\"tui-tooltip__icon\"\n [tuiHintId]=\"describeId\"\n [tuiHint]=\"content\"\n [tuiHintDirection]=\"direction\"\n [tuiHintShowDelay]=\"showDelay\"\n [tuiHintHideDelay]=\"hideDelay\"\n [tuiHintMode]=\"computedMode\"\n></tui-svg>\n",
80
+ template: "<tui-svg\n src=\"tuiIconTooltipLarge\"\n automation-id=\"tui-tooltip__icon\"\n class=\"icon\"\n [tuiHintId]=\"describeId\"\n [tuiHint]=\"content\"\n [tuiHintDirection]=\"direction\"\n [tuiHintShowDelay]=\"showDelay\"\n [tuiHintHideDelay]=\"hideDelay\"\n [tuiHintMode]=\"computedMode\"\n></tui-svg>\n",
81
81
  changeDetection: ChangeDetectionStrategy.OnPush,
82
82
  providers: [TuiDestroyService, MODE_PROVIDER],
83
83
  styles: [":host{transition-property:color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:relative;display:inline-block;width:1.5rem;height:1.5rem;vertical-align:middle;font-size:0;line-height:0;cursor:pointer;color:var(--tui-text-03)}:host:hover{color:var(--tui-text-02)}:host[data-mode=onDark]{color:var(--tui-text-01-night)}:host[data-mode=onLight]{color:var(--tui-text-01)}:host[data-mode=error]{color:var(--tui-error-fill)}.icon{transition-property:opacity,color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;width:100%;height:100%}:host:not([data-mode]) .icon._hint_hovered{color:var(--tui-text-02)}:host[data-mode=onDark] .icon,:host[data-mode=onLight] .icon{opacity:var(--tui-disabled-opacity)}:host[data-mode=onDark] .icon._hint_hovered,:host[data-mode=onDark] .icon:hover,:host[data-mode=onLight] .icon._hint_hovered,:host[data-mode=onLight] .icon:hover{opacity:1}"]