@taiga-ui/cdk 2.43.0 → 2.46.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 (445) hide show
  1. package/abstract/dialog.service.d.ts +2 -2
  2. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-cdk-abstract.umd.js +1 -1
  4. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  6. package/bundles/taiga-ui-cdk-classes.umd.js +4 -2
  7. package/bundles/taiga-ui-cdk-classes.umd.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-classes.umd.min.js +1 -1
  9. package/bundles/taiga-ui-cdk-classes.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-cdk-coercion.umd.js +3 -1
  11. package/bundles/taiga-ui-cdk-coercion.umd.js.map +1 -1
  12. package/bundles/taiga-ui-cdk-coercion.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
  14. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +4 -4
  16. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +2 -2
  18. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +1 -1
  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.map +1 -1
  22. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-constants.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-cdk-date-time.umd.js +40 -12
  25. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  26. package/bundles/taiga-ui-cdk-date-time.umd.min.js +1 -1
  27. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-cdk-decorators.umd.js +0 -2
  29. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  30. package/bundles/taiga-ui-cdk-decorators.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
  32. package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +132 -50
  34. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +2 -2
  36. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +41 -22
  38. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js +2 -2
  40. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
  42. package/bundles/taiga-ui-cdk-directives-checked.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
  44. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +3 -1
  46. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  50. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-cdk-directives-item.umd.js +1 -1
  53. package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -1
  54. package/bundles/taiga-ui-cdk-directives-item.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-directives-media.umd.js +1 -0
  56. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  58. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
  59. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-cdk-directives-portal.umd.js +281 -0
  61. package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -0
  62. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js +16 -0
  63. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js.map +1 -0
  64. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
  65. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
  66. package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
  67. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-cdk-directives.umd.js +12 -4
  69. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  70. package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
  71. package/bundles/taiga-ui-cdk-observables.umd.js +1 -1
  72. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  73. package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
  74. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  75. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  76. package/bundles/taiga-ui-cdk-tokens.umd.js +5 -7
  77. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  78. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  79. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  80. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  81. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-cdk-utils-focus.umd.js +2 -0
  83. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  84. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  85. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  86. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-cdk-utils-os.umd.js +25 -0
  88. package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -0
  89. package/bundles/taiga-ui-cdk-utils-os.umd.min.js +2 -0
  90. package/bundles/taiga-ui-cdk-utils-os.umd.min.js.map +1 -0
  91. package/bundles/taiga-ui-cdk-utils-svg.umd.js +259 -0
  92. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -0
  93. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js +16 -0
  94. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js.map +1 -0
  95. package/bundles/taiga-ui-cdk-utils.umd.js +20 -4
  96. package/bundles/taiga-ui-cdk-utils.umd.js.map +1 -1
  97. package/bundles/taiga-ui-cdk-utils.umd.min.js +1 -1
  98. package/classes/assert.d.ts +1 -1
  99. package/classes/validation-error.d.ts +1 -1
  100. package/coercion/taiga-ui-cdk-coercion.metadata.json +1 -1
  101. package/components/alert-host/alert-host.component.d.ts +2 -2
  102. package/components/alert-host/taiga-ui-cdk-components-alert-host.metadata.json +1 -1
  103. package/components/dialog-host/dialog-host.component.d.ts +1 -1
  104. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
  105. package/components/portal-host/portal.service.d.ts +1 -1
  106. package/constants/always-false-handler.d.ts +1 -1
  107. package/constants/always-true-handler.d.ts +1 -1
  108. package/constants/empty.d.ts +1 -1
  109. package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
  110. package/date-time/date-fillers.d.ts +0 -2
  111. package/date-time/day-range.d.ts +1 -2
  112. package/date-time/day.d.ts +4 -1
  113. package/date-time/month-range.d.ts +0 -1
  114. package/date-time/month.d.ts +1 -1
  115. package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
  116. package/date-time/time.d.ts +7 -0
  117. package/date-time/year.d.ts +7 -0
  118. package/decorators/default-prop.d.ts +1 -3
  119. package/decorators/pure.d.ts +1 -1
  120. package/decorators/taiga-ui-cdk-decorators.metadata.json +1 -1
  121. package/directives/auto-focus/autofocus.directive.d.ts +4 -13
  122. package/directives/auto-focus/autofocus.options.d.ts +13 -0
  123. package/directives/auto-focus/handlers/abstract.handler.d.ts +11 -0
  124. package/directives/auto-focus/handlers/default.handler.d.ts +9 -0
  125. package/directives/auto-focus/handlers/ios.handler.d.ts +10 -0
  126. package/directives/auto-focus/index.d.ts +4 -0
  127. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  128. package/directives/autofilled/autofilled-style.component.d.ts +2 -0
  129. package/directives/autofilled/autofilled.directive.d.ts +5 -4
  130. package/directives/autofilled/index.d.ts +1 -0
  131. package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
  132. package/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.metadata.json +1 -1
  133. package/directives/for/for.directive.d.ts +1 -1
  134. package/directives/high-dpi/high-dpi.directive.d.ts +1 -1
  135. package/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.metadata.json +1 -1
  136. package/directives/index.d.ts +1 -0
  137. package/directives/item/item.directive.d.ts +1 -1
  138. package/directives/media/taiga-ui-cdk-directives-media.metadata.json +1 -1
  139. package/directives/portal/index.d.ts +2 -0
  140. package/directives/portal/package.json +13 -0
  141. package/directives/portal/portal.directive.d.ts +10 -0
  142. package/directives/portal/portal.module.d.ts +2 -0
  143. package/directives/portal/taiga-ui-cdk-directives-portal.d.ts +4 -0
  144. package/directives/portal/taiga-ui-cdk-directives-portal.metadata.json +1 -0
  145. package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
  146. package/directives/validator/validator.directive.d.ts +1 -1
  147. package/esm2015/abstract/control.js +1 -1
  148. package/esm2015/abstract/controller.js +1 -1
  149. package/esm2015/abstract/dialog.service.js +1 -1
  150. package/esm2015/abstract/interactive.js +2 -2
  151. package/esm2015/abstract/multiple-control.js +1 -1
  152. package/esm2015/abstract/portal-service.js +1 -1
  153. package/esm2015/abstract/theme-switcher.js +1 -1
  154. package/esm2015/classes/assert.js +5 -3
  155. package/esm2015/classes/validation-error.js +1 -1
  156. package/esm2015/coercion/coerce-boolean-property.js +4 -2
  157. package/esm2015/components/alert-host/alert-host.component.js +1 -1
  158. package/esm2015/components/dialog-host/dialog-host.component.js +5 -5
  159. package/esm2015/components/portal-host/portal.service.js +2 -2
  160. package/esm2015/constants/always-false-handler.js +1 -1
  161. package/esm2015/constants/always-true-handler.js +1 -1
  162. package/esm2015/constants/empty.js +1 -1
  163. package/esm2015/constants/matcher.js +1 -1
  164. package/esm2015/date-time/date-fillers.js +1 -3
  165. package/esm2015/date-time/date-separator.js +1 -1
  166. package/esm2015/date-time/day-range.js +2 -2
  167. package/esm2015/date-time/day.js +12 -3
  168. package/esm2015/date-time/month-range.js +1 -2
  169. package/esm2015/date-time/month.js +5 -3
  170. package/esm2015/date-time/time.js +12 -1
  171. package/esm2015/date-time/year.js +13 -2
  172. package/esm2015/decorators/default-prop.js +1 -3
  173. package/esm2015/decorators/pure.js +1 -1
  174. package/esm2015/decorators/required-setter.js +1 -1
  175. package/esm2015/directives/active-zone/active-zone.directive.js +1 -1
  176. package/esm2015/directives/auto-focus/autofocus.directive.js +11 -87
  177. package/esm2015/directives/auto-focus/autofocus.options.js +27 -0
  178. package/esm2015/directives/auto-focus/handlers/abstract.handler.js +25 -0
  179. package/esm2015/directives/auto-focus/handlers/default.handler.js +39 -0
  180. package/esm2015/directives/auto-focus/handlers/ios.handler.js +70 -0
  181. package/esm2015/directives/auto-focus/index.js +5 -1
  182. package/esm2015/directives/autofilled/autofilled-style.component.js +13 -0
  183. package/esm2015/directives/autofilled/autofilled.directive.js +23 -37
  184. package/esm2015/directives/autofilled/autofilled.module.js +4 -2
  185. package/esm2015/directives/autofilled/index.js +2 -1
  186. package/esm2015/directives/checked/checked.directive.js +1 -1
  187. package/esm2015/directives/copy-processor/copy-processor.directive.js +1 -1
  188. package/esm2015/directives/focus-trap/focus-trap.directive.js +4 -2
  189. package/esm2015/directives/for/for.directive.js +1 -1
  190. package/esm2015/directives/high-dpi/high-dpi.directive.js +1 -1
  191. package/esm2015/directives/index.js +2 -1
  192. package/esm2015/directives/item/item.directive.js +2 -2
  193. package/esm2015/directives/media/media.directive.js +2 -1
  194. package/esm2015/directives/overscroll/overscroll.directive.js +1 -1
  195. package/esm2015/directives/portal/index.js +3 -0
  196. package/esm2015/directives/portal/portal.directive.js +36 -0
  197. package/esm2015/directives/portal/portal.module.js +13 -0
  198. package/esm2015/directives/portal/taiga-ui-cdk-directives-portal.js +5 -0
  199. package/esm2015/directives/repeat-times/repeat-times.directive.js +1 -1
  200. package/esm2015/directives/validator/validator.directive.js +1 -1
  201. package/esm2015/interfaces/alert-context.js +1 -0
  202. package/esm2015/interfaces/index.js +1 -1
  203. package/esm2015/observables/replay-control-value-changes.js +2 -2
  204. package/esm2015/services/destroy.service.js +1 -1
  205. package/esm2015/services/directive-styles.service.js +1 -1
  206. package/esm2015/services/parents-scroll.service.js +1 -1
  207. package/esm2015/tokens/index.js +2 -1
  208. package/esm2015/tokens/is-apple.js +5 -0
  209. package/esm2015/tokens/is-ios.js +4 -6
  210. package/esm2015/tokens/is-mobile.js +2 -2
  211. package/esm2015/utils/browser/index.js +2 -2
  212. package/esm2015/utils/browser/{is-IE.js → is-ie.js} +1 -1
  213. package/esm2015/utils/focus/blur-native-focused.js +1 -1
  214. package/esm2015/utils/focus/move-focus.js +1 -1
  215. package/esm2015/utils/focus/set-native-focused.js +3 -1
  216. package/esm2015/utils/focus/set-native-mouse-focused.js +1 -1
  217. package/esm2015/utils/index.js +3 -1
  218. package/esm2015/utils/miscellaneous/mark-control-as-touched-and-validate.js +1 -1
  219. package/esm2015/utils/os/index.js +3 -0
  220. package/esm2015/utils/os/is-apple.js +6 -0
  221. package/esm2015/utils/os/is-ios.js +7 -0
  222. package/esm2015/utils/os/taiga-ui-cdk-utils-os.js +5 -0
  223. package/esm2015/utils/svg/index.js +2 -0
  224. package/esm2015/utils/svg/svg-linear-gradient-processor.js +26 -0
  225. package/esm2015/utils/svg/taiga-ui-cdk-utils-svg.js +5 -0
  226. package/esm5/abstract/control.js +1 -1
  227. package/esm5/abstract/controller.js +1 -1
  228. package/esm5/abstract/dialog.service.js +1 -1
  229. package/esm5/abstract/interactive.js +2 -2
  230. package/esm5/abstract/multiple-control.js +1 -1
  231. package/esm5/abstract/portal-service.js +1 -1
  232. package/esm5/abstract/theme-switcher.js +1 -1
  233. package/esm5/classes/assert.js +5 -3
  234. package/esm5/classes/validation-error.js +1 -1
  235. package/esm5/coercion/coerce-boolean-property.js +4 -2
  236. package/esm5/components/alert-host/alert-host.component.js +1 -1
  237. package/esm5/components/dialog-host/dialog-host.component.js +5 -5
  238. package/esm5/components/portal-host/portal.service.js +2 -2
  239. package/esm5/constants/always-false-handler.js +1 -1
  240. package/esm5/constants/always-true-handler.js +1 -1
  241. package/esm5/constants/empty.js +1 -1
  242. package/esm5/constants/matcher.js +1 -1
  243. package/esm5/date-time/date-fillers.js +1 -3
  244. package/esm5/date-time/date-separator.js +2 -4
  245. package/esm5/date-time/day-range.js +2 -2
  246. package/esm5/date-time/day.js +12 -3
  247. package/esm5/date-time/month-range.js +1 -2
  248. package/esm5/date-time/month.js +5 -3
  249. package/esm5/date-time/time.js +12 -1
  250. package/esm5/date-time/year.js +13 -2
  251. package/esm5/decorators/default-prop.js +1 -3
  252. package/esm5/decorators/pure.js +1 -1
  253. package/esm5/decorators/required-setter.js +1 -1
  254. package/esm5/directives/active-zone/active-zone.directive.js +1 -1
  255. package/esm5/directives/auto-focus/autofocus.directive.js +11 -97
  256. package/esm5/directives/auto-focus/autofocus.options.js +27 -0
  257. package/esm5/directives/auto-focus/handlers/abstract.handler.js +34 -0
  258. package/esm5/directives/auto-focus/handlers/default.handler.js +43 -0
  259. package/esm5/directives/auto-focus/handlers/ios.handler.js +75 -0
  260. package/esm5/directives/auto-focus/index.js +5 -1
  261. package/esm5/directives/autofilled/autofilled-style.component.js +16 -0
  262. package/esm5/directives/autofilled/autofilled.directive.js +24 -21
  263. package/esm5/directives/autofilled/autofilled.module.js +4 -2
  264. package/esm5/directives/autofilled/index.js +2 -1
  265. package/esm5/directives/checked/checked.directive.js +1 -1
  266. package/esm5/directives/copy-processor/copy-processor.directive.js +1 -1
  267. package/esm5/directives/focus-trap/focus-trap.directive.js +4 -2
  268. package/esm5/directives/for/for.directive.js +1 -1
  269. package/esm5/directives/high-dpi/high-dpi.directive.js +1 -1
  270. package/esm5/directives/index.js +2 -1
  271. package/esm5/directives/item/item.directive.js +2 -2
  272. package/esm5/directives/media/media.directive.js +2 -1
  273. package/esm5/directives/overscroll/overscroll.directive.js +1 -1
  274. package/esm5/directives/portal/index.js +3 -0
  275. package/esm5/directives/portal/portal.directive.js +41 -0
  276. package/esm5/directives/portal/portal.module.js +16 -0
  277. package/esm5/directives/portal/taiga-ui-cdk-directives-portal.js +5 -0
  278. package/esm5/directives/repeat-times/repeat-times.directive.js +1 -1
  279. package/esm5/directives/validator/validator.directive.js +1 -1
  280. package/esm5/interfaces/alert-context.js +1 -0
  281. package/esm5/interfaces/index.js +1 -1
  282. package/esm5/observables/replay-control-value-changes.js +2 -2
  283. package/esm5/services/destroy.service.js +1 -1
  284. package/esm5/services/directive-styles.service.js +1 -1
  285. package/esm5/services/parents-scroll.service.js +1 -1
  286. package/esm5/tokens/index.js +2 -1
  287. package/esm5/tokens/is-apple.js +5 -0
  288. package/esm5/tokens/is-ios.js +4 -8
  289. package/esm5/tokens/is-mobile.js +2 -2
  290. package/esm5/utils/browser/index.js +2 -2
  291. package/esm5/utils/browser/{is-IE.js → is-ie.js} +1 -1
  292. package/esm5/utils/focus/blur-native-focused.js +1 -1
  293. package/esm5/utils/focus/move-focus.js +1 -1
  294. package/esm5/utils/focus/set-native-focused.js +3 -1
  295. package/esm5/utils/focus/set-native-mouse-focused.js +1 -1
  296. package/esm5/utils/index.js +3 -1
  297. package/esm5/utils/miscellaneous/mark-control-as-touched-and-validate.js +1 -1
  298. package/esm5/utils/os/index.js +3 -0
  299. package/esm5/utils/os/is-apple.js +6 -0
  300. package/esm5/utils/os/is-ios.js +7 -0
  301. package/esm5/utils/os/taiga-ui-cdk-utils-os.js +5 -0
  302. package/esm5/utils/svg/index.js +2 -0
  303. package/esm5/utils/svg/svg-linear-gradient-processor.js +29 -0
  304. package/esm5/utils/svg/taiga-ui-cdk-utils-svg.js +5 -0
  305. package/fesm2015/taiga-ui-cdk-abstract.js +1 -1
  306. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  307. package/fesm2015/taiga-ui-cdk-classes.js +4 -2
  308. package/fesm2015/taiga-ui-cdk-classes.js.map +1 -1
  309. package/fesm2015/taiga-ui-cdk-coercion.js +3 -1
  310. package/fesm2015/taiga-ui-cdk-coercion.js.map +1 -1
  311. package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -1
  312. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +4 -4
  313. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  314. package/fesm2015/taiga-ui-cdk-components-portal-host.js +1 -1
  315. package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
  316. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  317. package/fesm2015/taiga-ui-cdk-date-time.js +39 -9
  318. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  319. package/fesm2015/taiga-ui-cdk-decorators.js +0 -2
  320. package/fesm2015/taiga-ui-cdk-decorators.js.map +1 -1
  321. package/fesm2015/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  322. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +113 -46
  323. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  324. package/fesm2015/taiga-ui-cdk-directives-autofilled.js +33 -37
  325. package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  326. package/fesm2015/taiga-ui-cdk-directives-checked.js.map +1 -1
  327. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
  328. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js +3 -1
  329. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  330. package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
  331. package/fesm2015/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
  332. package/fesm2015/taiga-ui-cdk-directives-item.js +1 -1
  333. package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -1
  334. package/fesm2015/taiga-ui-cdk-directives-media.js +1 -0
  335. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  336. package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  337. package/fesm2015/taiga-ui-cdk-directives-portal.js +51 -0
  338. package/fesm2015/taiga-ui-cdk-directives-portal.js.map +1 -0
  339. package/fesm2015/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
  340. package/fesm2015/taiga-ui-cdk-directives-validator.js.map +1 -1
  341. package/fesm2015/taiga-ui-cdk-directives.js +1 -0
  342. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  343. package/fesm2015/taiga-ui-cdk-observables.js +1 -1
  344. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  345. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  346. package/fesm2015/taiga-ui-cdk-tokens.js +7 -8
  347. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  348. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  349. package/fesm2015/taiga-ui-cdk-utils-focus.js +2 -0
  350. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  351. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  352. package/fesm2015/taiga-ui-cdk-utils-os.js +18 -0
  353. package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -0
  354. package/fesm2015/taiga-ui-cdk-utils-svg.js +32 -0
  355. package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -0
  356. package/fesm2015/taiga-ui-cdk-utils.js +2 -0
  357. package/fesm2015/taiga-ui-cdk-utils.js.map +1 -1
  358. package/fesm5/taiga-ui-cdk-abstract.js +1 -1
  359. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  360. package/fesm5/taiga-ui-cdk-classes.js +4 -2
  361. package/fesm5/taiga-ui-cdk-classes.js.map +1 -1
  362. package/fesm5/taiga-ui-cdk-coercion.js +3 -1
  363. package/fesm5/taiga-ui-cdk-coercion.js.map +1 -1
  364. package/fesm5/taiga-ui-cdk-components-alert-host.js.map +1 -1
  365. package/fesm5/taiga-ui-cdk-components-dialog-host.js +4 -4
  366. package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  367. package/fesm5/taiga-ui-cdk-components-portal-host.js +1 -1
  368. package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
  369. package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
  370. package/fesm5/taiga-ui-cdk-date-time.js +40 -12
  371. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  372. package/fesm5/taiga-ui-cdk-decorators.js +0 -2
  373. package/fesm5/taiga-ui-cdk-decorators.js.map +1 -1
  374. package/fesm5/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  375. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +126 -51
  376. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  377. package/fesm5/taiga-ui-cdk-directives-autofilled.js +38 -22
  378. package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  379. package/fesm5/taiga-ui-cdk-directives-checked.js.map +1 -1
  380. package/fesm5/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
  381. package/fesm5/taiga-ui-cdk-directives-focus-trap.js +3 -1
  382. package/fesm5/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  383. package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
  384. package/fesm5/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
  385. package/fesm5/taiga-ui-cdk-directives-item.js +1 -1
  386. package/fesm5/taiga-ui-cdk-directives-item.js.map +1 -1
  387. package/fesm5/taiga-ui-cdk-directives-media.js +1 -0
  388. package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
  389. package/fesm5/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  390. package/fesm5/taiga-ui-cdk-directives-portal.js +59 -0
  391. package/fesm5/taiga-ui-cdk-directives-portal.js.map +1 -0
  392. package/fesm5/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
  393. package/fesm5/taiga-ui-cdk-directives-validator.js.map +1 -1
  394. package/fesm5/taiga-ui-cdk-directives.js +1 -0
  395. package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
  396. package/fesm5/taiga-ui-cdk-observables.js +1 -1
  397. package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
  398. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  399. package/fesm5/taiga-ui-cdk-tokens.js +7 -10
  400. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  401. package/fesm5/taiga-ui-cdk-utils-browser.js.map +1 -1
  402. package/fesm5/taiga-ui-cdk-utils-focus.js +2 -0
  403. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  404. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  405. package/fesm5/taiga-ui-cdk-utils-os.js +18 -0
  406. package/fesm5/taiga-ui-cdk-utils-os.js.map +1 -0
  407. package/fesm5/taiga-ui-cdk-utils-svg.js +36 -0
  408. package/fesm5/taiga-ui-cdk-utils-svg.js.map +1 -0
  409. package/fesm5/taiga-ui-cdk-utils.js +2 -0
  410. package/fesm5/taiga-ui-cdk-utils.js.map +1 -1
  411. package/interfaces/alert-context.d.ts +2 -0
  412. package/interfaces/index.d.ts +1 -0
  413. package/interfaces/taiga-ui-cdk-interfaces.metadata.json +1 -1
  414. package/observables/replay-control-value-changes.d.ts +1 -1
  415. package/package.json +1 -1
  416. package/schematics/ng-add/constants/modules.d.ts +1 -1
  417. package/schematics/ng-add/constants/modules.js +2 -2
  418. package/schematics/ng-add/index.js +2 -10
  419. package/schematics/ng-add/schema.d.ts +1 -1
  420. package/schematics/ng-add/schema.json +3 -3
  421. package/schematics/ng-add/steps/add-taiga-icons.js +2 -10
  422. package/schematics/ng-add/steps/add-taiga-modules.js +3 -11
  423. package/schematics/ng-add/steps/add-taiga-styles.js +2 -10
  424. package/schematics/ng-add/steps/wrap-with-tui-root.js +2 -10
  425. package/schematics/ng-update/index.js +2 -10
  426. package/tokens/index.d.ts +1 -0
  427. package/tokens/is-apple.d.ts +2 -0
  428. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  429. package/utils/browser/index.d.ts +1 -1
  430. package/utils/browser/{is-IE.d.ts → is-ie.d.ts} +0 -0
  431. package/utils/browser/taiga-ui-cdk-utils-browser.metadata.json +1 -1
  432. package/utils/focus/set-native-focused.d.ts +2 -0
  433. package/utils/index.d.ts +2 -0
  434. package/utils/os/index.d.ts +2 -0
  435. package/utils/os/is-apple.d.ts +1 -0
  436. package/utils/os/is-ios.d.ts +1 -0
  437. package/utils/os/package.json +13 -0
  438. package/utils/os/taiga-ui-cdk-utils-os.d.ts +4 -0
  439. package/utils/os/taiga-ui-cdk-utils-os.metadata.json +1 -0
  440. package/utils/svg/index.d.ts +1 -0
  441. package/utils/svg/package.json +13 -0
  442. package/utils/svg/svg-linear-gradient-processor.d.ts +15 -0
  443. package/utils/svg/taiga-ui-cdk-utils-svg.d.ts +4 -0
  444. package/utils/svg/taiga-ui-cdk-utils-svg.metadata.json +1 -0
  445. package/utils/taiga-ui-cdk-utils.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-auto-focus.js","sources":["ng://@taiga-ui/cdk/directives/auto-focus/autofocus.directive.ts","ng://@taiga-ui/cdk/directives/auto-focus/autofocus.module.ts","ng://@taiga-ui/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {setNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {Observable, race, timer} from 'rxjs';\nimport {map, skipWhile, take, throttleTime} from 'rxjs/operators';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = '.ng-animating';\n\n// TODO: in 3.0 change input name to tuiAutoFocus and handle empty string\n// TODO: refactor on this whole thing in 3.0\n@Directive({\n selector: '[tuiAutoFocus]',\n})\nexport class TuiAutoFocusDirective implements AfterViewInit {\n @Input()\n autoFocus = true;\n\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n private readonly tuiFocusableComponent: TuiFocusableElementAccessor | null,\n @Inject(TUI_IS_IOS) private readonly isIos: boolean,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(NgZone)\n private readonly ngZone: NgZone,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(Renderer2)\n private readonly renderer: Renderer2,\n ) {}\n\n ngAfterViewInit() {\n if (!this.autoFocus) {\n return;\n }\n\n if (this.isTextFieldElement) {\n if (this.isIos) {\n this.ngZone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n race(\n timer(TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() => setNativeFocused(this.element));\n }\n\n return;\n }\n\n setNativeFocused(this.element);\n }\n\n private get element(): TuiNativeFocusableElement {\n return (\n this.tuiFocusableComponent?.nativeFocusableElement ||\n this.elementRef.nativeElement\n );\n }\n\n private get isTextFieldElement(): boolean {\n return this.element.matches('input, textarea');\n }\n\n private iosWebkitAutofocus() {\n const fakeInput: HTMLElement = this.renderer.createElement('input');\n\n fakeInput.style.position = 'absolute';\n fakeInput.style.opacity = '0';\n fakeInput.style.height = '0';\n\n const blurHandler = () => setNativeFocused(fakeInput);\n const focusHandler = () => {\n setTimeout(() => {\n setNativeFocused(this.element);\n\n /**\n * @note:\n * We can't remove the element immediately, because it breaks flow\n */\n setTimeout(() => {\n fakeInput.removeEventListener('blur', blurHandler);\n fakeInput.removeEventListener('focus', focusHandler);\n fakeInput.remove();\n });\n });\n };\n\n /**\n * @note: ping-pong eager strategy hack\n * After creating an element and bringing it into DOM,\n * the browser automatically focuses on the invisible element.\n * And then, after focus is triggered, we try to focus on target element, and if we managed to refocus,\n * then we try to focus again on an invisible element, so that the keyboard slowly appears.\n * This ping pong allows the keyboard to not overlap the modal window.\n */\n fakeInput.addEventListener('blur', blurHandler, {once: true});\n fakeInput.addEventListener('focus', focusHandler);\n\n this.element.parentElement?.appendChild(fakeInput);\n\n setNativeFocused(fakeInput);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutoFocusDirective} from './autofocus.directive';\n\n@NgModule({\n declarations: [TuiAutoFocusDirective],\n exports: [TuiAutoFocusDirective],\n})\nexport class TuiAutoFocusModule {}\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-directives-auto-focus.js","sources":["ng://@taiga-ui/cdk/directives/auto-focus/handlers/abstract.handler.ts","ng://@taiga-ui/cdk/directives/auto-focus/handlers/default.handler.ts","ng://@taiga-ui/cdk/directives/auto-focus/handlers/ios.handler.ts","ng://@taiga-ui/cdk/directives/auto-focus/autofocus.options.ts","ng://@taiga-ui/cdk/directives/auto-focus/autofocus.directive.ts","ng://@taiga-ui/cdk/directives/auto-focus/autofocus.module.ts","ng://@taiga-ui/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk/interfaces';\n\nimport {TuiAutofocusHandler} from '../autofocus.options';\n\n@Directive()\nexport abstract class AbstractTuiAutofocusHandler implements TuiAutofocusHandler {\n protected constructor(\n protected readonly tuiFocusableComponent: TuiFocusableElementAccessor | null,\n protected readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n\n protected get element(): TuiNativeFocusableElement {\n return (\n this.tuiFocusableComponent?.nativeFocusableElement ||\n this.elementRef.nativeElement\n );\n }\n\n protected get isTextFieldElement(): boolean {\n return this.element.matches('input, textarea');\n }\n\n abstract setFocus(): void;\n}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {Observable, race, timer} from 'rxjs';\nimport {map, skipWhile, take, throttleTime} from 'rxjs/operators';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = '.ng-animating';\n\n@Directive()\nexport class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n tuiFocusableComponent: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {\n super(tuiFocusableComponent, elementRef);\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n race(\n timer(TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() => this.element.focus());\n } else {\n this.element.focus();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\n@Directive()\nexport class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n tuiFocusableComponent: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(Renderer2)\n private readonly renderer: Renderer2,\n @Inject(NgZone)\n private readonly ngZone: NgZone,\n ) {\n super(tuiFocusableComponent, elementRef);\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n this.ngZone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n this.element.focus();\n }\n }\n\n private iosWebkitAutofocus(): void {\n const fakeInput: HTMLElement = this.renderer.createElement('input');\n\n fakeInput.style.position = 'absolute';\n fakeInput.style.opacity = '0';\n fakeInput.style.height = '0';\n\n const blurHandler = (): void => fakeInput.focus();\n const focusHandler = (): void => {\n setTimeout(() => {\n this.element.focus();\n\n /**\n * @note:\n * We can't remove the element immediately, because it breaks flow\n */\n setTimeout(() => {\n fakeInput.removeEventListener('blur', blurHandler);\n fakeInput.removeEventListener('focus', focusHandler);\n fakeInput.remove();\n });\n });\n };\n\n /**\n * @note: ping-pong eager strategy hack\n * After creating an element and bringing it into DOM,\n * the browser automatically focuses on the invisible element.\n * And then, after focus is triggered, we try to focus on target element, and if we managed to refocus,\n * then we try to focus again on an invisible element, so that the keyboard slowly appears.\n * This ping pong allows the keyboard to not overlap the modal window.\n */\n fakeInput.addEventListener('blur', blurHandler, {once: true});\n fakeInput.addEventListener('focus', focusHandler);\n\n this.element.parentElement?.appendChild(fakeInput);\n\n fakeInput.focus();\n }\n}\n","import {\n ElementRef,\n inject,\n InjectionToken,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_APPLE} from '@taiga-ui/cdk/tokens';\nimport {Observable} from 'rxjs';\n\nimport {TuiDefaultAutofocusHandler} from './handlers/default.handler';\nimport {TuiIosAutofocusHandler} from './handlers/ios.handler';\n\nexport interface TuiAutofocusHandler {\n setFocus(): void;\n}\n\nexport const TUI_AUTOFOCUS_HANDLER = new InjectionToken<TuiAutofocusHandler>(\n 'Autofocusing handler',\n);\n\n// TODO: 3.0 remove in ivy compilation\nexport function tuiAutofocusHandlerFactory(\n tuiFocusableComponent: TuiFocusableElementAccessor | null,\n elementRef: ElementRef<HTMLElement>,\n animationFrame$: Observable<number>,\n renderer: Renderer2,\n ngZone: NgZone,\n): TuiAutofocusHandler {\n return inject(TUI_IS_APPLE)\n ? new TuiIosAutofocusHandler(tuiFocusableComponent, elementRef, renderer, ngZone)\n : new TuiDefaultAutofocusHandler(\n tuiFocusableComponent,\n elementRef,\n animationFrame$,\n );\n}\n\nexport const TUI_AUTOFOCUS_PROVIDERS = [\n {\n provide: TUI_AUTOFOCUS_HANDLER,\n // TODO: replace to useClass in v3.0\n useFactory: tuiAutofocusHandlerFactory,\n deps: [\n [new Optional(), new Self(), TUI_FOCUSABLE_ITEM_ACCESSOR],\n ElementRef,\n ANIMATION_FRAME,\n Renderer2,\n NgZone,\n ],\n },\n];\n","import {AfterViewInit, Directive, Inject, Input} from '@angular/core';\n\nimport {\n TUI_AUTOFOCUS_HANDLER,\n TUI_AUTOFOCUS_PROVIDERS,\n TuiAutofocusHandler,\n} from './autofocus.options';\n\n// TODO: 3.0 change input name to tuiAutoFocus and handle empty string\n@Directive({\n selector: '[tuiAutoFocus]',\n providers: TUI_AUTOFOCUS_PROVIDERS,\n})\nexport class TuiAutoFocusDirective implements AfterViewInit {\n @Input()\n autoFocus = true;\n\n constructor(\n @Inject(TUI_AUTOFOCUS_HANDLER) private readonly handler: TuiAutofocusHandler,\n ) {}\n\n ngAfterViewInit(): void {\n if (this.autoFocus) {\n this.handler.setFocus();\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutoFocusDirective} from './autofocus.directive';\n\n@NgModule({\n declarations: [TuiAutoFocusDirective],\n exports: [TuiAutoFocusDirective],\n})\nexport class TuiAutoFocusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,63 +1,59 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { ElementRef, Inject, Output, Directive, NgModule } from '@angular/core';
3
- import { typedFromEvent } from '@taiga-ui/cdk/observables';
2
+ import { Component, ViewEncapsulation, EventEmitter, Inject, HostBinding, Output, HostListener, Directive, NgModule } from '@angular/core';
4
3
  import { TuiDirectiveStylesService } from '@taiga-ui/cdk/services';
5
- import { map, skip } from 'rxjs/operators';
6
4
 
7
- const ON = 'tuiAutofillOn';
8
- const OFF = 'tuiAutofillOff';
9
- const STYLE = `
10
- @keyframes ${ON} {
11
- from {
12
- content: '1';
13
- }
14
-
15
- to {
16
- content: '2';
17
- }
18
- }
19
-
20
- @keyframes ${OFF} {
21
- from {
22
- content: '2';
23
- }
5
+ let TuiAutofilledStyleComponent = class TuiAutofilledStyleComponent {
6
+ };
7
+ TuiAutofilledStyleComponent = __decorate([
8
+ Component({
9
+ template: '',
10
+ encapsulation: ViewEncapsulation.None,
11
+ styles: [".tui-autofill,.tui-autofill input{transition:box-shadow 10ms}.tui-autofill input::-webkit-credit-card-auto-fill-button,.tui-autofill::-webkit-credit-card-auto-fill-button{pointer-events:none;background-color:transparent!important;-webkit-mask-image:none!important}"]
12
+ })
13
+ ], TuiAutofilledStyleComponent);
24
14
 
25
- to {
26
- content: '1';
27
- }
28
- }`;
29
- // @dynamic
30
15
  let TuiAutofilledDirective = class TuiAutofilledDirective {
31
- constructor(elementRef, directiveStyles) {
32
- this.elementRef = elementRef;
33
- this.tuiAutofilledChange = typedFromEvent(this.elementRef.nativeElement, 'animationstart').pipe(map(({ animationName }) => animationName === ON), skip(1));
34
- directiveStyles.addStyle(STYLE, 'TuiAutofilledDirective');
16
+ constructor(directiveStyles) {
17
+ this.autofilled = false;
18
+ this.tuiAutofilledChange = new EventEmitter();
19
+ directiveStyles.addComponent(TuiAutofilledStyleComponent);
20
+ }
21
+ transitionStartHandler({ propertyName, target }) {
22
+ var _a;
23
+ const matchedAutofill = propertyName.includes('box-shadow') && ((_a = target) === null || _a === void 0 ? void 0 : _a.matches('input'));
24
+ if (matchedAutofill) {
25
+ this.autofilled = !this.autofilled;
26
+ this.tuiAutofilledChange.emit(this.autofilled);
27
+ }
35
28
  }
36
29
  };
37
30
  TuiAutofilledDirective.ctorParameters = () => [
38
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
39
31
  { type: TuiDirectiveStylesService, decorators: [{ type: Inject, args: [TuiDirectiveStylesService,] }] }
40
32
  ];
33
+ __decorate([
34
+ HostBinding('class._autofilled')
35
+ ], TuiAutofilledDirective.prototype, "autofilled", void 0);
41
36
  __decorate([
42
37
  Output()
43
38
  ], TuiAutofilledDirective.prototype, "tuiAutofilledChange", void 0);
39
+ __decorate([
40
+ HostListener('transitionstart', ['$event'])
41
+ ], TuiAutofilledDirective.prototype, "transitionStartHandler", null);
44
42
  TuiAutofilledDirective = __decorate([
45
43
  Directive({
46
44
  selector: '[tuiAutofilledChange]',
47
- host: {
48
- class: 'tui-autofill',
49
- },
45
+ host: { class: 'tui-autofill' },
50
46
  }),
51
- __param(0, Inject(ElementRef)),
52
- __param(1, Inject(TuiDirectiveStylesService))
47
+ __param(0, Inject(TuiDirectiveStylesService))
53
48
  ], TuiAutofilledDirective);
54
49
 
55
50
  let TuiAutofilledModule = class TuiAutofilledModule {
56
51
  };
57
52
  TuiAutofilledModule = __decorate([
58
53
  NgModule({
59
- declarations: [TuiAutofilledDirective],
60
54
  exports: [TuiAutofilledDirective],
55
+ entryComponents: [TuiAutofilledStyleComponent],
56
+ declarations: [TuiAutofilledDirective, TuiAutofilledStyleComponent],
61
57
  })
62
58
  ], TuiAutofilledModule);
63
59
 
@@ -65,5 +61,5 @@ TuiAutofilledModule = __decorate([
65
61
  * Generated bundle index. Do not edit.
66
62
  */
67
63
 
68
- export { TuiAutofilledDirective, TuiAutofilledModule };
64
+ export { TuiAutofilledDirective, TuiAutofilledModule, TuiAutofilledStyleComponent };
69
65
  //# sourceMappingURL=taiga-ui-cdk-directives-autofilled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-autofilled.js","sources":["ng://@taiga-ui/cdk/directives/autofilled/autofilled.directive.ts","ng://@taiga-ui/cdk/directives/autofilled/autofilled.module.ts","ng://@taiga-ui/cdk/directives/autofilled/taiga-ui-cdk-directives-autofilled.ts"],"sourcesContent":["import {Directive, ElementRef, Inject, Output} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TuiDirectiveStylesService} from '@taiga-ui/cdk/services';\nimport {map, skip} from 'rxjs/operators';\n\nconst ON = 'tuiAutofillOn';\nconst OFF = 'tuiAutofillOff';\nconst STYLE = `\n@keyframes ${ON} {\n from {\n content: '1';\n }\n\n to {\n content: '2';\n }\n}\n\n@keyframes ${OFF} {\n from {\n content: '2';\n }\n\n to {\n content: '1';\n }\n}`;\n\n// @dynamic\n@Directive({\n selector: '[tuiAutofilledChange]',\n host: {\n class: 'tui-autofill',\n },\n})\nexport class TuiAutofilledDirective {\n @Output()\n readonly tuiAutofilledChange = typedFromEvent(\n this.elementRef.nativeElement,\n 'animationstart',\n ).pipe(\n map(({animationName}) => animationName === ON),\n skip(1),\n );\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(TuiDirectiveStylesService)\n directiveStyles: TuiDirectiveStylesService,\n ) {\n directiveStyles.addStyle(STYLE, 'TuiAutofilledDirective');\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutofilledDirective} from './autofilled.directive';\n\n@NgModule({\n declarations: [TuiAutofilledDirective],\n exports: [TuiAutofilledDirective],\n})\nexport class TuiAutofilledModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAKA,MAAM,EAAE,GAAG,eAAe,CAAC;AAC3B,MAAM,GAAG,GAAG,gBAAgB,CAAC;AAC7B,MAAM,KAAK,GAAG;aACD,EAAE;;;;;;;;;;aAUF,GAAG;;;;;;;;EAQd,CAAC;AAEH;IAOa,sBAAsB,GAAnC,MAAa,sBAAsB;IAU/B,YACyC,UAAwC,EAE7E,eAA0C;QAFL,eAAU,GAAV,UAAU,CAA8B;QATxE,wBAAmB,GAAG,cAAc,CACzC,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,gBAAgB,CACnB,CAAC,IAAI,CACF,GAAG,CAAC,CAAC,EAAC,aAAa,EAAC,KAAK,aAAa,KAAK,EAAE,CAAC,EAC9C,IAAI,CAAC,CAAC,CAAC,CACV,CAAC;QAOE,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;KAC7D;EACJ;;YANwD,UAAU,uBAA1D,MAAM,SAAC,UAAU;YAED,yBAAyB,uBADzC,MAAM,SAAC,yBAAyB;;AAVrC;IADC,MAAM,EAAE;mEAOP;AARO,sBAAsB;IANlC,SAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,IAAI,EAAE;YACF,KAAK,EAAE,cAAc;SACxB;KACJ,CAAC;IAYO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,yBAAyB,CAAC,CAAA;GAZ7B,sBAAsB,CAiBlC;;IC5CY,mBAAmB,GAAhC,MAAa,mBAAmB;EAAG;AAAtB,mBAAmB;IAJ/B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;QACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;KACpC,CAAC;GACW,mBAAmB,CAAG;;ACRnC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-autofilled.js","sources":["ng://@taiga-ui/cdk/directives/autofilled/autofilled-style.component.ts","ng://@taiga-ui/cdk/directives/autofilled/autofilled.directive.ts","ng://@taiga-ui/cdk/directives/autofilled/autofilled.module.ts","ng://@taiga-ui/cdk/directives/autofilled/taiga-ui-cdk-directives-autofilled.ts"],"sourcesContent":["import {Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n template: '',\n styleUrls: ['./autofilled.style.less'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TuiAutofilledStyleComponent {}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Output,\n} from '@angular/core';\nimport {TuiDirectiveStylesService} from '@taiga-ui/cdk/services';\n\nimport {TuiAutofilledStyleComponent} from './autofilled-style.component';\n\n@Directive({\n selector: '[tuiAutofilledChange]',\n host: {class: 'tui-autofill'},\n})\nexport class TuiAutofilledDirective {\n @HostBinding('class._autofilled')\n autofilled = false;\n\n @Output()\n readonly tuiAutofilledChange = new EventEmitter<boolean>();\n\n constructor(\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n ) {\n directiveStyles.addComponent(TuiAutofilledStyleComponent);\n }\n\n @HostListener('transitionstart', ['$event'])\n transitionStartHandler({propertyName, target}: TransitionEvent): void {\n const matchedAutofill =\n propertyName.includes('box-shadow') && (target as Element)?.matches('input');\n\n if (matchedAutofill) {\n this.autofilled = !this.autofilled;\n this.tuiAutofilledChange.emit(this.autofilled);\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutofilledDirective} from './autofilled.directive';\nimport {TuiAutofilledStyleComponent} from './autofilled-style.component';\n\n@NgModule({\n exports: [TuiAutofilledDirective],\n entryComponents: [TuiAutofilledStyleComponent],\n declarations: [TuiAutofilledDirective, TuiAutofilledStyleComponent],\n})\nexport class TuiAutofilledModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;IAOa,2BAA2B,GAAxC,MAAa,2BAA2B;EAAG;AAA9B,2BAA2B;IALvC,SAAS,CAAC;QACP,QAAQ,EAAE,EAAE;QAEZ,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACxC,CAAC;GACW,2BAA2B,CAAG;;ICS9B,sBAAsB,GAAnC,MAAa,sBAAsB;IAO/B,YACuC,eAA0C;QANjF,eAAU,GAAG,KAAK,CAAC;QAGV,wBAAmB,GAAG,IAAI,YAAY,EAAW,CAAC;QAKvD,eAAe,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;KAC7D;IAGD,sBAAsB,CAAC,EAAC,YAAY,EAAE,MAAM,EAAkB;;QAC1D,MAAM,eAAe,GACjB,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAK,MAAkB,0CAAE,OAAO,CAAC,OAAO,EAAC,CAAC;QAEjF,IAAI,eAAe,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAClD;KACJ;EACJ;;YAf2D,yBAAyB,uBAA5E,MAAM,SAAC,yBAAyB;;AANrC;IADC,WAAW,CAAC,mBAAmB,CAAC;0DACd;AAGnB;IADC,MAAM,EAAE;mEACkD;AAS3D;IADC,YAAY,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;oEAS3C;AAtBQ,sBAAsB;IAJlC,SAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,IAAI,EAAE,EAAC,KAAK,EAAE,cAAc,EAAC;KAChC,CAAC;IASO,WAAA,MAAM,CAAC,yBAAyB,CAAC,CAAA;GAR7B,sBAAsB,CAuBlC;;IC7BY,mBAAmB,GAAhC,MAAa,mBAAmB;EAAG;AAAtB,mBAAmB;IAL/B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,sBAAsB,CAAC;QACjC,eAAe,EAAE,CAAC,2BAA2B,CAAC;QAC9C,YAAY,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;KACtE,CAAC;GACW,mBAAmB,CAAG;;ACVnC;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-checked.js","sources":["ng://@taiga-ui/cdk/directives/checked/checked.directive.ts","ng://@taiga-ui/cdk/directives/checked/checked.module.ts","ng://@taiga-ui/cdk/directives/checked/taiga-ui-cdk-directives-checked.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n Output,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: 'input[tuiChecked], input[tuiCheckedChange]',\n})\nexport class TuiCheckedDirective {\n @Input()\n set tuiChecked(checked: null | boolean) {\n this.updateProperty('checked', checked || false);\n this.updateProperty('indeterminate', checked === null);\n }\n\n @Output()\n readonly tuiCheckedChange = new EventEmitter<boolean>();\n\n constructor(\n @Inject(ElementRef)\n private readonly element: ElementRef<HTMLInputElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n ) {\n this.updateProperty('checked', false);\n }\n\n @HostListener('change', ['$event.target'])\n onChange({checked}: HTMLInputElement) {\n this.updateProperty('indeterminate', false);\n this.tuiCheckedChange.emit(checked);\n }\n\n private updateProperty(property: 'checked' | 'indeterminate', value: boolean) {\n this.renderer.setProperty(this.element.nativeElement, property, value);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiCheckedDirective} from './checked.directive';\n\n@NgModule({\n declarations: [TuiCheckedDirective],\n exports: [TuiCheckedDirective],\n})\nexport class TuiCheckedModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;IAca,mBAAmB,GAAhC,MAAa,mBAAmB;IAU5B,YAEqB,OAAqC,EAClB,QAAmB;QADtC,YAAO,GAAP,OAAO,CAA8B;QAClB,aAAQ,GAAR,QAAQ,CAAW;QALlD,qBAAgB,GAAG,IAAI,YAAY,EAAW,CAAC;QAOpD,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KACzC;IAdD,IAAI,UAAU,CAAC,OAAuB;QAClC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC;KAC1D;IAcD,QAAQ,CAAC,EAAC,OAAO,EAAmB;QAChC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;IAEO,cAAc,CAAC,QAAqC,EAAE,KAAc;QACxE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;KAC1E;EACJ;;YAfiC,UAAU,uBADnC,MAAM,SAAC,UAAU;YAE4B,SAAS,uBAAtD,MAAM,SAAC,SAAS;;AAXrB;IADC,KAAK,EAAE;qDAIP;AAGD;IADC,MAAM,EAAE;6DAC+C;AAWxD;IADC,YAAY,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,CAAC;mDAIzC;AAtBQ,mBAAmB;IAH/B,SAAS,CAAC;QACP,QAAQ,EAAE,4CAA4C;KACzD,CAAC;IAYO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAElB,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;GAbb,mBAAmB,CA2B/B;;ICjCY,gBAAgB,GAA7B,MAAa,gBAAgB;EAAG;AAAnB,gBAAgB;IAJ5B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAAG;;ACRhC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-checked.js","sources":["ng://@taiga-ui/cdk/directives/checked/checked.directive.ts","ng://@taiga-ui/cdk/directives/checked/checked.module.ts","ng://@taiga-ui/cdk/directives/checked/taiga-ui-cdk-directives-checked.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n Output,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: 'input[tuiChecked], input[tuiCheckedChange]',\n})\nexport class TuiCheckedDirective {\n @Input()\n set tuiChecked(checked: null | boolean) {\n this.updateProperty('checked', checked || false);\n this.updateProperty('indeterminate', checked === null);\n }\n\n @Output()\n readonly tuiCheckedChange = new EventEmitter<boolean>();\n\n constructor(\n @Inject(ElementRef)\n private readonly element: ElementRef<HTMLInputElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n ) {\n this.updateProperty('checked', false);\n }\n\n @HostListener('change', ['$event.target'])\n onChange({checked}: HTMLInputElement): void {\n this.updateProperty('indeterminate', false);\n this.tuiCheckedChange.emit(checked);\n }\n\n private updateProperty(property: 'checked' | 'indeterminate', value: boolean): void {\n this.renderer.setProperty(this.element.nativeElement, property, value);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiCheckedDirective} from './checked.directive';\n\n@NgModule({\n declarations: [TuiCheckedDirective],\n exports: [TuiCheckedDirective],\n})\nexport class TuiCheckedModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;IAca,mBAAmB,GAAhC,MAAa,mBAAmB;IAU5B,YAEqB,OAAqC,EAClB,QAAmB;QADtC,YAAO,GAAP,OAAO,CAA8B;QAClB,aAAQ,GAAR,QAAQ,CAAW;QALlD,qBAAgB,GAAG,IAAI,YAAY,EAAW,CAAC;QAOpD,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KACzC;IAdD,IAAI,UAAU,CAAC,OAAuB;QAClC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC;KAC1D;IAcD,QAAQ,CAAC,EAAC,OAAO,EAAmB;QAChC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;IAEO,cAAc,CAAC,QAAqC,EAAE,KAAc;QACxE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;KAC1E;EACJ;;YAfiC,UAAU,uBADnC,MAAM,SAAC,UAAU;YAE4B,SAAS,uBAAtD,MAAM,SAAC,SAAS;;AAXrB;IADC,KAAK,EAAE;qDAIP;AAGD;IADC,MAAM,EAAE;6DAC+C;AAWxD;IADC,YAAY,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,CAAC;mDAIzC;AAtBQ,mBAAmB;IAH/B,SAAS,CAAC;QACP,QAAQ,EAAE,4CAA4C;KACzD,CAAC;IAYO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAElB,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;GAbb,mBAAmB,CA2B/B;;ICjCY,gBAAgB,GAA7B,MAAa,gBAAgB;EAAG;AAAnB,gBAAgB;IAJ5B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAAG;;ACRhC;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-copy-processor.js","sources":["ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.directive.ts","ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.module.ts","ng://@taiga-ui/cdk/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.ts"],"sourcesContent":["import {Directive, HostListener, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {identity} from 'rxjs';\n\n// @dynamic\n@Directive({\n selector: '[tuiCopyProcessor]',\n})\nexport class TuiCopyProcessorDirective {\n @Input()\n @tuiDefaultProp()\n tuiCopyProcessor: TuiStringHandler<string> = identity;\n\n constructor(@Inject(WINDOW) private readonly windowRef: Window) {}\n\n @HostListener('copy.prevent', ['$event'])\n onCopy(event: ClipboardEvent) {\n const selection = this.windowRef.getSelection();\n\n if (selection) {\n event.clipboardData?.setData(\n 'text/plain',\n this.tuiCopyProcessor(String(selection)),\n );\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiCopyProcessorDirective} from './copy-processor.directive';\n\n@NgModule({\n declarations: [TuiCopyProcessorDirective],\n exports: [TuiCopyProcessorDirective],\n})\nexport class TuiCopyProcessorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAMA;IAIa,yBAAyB,GAAtC,MAAa,yBAAyB;IAKlC,YAA6C,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QAF9D,qBAAgB,GAA6B,QAAQ,CAAC;KAEY;IAGlE,MAAM,CAAC,KAAqB;;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAEhD,IAAI,SAAS,EAAE;YACX,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CACxB,YAAY,EACZ,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAC1C;SACL;KACJ;EACJ;;YAb2D,MAAM,uBAAjD,MAAM,SAAC,MAAM;;AAF1B;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;mEACqC;AAKtD;IADC,YAAY,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC;uDAUxC;AAjBQ,yBAAyB;IAHrC,SAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;KACjC,CAAC;IAMe,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;GALlB,yBAAyB,CAkBrC;;ICpBY,sBAAsB,GAAnC,MAAa,sBAAsB;EAAG;AAAzB,sBAAsB;IAJlC,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,yBAAyB,CAAC;QACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;KACvC,CAAC;GACW,sBAAsB,CAAG;;ACRtC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-copy-processor.js","sources":["ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.directive.ts","ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.module.ts","ng://@taiga-ui/cdk/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.ts"],"sourcesContent":["import {Directive, HostListener, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {identity} from 'rxjs';\n\n// @dynamic\n@Directive({\n selector: '[tuiCopyProcessor]',\n})\nexport class TuiCopyProcessorDirective {\n @Input()\n @tuiDefaultProp()\n tuiCopyProcessor: TuiStringHandler<string> = identity;\n\n constructor(@Inject(WINDOW) private readonly windowRef: Window) {}\n\n @HostListener('copy.prevent', ['$event'])\n onCopy(event: ClipboardEvent): void {\n const selection = this.windowRef.getSelection();\n\n if (selection) {\n event.clipboardData?.setData(\n 'text/plain',\n this.tuiCopyProcessor(String(selection)),\n );\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiCopyProcessorDirective} from './copy-processor.directive';\n\n@NgModule({\n declarations: [TuiCopyProcessorDirective],\n exports: [TuiCopyProcessorDirective],\n})\nexport class TuiCopyProcessorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAMA;IAIa,yBAAyB,GAAtC,MAAa,yBAAyB;IAKlC,YAA6C,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QAF9D,qBAAgB,GAA6B,QAAQ,CAAC;KAEY;IAGlE,MAAM,CAAC,KAAqB;;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAEhD,IAAI,SAAS,EAAE;YACX,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CACxB,YAAY,EACZ,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAC1C;SACL;KACJ;EACJ;;YAb2D,MAAM,uBAAjD,MAAM,SAAC,MAAM;;AAF1B;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;mEACqC;AAKtD;IADC,YAAY,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC;uDAUxC;AAjBQ,yBAAyB;IAHrC,SAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;KACjC,CAAC;IAMe,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;GALlB,yBAAyB,CAkBrC;;ICpBY,sBAAsB,GAAnC,MAAa,sBAAsB;EAAG;AAAzB,sBAAsB;IAJlC,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,yBAAyB,CAAC;QACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;KACvC,CAAC;GACW,sBAAsB,CAAG;;ACRtC;;;;;;"}
@@ -12,10 +12,11 @@ let TuiFocusTrapDirective = class TuiFocusTrapDirective {
12
12
  this.renderer = renderer;
13
13
  this.activeElement = getNativeFocused(this.documentRef);
14
14
  /**
15
- * This would cause currently focused element to lose focus
15
+ * This would cause currently focused element to lose focus,
16
16
  * but it might cause ExpressionChanged error due to potential HostBinding.
17
17
  * Microtask keeps it in the same frame but allows change detection to run
18
18
  */
19
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
19
20
  Promise.resolve().then(() => {
20
21
  setNativeFocused(this.elementRef.nativeElement);
21
22
  });
@@ -40,6 +41,7 @@ let TuiFocusTrapDirective = class TuiFocusTrapDirective {
40
41
  * so we need to delay it but stay in the same sync cycle,
41
42
  * therefore using Promise instead of setTimeout
42
43
  */
44
+ // eslint-disable-next-line
43
45
  Promise.resolve().then(() => {
44
46
  // TODO: iframe warning
45
47
  if (this.activeElement instanceof HTMLElement) {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-focus-trap.js","sources":["ng://@taiga-ui/cdk/directives/focus-trap/focus-trap.directive.ts","ng://@taiga-ui/cdk/directives/focus-trap/focus-trap.module.ts","ng://@taiga-ui/cdk/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport {containsOrAfter} from '@taiga-ui/cdk/utils/dom';\nimport {\n blurNativeFocused,\n getClosestFocusable,\n getNativeFocused,\n setNativeFocused,\n} from '@taiga-ui/cdk/utils/focus';\n\n// @dynamic\n@Directive({\n selector: '[tuiFocusTrap]',\n host: {\n tabIndex: '0',\n },\n})\nexport class TuiFocusTrapDirective implements OnDestroy {\n private readonly activeElement = getNativeFocused(this.documentRef);\n\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n ) {\n /**\n * This would cause currently focused element to lose focus\n * but it might cause ExpressionChanged error due to potential HostBinding.\n * Microtask keeps it in the same frame but allows change detection to run\n */\n Promise.resolve().then(() => {\n setNativeFocused(this.elementRef.nativeElement);\n });\n }\n\n @HostListener('blur')\n onBlur() {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'tabIndex');\n }\n\n @HostListener('window:focusin.silent', ['$event.target'])\n onFocusIn(node: Node) {\n if (containsOrAfter(this.elementRef.nativeElement, node)) {\n return;\n }\n\n const focusable = getClosestFocusable(\n this.elementRef.nativeElement,\n false,\n this.elementRef.nativeElement,\n );\n\n if (focusable) {\n setNativeFocused(focusable);\n }\n }\n\n ngOnDestroy() {\n blurNativeFocused(this.documentRef);\n\n /**\n * HostListeners are triggered even after ngOnDestroy\n * {@link https://github.com/angular/angular/issues/38100}\n * so we need to delay it but stay in the same sync cycle,\n * therefore using Promise instead of setTimeout\n */\n Promise.resolve().then(() => {\n // TODO: iframe warning\n if (this.activeElement instanceof HTMLElement) {\n setNativeFocused(this.activeElement);\n }\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFocusTrapDirective} from './focus-trap.directive';\n\n@NgModule({\n declarations: [TuiFocusTrapDirective],\n exports: [TuiFocusTrapDirective],\n})\nexport class TuiFocusTrapModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAiBA;IAOa,qBAAqB,GAAlC,MAAa,qBAAqB;IAG9B,YACuC,WAAqB,EAEvC,UAAmC,EAChB,QAAmB;QAHpB,gBAAW,GAAX,WAAW,CAAU;QAEvC,eAAU,GAAV,UAAU,CAAyB;QAChB,aAAQ,GAAR,QAAQ,CAAW;QAN1C,kBAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;;;;;QAahE,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SACnD,CAAC,CAAC;KACN;IAGD,MAAM;QACF,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;KAC5E;IAGD,SAAS,CAAC,IAAU;QAChB,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;YACtD,OAAO;SACV;QAED,MAAM,SAAS,GAAG,mBAAmB,CACjC,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,KAAK,EACL,IAAI,CAAC,UAAU,CAAC,aAAa,CAChC,CAAC;QAEF,IAAI,SAAS,EAAE;YACX,gBAAgB,CAAC,SAAS,CAAC,CAAC;SAC/B;KACJ;IAED,WAAW;QACP,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;;;;;;QAQpC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;;YAEnB,IAAI,IAAI,CAAC,aAAa,YAAY,WAAW,EAAE;gBAC3C,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACxC;SACJ,CAAC,CAAC;KACN;EACJ;;YArDuD,QAAQ,uBAAvD,MAAM,SAAC,QAAQ;YAEa,UAAU,uBADtC,MAAM,SAAC,UAAU;YAE4B,SAAS,uBAAtD,MAAM,SAAC,SAAS;;AAarB;IADC,YAAY,CAAC,MAAM,CAAC;mDAGpB;AAGD;IADC,YAAY,CAAC,uBAAuB,EAAE,CAAC,eAAe,CAAC,CAAC;sDAexD;AAvCQ,qBAAqB;IANjC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE;YACF,QAAQ,EAAE,GAAG;SAChB;KACJ,CAAC;IAKO,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAElB,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;GAPb,qBAAqB,CAyDjC;;ICzEY,kBAAkB,GAA/B,MAAa,kBAAkB;EAAG;AAArB,kBAAkB;IAJ9B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;KACnC,CAAC;GACW,kBAAkB,CAAG;;ACRlC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-focus-trap.js","sources":["ng://@taiga-ui/cdk/directives/focus-trap/focus-trap.directive.ts","ng://@taiga-ui/cdk/directives/focus-trap/focus-trap.module.ts","ng://@taiga-ui/cdk/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport {containsOrAfter} from '@taiga-ui/cdk/utils/dom';\nimport {\n blurNativeFocused,\n getClosestFocusable,\n getNativeFocused,\n setNativeFocused,\n} from '@taiga-ui/cdk/utils/focus';\n\n// @dynamic\n@Directive({\n selector: '[tuiFocusTrap]',\n host: {\n tabIndex: '0',\n },\n})\nexport class TuiFocusTrapDirective implements OnDestroy {\n private readonly activeElement = getNativeFocused(this.documentRef);\n\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n ) {\n /**\n * This would cause currently focused element to lose focus,\n * but it might cause ExpressionChanged error due to potential HostBinding.\n * Microtask keeps it in the same frame but allows change detection to run\n */\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => {\n setNativeFocused(this.elementRef.nativeElement);\n });\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'tabIndex');\n }\n\n @HostListener('window:focusin.silent', ['$event.target'])\n onFocusIn(node: Node): void {\n if (containsOrAfter(this.elementRef.nativeElement, node)) {\n return;\n }\n\n const focusable = getClosestFocusable(\n this.elementRef.nativeElement,\n false,\n this.elementRef.nativeElement,\n );\n\n if (focusable) {\n setNativeFocused(focusable);\n }\n }\n\n ngOnDestroy(): void {\n blurNativeFocused(this.documentRef);\n\n /**\n * HostListeners are triggered even after ngOnDestroy\n * {@link https://github.com/angular/angular/issues/38100}\n * so we need to delay it but stay in the same sync cycle,\n * therefore using Promise instead of setTimeout\n */\n // eslint-disable-next-line\n Promise.resolve().then(() => {\n // TODO: iframe warning\n if (this.activeElement instanceof HTMLElement) {\n setNativeFocused(this.activeElement);\n }\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFocusTrapDirective} from './focus-trap.directive';\n\n@NgModule({\n declarations: [TuiFocusTrapDirective],\n exports: [TuiFocusTrapDirective],\n})\nexport class TuiFocusTrapModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAiBA;IAOa,qBAAqB,GAAlC,MAAa,qBAAqB;IAG9B,YACuC,WAAqB,EAEvC,UAAmC,EAChB,QAAmB;QAHpB,gBAAW,GAAX,WAAW,CAAU;QAEvC,eAAU,GAAV,UAAU,CAAyB;QAChB,aAAQ,GAAR,QAAQ,CAAW;QAN1C,kBAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;;;;;;QAchE,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SACnD,CAAC,CAAC;KACN;IAGD,MAAM;QACF,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;KAC5E;IAGD,SAAS,CAAC,IAAU;QAChB,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;YACtD,OAAO;SACV;QAED,MAAM,SAAS,GAAG,mBAAmB,CACjC,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,KAAK,EACL,IAAI,CAAC,UAAU,CAAC,aAAa,CAChC,CAAC;QAEF,IAAI,SAAS,EAAE;YACX,gBAAgB,CAAC,SAAS,CAAC,CAAC;SAC/B;KACJ;IAED,WAAW;QACP,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;;;;;;;QASpC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;;YAEnB,IAAI,IAAI,CAAC,aAAa,YAAY,WAAW,EAAE;gBAC3C,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACxC;SACJ,CAAC,CAAC;KACN;EACJ;;YAvDuD,QAAQ,uBAAvD,MAAM,SAAC,QAAQ;YAEa,UAAU,uBADtC,MAAM,SAAC,UAAU;YAE4B,SAAS,uBAAtD,MAAM,SAAC,SAAS;;AAcrB;IADC,YAAY,CAAC,MAAM,CAAC;mDAGpB;AAGD;IADC,YAAY,CAAC,uBAAuB,EAAE,CAAC,eAAe,CAAC,CAAC;sDAexD;AAxCQ,qBAAqB;IANjC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE;YACF,QAAQ,EAAE,GAAG;SAChB;KACJ,CAAC;IAKO,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAElB,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;GAPb,qBAAqB,CA2DjC;;IC3EY,kBAAkB,GAA/B,MAAa,kBAAkB;EAAG;AAArB,kBAAkB;IAJ9B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;KACnC,CAAC;GACW,kBAAkB,CAAG;;ACRlC;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-for.js","sources":["ng://@taiga-ui/cdk/directives/for/for.directive.ts","ng://@taiga-ui/cdk/directives/for/for.module.ts","ng://@taiga-ui/cdk/directives/for/taiga-ui-cdk-directives-for.ts"],"sourcesContent":["import {\n Directive,\n EmbeddedViewRef,\n Inject,\n Input,\n OnChanges,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n selector: '[ngFor][ngForOf][ngForElse],[ngFor][ngForOf][ngForEmpty]',\n})\nexport class TuiForDirective<T, K = {}> implements OnChanges {\n private ref?: EmbeddedViewRef<{}>;\n\n @Input()\n ngForOf: T[] | readonly T[] | null = [];\n\n @Input()\n ngForElse?: TemplateRef<K>;\n\n @Input()\n ngForEmpty?: TemplateRef<K>;\n\n constructor(@Inject(ViewContainerRef) private readonly vcr: ViewContainerRef) {}\n\n ngOnChanges() {\n this.ref?.destroy();\n\n if (this.ngForOf?.length === 0 && this.ngForEmpty) {\n this.ref = this.vcr.createEmbeddedView(this.ngForEmpty);\n } else if (!this.ngForOf && this.ngForElse) {\n this.ref = this.vcr.createEmbeddedView(this.ngForElse);\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiForDirective} from './for.directive';\n\n@NgModule({\n declarations: [TuiForDirective],\n exports: [TuiForDirective],\n})\nexport class TuiForModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;IAaa,eAAe,GAA5B,MAAa,eAAe;IAYxB,YAAuD,GAAqB;QAArB,QAAG,GAAH,GAAG,CAAkB;QAR5E,YAAO,GAA8B,EAAE,CAAC;KAQwC;IAEhF,WAAW;;QACP,MAAA,IAAI,CAAC,GAAG,0CAAE,OAAO,GAAG;QAEpB,IAAI,OAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,MAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC/C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC3D;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YACxC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1D;KACJ;EACJ;;YAX+D,gBAAgB,uBAA/D,MAAM,SAAC,gBAAgB;;AARpC;IADC,KAAK,EAAE;gDACgC;AAGxC;IADC,KAAK,EAAE;kDACmB;AAG3B;IADC,KAAK,EAAE;mDACoB;AAVnB,eAAe;IAH3B,SAAS,CAAC;QACP,QAAQ,EAAE,0DAA0D;KACvE,CAAC;IAae,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;GAZ5B,eAAe,CAuB3B;;IC5BY,YAAY,GAAzB,MAAa,YAAY;EAAG;AAAf,YAAY;IAJxB,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,eAAe,CAAC;QAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;KAC7B,CAAC;GACW,YAAY,CAAG;;ACR5B;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-for.js","sources":["ng://@taiga-ui/cdk/directives/for/for.directive.ts","ng://@taiga-ui/cdk/directives/for/for.module.ts","ng://@taiga-ui/cdk/directives/for/taiga-ui-cdk-directives-for.ts"],"sourcesContent":["import {\n Directive,\n EmbeddedViewRef,\n Inject,\n Input,\n OnChanges,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n selector: '[ngFor][ngForOf][ngForElse],[ngFor][ngForOf][ngForEmpty]',\n})\nexport class TuiForDirective<T, K = unknown> implements OnChanges {\n private ref?: EmbeddedViewRef<unknown>;\n\n @Input()\n ngForOf: T[] | readonly T[] | null = [];\n\n @Input()\n ngForElse?: TemplateRef<K>;\n\n @Input()\n ngForEmpty?: TemplateRef<K>;\n\n constructor(@Inject(ViewContainerRef) private readonly vcr: ViewContainerRef) {}\n\n ngOnChanges(): void {\n this.ref?.destroy();\n\n if (this.ngForOf?.length === 0 && this.ngForEmpty) {\n this.ref = this.vcr.createEmbeddedView(this.ngForEmpty);\n } else if (!this.ngForOf && this.ngForElse) {\n this.ref = this.vcr.createEmbeddedView(this.ngForElse);\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiForDirective} from './for.directive';\n\n@NgModule({\n declarations: [TuiForDirective],\n exports: [TuiForDirective],\n})\nexport class TuiForModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;IAaa,eAAe,GAA5B,MAAa,eAAe;IAYxB,YAAuD,GAAqB;QAArB,QAAG,GAAH,GAAG,CAAkB;QAR5E,YAAO,GAA8B,EAAE,CAAC;KAQwC;IAEhF,WAAW;;QACP,MAAA,IAAI,CAAC,GAAG,0CAAE,OAAO,GAAG;QAEpB,IAAI,OAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,MAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC/C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC3D;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YACxC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1D;KACJ;EACJ;;YAX+D,gBAAgB,uBAA/D,MAAM,SAAC,gBAAgB;;AARpC;IADC,KAAK,EAAE;gDACgC;AAGxC;IADC,KAAK,EAAE;kDACmB;AAG3B;IADC,KAAK,EAAE;mDACoB;AAVnB,eAAe;IAH3B,SAAS,CAAC;QACP,QAAQ,EAAE,0DAA0D;KACvE,CAAC;IAae,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;GAZ5B,eAAe,CAuB3B;;IC5BY,YAAY,GAAzB,MAAa,YAAY;EAAG;AAAf,YAAY;IAJxB,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,eAAe,CAAC;QAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;KAC7B,CAAC;GACW,YAAY,CAAG;;ACR5B;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-high-dpi.js","sources":["ng://@taiga-ui/cdk/directives/high-dpi/high-dpi.directive.ts","ng://@taiga-ui/cdk/directives/high-dpi/high-dpi.module.ts","ng://@taiga-ui/cdk/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.ts"],"sourcesContent":["import {Directive, Inject, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Only adds current content if user has High DPI display\n * @dynamic\n */\n@Directive({\n selector: '[tuiHighDpi]',\n})\nexport class TuiHighDpiDirective {\n constructor(\n @Inject(WINDOW) {devicePixelRatio}: Window,\n @Inject(ViewContainerRef) viewContainer: ViewContainerRef,\n @Inject(TemplateRef) templateRef: TemplateRef<unknown>,\n ) {\n if (devicePixelRatio > 1) {\n viewContainer.createEmbeddedView(templateRef);\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiHighDpiDirective} from './high-dpi.directive';\n\n@NgModule({\n declarations: [TuiHighDpiDirective],\n exports: [TuiHighDpiDirective],\n})\nexport class TuiHighDpiModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;IAOa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC5B,YACoB,EAAC,gBAAgB,EAAS,EAChB,aAA+B,EACpC,WAAiC;QAEtD,IAAI,gBAAgB,GAAG,CAAC,EAAE;YACtB,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;SACjD;KACJ;EACJ;;YAR2C,MAAM,uBAAzC,MAAM,SAAC,MAAM;YAC2B,gBAAgB,uBAAxD,MAAM,SAAC,gBAAgB;YACU,WAAW,uBAA5C,MAAM,SAAC,WAAW;;AAJd,mBAAmB;IAH/B,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;KAC3B,CAAC;IAGO,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;IACd,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxB,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;GAJf,mBAAmB,CAU/B;;ICZY,gBAAgB,GAA7B,MAAa,gBAAgB;EAAG;AAAnB,gBAAgB;IAJ5B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAAG;;ACRhC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-high-dpi.js","sources":["ng://@taiga-ui/cdk/directives/high-dpi/high-dpi.directive.ts","ng://@taiga-ui/cdk/directives/high-dpi/high-dpi.module.ts","ng://@taiga-ui/cdk/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.ts"],"sourcesContent":["import {Directive, Inject, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Only adds current content if user has High DPI display\n * @dynamic\n */\n@Directive({\n selector: '[tuiHighDpi]',\n})\nexport class TuiHighDpiDirective {\n constructor(\n @Inject(WINDOW) {devicePixelRatio}: Window,\n @Inject(ViewContainerRef) viewContainer: ViewContainerRef,\n @Inject(TemplateRef) templateRef: TemplateRef<Record<string, unknown>>,\n ) {\n if (devicePixelRatio > 1) {\n viewContainer.createEmbeddedView(templateRef);\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiHighDpiDirective} from './high-dpi.directive';\n\n@NgModule({\n declarations: [TuiHighDpiDirective],\n exports: [TuiHighDpiDirective],\n})\nexport class TuiHighDpiModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;IAOa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC5B,YACoB,EAAC,gBAAgB,EAAS,EAChB,aAA+B,EACpC,WAAiD;QAEtE,IAAI,gBAAgB,GAAG,CAAC,EAAE;YACtB,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;SACjD;KACJ;EACJ;;YAR2C,MAAM,uBAAzC,MAAM,SAAC,MAAM;YAC2B,gBAAgB,uBAAxD,MAAM,SAAC,gBAAgB;YACU,WAAW,uBAA5C,MAAM,SAAC,WAAW;;AAJd,mBAAmB;IAH/B,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;KAC3B,CAAC;IAGO,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;IACd,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxB,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;GAJf,mBAAmB,CAU/B;;ICZY,gBAAgB,GAA7B,MAAa,gBAAgB;EAAG;AAAnB,gBAAgB;IAJ5B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAAG;;ACRhC;;;;;;"}
@@ -3,7 +3,7 @@ import { Directive, NgModule } from '@angular/core';
3
3
 
4
4
  /**
5
5
  * Blank directive to query for {@link TemplateRef}
6
- * TODO: Migrate everything to this directive
6
+ * TODO: 3.0 Migrate everything to this directive
7
7
  */
8
8
  let TuiItemDirective = class TuiItemDirective {
9
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-item.js","sources":["ng://@taiga-ui/cdk/directives/item/item.directive.ts","ng://@taiga-ui/cdk/directives/item/item.module.ts","ng://@taiga-ui/cdk/directives/item/taiga-ui-cdk-directives-item.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * Blank directive to query for {@link TemplateRef}\n * TODO: Migrate everything to this directive\n */\n@Directive({\n selector: 'ng-template[tuiItem]',\n})\nexport class TuiItemDirective {}\n","import {NgModule} from '@angular/core';\n\nimport {TuiItemDirective} from './item.directive';\n\n@NgModule({\n declarations: [TuiItemDirective],\n exports: [TuiItemDirective],\n})\nexport class TuiItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA;;;;IAOa,gBAAgB,GAA7B,MAAa,gBAAgB;EAAG;AAAnB,gBAAgB;IAH5B,SAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;KACnC,CAAC;GACW,gBAAgB,CAAG;;ICDnB,aAAa,GAA1B,MAAa,aAAa;EAAG;AAAhB,aAAa;IAJzB,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;KAC9B,CAAC;GACW,aAAa,CAAG;;ACR7B;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-item.js","sources":["ng://@taiga-ui/cdk/directives/item/item.directive.ts","ng://@taiga-ui/cdk/directives/item/item.module.ts","ng://@taiga-ui/cdk/directives/item/taiga-ui-cdk-directives-item.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * Blank directive to query for {@link TemplateRef}\n * TODO: 3.0 Migrate everything to this directive\n */\n@Directive({\n selector: 'ng-template[tuiItem]',\n})\nexport class TuiItemDirective {}\n","import {NgModule} from '@angular/core';\n\nimport {TuiItemDirective} from './item.directive';\n\n@NgModule({\n declarations: [TuiItemDirective],\n exports: [TuiItemDirective],\n})\nexport class TuiItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA;;;;IAOa,gBAAgB,GAA7B,MAAa,gBAAgB;EAAG;AAAnB,gBAAgB;IAH5B,SAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;KACnC,CAAC;GACW,gBAAgB,CAAG;;ICDnB,aAAa,GAA1B,MAAa,aAAa;EAAG;AAAhB,aAAa;IAJzB,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;KAC9B,CAAC;GACW,aAAa,CAAG;;ACR7B;;;;;;"}
@@ -30,6 +30,7 @@ let TuiMediaDirective = class TuiMediaDirective {
30
30
  this.elementRef.nativeElement.pause();
31
31
  }
32
32
  else {
33
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
33
34
  this.elementRef.nativeElement.play();
34
35
  this.updatePlaybackRate(this.playbackRate);
35
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-media.js","sources":["ng://@taiga-ui/cdk/directives/media/media.directive.ts","ng://@taiga-ui/cdk/directives/media/media.module.ts","ng://@taiga-ui/cdk/directives/media/taiga-ui-cdk-directives-media.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiDefaultProp, tuiRequiredSetter} from '@taiga-ui/cdk/decorators';\n\nexport function nonNegativeFiniteAssertion(value: number): boolean {\n return isFinite(value) && value >= 0;\n}\n\nexport function volumeAssertion(volume: number): boolean {\n return isFinite(volume) && volume >= 0 && volume <= 1;\n}\n\n@Directive({\n selector: 'video[tuiMedia], audio[tuiMedia]',\n exportAs: 'tuiMedia',\n})\nexport class TuiMediaDirective {\n private playbackRate = 1;\n\n @Input()\n @HostBinding('volume')\n @tuiDefaultProp(volumeAssertion)\n volume = 1;\n\n @Input('playbackRate')\n @tuiRequiredSetter(nonNegativeFiniteAssertion)\n set playbackRateSetter(playbackRate: number) {\n this.updatePlaybackRate(playbackRate);\n }\n\n @Input()\n @tuiRequiredSetter(nonNegativeFiniteAssertion)\n set currentTime(currentTime: number) {\n if (Math.abs(currentTime - this.currentTime) > 0.05) {\n this.elementRef.nativeElement.currentTime = currentTime;\n }\n }\n\n @Input()\n set paused(paused: boolean) {\n if (paused) {\n this.elementRef.nativeElement.pause();\n } else {\n this.elementRef.nativeElement.play();\n this.updatePlaybackRate(this.playbackRate);\n }\n }\n\n @Output()\n readonly currentTimeChange = new EventEmitter<number>();\n\n @Output()\n readonly pausedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly volumeChange = new EventEmitter<number>();\n\n constructor(\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLMediaElement>,\n ) {}\n\n get paused(): boolean {\n return this.elementRef.nativeElement.paused;\n }\n\n get currentTime(): number {\n return this.elementRef.nativeElement.currentTime;\n }\n\n // @bad TODO: Make sure no other events can affect this like network issues etc.\n @HostListener('ended', ['true'])\n @HostListener('pause', ['true'])\n @HostListener('play', ['false'])\n onPausedChange(paused: boolean) {\n this.pausedChange.emit(paused);\n this.updatePlaybackRate(this.playbackRate);\n }\n\n @HostListener('volumechange')\n onVolumeChange() {\n this.volume = this.elementRef.nativeElement.volume;\n this.volumeChange.emit(this.volume);\n }\n\n @HostListener('timeupdate')\n @HostListener('seeking')\n @HostListener('seeked')\n onCurrentTimeChange() {\n this.currentTimeChange.emit(this.currentTime);\n }\n\n @HostListener('durationchange')\n changeDetectionTrigger() {\n // @bad TODO: consider if other events need to trigger CD\n }\n\n private updatePlaybackRate(playbackRate: number) {\n this.playbackRate = playbackRate;\n this.elementRef.nativeElement.playbackRate = this.playbackRate;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiMediaDirective} from './media.directive';\n\n@NgModule({\n declarations: [TuiMediaDirective],\n exports: [TuiMediaDirective],\n})\nexport class TuiMediaModule {}\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-directives-media.js","sources":["ng://@taiga-ui/cdk/directives/media/media.directive.ts","ng://@taiga-ui/cdk/directives/media/media.module.ts","ng://@taiga-ui/cdk/directives/media/taiga-ui-cdk-directives-media.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiDefaultProp, tuiRequiredSetter} from '@taiga-ui/cdk/decorators';\n\nexport function nonNegativeFiniteAssertion(value: number): boolean {\n return isFinite(value) && value >= 0;\n}\n\nexport function volumeAssertion(volume: number): boolean {\n return isFinite(volume) && volume >= 0 && volume <= 1;\n}\n\n@Directive({\n selector: 'video[tuiMedia], audio[tuiMedia]',\n exportAs: 'tuiMedia',\n})\nexport class TuiMediaDirective {\n private playbackRate = 1;\n\n @Input()\n @HostBinding('volume')\n @tuiDefaultProp(volumeAssertion)\n volume = 1;\n\n @Input('playbackRate')\n @tuiRequiredSetter(nonNegativeFiniteAssertion)\n set playbackRateSetter(playbackRate: number) {\n this.updatePlaybackRate(playbackRate);\n }\n\n @Input()\n @tuiRequiredSetter(nonNegativeFiniteAssertion)\n set currentTime(currentTime: number) {\n if (Math.abs(currentTime - this.currentTime) > 0.05) {\n this.elementRef.nativeElement.currentTime = currentTime;\n }\n }\n\n @Input()\n set paused(paused: boolean) {\n if (paused) {\n this.elementRef.nativeElement.pause();\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.elementRef.nativeElement.play();\n this.updatePlaybackRate(this.playbackRate);\n }\n }\n\n @Output()\n readonly currentTimeChange = new EventEmitter<number>();\n\n @Output()\n readonly pausedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly volumeChange = new EventEmitter<number>();\n\n constructor(\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLMediaElement>,\n ) {}\n\n get paused(): boolean {\n return this.elementRef.nativeElement.paused;\n }\n\n get currentTime(): number {\n return this.elementRef.nativeElement.currentTime;\n }\n\n // @bad TODO: Make sure no other events can affect this like network issues etc.\n @HostListener('ended', ['true'])\n @HostListener('pause', ['true'])\n @HostListener('play', ['false'])\n onPausedChange(paused: boolean): void {\n this.pausedChange.emit(paused);\n this.updatePlaybackRate(this.playbackRate);\n }\n\n @HostListener('volumechange')\n onVolumeChange(): void {\n this.volume = this.elementRef.nativeElement.volume;\n this.volumeChange.emit(this.volume);\n }\n\n @HostListener('timeupdate')\n @HostListener('seeking')\n @HostListener('seeked')\n onCurrentTimeChange(): void {\n this.currentTimeChange.emit(this.currentTime);\n }\n\n @HostListener('durationchange')\n changeDetectionTrigger(): void {\n // @bad TODO: consider if other events need to trigger CD\n }\n\n private updatePlaybackRate(playbackRate: number): void {\n this.playbackRate = playbackRate;\n this.elementRef.nativeElement.playbackRate = this.playbackRate;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiMediaDirective} from './media.directive';\n\n@NgModule({\n declarations: [TuiMediaDirective],\n exports: [TuiMediaDirective],\n})\nexport class TuiMediaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-overscroll.js","sources":["ng://@taiga-ui/cdk/directives/overscroll/overscroll.directive.ts","ng://@taiga-ui/cdk/directives/overscroll/overscroll.module.ts","ng://@taiga-ui/cdk/directives/overscroll/taiga-ui-cdk-directives-overscroll.ts"],"sourcesContent":["import {Directive, ElementRef, HostBinding, Inject, Input, NgZone} from '@angular/core';\nimport {tuiZonefree, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TuiEventWith, TuiOverscrollModeT} from '@taiga-ui/cdk/types';\nimport {canScroll, getScrollParent} from '@taiga-ui/cdk/utils/dom';\nimport {Observable} from 'rxjs';\nimport {filter, switchMap, takeUntil, tap} from 'rxjs/operators';\n\n/**\n * Directive to isolate scrolling, i.e. prevent body scroll behind modal dialog\n * @dynamic\n */\n@Directive({\n selector: '[tuiOverscroll]',\n providers: [TuiDestroyService],\n})\nexport class TuiOverscrollDirective {\n @Input('tuiOverscroll')\n mode: TuiOverscrollModeT | '' = 'scroll';\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n typedFromEvent(nativeElement, 'wheel', {passive: false})\n .pipe(\n filter(() => this.enabled),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(event => {\n this.processEvent(\n event,\n !!event.deltaY,\n event.deltaY ? event.deltaY < 0 : event.deltaX < 0,\n );\n });\n\n typedFromEvent(nativeElement, 'touchstart', {passive: true})\n .pipe(\n switchMap(({touches}) => {\n let {clientX, clientY} = touches[0];\n let deltaX = 0;\n let deltaY = 0;\n let vertical: boolean;\n\n return typedFromEvent(nativeElement, 'touchmove', {\n passive: false,\n }).pipe(\n filter(() => this.enabled),\n tap(event => {\n // We have to have it in tap instead of subscribe due to variables in closure\n const changedTouch = event.changedTouches[0];\n\n deltaX = clientX - changedTouch.clientX;\n deltaY = clientY - changedTouch.clientY;\n clientX = changedTouch.clientX;\n clientY = changedTouch.clientY;\n\n if (vertical === undefined) {\n vertical = Math.abs(deltaY) > Math.abs(deltaX);\n }\n\n this.processEvent(\n event,\n vertical,\n vertical ? deltaY < 0 : deltaX < 0,\n );\n }),\n );\n }),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe();\n }\n\n get enabled(): boolean {\n return this.mode !== 'none';\n }\n\n @HostBinding('style.overscrollBehavior')\n get overscrollBehavior(): 'contain' | null {\n return this.enabled ? 'contain' : null;\n }\n\n private processEvent(\n event: TuiEventWith<Event, HTMLElement>,\n vertical: boolean,\n negative: boolean,\n ) {\n const {target, currentTarget, cancelable} = event;\n\n // TODO: iframe warning\n if (!cancelable || !(target instanceof Element)) {\n return;\n }\n\n // This is all what's needed in Chrome/Firefox thanks to CSS overscroll-behavior\n if (\n this.mode === 'all' &&\n ((vertical && !currentTarget.contains(getScrollParent(target))) ||\n (!vertical && !currentTarget.contains(getScrollParent(target, false))))\n ) {\n event.preventDefault();\n\n return;\n }\n\n // This is Safari/IE/Edge fallback\n if (\n vertical &&\n ((negative && !canScroll(target, currentTarget, true, false)) ||\n (!negative && !canScroll(target, currentTarget, true, true)))\n ) {\n event.preventDefault();\n\n return;\n }\n\n if (\n !vertical &&\n ((negative && !canScroll(target, currentTarget, false, false)) ||\n (!negative && !canScroll(target, currentTarget, false, true)))\n ) {\n event.preventDefault();\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiOverscrollDirective} from './overscroll.directive';\n\n@NgModule({\n declarations: [TuiOverscrollDirective],\n exports: [TuiOverscrollDirective],\n})\nexport class TuiOverscrollModule {}\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-directives-overscroll.js","sources":["ng://@taiga-ui/cdk/directives/overscroll/overscroll.directive.ts","ng://@taiga-ui/cdk/directives/overscroll/overscroll.module.ts","ng://@taiga-ui/cdk/directives/overscroll/taiga-ui-cdk-directives-overscroll.ts"],"sourcesContent":["import {Directive, ElementRef, HostBinding, Inject, Input, NgZone} from '@angular/core';\nimport {tuiZonefree, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TuiEventWith, TuiOverscrollModeT} from '@taiga-ui/cdk/types';\nimport {canScroll, getScrollParent} from '@taiga-ui/cdk/utils/dom';\nimport {Observable} from 'rxjs';\nimport {filter, switchMap, takeUntil, tap} from 'rxjs/operators';\n\n/**\n * Directive to isolate scrolling, i.e. prevent body scroll behind modal dialog\n * @dynamic\n */\n@Directive({\n selector: '[tuiOverscroll]',\n providers: [TuiDestroyService],\n})\nexport class TuiOverscrollDirective {\n @Input('tuiOverscroll')\n mode: TuiOverscrollModeT | '' = 'scroll';\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n typedFromEvent(nativeElement, 'wheel', {passive: false})\n .pipe(\n filter(() => this.enabled),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(event => {\n this.processEvent(\n event,\n !!event.deltaY,\n event.deltaY ? event.deltaY < 0 : event.deltaX < 0,\n );\n });\n\n typedFromEvent(nativeElement, 'touchstart', {passive: true})\n .pipe(\n switchMap(({touches}) => {\n let {clientX, clientY} = touches[0];\n let deltaX = 0;\n let deltaY = 0;\n let vertical: boolean;\n\n return typedFromEvent(nativeElement, 'touchmove', {\n passive: false,\n }).pipe(\n filter(() => this.enabled),\n tap(event => {\n // We have to have it in tap instead of subscribe due to variables in closure\n const changedTouch = event.changedTouches[0];\n\n deltaX = clientX - changedTouch.clientX;\n deltaY = clientY - changedTouch.clientY;\n clientX = changedTouch.clientX;\n clientY = changedTouch.clientY;\n\n if (vertical === undefined) {\n vertical = Math.abs(deltaY) > Math.abs(deltaX);\n }\n\n this.processEvent(\n event,\n vertical,\n vertical ? deltaY < 0 : deltaX < 0,\n );\n }),\n );\n }),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe();\n }\n\n get enabled(): boolean {\n return this.mode !== 'none';\n }\n\n @HostBinding('style.overscrollBehavior')\n get overscrollBehavior(): 'contain' | null {\n return this.enabled ? 'contain' : null;\n }\n\n private processEvent(\n event: TuiEventWith<Event, HTMLElement>,\n vertical: boolean,\n negative: boolean,\n ): void {\n const {target, currentTarget, cancelable} = event;\n\n // TODO: iframe warning\n if (!cancelable || !(target instanceof Element)) {\n return;\n }\n\n // This is all what's needed in Chrome/Firefox thanks to CSS overscroll-behavior\n if (\n this.mode === 'all' &&\n ((vertical && !currentTarget.contains(getScrollParent(target))) ||\n (!vertical && !currentTarget.contains(getScrollParent(target, false))))\n ) {\n event.preventDefault();\n\n return;\n }\n\n // This is Safari/IE/Edge fallback\n if (\n vertical &&\n ((negative && !canScroll(target, currentTarget, true, false)) ||\n (!negative && !canScroll(target, currentTarget, true, true)))\n ) {\n event.preventDefault();\n\n return;\n }\n\n if (\n !vertical &&\n ((negative && !canScroll(target, currentTarget, false, false)) ||\n (!negative && !canScroll(target, currentTarget, false, true)))\n ) {\n event.preventDefault();\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiOverscrollDirective} from './overscroll.directive';\n\n@NgModule({\n declarations: [TuiOverscrollDirective],\n exports: [TuiOverscrollDirective],\n})\nexport class TuiOverscrollModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { __decorate, __param } from 'tslib';
2
+ import { TemplateRef, Inject, Input, Directive, NgModule } from '@angular/core';
3
+ import { TuiPortalService } from '@taiga-ui/cdk/components/portal-host';
4
+
5
+ let TuiPortalDirective = class TuiPortalDirective {
6
+ constructor(templateRef, portalService) {
7
+ this.templateRef = templateRef;
8
+ this.portalService = portalService;
9
+ }
10
+ set tuiPortal(show) {
11
+ var _a;
12
+ (_a = this.viewRef) === null || _a === void 0 ? void 0 : _a.destroy();
13
+ if (show) {
14
+ this.viewRef = this.portalService.addTemplate(this.templateRef);
15
+ }
16
+ }
17
+ ngOnDestroy() {
18
+ var _a;
19
+ (_a = this.viewRef) === null || _a === void 0 ? void 0 : _a.destroy();
20
+ }
21
+ };
22
+ TuiPortalDirective.ctorParameters = () => [
23
+ { type: TemplateRef, decorators: [{ type: Inject, args: [TemplateRef,] }] },
24
+ { type: TuiPortalService, decorators: [{ type: Inject, args: [TuiPortalService,] }] }
25
+ ];
26
+ __decorate([
27
+ Input()
28
+ ], TuiPortalDirective.prototype, "tuiPortal", null);
29
+ TuiPortalDirective = __decorate([
30
+ Directive({
31
+ selector: '[tuiPortal]',
32
+ }),
33
+ __param(0, Inject(TemplateRef)),
34
+ __param(1, Inject(TuiPortalService))
35
+ ], TuiPortalDirective);
36
+
37
+ let TuiPortalModule = class TuiPortalModule {
38
+ };
39
+ TuiPortalModule = __decorate([
40
+ NgModule({
41
+ declarations: [TuiPortalDirective],
42
+ exports: [TuiPortalDirective],
43
+ })
44
+ ], TuiPortalModule);
45
+
46
+ /**
47
+ * Generated bundle index. Do not edit.
48
+ */
49
+
50
+ export { TuiPortalDirective, TuiPortalModule };
51
+ //# sourceMappingURL=taiga-ui-cdk-directives-portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-cdk-directives-portal.js","sources":["ng://@taiga-ui/cdk/directives/portal/portal.directive.ts","ng://@taiga-ui/cdk/directives/portal/portal.module.ts","ng://@taiga-ui/cdk/directives/portal/taiga-ui-cdk-directives-portal.ts"],"sourcesContent":["import {\n Directive,\n EmbeddedViewRef,\n Inject,\n Input,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\nimport {TuiPortalService} from '@taiga-ui/cdk/components/portal-host';\n\n@Directive({\n selector: '[tuiPortal]',\n})\nexport class TuiPortalDirective implements OnDestroy {\n private viewRef?: EmbeddedViewRef<unknown>;\n\n @Input()\n set tuiPortal(show: boolean) {\n this.viewRef?.destroy();\n\n if (show) {\n this.viewRef = this.portalService.addTemplate(this.templateRef);\n }\n }\n\n constructor(\n @Inject(TemplateRef)\n private readonly templateRef: TemplateRef<Record<string, unknown>>,\n @Inject(TuiPortalService) private readonly portalService: TuiPortalService,\n ) {}\n\n ngOnDestroy(): void {\n this.viewRef?.destroy();\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiPortalDirective} from './portal.directive';\n\n@NgModule({\n declarations: [TuiPortalDirective],\n exports: [TuiPortalDirective],\n})\nexport class TuiPortalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;IAaa,kBAAkB,GAA/B,MAAa,kBAAkB;IAY3B,YAEqB,WAAiD,EACvB,aAA+B;QADzD,gBAAW,GAAX,WAAW,CAAsC;QACvB,kBAAa,GAAb,aAAa,CAAkB;KAC1E;IAZJ,IAAI,SAAS,CAAC,IAAa;;QACvB,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,GAAG;QAExB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACnE;KACJ;IAQD,WAAW;;QACP,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,GAAG;KAC3B;EACJ;;YAPqC,WAAW,uBADxC,MAAM,SAAC,WAAW;YAEuC,gBAAgB,uBAAzE,MAAM,SAAC,gBAAgB;;AAX5B;IADC,KAAK,EAAE;mDAOP;AAVQ,kBAAkB;IAH9B,SAAS,CAAC;QACP,QAAQ,EAAE,aAAa;KAC1B,CAAC;IAcO,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;IAEnB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;GAfpB,kBAAkB,CAqB9B;;IC1BY,eAAe,GAA5B,MAAa,eAAe;EAAG;AAAlB,eAAe;IAJ3B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;QAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAChC,CAAC;GACW,eAAe,CAAG;;ACR/B;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-repeat-times.js","sources":["ng://@taiga-ui/cdk/directives/repeat-times/repeat-times.directive.ts","ng://@taiga-ui/cdk/directives/repeat-times/repeat-times.module.ts","ng://@taiga-ui/cdk/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.ts"],"sourcesContent":["import {Directive, Inject, Input, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {tuiRequiredSetter} from '@taiga-ui/cdk/decorators';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk/interfaces';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\n\nconst MAX_VALUE = 0x10000;\n\nexport class TuiRepeatTimesContext implements TuiContextWithImplicit<number> {\n constructor(readonly $implicit: number) {}\n}\n\n/**\n * Directive similar to ngFor but using a number of repetitions rather than an array\n *\n * {@link TuiRepeatTimesDirective.tuiRepeatTimesOf requested number of times}.\n * {@link TuiRepeatTimesContext context} for every instance of the template inherits outer context and stores\n * {@link TuiRepeatTimesContext.$implicit index} of a template instance.\n */\n@Directive({\n selector: '[tuiRepeatTimes][tuiRepeatTimesOf]',\n})\nexport class TuiRepeatTimesDirective {\n @Input()\n @tuiRequiredSetter()\n set tuiRepeatTimesOf(count: number) {\n const safeCount = Math.floor(clamp(count, 0, MAX_VALUE));\n\n const {length} = this.viewContainer;\n\n if (count < length) {\n this.removeContainers(length - count);\n } else {\n this.addContainers(safeCount);\n }\n }\n\n constructor(\n @Inject(ViewContainerRef)\n private readonly viewContainer: ViewContainerRef,\n @Inject(TemplateRef)\n private readonly templateRef: TemplateRef<TuiRepeatTimesContext>,\n ) {}\n\n private addContainers(count: number) {\n for (let index = this.viewContainer.length; index < count; index++) {\n this.viewContainer.createEmbeddedView<TuiRepeatTimesContext>(\n this.templateRef,\n new TuiRepeatTimesContext(index),\n );\n }\n }\n\n private removeContainers(amount: number) {\n for (let index = 0; index < amount; index++) {\n this.viewContainer.remove();\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiRepeatTimesDirective} from './repeat-times.directive';\n\n@NgModule({\n declarations: [TuiRepeatTimesDirective],\n exports: [TuiRepeatTimesDirective],\n})\nexport class TuiRepeatTimesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAKA,MAAM,SAAS,GAAG,OAAO,CAAC;MAEb,qBAAqB;IAC9B,YAAqB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;KAAI;CAC7C;AAED;;;;;;;IAUa,uBAAuB,GAApC,MAAa,uBAAuB;IAehC,YAEqB,aAA+B,EAE/B,WAA+C;QAF/C,kBAAa,GAAb,aAAa,CAAkB;QAE/B,gBAAW,GAAX,WAAW,CAAoC;KAChE;IAjBJ,IAAI,gBAAgB,CAAC,KAAa;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAEzD,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAEpC,IAAI,KAAK,GAAG,MAAM,EAAE;YAChB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;SACzC;aAAM;YACH,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SACjC;KACJ;IASO,aAAa,CAAC,KAAa;QAC/B,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;YAChE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACjC,IAAI,CAAC,WAAW,EAChB,IAAI,qBAAqB,CAAC,KAAK,CAAC,CACnC,CAAC;SACL;KACJ;IAEO,gBAAgB,CAAC,MAAc;QACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;SAC/B;KACJ;EACJ;;YAnBuC,gBAAgB,uBAD/C,MAAM,SAAC,gBAAgB;YAGM,WAAW,uBADxC,MAAM,SAAC,WAAW;;AAfvB;IAFC,KAAK,EAAE;IACP,iBAAiB,EAAE;+DAWnB;AAbQ,uBAAuB;IAHnC,SAAS,CAAC;QACP,QAAQ,EAAE,oCAAoC;KACjD,CAAC;IAiBO,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAExB,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;GAlBf,uBAAuB,CAoCnC;;ICjDY,oBAAoB,GAAjC,MAAa,oBAAoB;EAAG;AAAvB,oBAAoB;IAJhC,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,uBAAuB,CAAC;QACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;KACrC,CAAC;GACW,oBAAoB,CAAG;;ACRpC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-repeat-times.js","sources":["ng://@taiga-ui/cdk/directives/repeat-times/repeat-times.directive.ts","ng://@taiga-ui/cdk/directives/repeat-times/repeat-times.module.ts","ng://@taiga-ui/cdk/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.ts"],"sourcesContent":["import {Directive, Inject, Input, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {tuiRequiredSetter} from '@taiga-ui/cdk/decorators';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk/interfaces';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\n\nconst MAX_VALUE = 0x10000;\n\nexport class TuiRepeatTimesContext implements TuiContextWithImplicit<number> {\n constructor(readonly $implicit: number) {}\n}\n\n/**\n * Directive similar to ngFor but using a number of repetitions rather than an array\n *\n * {@link TuiRepeatTimesDirective.tuiRepeatTimesOf requested number of times}.\n * {@link TuiRepeatTimesContext context} for every instance of the template inherits outer context and stores\n * {@link TuiRepeatTimesContext.$implicit index} of a template instance.\n */\n@Directive({\n selector: '[tuiRepeatTimes][tuiRepeatTimesOf]',\n})\nexport class TuiRepeatTimesDirective {\n @Input()\n @tuiRequiredSetter()\n set tuiRepeatTimesOf(count: number) {\n const safeCount = Math.floor(clamp(count, 0, MAX_VALUE));\n\n const {length} = this.viewContainer;\n\n if (count < length) {\n this.removeContainers(length - count);\n } else {\n this.addContainers(safeCount);\n }\n }\n\n constructor(\n @Inject(ViewContainerRef)\n private readonly viewContainer: ViewContainerRef,\n @Inject(TemplateRef)\n private readonly templateRef: TemplateRef<TuiRepeatTimesContext>,\n ) {}\n\n private addContainers(count: number): void {\n for (let index = this.viewContainer.length; index < count; index++) {\n this.viewContainer.createEmbeddedView<TuiRepeatTimesContext>(\n this.templateRef,\n new TuiRepeatTimesContext(index),\n );\n }\n }\n\n private removeContainers(amount: number): void {\n for (let index = 0; index < amount; index++) {\n this.viewContainer.remove();\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiRepeatTimesDirective} from './repeat-times.directive';\n\n@NgModule({\n declarations: [TuiRepeatTimesDirective],\n exports: [TuiRepeatTimesDirective],\n})\nexport class TuiRepeatTimesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAKA,MAAM,SAAS,GAAG,OAAO,CAAC;MAEb,qBAAqB;IAC9B,YAAqB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;KAAI;CAC7C;AAED;;;;;;;IAUa,uBAAuB,GAApC,MAAa,uBAAuB;IAehC,YAEqB,aAA+B,EAE/B,WAA+C;QAF/C,kBAAa,GAAb,aAAa,CAAkB;QAE/B,gBAAW,GAAX,WAAW,CAAoC;KAChE;IAjBJ,IAAI,gBAAgB,CAAC,KAAa;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAEzD,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAEpC,IAAI,KAAK,GAAG,MAAM,EAAE;YAChB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;SACzC;aAAM;YACH,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SACjC;KACJ;IASO,aAAa,CAAC,KAAa;QAC/B,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;YAChE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACjC,IAAI,CAAC,WAAW,EAChB,IAAI,qBAAqB,CAAC,KAAK,CAAC,CACnC,CAAC;SACL;KACJ;IAEO,gBAAgB,CAAC,MAAc;QACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;SAC/B;KACJ;EACJ;;YAnBuC,gBAAgB,uBAD/C,MAAM,SAAC,gBAAgB;YAGM,WAAW,uBADxC,MAAM,SAAC,WAAW;;AAfvB;IAFC,KAAK,EAAE;IACP,iBAAiB,EAAE;+DAWnB;AAbQ,uBAAuB;IAHnC,SAAS,CAAC;QACP,QAAQ,EAAE,oCAAoC;KACjD,CAAC;IAiBO,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAExB,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;GAlBf,uBAAuB,CAoCnC;;ICjDY,oBAAoB,GAAjC,MAAa,oBAAoB;EAAG;AAAvB,oBAAoB;IAJhC,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,uBAAuB,CAAC;QACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;KACrC,CAAC;GACW,oBAAoB,CAAG;;ACRpC;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-validator.js","sources":["ng://@taiga-ui/cdk/directives/validator/validator.directive.ts","ng://@taiga-ui/cdk/directives/validator/validator.module.ts","ng://@taiga-ui/cdk/directives/validator/taiga-ui-cdk-directives-validator.ts"],"sourcesContent":["import {Directive, forwardRef, Input, OnChanges, OnDestroy} from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\n@Directive({\n selector: '[tuiValidator]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TuiValidatorDirective),\n multi: true,\n },\n ],\n})\nexport class TuiValidatorDirective implements Validator, OnChanges, OnDestroy {\n private onChange = EMPTY_FUNCTION;\n\n @Input()\n @tuiDefaultProp()\n tuiValidator: ValidatorFn = Validators.nullValidator;\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.tuiValidator(control);\n }\n\n registerOnValidatorChange(onChange: Function) {\n this.onChange = onChange;\n }\n\n ngOnChanges() {\n this.onChange();\n }\n\n ngOnDestroy() {\n this.tuiValidator = Validators.nullValidator;\n this.onChange();\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiValidatorDirective} from './validator.directive';\n\n@NgModule({\n declarations: [TuiValidatorDirective],\n exports: [TuiValidatorDirective],\n})\nexport class TuiValidatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;IAsBa,qBAAqB,6BAAlC,MAAa,qBAAqB;IAAlC;QACY,aAAQ,GAAG,cAAc,CAAC;QAIlC,iBAAY,GAAgB,UAAU,CAAC,aAAa,CAAC;KAkBxD;IAhBG,QAAQ,CAAC,OAAwB;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;KACrC;IAED,yBAAyB,CAAC,QAAkB;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;IAED,WAAW;QACP,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;IAED,WAAW;QACP,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;EACJ;AAlBG;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;2DACoC;AAL5C,qBAAqB;IAVjC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAqB,CAAC;gBACpD,KAAK,EAAE,IAAI;aACd;SACJ;KACJ,CAAC;GACW,qBAAqB,CAuBjC;;ICrCY,kBAAkB,GAA/B,MAAa,kBAAkB;EAAG;AAArB,kBAAkB;IAJ9B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;KACnC,CAAC;GACW,kBAAkB,CAAG;;ACRlC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-validator.js","sources":["ng://@taiga-ui/cdk/directives/validator/validator.directive.ts","ng://@taiga-ui/cdk/directives/validator/validator.module.ts","ng://@taiga-ui/cdk/directives/validator/taiga-ui-cdk-directives-validator.ts"],"sourcesContent":["import {Directive, forwardRef, Input, OnChanges, OnDestroy} from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\n@Directive({\n selector: '[tuiValidator]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TuiValidatorDirective),\n multi: true,\n },\n ],\n})\nexport class TuiValidatorDirective implements Validator, OnChanges, OnDestroy {\n private onChange = EMPTY_FUNCTION;\n\n @Input()\n @tuiDefaultProp()\n tuiValidator: ValidatorFn = Validators.nullValidator;\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.tuiValidator(control);\n }\n\n registerOnValidatorChange(onChange: (...args: any[]) => void): void {\n this.onChange = onChange;\n }\n\n ngOnChanges(): void {\n this.onChange();\n }\n\n ngOnDestroy(): void {\n this.tuiValidator = Validators.nullValidator;\n this.onChange();\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiValidatorDirective} from './validator.directive';\n\n@NgModule({\n declarations: [TuiValidatorDirective],\n exports: [TuiValidatorDirective],\n})\nexport class TuiValidatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;IAsBa,qBAAqB,6BAAlC,MAAa,qBAAqB;IAAlC;QACY,aAAQ,GAAG,cAAc,CAAC;QAIlC,iBAAY,GAAgB,UAAU,CAAC,aAAa,CAAC;KAkBxD;IAhBG,QAAQ,CAAC,OAAwB;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;KACrC;IAED,yBAAyB,CAAC,QAAkC;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;IAED,WAAW;QACP,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;IAED,WAAW;QACP,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;EACJ;AAlBG;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;2DACoC;AAL5C,qBAAqB;IAVjC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAqB,CAAC;gBACpD,KAAK,EAAE,IAAI;aACd;SACJ;KACJ,CAAC;GACW,qBAAqB,CAuBjC;;ICrCY,kBAAkB,GAA/B,MAAa,kBAAkB;EAAG;AAArB,kBAAkB;IAJ9B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;KACnC,CAAC;GACW,kBAAkB,CAAG;;ACRlC;;;;;;"}
@@ -19,6 +19,7 @@ export * from '@taiga-ui/cdk/directives/media';
19
19
  export * from '@taiga-ui/cdk/directives/obscured';
20
20
  export * from '@taiga-ui/cdk/directives/overscroll';
21
21
  export * from '@taiga-ui/cdk/directives/pan';
22
+ export * from '@taiga-ui/cdk/directives/portal';
22
23
  export * from '@taiga-ui/cdk/directives/pressed';
23
24
  export * from '@taiga-ui/cdk/directives/prevent-default';
24
25
  export * from '@taiga-ui/cdk/directives/repeat-times';
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives.js","sources":["ng://@taiga-ui/cdk/directives/taiga-ui-cdk-directives.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-directives.js","sources":["ng://@taiga-ui/cdk/directives/taiga-ui-cdk-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;"}
@@ -96,7 +96,7 @@ function preventDefault() {
96
96
 
97
97
  /**
98
98
  * Turns AbstractControl/Abstract-control-directive valueChanges into ReplaySubject(1)
99
- * TODO: rename function in 3.0. The name should be shorter.
99
+ * TODO: 3.0 name should be shorter.
100
100
  */
101
101
  function tuiReplayedValueChangesFrom(control) {
102
102
  return new Observable(subscriber => {