@taiga-ui/cdk 2.45.0 → 2.48.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 (427) hide show
  1. package/abstract/controller.d.ts +6 -0
  2. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-cdk-abstract.umd.js +63 -21
  4. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-abstract.umd.min.js +1 -15
  6. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-components-alert-host.umd.js +50 -20
  8. package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js +1 -15
  10. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +54 -24
  12. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -15
  14. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +50 -20
  16. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +1 -15
  18. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +51 -21
  20. package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +1 -15
  22. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-date-time.umd.js +54 -29
  24. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-date-time.umd.min.js +1 -15
  26. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-decorators.umd.js +50 -20
  28. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-decorators.umd.min.js +1 -15
  30. package/bundles/taiga-ui-cdk-decorators.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +50 -20
  32. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js +1 -15
  34. package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +265 -92
  36. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +1 -15
  38. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +91 -42
  40. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js +1 -15
  42. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-cdk-directives-checked.umd.js +50 -20
  44. package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
  45. package/bundles/taiga-ui-cdk-directives-checked.umd.min.js +1 -15
  46. package/bundles/taiga-ui-cdk-directives-checked.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +50 -20
  48. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js +1 -15
  50. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-directives-drag.umd.js +50 -20
  52. package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
  53. package/bundles/taiga-ui-cdk-directives-drag.umd.min.js +1 -15
  54. package/bundles/taiga-ui-cdk-directives-drag.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-directives-droppable.umd.js +50 -20
  56. package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js +1 -15
  58. package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-cdk-directives-element.umd.js +50 -20
  60. package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
  61. package/bundles/taiga-ui-cdk-directives-element.umd.min.js +1 -15
  62. package/bundles/taiga-ui-cdk-directives-element.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +50 -20
  64. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  65. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js +1 -15
  66. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js +50 -20
  68. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
  69. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js +1 -15
  70. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-cdk-directives-focusable.umd.js +50 -20
  72. package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
  73. package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js +1 -15
  74. package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-cdk-directives-focused.umd.js +50 -20
  76. package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
  77. package/bundles/taiga-ui-cdk-directives-focused.umd.min.js +1 -15
  78. package/bundles/taiga-ui-cdk-directives-focused.umd.min.js.map +1 -1
  79. package/bundles/taiga-ui-cdk-directives-for-async.umd.js +324 -0
  80. package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -0
  81. package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js +2 -0
  82. package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js.map +1 -0
  83. package/bundles/taiga-ui-cdk-directives-for.umd.js +50 -20
  84. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  85. package/bundles/taiga-ui-cdk-directives-for.umd.min.js +1 -15
  86. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js +50 -20
  88. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
  89. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js +1 -15
  90. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
  91. package/bundles/taiga-ui-cdk-directives-hovered.umd.js +50 -20
  92. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  93. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js +1 -15
  94. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-cdk-directives-input-mode.umd.js +50 -20
  96. package/bundles/taiga-ui-cdk-directives-input-mode.umd.js.map +1 -1
  97. package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js +1 -15
  98. package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js.map +1 -1
  99. package/bundles/taiga-ui-cdk-directives-item.umd.js +51 -21
  100. package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -1
  101. package/bundles/taiga-ui-cdk-directives-item.umd.min.js +1 -15
  102. package/bundles/taiga-ui-cdk-directives-item.umd.min.js.map +1 -1
  103. package/bundles/taiga-ui-cdk-directives-let.umd.js +50 -20
  104. package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
  105. package/bundles/taiga-ui-cdk-directives-let.umd.min.js +1 -15
  106. package/bundles/taiga-ui-cdk-directives-let.umd.min.js.map +1 -1
  107. package/bundles/taiga-ui-cdk-directives-media.umd.js +50 -20
  108. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  109. package/bundles/taiga-ui-cdk-directives-media.umd.min.js +1 -15
  110. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  111. package/bundles/taiga-ui-cdk-directives-obscured.umd.js +50 -20
  112. package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
  113. package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js +1 -15
  114. package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js.map +1 -1
  115. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +50 -20
  116. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
  117. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js +1 -15
  118. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
  119. package/bundles/taiga-ui-cdk-directives-pan.umd.js +50 -20
  120. package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
  121. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +1 -15
  122. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -1
  123. package/bundles/taiga-ui-cdk-directives-portal.umd.js +50 -20
  124. package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -1
  125. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js +1 -15
  126. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js.map +1 -1
  127. package/bundles/taiga-ui-cdk-directives-pressed.umd.js +50 -20
  128. package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
  129. package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js +1 -15
  130. package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js.map +1 -1
  131. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js +50 -20
  132. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
  133. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js +1 -15
  134. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js.map +1 -1
  135. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js +50 -20
  136. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
  137. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js +1 -15
  138. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
  139. package/bundles/taiga-ui-cdk-directives-resize.umd.js +50 -20
  140. package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
  141. package/bundles/taiga-ui-cdk-directives-resize.umd.min.js +1 -15
  142. package/bundles/taiga-ui-cdk-directives-resize.umd.min.js.map +1 -1
  143. package/bundles/taiga-ui-cdk-directives-swipe.umd.js +50 -20
  144. package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
  145. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +1 -15
  146. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -1
  147. package/bundles/taiga-ui-cdk-directives-validator.umd.js +50 -20
  148. package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
  149. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js +1 -15
  150. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
  151. package/bundles/taiga-ui-cdk-directives-zoom.umd.js +50 -20
  152. package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
  153. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +1 -15
  154. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -1
  155. package/bundles/taiga-ui-cdk-directives.umd.js +12 -4
  156. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  157. package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
  158. package/bundles/taiga-ui-cdk-enums.umd.js +12 -0
  159. package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
  160. package/bundles/taiga-ui-cdk-enums.umd.min.js +1 -1
  161. package/bundles/taiga-ui-cdk-enums.umd.min.js.map +1 -1
  162. package/bundles/taiga-ui-cdk-exceptions.umd.js +50 -20
  163. package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
  164. package/bundles/taiga-ui-cdk-exceptions.umd.min.js +1 -15
  165. package/bundles/taiga-ui-cdk-exceptions.umd.min.js.map +1 -1
  166. package/bundles/taiga-ui-cdk-observables.umd.js +1 -1
  167. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  168. package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
  169. package/bundles/taiga-ui-cdk-pipes-filter.umd.js +50 -20
  170. package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
  171. package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js +1 -15
  172. package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js.map +1 -1
  173. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js +50 -20
  174. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
  175. package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js +1 -15
  176. package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js.map +1 -1
  177. package/bundles/taiga-ui-cdk-services.umd.js +50 -20
  178. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  179. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -15
  180. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  181. package/bundles/taiga-ui-cdk-tokens.umd.js +54 -26
  182. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  183. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -15
  184. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  185. package/bundles/taiga-ui-cdk-utils-browser.umd.js +2 -2
  186. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  187. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js +1 -1
  188. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js.map +1 -1
  189. package/bundles/taiga-ui-cdk-utils-focus.umd.js +3 -1
  190. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  191. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js +1 -1
  192. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  193. package/bundles/taiga-ui-cdk-utils-os.umd.js +39 -0
  194. package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -0
  195. package/bundles/taiga-ui-cdk-utils-os.umd.min.js +2 -0
  196. package/bundles/taiga-ui-cdk-utils-os.umd.min.js.map +1 -0
  197. package/bundles/taiga-ui-cdk-utils-svg.umd.js +50 -20
  198. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
  199. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js +1 -15
  200. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js.map +1 -1
  201. package/bundles/taiga-ui-cdk-utils.umd.js +12 -4
  202. package/bundles/taiga-ui-cdk-utils.umd.js.map +1 -1
  203. package/bundles/taiga-ui-cdk-utils.umd.min.js +1 -1
  204. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
  205. package/components/portal-host/portal.service.d.ts +1 -1
  206. package/date-time/date-fillers.d.ts +0 -2
  207. package/date-time/day-range.d.ts +1 -2
  208. package/date-time/day.d.ts +0 -1
  209. package/date-time/month-range.d.ts +0 -1
  210. package/date-time/month.d.ts +0 -1
  211. package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
  212. package/directives/auto-focus/autofocus.directive.d.ts +4 -13
  213. package/directives/auto-focus/autofocus.options.d.ts +13 -0
  214. package/directives/auto-focus/handlers/abstract.handler.d.ts +11 -0
  215. package/directives/auto-focus/handlers/default.handler.d.ts +9 -0
  216. package/directives/auto-focus/handlers/ios.handler.d.ts +35 -0
  217. package/directives/auto-focus/index.d.ts +4 -0
  218. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  219. package/directives/autofilled/autofilled-style.component.d.ts +2 -0
  220. package/directives/autofilled/autofilled.directive.d.ts +5 -4
  221. package/directives/autofilled/index.d.ts +1 -0
  222. package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
  223. package/directives/for-async/for-async.directive.d.ts +13 -0
  224. package/directives/for-async/for-async.module.d.ts +5 -0
  225. package/directives/for-async/index.d.ts +2 -0
  226. package/directives/for-async/package.json +13 -0
  227. package/directives/for-async/taiga-ui-cdk-directives-for-async.d.ts +4 -0
  228. package/directives/for-async/taiga-ui-cdk-directives-for-async.metadata.json +1 -0
  229. package/directives/index.d.ts +1 -0
  230. package/directives/item/item.directive.d.ts +1 -1
  231. package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
  232. package/enums/autocomplete.d.ts +10 -0
  233. package/enums/taiga-ui-cdk-enums.metadata.json +1 -1
  234. package/esm2015/abstract/controller.js +7 -1
  235. package/esm2015/abstract/interactive.js +2 -2
  236. package/esm2015/components/dialog-host/dialog-host.component.js +5 -5
  237. package/esm2015/components/portal-host/portal.service.js +2 -2
  238. package/esm2015/date-time/date-fillers.js +1 -3
  239. package/esm2015/date-time/day-range.js +2 -2
  240. package/esm2015/date-time/day.js +2 -3
  241. package/esm2015/date-time/month-range.js +1 -2
  242. package/esm2015/date-time/month.js +2 -3
  243. package/esm2015/date-time/year.js +2 -2
  244. package/esm2015/directives/auto-focus/autofocus.directive.js +11 -87
  245. package/esm2015/directives/auto-focus/autofocus.options.js +28 -0
  246. package/esm2015/directives/auto-focus/handlers/abstract.handler.js +25 -0
  247. package/esm2015/directives/auto-focus/handlers/default.handler.js +39 -0
  248. package/esm2015/directives/auto-focus/handlers/ios.handler.js +121 -0
  249. package/esm2015/directives/auto-focus/index.js +5 -1
  250. package/esm2015/directives/autofilled/autofilled-style.component.js +13 -0
  251. package/esm2015/directives/autofilled/autofilled.directive.js +23 -37
  252. package/esm2015/directives/autofilled/autofilled.module.js +4 -2
  253. package/esm2015/directives/autofilled/index.js +2 -1
  254. package/esm2015/directives/for-async/for-async.directive.js +48 -0
  255. package/esm2015/directives/for-async/for-async.module.js +16 -0
  256. package/esm2015/directives/for-async/index.js +3 -0
  257. package/esm2015/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
  258. package/esm2015/directives/index.js +2 -1
  259. package/esm2015/directives/item/item.directive.js +2 -2
  260. package/esm2015/enums/autocomplete.js +12 -1
  261. package/esm2015/observables/replay-control-value-changes.js +2 -2
  262. package/esm2015/tokens/index.js +2 -1
  263. package/esm2015/tokens/is-apple.js +5 -0
  264. package/esm2015/tokens/is-ios.js +4 -6
  265. package/esm2015/utils/browser/index.js +2 -2
  266. package/esm2015/utils/browser/is-edge-older-than.js +2 -2
  267. package/esm2015/utils/browser/{is-IE.js → is-ie.js} +1 -1
  268. package/esm2015/utils/browser/is-safari.js +2 -2
  269. package/esm2015/utils/focus/get-native-focused.js +2 -2
  270. package/esm2015/utils/focus/set-native-focused.js +3 -1
  271. package/esm2015/utils/index.js +2 -1
  272. package/esm2015/utils/os/index.js +4 -0
  273. package/esm2015/utils/os/is-apple-platform.js +14 -0
  274. package/esm2015/utils/os/is-apple.js +6 -0
  275. package/esm2015/utils/os/is-ios.js +7 -0
  276. package/esm2015/utils/os/taiga-ui-cdk-utils-os.js +5 -0
  277. package/esm5/abstract/controller.js +14 -1
  278. package/esm5/abstract/interactive.js +2 -2
  279. package/esm5/components/dialog-host/dialog-host.component.js +5 -5
  280. package/esm5/components/portal-host/portal.service.js +2 -2
  281. package/esm5/date-time/date-fillers.js +1 -3
  282. package/esm5/date-time/day-range.js +2 -2
  283. package/esm5/date-time/day.js +2 -3
  284. package/esm5/date-time/month-range.js +1 -2
  285. package/esm5/date-time/month.js +2 -3
  286. package/esm5/date-time/year.js +2 -2
  287. package/esm5/directives/auto-focus/autofocus.directive.js +11 -97
  288. package/esm5/directives/auto-focus/autofocus.options.js +28 -0
  289. package/esm5/directives/auto-focus/handlers/abstract.handler.js +34 -0
  290. package/esm5/directives/auto-focus/handlers/default.handler.js +43 -0
  291. package/esm5/directives/auto-focus/handlers/ios.handler.js +137 -0
  292. package/esm5/directives/auto-focus/index.js +5 -1
  293. package/esm5/directives/autofilled/autofilled-style.component.js +16 -0
  294. package/esm5/directives/autofilled/autofilled.directive.js +24 -21
  295. package/esm5/directives/autofilled/autofilled.module.js +4 -2
  296. package/esm5/directives/autofilled/index.js +2 -1
  297. package/esm5/directives/for-async/for-async.directive.js +52 -0
  298. package/esm5/directives/for-async/for-async.module.js +19 -0
  299. package/esm5/directives/for-async/index.js +3 -0
  300. package/esm5/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
  301. package/esm5/directives/index.js +2 -1
  302. package/esm5/directives/item/item.directive.js +2 -2
  303. package/esm5/enums/autocomplete.js +12 -1
  304. package/esm5/observables/replay-control-value-changes.js +2 -2
  305. package/esm5/tokens/index.js +2 -1
  306. package/esm5/tokens/is-apple.js +5 -0
  307. package/esm5/tokens/is-ios.js +4 -8
  308. package/esm5/utils/browser/index.js +2 -2
  309. package/esm5/utils/browser/is-edge-older-than.js +2 -2
  310. package/esm5/utils/browser/{is-IE.js → is-ie.js} +1 -1
  311. package/esm5/utils/browser/is-safari.js +2 -2
  312. package/esm5/utils/focus/get-native-focused.js +2 -2
  313. package/esm5/utils/focus/set-native-focused.js +3 -1
  314. package/esm5/utils/index.js +2 -1
  315. package/esm5/utils/os/index.js +4 -0
  316. package/esm5/utils/os/is-apple-platform.js +14 -0
  317. package/esm5/utils/os/is-apple.js +6 -0
  318. package/esm5/utils/os/is-ios.js +7 -0
  319. package/esm5/utils/os/taiga-ui-cdk-utils-os.js +5 -0
  320. package/fesm2015/taiga-ui-cdk-abstract.js +8 -2
  321. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  322. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +4 -4
  323. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  324. package/fesm2015/taiga-ui-cdk-components-portal-host.js +1 -1
  325. package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
  326. package/fesm2015/taiga-ui-cdk-date-time.js +4 -9
  327. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  328. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +187 -69
  329. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  330. package/fesm2015/taiga-ui-cdk-directives-autofilled.js +33 -37
  331. package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  332. package/fesm2015/taiga-ui-cdk-directives-for-async.js +66 -0
  333. package/fesm2015/taiga-ui-cdk-directives-for-async.js.map +1 -0
  334. package/fesm2015/taiga-ui-cdk-directives-item.js +1 -1
  335. package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -1
  336. package/fesm2015/taiga-ui-cdk-directives.js +1 -0
  337. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  338. package/fesm2015/taiga-ui-cdk-enums.js +11 -0
  339. package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
  340. package/fesm2015/taiga-ui-cdk-observables.js +1 -1
  341. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  342. package/fesm2015/taiga-ui-cdk-tokens.js +6 -7
  343. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  344. package/fesm2015/taiga-ui-cdk-utils-browser.js +2 -2
  345. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  346. package/fesm2015/taiga-ui-cdk-utils-focus.js +3 -1
  347. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  348. package/fesm2015/taiga-ui-cdk-utils-os.js +31 -0
  349. package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -0
  350. package/fesm2015/taiga-ui-cdk-utils.js +1 -0
  351. package/fesm2015/taiga-ui-cdk-utils.js.map +1 -1
  352. package/fesm5/taiga-ui-cdk-abstract.js +13 -2
  353. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  354. package/fesm5/taiga-ui-cdk-components-dialog-host.js +4 -4
  355. package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  356. package/fesm5/taiga-ui-cdk-components-portal-host.js +1 -1
  357. package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
  358. package/fesm5/taiga-ui-cdk-date-time.js +4 -9
  359. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  360. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +211 -74
  361. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  362. package/fesm5/taiga-ui-cdk-directives-autofilled.js +38 -22
  363. package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  364. package/fesm5/taiga-ui-cdk-directives-for-async.js +73 -0
  365. package/fesm5/taiga-ui-cdk-directives-for-async.js.map +1 -0
  366. package/fesm5/taiga-ui-cdk-directives-item.js +1 -1
  367. package/fesm5/taiga-ui-cdk-directives-item.js.map +1 -1
  368. package/fesm5/taiga-ui-cdk-directives.js +1 -0
  369. package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
  370. package/fesm5/taiga-ui-cdk-enums.js +11 -0
  371. package/fesm5/taiga-ui-cdk-enums.js.map +1 -1
  372. package/fesm5/taiga-ui-cdk-observables.js +1 -1
  373. package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
  374. package/fesm5/taiga-ui-cdk-tokens.js +6 -9
  375. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  376. package/fesm5/taiga-ui-cdk-utils-browser.js +2 -2
  377. package/fesm5/taiga-ui-cdk-utils-browser.js.map +1 -1
  378. package/fesm5/taiga-ui-cdk-utils-focus.js +3 -1
  379. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  380. package/fesm5/taiga-ui-cdk-utils-os.js +31 -0
  381. package/fesm5/taiga-ui-cdk-utils-os.js.map +1 -0
  382. package/fesm5/taiga-ui-cdk-utils.js +1 -0
  383. package/fesm5/taiga-ui-cdk-utils.js.map +1 -1
  384. package/observables/replay-control-value-changes.d.ts +1 -1
  385. package/package.json +1 -1
  386. package/schematics/ng-add/constants/modules.d.ts +1 -1
  387. package/schematics/ng-add/constants/modules.js +2 -2
  388. package/schematics/ng-add/schema.d.ts +1 -1
  389. package/schematics/ng-add/schema.json +3 -3
  390. package/schematics/ng-add/steps/add-taiga-modules.js +1 -1
  391. package/schematics/ng-update/constants/consts.d.ts +7 -7
  392. package/schematics/ng-update/constants/consts.js +28 -0
  393. package/schematics/ng-update/constants/enums.d.ts +3 -3
  394. package/schematics/ng-update/constants/enums.js +22 -0
  395. package/schematics/ng-update/constants/services.d.ts +8 -0
  396. package/schematics/ng-update/constants/services.js +43 -0
  397. package/schematics/ng-update/constants/types.d.ts +4 -3
  398. package/schematics/ng-update/constants/types.js +55 -0
  399. package/schematics/ng-update/constants/warnings.d.ts +6 -0
  400. package/schematics/ng-update/constants/warnings.js +30 -0
  401. package/schematics/ng-update/index.js +4 -0
  402. package/schematics/ng-update/steps/rename-types.js +27 -11
  403. package/schematics/ng-update/steps/replace-const.js +2 -2
  404. package/schematics/ng-update/steps/replace-enums.js +2 -2
  405. package/schematics/ng-update/steps/replace-services.d.ts +1 -0
  406. package/schematics/ng-update/steps/replace-services.js +51 -0
  407. package/schematics/ng-update/steps/show-warnings.d.ts +2 -0
  408. package/schematics/ng-update/steps/show-warnings.js +35 -0
  409. package/schematics/utils/{remove-import.d.ts → import-manipulations.d.ts} +1 -0
  410. package/schematics/utils/import-manipulations.js +19 -0
  411. package/tokens/index.d.ts +1 -0
  412. package/tokens/is-apple.d.ts +2 -0
  413. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  414. package/utils/browser/index.d.ts +1 -1
  415. package/utils/browser/{is-IE.d.ts → is-ie.d.ts} +0 -0
  416. package/utils/browser/taiga-ui-cdk-utils-browser.metadata.json +1 -1
  417. package/utils/focus/set-native-focused.d.ts +2 -0
  418. package/utils/index.d.ts +1 -0
  419. package/utils/os/index.d.ts +3 -0
  420. package/utils/os/is-apple-platform.d.ts +11 -0
  421. package/utils/os/is-apple.d.ts +1 -0
  422. package/utils/os/is-ios.d.ts +1 -0
  423. package/utils/os/package.json +13 -0
  424. package/utils/os/taiga-ui-cdk-utils-os.d.ts +4 -0
  425. package/utils/os/taiga-ui-cdk-utils-os.metadata.json +1 -0
  426. package/utils/taiga-ui-cdk-utils.metadata.json +1 -1
  427. package/schematics/utils/remove-import.js +0 -11
@@ -2,8 +2,8 @@ function isEdge(userAgent) {
2
2
  return userAgent.toLowerCase().includes('edge');
3
3
  }
4
4
 
5
+ const EDGE = 'edge/';
5
6
  function isEdgeOlderThan(version, userAgent) {
6
- const EDGE = 'edge/';
7
7
  const currentVersion = parseInt(userAgent.slice(userAgent.toLowerCase().indexOf(EDGE) + EDGE.length), 10);
8
8
  return currentVersion < version;
9
9
  }
@@ -18,7 +18,7 @@ function isIE(userAgent) {
18
18
 
19
19
  function isSafari(element) {
20
20
  const documentRef = element.ownerDocument;
21
- const windowRef = documentRef && documentRef.defaultView;
21
+ const windowRef = documentRef === null || documentRef === void 0 ? void 0 : documentRef.defaultView;
22
22
  return !!windowRef && 'safari' in windowRef;
23
23
  }
24
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-browser.js","sources":["ng://@taiga-ui/cdk/utils/browser/is-edge.ts","ng://@taiga-ui/cdk/utils/browser/is-edge-older-than.ts","ng://@taiga-ui/cdk/utils/browser/is-firefox.ts","ng://@taiga-ui/cdk/utils/browser/is-IE.ts","ng://@taiga-ui/cdk/utils/browser/is-safari.ts","ng://@taiga-ui/cdk/utils/browser/taiga-ui-cdk-utils-browser.ts"],"sourcesContent":["export function isEdge(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('edge');\n}\n","export function isEdgeOlderThan(version: number, userAgent: string): boolean {\n const EDGE = 'edge/';\n const currentVersion = parseInt(\n userAgent.slice(userAgent.toLowerCase().indexOf(EDGE) + EDGE.length),\n 10,\n );\n\n return currentVersion < version;\n}\n","export function isFirefox(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('firefox');\n}\n","export function isIE(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('trident');\n}\n","export function isSafari(element: Element): boolean {\n const documentRef = element.ownerDocument;\n const windowRef = documentRef && documentRef.defaultView;\n\n return !!windowRef && 'safari' in windowRef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"SAAgB,MAAM,CAAC,SAAiB;IACpC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpD;;SCFgB,eAAe,CAAC,OAAe,EAAE,SAAiB;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC;IACrB,MAAM,cAAc,GAAG,QAAQ,CAC3B,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EACpE,EAAE,CACL,CAAC;IAEF,OAAO,cAAc,GAAG,OAAO,CAAC;AACpC;;SCRgB,SAAS,CAAC,SAAiB;IACvC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD;;SCFgB,IAAI,CAAC,SAAiB;IAClC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD;;SCFgB,QAAQ,CAAC,OAAgB;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAC1C,MAAM,SAAS,GAAG,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC;IAEzD,OAAO,CAAC,CAAC,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC;AAChD;;ACLA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-browser.js","sources":["ng://@taiga-ui/cdk/utils/browser/is-edge.ts","ng://@taiga-ui/cdk/utils/browser/is-edge-older-than.ts","ng://@taiga-ui/cdk/utils/browser/is-firefox.ts","ng://@taiga-ui/cdk/utils/browser/is-ie.ts","ng://@taiga-ui/cdk/utils/browser/is-safari.ts","ng://@taiga-ui/cdk/utils/browser/taiga-ui-cdk-utils-browser.ts"],"sourcesContent":["export function isEdge(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('edge');\n}\n","const EDGE = 'edge/';\n\nexport function isEdgeOlderThan(version: number, userAgent: string): boolean {\n const currentVersion = parseInt(\n userAgent.slice(userAgent.toLowerCase().indexOf(EDGE) + EDGE.length),\n 10,\n );\n\n return currentVersion < version;\n}\n","export function isFirefox(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('firefox');\n}\n","export function isIE(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('trident');\n}\n","export function isSafari(element: Element): boolean {\n const documentRef = element.ownerDocument;\n const windowRef = documentRef?.defaultView;\n\n return !!windowRef && 'safari' in windowRef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"SAAgB,MAAM,CAAC,SAAiB;IACpC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpD;;ACFA,MAAM,IAAI,GAAG,OAAO,CAAC;SAEL,eAAe,CAAC,OAAe,EAAE,SAAiB;IAC9D,MAAM,cAAc,GAAG,QAAQ,CAC3B,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EACpE,EAAE,CACL,CAAC;IAEF,OAAO,cAAc,GAAG,OAAO,CAAC;AACpC;;SCTgB,SAAS,CAAC,SAAiB;IACvC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD;;SCFgB,IAAI,CAAC,SAAiB;IAClC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD;;SCFgB,QAAQ,CAAC,OAAgB;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAC1C,MAAM,SAAS,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,CAAC;IAE3C,OAAO,CAAC,CAAC,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC;AAChD;;ACLA;;;;;;"}
@@ -10,13 +10,15 @@ function getNativeFocused(documentRef) {
10
10
  return documentRef.activeElement;
11
11
  }
12
12
  let element = documentRef.activeElement.shadowRoot.activeElement;
13
- while (element && element.shadowRoot) {
13
+ while (element === null || element === void 0 ? void 0 : element.shadowRoot) {
14
14
  element = element.shadowRoot.activeElement;
15
15
  }
16
16
  return element;
17
17
  }
18
18
 
19
19
  /**
20
+ * @deprecated: use native element.focus()
21
+ * TODO: remove in v3.0
20
22
  * Focuses or blurs and element
21
23
  *
22
24
  * @param element native element
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-focus.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts","ng://@taiga-ui/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-focus.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts","ng://@taiga-ui/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * @deprecated: use native element.focus()\n * TODO: remove in v3.0\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @note:
3
+ * All Chrome / Chromium-based browsers will return MacIntel on macOS,
4
+ * no matter what the hardware architecture is. See the source code here:
5
+ * https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/frame/navigator_id.cc;l=64;drc=703d3c472cf27470dad21a3f2c8972aca3732cd6
6
+ * But maybe in future years, it will be changed to MacM1
7
+ *
8
+ * Documentation:
9
+ * https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform
10
+ */
11
+ function isApplePlatform(navigator) {
12
+ return navigator.platform.indexOf('Mac') === 0 || navigator.platform === 'iPhone';
13
+ }
14
+
15
+ const IOS_REG_EXP = /ipad|iphone|ipod/;
16
+ function isIos(navigator) {
17
+ return (IOS_REG_EXP.test(navigator.userAgent.toLowerCase()) ||
18
+ (isApplePlatform(navigator) && navigator.maxTouchPoints > 1));
19
+ }
20
+
21
+ const SAFARI_REG_EXP = /^((?!chrome|android).)*safari/i;
22
+ function isApple(navigator) {
23
+ return isIos(navigator) || SAFARI_REG_EXP.test(navigator.userAgent.toLowerCase());
24
+ }
25
+
26
+ /**
27
+ * Generated bundle index. Do not edit.
28
+ */
29
+
30
+ export { isApple, isApplePlatform, isIos };
31
+ //# sourceMappingURL=taiga-ui-cdk-utils-os.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-cdk-utils-os.js","sources":["ng://@taiga-ui/cdk/utils/os/is-apple-platform.ts","ng://@taiga-ui/cdk/utils/os/is-ios.ts","ng://@taiga-ui/cdk/utils/os/is-apple.ts","ng://@taiga-ui/cdk/utils/os/taiga-ui-cdk-utils-os.ts"],"sourcesContent":["/**\n * @note:\n * All Chrome / Chromium-based browsers will return MacIntel on macOS,\n * no matter what the hardware architecture is. See the source code here:\n * https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/frame/navigator_id.cc;l=64;drc=703d3c472cf27470dad21a3f2c8972aca3732cd6\n * But maybe in future years, it will be changed to MacM1\n *\n * Documentation:\n * https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform\n */\nexport function isApplePlatform(navigator: Navigator): boolean {\n return navigator.platform.indexOf('Mac') === 0 || navigator.platform === 'iPhone';\n}\n","import {isApplePlatform} from './is-apple-platform';\n\nconst IOS_REG_EXP = /ipad|iphone|ipod/;\n\nexport function isIos(navigator: Navigator): boolean {\n return (\n IOS_REG_EXP.test(navigator.userAgent.toLowerCase()) ||\n (isApplePlatform(navigator) && navigator.maxTouchPoints > 1)\n );\n}\n","import {isIos} from './is-ios';\n\nconst SAFARI_REG_EXP = /^((?!chrome|android).)*safari/i;\n\nexport function isApple(navigator: Navigator): boolean {\n return isIos(navigator) || SAFARI_REG_EXP.test(navigator.userAgent.toLowerCase());\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;;;;;;;;;SAUgB,eAAe,CAAC,SAAoB;IAChD,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACtF;;ACVA,MAAM,WAAW,GAAG,kBAAkB,CAAC;SAEvB,KAAK,CAAC,SAAoB;IACtC,QACI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SAClD,eAAe,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,EAC9D;AACN;;ACPA,MAAM,cAAc,GAAG,gCAAgC,CAAC;SAExC,OAAO,CAAC,SAAoB;IACxC,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;AACtF;;ACNA;;;;;;"}
@@ -4,6 +4,7 @@ export * from '@taiga-ui/cdk/utils/focus';
4
4
  export * from '@taiga-ui/cdk/utils/format';
5
5
  export * from '@taiga-ui/cdk/utils/math';
6
6
  export * from '@taiga-ui/cdk/utils/miscellaneous';
7
+ export * from '@taiga-ui/cdk/utils/os';
7
8
  export * from '@taiga-ui/cdk/utils/svg';
8
9
 
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils.js","sources":["ng://@taiga-ui/cdk/utils/taiga-ui-cdk-utils.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAAA;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils.js","sources":["ng://@taiga-ui/cdk/utils/taiga-ui-cdk-utils.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAAA;;"}
@@ -91,7 +91,7 @@ var AbstractTuiInteractive = /** @class */ (function () {
91
91
  configurable: true
92
92
  });
93
93
  Object.defineProperty(AbstractTuiInteractive.prototype, "id", {
94
- // TODO: Consider removing since native input is exposed
94
+ // TODO: 3.0 Consider removing since native input is exposed
95
95
  get: function () {
96
96
  return this.nativeId ? this.nativeId : this.autoIdString;
97
97
  },
@@ -416,6 +416,10 @@ var AbstractTuiControl = /** @class */ (function (_super) {
416
416
  return AbstractTuiControl;
417
417
  }(AbstractTuiInteractive));
418
418
 
419
+ /**
420
+ * @deprecated
421
+ * TODO: 3.0 replace with {@link AbstractTuiController}
422
+ */
419
423
  var TuiController = /** @class */ (function () {
420
424
  function TuiController() {
421
425
  this.change$ = new Subject();
@@ -425,6 +429,13 @@ var TuiController = /** @class */ (function () {
425
429
  };
426
430
  return TuiController;
427
431
  }());
432
+ var AbstractTuiController = /** @class */ (function (_super) {
433
+ __extends(AbstractTuiController, _super);
434
+ function AbstractTuiController() {
435
+ return _super !== null && _super.apply(this, arguments) || this;
436
+ }
437
+ return AbstractTuiController;
438
+ }(TuiController));
428
439
 
429
440
  var AbstractTuiDialogService = /** @class */ (function (_super) {
430
441
  __extends(AbstractTuiDialogService, _super);
@@ -667,5 +678,5 @@ var AbstractTuiThemeSwitcher = /** @class */ (function () {
667
678
  * Generated bundle index. Do not edit.
668
679
  */
669
680
 
670
- export { AbstractTuiControl, AbstractTuiDialogDirective, AbstractTuiDialogService, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNullableControl, AbstractTuiPortalHostComponent, AbstractTuiPortalService, AbstractTuiThemeSwitcher, TuiController };
681
+ export { AbstractTuiControl, AbstractTuiController, AbstractTuiDialogDirective, AbstractTuiDialogService, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNullableControl, AbstractTuiPortalHostComponent, AbstractTuiPortalService, AbstractTuiThemeSwitcher, TuiController };
671
682
  //# sourceMappingURL=taiga-ui-cdk-abstract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["ng://@taiga-ui/cdk/abstract/interactive.ts","ng://@taiga-ui/cdk/abstract/control.ts","ng://@taiga-ui/cdk/abstract/controller.ts","ng://@taiga-ui/cdk/abstract/dialog.service.ts","ng://@taiga-ui/cdk/abstract/dialog.directive.ts","ng://@taiga-ui/cdk/abstract/multiple-control.ts","ng://@taiga-ui/cdk/abstract/nullable-control.ts","ng://@taiga-ui/cdk/abstract/portal-service.ts","ng://@taiga-ui/cdk/abstract/portal-host.ts","ng://@taiga-ui/cdk/abstract/theme-switcher.ts","ng://@taiga-ui/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n abstract focused: boolean;\n\n private readonly autoIdString: string;\n\n @Input()\n @tuiDefaultProp()\n pseudoHovered: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoPressed: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocused: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n /** @deprecated use `tuiPressedChange` directive */\n @Output()\n readonly pressedChange = new EventEmitter<boolean>();\n\n /** @deprecated use `tuiHoveredChange` directive */\n @Output()\n readonly hoveredChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n /** @deprecated use `tuiHoveredChange` directive */\n hovered = false;\n\n /** @deprecated use `tuiPressedChange` directive */\n pressed = false;\n\n focusVisible = false;\n\n protected constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding('class._disabled')\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n /** @deprecated */\n @HostBinding('class._hovered')\n get computedHovered(): boolean {\n return !this.computedDisabled && (this.pseudoHovered ?? this.hovered);\n }\n\n /** @deprecated */\n @HostBinding('class._pressed')\n get computedPressed(): boolean {\n return !this.computedDisabled && (this.pseudoPressed ?? this.pressed);\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding('class._focused')\n get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focused);\n }\n\n @HostBinding('class._focus-visible')\n get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focusVisible);\n }\n\n // TODO: Consider removing since native input is exposed\n get id(): string {\n return this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n /** @deprecated */\n protected updateHovered(hovered: boolean): void {\n if (this.hovered === hovered) {\n return;\n }\n\n this.hovered = hovered;\n this.hoveredChange.emit(hovered);\n }\n\n /** @deprecated */\n protected updatePressed(pressed: boolean): void {\n if (this.pressed === pressed) {\n return;\n }\n\n this.pressed = pressed;\n this.pressedChange.emit(pressed);\n }\n\n protected updateFocused(focused: boolean): void {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean): void {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiControlValueTransformer} from '@taiga-ui/cdk/interfaces';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly valueTransformer?: TuiControlValueTransformer<T> | null,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n protected abstract getFallbackValue(): T;\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return (\n this.interactive &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get interactive(): boolean {\n return !this.readOnly && !this.computedDisabled;\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | null {\n return this.controlName?.toString() ?? null;\n }\n\n protected get controlName(): string | null {\n return this.ngControl?.name?.toString() ?? null;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n const controlValue =\n ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n\n return this.fromControlValue(controlValue);\n }\n\n ngOnInit(): void {\n if (!this.ngControl?.valueChanges || !this.ngControl?.statusChanges) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.refreshLocalValue(this.safeCurrentValue));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T | unknown) => void): void {\n this.onChange = (componentValue: T) => {\n onChange(this.toControlValue(componentValue));\n };\n }\n\n registerOnTouched(onTouched: () => void): void {\n this.onTouched = onTouched;\n }\n\n setDisabledState(): void {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null): void {\n const controlValue =\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value;\n\n this.refreshLocalValue(this.fromControlValue(controlValue));\n }\n\n protected updateFocused(focused: boolean): void {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T): void {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched(): void {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T): void {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null): void {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n\n private fromControlValue(controlValue: unknown): T {\n return this.valueTransformer\n ? this.valueTransformer.fromControlValue(controlValue)\n : (controlValue as T);\n }\n\n private toControlValue(componentValue: T): unknown {\n return this.valueTransformer\n ? this.valueTransformer.toControlValue(componentValue)\n : componentValue;\n }\n}\n","import {OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nexport abstract class TuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges(): void {\n this.change$.next();\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusComponent, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T> extends Observable<\n ReadonlyArray<TuiDialog<T, any>>\n> {\n protected abstract readonly component: PolymorpheusComponent<any, TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<ReadonlyArray<TuiDialog<T, any>>>(\n [],\n );\n\n protected constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n ) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G = void>(\n content: PolymorpheusContent<TuiBaseDialogContext<G> & T>,\n options: Partial<T> = {},\n ): Observable<G> {\n return new Observable(observer => {\n const completeWith = (result: G): void => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {ChangeDetectorRef, Directive, Inject, TemplateRef} from '@angular/core';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Subject} from 'rxjs';\nimport {endWith, ignoreElements, switchMap} from 'rxjs/operators';\n\nimport {AbstractTuiDialogService} from './dialog.service';\n\n@Directive()\nexport abstract class AbstractTuiDialogDirective<T> extends PolymorpheusTemplate<\n TuiDialog<T, void>\n> {\n private readonly open$ = new Subject<boolean>();\n\n options: Partial<T> = {};\n\n set open(open: boolean) {\n this.open$.next(open);\n }\n\n openChange = this.open$.pipe(\n switchMap(open =>\n open\n ? this.service\n .open(this, this.options)\n .pipe(ignoreElements(), endWith(false))\n : EMPTY,\n ),\n );\n\n constructor(\n @Inject(TemplateRef)\n templateRef: TemplateRef<TuiDialog<T, void>>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(AbstractTuiDialogService)\n private readonly service: AbstractTuiDialogService<T>,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n readonly T[]\n> {\n clear(): void {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): readonly T[] {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {\n ComponentFactory,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n} from '@angular/core';\nimport {TuiNoHostException} from '@taiga-ui/cdk/exceptions';\n\nimport {AbstractTuiPortalHostComponent} from './portal-host';\n\n/**\n * Abstract service for displaying portals\n */\n@Injectable()\nexport abstract class AbstractTuiPortalService {\n protected host?: AbstractTuiPortalHostComponent;\n\n protected get safeHost(): AbstractTuiPortalHostComponent {\n if (!this.host) {\n throw new TuiNoHostException();\n }\n\n return this.host;\n }\n\n attach(host: AbstractTuiPortalHostComponent): void {\n this.host = host;\n }\n\n add<C>(componentFactory: ComponentFactory<C>, injector: Injector): ComponentRef<C> {\n return this.safeHost.addComponentChild(componentFactory, injector);\n }\n\n remove<C>({hostView}: ComponentRef<C>): void {\n hostView.destroy();\n }\n\n addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.safeHost.addTemplateChild(templateRef, context);\n }\n\n removeTemplate<C>(viewRef: EmbeddedViewRef<C>): void {\n viewRef.destroy();\n }\n}\n","import {\n ComponentFactory,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {AbstractTuiPortalService} from './portal-service';\n\n/**\n * Abstract class for host element for dynamically created portals.\n */\n@Directive()\nexport abstract class AbstractTuiPortalHostComponent {\n @ViewChild('viewContainer', {read: ViewContainerRef})\n viewContainerRef!: ViewContainerRef;\n\n constructor(\n @Inject(ElementRef)\n readonly elementRef: ElementRef<HTMLElement>,\n @Inject(AbstractTuiPortalService) portalService: AbstractTuiPortalService,\n ) {\n portalService.attach(this);\n }\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n addComponentChild<C>(\n componentFactory: ComponentFactory<C>,\n injector: Injector,\n ): ComponentRef<C> {\n return this.viewContainerRef.createComponent<C>(\n componentFactory,\n undefined,\n Injector.create({\n parent: injector,\n providers: [\n {\n provide: AbstractTuiPortalHostComponent,\n useValue: this,\n },\n ],\n }),\n );\n }\n\n addTemplateChild<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.viewContainerRef.createEmbeddedView(templateRef, context);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll('style');\n\n (<typeof AbstractTuiThemeSwitcher>this.constructor).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (<typeof AbstractTuiThemeSwitcher>this.constructor).style;\n }\n\n ngOnDestroy(): void {\n this.removeTheme();\n }\n\n private addTheme(): void {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme(): void {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["ng://@taiga-ui/cdk/abstract/interactive.ts","ng://@taiga-ui/cdk/abstract/control.ts","ng://@taiga-ui/cdk/abstract/controller.ts","ng://@taiga-ui/cdk/abstract/dialog.service.ts","ng://@taiga-ui/cdk/abstract/dialog.directive.ts","ng://@taiga-ui/cdk/abstract/multiple-control.ts","ng://@taiga-ui/cdk/abstract/nullable-control.ts","ng://@taiga-ui/cdk/abstract/portal-service.ts","ng://@taiga-ui/cdk/abstract/portal-host.ts","ng://@taiga-ui/cdk/abstract/theme-switcher.ts","ng://@taiga-ui/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n abstract focused: boolean;\n\n private readonly autoIdString: string;\n\n @Input()\n @tuiDefaultProp()\n pseudoHovered: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoPressed: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocused: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n /** @deprecated use `tuiPressedChange` directive */\n @Output()\n readonly pressedChange = new EventEmitter<boolean>();\n\n /** @deprecated use `tuiHoveredChange` directive */\n @Output()\n readonly hoveredChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n /** @deprecated use `tuiHoveredChange` directive */\n hovered = false;\n\n /** @deprecated use `tuiPressedChange` directive */\n pressed = false;\n\n focusVisible = false;\n\n protected constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding('class._disabled')\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n /** @deprecated */\n @HostBinding('class._hovered')\n get computedHovered(): boolean {\n return !this.computedDisabled && (this.pseudoHovered ?? this.hovered);\n }\n\n /** @deprecated */\n @HostBinding('class._pressed')\n get computedPressed(): boolean {\n return !this.computedDisabled && (this.pseudoPressed ?? this.pressed);\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding('class._focused')\n get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focused);\n }\n\n @HostBinding('class._focus-visible')\n get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focusVisible);\n }\n\n // TODO: 3.0 Consider removing since native input is exposed\n get id(): string {\n return this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n /** @deprecated */\n protected updateHovered(hovered: boolean): void {\n if (this.hovered === hovered) {\n return;\n }\n\n this.hovered = hovered;\n this.hoveredChange.emit(hovered);\n }\n\n /** @deprecated */\n protected updatePressed(pressed: boolean): void {\n if (this.pressed === pressed) {\n return;\n }\n\n this.pressed = pressed;\n this.pressedChange.emit(pressed);\n }\n\n protected updateFocused(focused: boolean): void {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean): void {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiControlValueTransformer} from '@taiga-ui/cdk/interfaces';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly valueTransformer?: TuiControlValueTransformer<T> | null,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n protected abstract getFallbackValue(): T;\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return (\n this.interactive &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get interactive(): boolean {\n return !this.readOnly && !this.computedDisabled;\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | null {\n return this.controlName?.toString() ?? null;\n }\n\n protected get controlName(): string | null {\n return this.ngControl?.name?.toString() ?? null;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n const controlValue =\n ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n\n return this.fromControlValue(controlValue);\n }\n\n ngOnInit(): void {\n if (!this.ngControl?.valueChanges || !this.ngControl?.statusChanges) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.refreshLocalValue(this.safeCurrentValue));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T | unknown) => void): void {\n this.onChange = (componentValue: T) => {\n onChange(this.toControlValue(componentValue));\n };\n }\n\n registerOnTouched(onTouched: () => void): void {\n this.onTouched = onTouched;\n }\n\n setDisabledState(): void {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null): void {\n const controlValue =\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value;\n\n this.refreshLocalValue(this.fromControlValue(controlValue));\n }\n\n protected updateFocused(focused: boolean): void {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T): void {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched(): void {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T): void {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null): void {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n\n private fromControlValue(controlValue: unknown): T {\n return this.valueTransformer\n ? this.valueTransformer.fromControlValue(controlValue)\n : (controlValue as T);\n }\n\n private toControlValue(componentValue: T): unknown {\n return this.valueTransformer\n ? this.valueTransformer.toControlValue(componentValue)\n : componentValue;\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport {OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * @deprecated\n * TODO: 3.0 replace with {@link AbstractTuiController}\n */\nexport abstract class TuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges(): void {\n this.change$.next();\n }\n}\n\nexport abstract class AbstractTuiController extends TuiController {}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusComponent, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T> extends Observable<\n ReadonlyArray<TuiDialog<T, any>>\n> {\n protected abstract readonly component: PolymorpheusComponent<any, TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<ReadonlyArray<TuiDialog<T, any>>>(\n [],\n );\n\n protected constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n ) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G = void>(\n content: PolymorpheusContent<TuiBaseDialogContext<G> & T>,\n options: Partial<T> = {},\n ): Observable<G> {\n return new Observable(observer => {\n const completeWith = (result: G): void => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {ChangeDetectorRef, Directive, Inject, TemplateRef} from '@angular/core';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Subject} from 'rxjs';\nimport {endWith, ignoreElements, switchMap} from 'rxjs/operators';\n\nimport {AbstractTuiDialogService} from './dialog.service';\n\n@Directive()\nexport abstract class AbstractTuiDialogDirective<T> extends PolymorpheusTemplate<\n TuiDialog<T, void>\n> {\n private readonly open$ = new Subject<boolean>();\n\n options: Partial<T> = {};\n\n set open(open: boolean) {\n this.open$.next(open);\n }\n\n openChange = this.open$.pipe(\n switchMap(open =>\n open\n ? this.service\n .open(this, this.options)\n .pipe(ignoreElements(), endWith(false))\n : EMPTY,\n ),\n );\n\n constructor(\n @Inject(TemplateRef)\n templateRef: TemplateRef<TuiDialog<T, void>>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(AbstractTuiDialogService)\n private readonly service: AbstractTuiDialogService<T>,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n readonly T[]\n> {\n clear(): void {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): readonly T[] {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {\n ComponentFactory,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n} from '@angular/core';\nimport {TuiNoHostException} from '@taiga-ui/cdk/exceptions';\n\nimport {AbstractTuiPortalHostComponent} from './portal-host';\n\n/**\n * Abstract service for displaying portals\n */\n@Injectable()\nexport abstract class AbstractTuiPortalService {\n protected host?: AbstractTuiPortalHostComponent;\n\n protected get safeHost(): AbstractTuiPortalHostComponent {\n if (!this.host) {\n throw new TuiNoHostException();\n }\n\n return this.host;\n }\n\n attach(host: AbstractTuiPortalHostComponent): void {\n this.host = host;\n }\n\n add<C>(componentFactory: ComponentFactory<C>, injector: Injector): ComponentRef<C> {\n return this.safeHost.addComponentChild(componentFactory, injector);\n }\n\n remove<C>({hostView}: ComponentRef<C>): void {\n hostView.destroy();\n }\n\n addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.safeHost.addTemplateChild(templateRef, context);\n }\n\n removeTemplate<C>(viewRef: EmbeddedViewRef<C>): void {\n viewRef.destroy();\n }\n}\n","import {\n ComponentFactory,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {AbstractTuiPortalService} from './portal-service';\n\n/**\n * Abstract class for host element for dynamically created portals.\n */\n@Directive()\nexport abstract class AbstractTuiPortalHostComponent {\n @ViewChild('viewContainer', {read: ViewContainerRef})\n viewContainerRef!: ViewContainerRef;\n\n constructor(\n @Inject(ElementRef)\n readonly elementRef: ElementRef<HTMLElement>,\n @Inject(AbstractTuiPortalService) portalService: AbstractTuiPortalService,\n ) {\n portalService.attach(this);\n }\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n addComponentChild<C>(\n componentFactory: ComponentFactory<C>,\n injector: Injector,\n ): ComponentRef<C> {\n return this.viewContainerRef.createComponent<C>(\n componentFactory,\n undefined,\n Injector.create({\n parent: injector,\n providers: [\n {\n provide: AbstractTuiPortalHostComponent,\n useValue: this,\n },\n ],\n }),\n );\n }\n\n addTemplateChild<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.viewContainerRef.createEmbeddedView(templateRef, context);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll('style');\n\n (<typeof AbstractTuiThemeSwitcher>this.constructor).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (<typeof AbstractTuiThemeSwitcher>this.constructor).style;\n }\n\n ngOnDestroy(): void {\n this.removeTheme();\n }\n\n private addTheme(): void {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme(): void {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -15,9 +15,9 @@ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
15
15
  var TUI_DIALOG_CLOSES_ON_BACK = new InjectionToken('Is closing dialog on browser backward navigation enabled', {
16
16
  factory: function () { return of(false); },
17
17
  });
18
- // TODO: remove in ivy compilation
18
+ // TODO: 3.0 remove in ivy compilation
19
19
  var FAKE_HISTORY_STATE = { label: 'ignoreMe' };
20
- // TODO: remove in ivy compilation
20
+ // TODO: 3.0 remove in ivy compilation
21
21
  var isFakeHistoryState = function (historyState) {
22
22
  return (historyState === null || historyState === void 0 ? void 0 : historyState.label) === FAKE_HISTORY_STATE.label;
23
23
  };
@@ -67,10 +67,10 @@ var TuiDialogHostComponent = /** @class */ (function () {
67
67
  TuiDialogHostComponent = __decorate([
68
68
  Component({
69
69
  selector: 'tui-dialog-host',
70
- template: "<ng-container *ngIf=\"dialogs$ | async as dialogs\">\n <section\n *ngFor=\"let item of dialogs\"\n polymorpheus-outlet\n tuiFocusTrap\n tuiScrollRef\n tuiOverscroll=\"all\"\n role=\"dialog\"\n aria-modal=\"true\"\n class=\"dialog\"\n @tuiParentAnimation\n [attr.aria-labelledby]=\"item.id\"\n [content]=\"item.component\"\n [context]=\"item\"\n ></section>\n <div\n *tuiLet=\"isDialogClosesOnBack$ | async as isDialogClosesOnBack\"\n class=\"overlay\"\n [class.overlay_visible]=\"dialogs.length\"\n (window:popstate)=\"closeLast(dialogs, isDialogClosesOnBack)\"\n (transitionend)=\"onDialog($event, !!dialogs.length, isDialogClosesOnBack)\"\n ></div>\n</ng-container>\n",
70
+ template: "<ng-container *ngIf=\"dialogs$ | async as dialogs\">\n <section\n *ngFor=\"let item of dialogs\"\n polymorpheus-outlet\n tuiFocusTrap\n tuiScrollRef\n tuiOverscroll=\"all\"\n role=\"dialog\"\n aria-modal=\"true\"\n class=\"t-dialog\"\n @tuiParentAnimation\n [attr.aria-labelledby]=\"item.id\"\n [content]=\"item.component\"\n [context]=\"item\"\n ></section>\n <div\n *tuiLet=\"isDialogClosesOnBack$ | async as isDialogClosesOnBack\"\n class=\"t-overlay\"\n [class.t-overlay_visible]=\"dialogs.length\"\n (window:popstate)=\"closeLast(dialogs, isDialogClosesOnBack)\"\n (transitionend)=\"onDialog($event, !!dialogs.length, isDialogClosesOnBack)\"\n ></div>\n</ng-container>\n",
71
71
  changeDetection: ChangeDetectionStrategy.OnPush,
72
72
  animations: [TUI_PARENT_ANIMATION],
73
- styles: [":host{position:fixed;left:0;bottom:0;width:100%;height:0}.dialog,.overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:flex-start;outline:0;overflow:auto;overflow:overlay}.dialog{bottom:auto;height:100%}.overlay{height:100vh;pointer-events:none;touch-action:none;opacity:0;letter-spacing:normal;transition:opacity var(--tui-duration),letter-spacing 10ms;background:rgba(0,0,0,.75)}.overlay_visible{opacity:1;letter-spacing:1px}.dialog:last-of-type{z-index:1}"]
73
+ styles: [":host{position:fixed;left:0;bottom:0;width:100%;height:0}.t-dialog,.t-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:flex-start;outline:0;overflow:auto;overflow:overlay}.t-dialog{bottom:auto;height:100%}.t-overlay{height:100vh;pointer-events:none;touch-action:none;opacity:0;letter-spacing:normal;transition:opacity var(--tui-duration),letter-spacing 10ms;background:rgba(0,0,0,.75)}.t-overlay_visible{opacity:1;letter-spacing:1px}.t-dialog:last-of-type{z-index:1}"]
74
74
  }),
75
75
  __param(0, Inject(TUI_DIALOG_CLOSES_ON_BACK)),
76
76
  __param(1, Inject(TUI_DIALOGS)),
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-components-dialog-host.js","sources":["ng://@taiga-ui/cdk/components/dialog-host/dialog-host.component.ts","ng://@taiga-ui/cdk/components/dialog-host/dialog-host.module.ts","ng://@taiga-ui/cdk/components/dialog-host/taiga-ui-cdk-components-dialog-host.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Inject, InjectionToken} from '@angular/core';\nimport {Title} from '@angular/platform-browser';\nimport {HISTORY} from '@ng-web-apis/common';\nimport {TUI_PARENT_ANIMATION} from '@taiga-ui/cdk/constants';\nimport {TUI_DIALOGS} from '@taiga-ui/cdk/tokens';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport const TUI_DIALOG_CLOSES_ON_BACK = new InjectionToken<Observable<boolean>>(\n 'Is closing dialog on browser backward navigation enabled',\n {\n factory: () => of(false),\n },\n);\n\n// TODO: remove in ivy compilation\nexport const FAKE_HISTORY_STATE = {label: 'ignoreMe'} as const;\n// TODO: remove in ivy compilation\nexport const isFakeHistoryState = (\n historyState: Record<string, unknown>,\n): historyState is typeof FAKE_HISTORY_STATE =>\n historyState?.label === FAKE_HISTORY_STATE.label;\n\n// @dynamic\n@Component({\n selector: 'tui-dialog-host',\n templateUrl: './dialog-host.template.html',\n styleUrls: ['./dialog-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [TUI_PARENT_ANIMATION],\n})\nexport class TuiDialogHostComponent<T extends TuiDialog<unknown, unknown>> {\n readonly dialogs$ = combineLatest(this.dialogsByType).pipe(\n map(allTypesDialogs =>\n new Array<T>()\n .concat(...allTypesDialogs)\n .sort((a, b) => a.createdAt - b.createdAt),\n ),\n );\n\n constructor(\n @Inject(TUI_DIALOG_CLOSES_ON_BACK)\n readonly isDialogClosesOnBack$: Observable<boolean>,\n @Inject(TUI_DIALOGS)\n private readonly dialogsByType: Array<Observable<readonly T[]>>,\n @Inject(HISTORY) private readonly historyRef: History,\n @Inject(Title) private readonly titleService: Title,\n ) {}\n\n closeLast(dialogs: readonly T[], isDialogClosesOnBack: boolean): void {\n if (!isDialogClosesOnBack) {\n return;\n }\n\n const [last] = dialogs.slice(-1);\n\n if (!last) {\n return;\n }\n\n if (dialogs.length > 1) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n }\n\n last.$implicit.complete();\n }\n\n onDialog(\n {propertyName}: TransitionEvent,\n popupOpened: boolean,\n isDialogClosesOnBack: boolean,\n ): void {\n if (!isDialogClosesOnBack || propertyName !== 'letter-spacing') {\n return;\n }\n\n if (popupOpened) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n } else if (isFakeHistoryState(this.historyRef.state)) {\n this.historyRef.back();\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk/directives';\nimport {TuiFocusTrapModule} from '@taiga-ui/cdk/directives/focus-trap';\nimport {TuiOverscrollModule} from '@taiga-ui/cdk/directives/overscroll';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogHostComponent} from './dialog-host.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiOverscrollModule,\n TuiFocusTrapModule,\n TuiLetModule,\n ],\n declarations: [TuiDialogHostComponent],\n exports: [TuiDialogHostComponent],\n})\nexport class TuiDialogHostModule {}\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-cdk-components-dialog-host.js","sources":["ng://@taiga-ui/cdk/components/dialog-host/dialog-host.component.ts","ng://@taiga-ui/cdk/components/dialog-host/dialog-host.module.ts","ng://@taiga-ui/cdk/components/dialog-host/taiga-ui-cdk-components-dialog-host.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Inject, InjectionToken} from '@angular/core';\nimport {Title} from '@angular/platform-browser';\nimport {HISTORY} from '@ng-web-apis/common';\nimport {TUI_PARENT_ANIMATION} from '@taiga-ui/cdk/constants';\nimport {TUI_DIALOGS} from '@taiga-ui/cdk/tokens';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport const TUI_DIALOG_CLOSES_ON_BACK = new InjectionToken<Observable<boolean>>(\n 'Is closing dialog on browser backward navigation enabled',\n {\n factory: () => of(false),\n },\n);\n\n// TODO: 3.0 remove in ivy compilation\nexport const FAKE_HISTORY_STATE = {label: 'ignoreMe'} as const;\n// TODO: 3.0 remove in ivy compilation\nexport const isFakeHistoryState = (\n historyState: Record<string, unknown>,\n): historyState is typeof FAKE_HISTORY_STATE =>\n historyState?.label === FAKE_HISTORY_STATE.label;\n\n// @dynamic\n@Component({\n selector: 'tui-dialog-host',\n templateUrl: './dialog-host.template.html',\n styleUrls: ['./dialog-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [TUI_PARENT_ANIMATION],\n})\nexport class TuiDialogHostComponent<T extends TuiDialog<unknown, unknown>> {\n readonly dialogs$ = combineLatest(this.dialogsByType).pipe(\n map(allTypesDialogs =>\n new Array<T>()\n .concat(...allTypesDialogs)\n .sort((a, b) => a.createdAt - b.createdAt),\n ),\n );\n\n constructor(\n @Inject(TUI_DIALOG_CLOSES_ON_BACK)\n readonly isDialogClosesOnBack$: Observable<boolean>,\n @Inject(TUI_DIALOGS)\n private readonly dialogsByType: Array<Observable<readonly T[]>>,\n @Inject(HISTORY) private readonly historyRef: History,\n @Inject(Title) private readonly titleService: Title,\n ) {}\n\n closeLast(dialogs: readonly T[], isDialogClosesOnBack: boolean): void {\n if (!isDialogClosesOnBack) {\n return;\n }\n\n const [last] = dialogs.slice(-1);\n\n if (!last) {\n return;\n }\n\n if (dialogs.length > 1) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n }\n\n last.$implicit.complete();\n }\n\n onDialog(\n {propertyName}: TransitionEvent,\n popupOpened: boolean,\n isDialogClosesOnBack: boolean,\n ): void {\n if (!isDialogClosesOnBack || propertyName !== 'letter-spacing') {\n return;\n }\n\n if (popupOpened) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n } else if (isFakeHistoryState(this.historyRef.state)) {\n this.historyRef.back();\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk/directives';\nimport {TuiFocusTrapModule} from '@taiga-ui/cdk/directives/focus-trap';\nimport {TuiOverscrollModule} from '@taiga-ui/cdk/directives/overscroll';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogHostComponent} from './dialog-host.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiOverscrollModule,\n TuiFocusTrapModule,\n TuiLetModule,\n ],\n declarations: [TuiDialogHostComponent],\n exports: [TuiDialogHostComponent],\n})\nexport class TuiDialogHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { AbstractTuiPortalService } from '@taiga-ui/cdk/abstract';
4
4
 
5
5
  /**
6
6
  * @deprecated create your own portal (see {@link https://taiga-ui.dev/portals Portals})
7
- * TODO: replace with {@link TuiDropdownPortalService} in 3.0
7
+ * TODO: 3.0 replace with {@link TuiDropdownPortalService}
8
8
  */
9
9
  var TuiPortalService = /** @class */ (function (_super) {
10
10
  __extends(TuiPortalService, _super);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-components-portal-host.js","sources":["ng://@taiga-ui/cdk/components/portal-host/portal.service.ts","ng://@taiga-ui/cdk/components/portal-host/taiga-ui-cdk-components-portal-host.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {AbstractTuiPortalService} from '@taiga-ui/cdk/abstract';\n\n/**\n * @deprecated create your own portal (see {@link https://taiga-ui.dev/portals Portals})\n * TODO: replace with {@link TuiDropdownPortalService} in 3.0\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPortalService extends AbstractTuiPortalService {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;;IAOsC,oCAAwB;IAA9D;;KAAiE;;IAApD,gBAAgB;QAH5B,UAAU,CAAC;YACR,UAAU,EAAE,MAAM;SACrB,CAAC;OACW,gBAAgB,CAAoC;2BAVjE;CAUiE,CAA3B,wBAAwB;;ACV9D;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-components-portal-host.js","sources":["ng://@taiga-ui/cdk/components/portal-host/portal.service.ts","ng://@taiga-ui/cdk/components/portal-host/taiga-ui-cdk-components-portal-host.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {AbstractTuiPortalService} from '@taiga-ui/cdk/abstract';\n\n/**\n * @deprecated create your own portal (see {@link https://taiga-ui.dev/portals Portals})\n * TODO: 3.0 replace with {@link TuiDropdownPortalService}\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPortalService extends AbstractTuiPortalService {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;;IAOsC,oCAAwB;IAA9D;;KAAiE;;IAApD,gBAAgB;QAH5B,UAAU,CAAC;YACR,UAAU,EAAE,MAAM;SACrB,CAAC;OACW,gBAAgB,CAAoC;2BAVjE;CAUiE,CAA3B,wBAAwB;;ACV9D;;;;;;"}
@@ -26,14 +26,12 @@ var MILLISECONDS_IN_DAY = MILLISECONDS_IN_HOUR * HOURS_IN_DAY;
26
26
 
27
27
  /**
28
28
  * @deprecated dont use it. See {@link TUI_DATE_FORMAT}
29
- * TODO: get rid of this in v3.0
30
29
  */
31
30
  var TUI_DATE_FILLER = new InjectionToken('date filler for Taiga UI', {
32
31
  factory: function () { return "dd.mm.yyyy"; },
33
32
  });
34
33
  /**
35
34
  * @deprecated dont use it
36
- * TODO: get rid of this in v3.0
37
35
  */
38
36
  var TUI_DATE_RANGE_FILLER = new InjectionToken('date range filler for Taiga UI', {
39
37
  factory: function () {
@@ -192,7 +190,7 @@ var TuiYear = /** @class */ (function () {
192
190
  var year = _a.year;
193
191
  return this.year > year;
194
192
  };
195
- // TODO: Consider removing `backwards` option
193
+ // TODO: 3.0 Consider removing `backwards` option
196
194
  /**
197
195
  * Immutably offsets year
198
196
  */
@@ -307,7 +305,6 @@ var TuiMonth = /** @class */ (function (_super) {
307
305
  Object.defineProperty(TuiMonth.prototype, "formattedMonth", {
308
306
  /**
309
307
  * @deprecated
310
- * TODO remove in 3.0
311
308
  * Formatter month and year
312
309
  */
313
310
  get: function () {
@@ -388,7 +385,7 @@ var TuiMonth = /** @class */ (function (_super) {
388
385
  return (this.yearAfter(another) ||
389
386
  (this.yearSame(another) && this.month > another.month));
390
387
  };
391
- // TODO: Consider removing `backwards` option
388
+ // TODO: 3.0 Consider removing `backwards` option
392
389
  /**
393
390
  * Immutably alters current month and year by passed offset
394
391
  *
@@ -604,7 +601,6 @@ var TuiDay = /** @class */ (function (_super) {
604
601
  Object.defineProperty(TuiDay.prototype, "formattedDay", {
605
602
  /**
606
603
  * @deprecated use {@link getFormattedDay} instead
607
- * TODO remove in 3.0
608
604
  * Formatted whole date
609
605
  */
610
606
  get: function () {
@@ -684,7 +680,7 @@ var TuiDay = /** @class */ (function (_super) {
684
680
  }
685
681
  return this;
686
682
  };
687
- // TODO: Consider removing `backwards` option
683
+ // TODO: 3.0 Consider removing `backwards` option
688
684
  /**
689
685
  * Immutably alters current day by passed offset
690
686
  *
@@ -795,7 +791,6 @@ var TuiMonthRange = /** @class */ (function () {
795
791
  Object.defineProperty(TuiMonthRange.prototype, "formattedMonthRange", {
796
792
  /**
797
793
  * @deprecated
798
- * TODO remove in 3.0
799
794
  */
800
795
  get: function () {
801
796
  return "" + this.from.formattedMonth + RANGE_SEPARATOR_CHAR + this.to.formattedMonth;
@@ -814,7 +809,7 @@ var TuiMonthRange = /** @class */ (function () {
814
809
 
815
810
  /**
816
811
  * Temporary type guard to satisfy ts-overloading of normalizeParse method
817
- * @deprecated TODO rm in v3.0
812
+ * @deprecated
818
813
  */
819
814
  var isDateMode = function (dateMode) {
820
815
  return ['DMY', 'YMD', 'MDY'].includes(dateMode);