@taiga-ui/cdk 4.52.0-canary.e444d19 → 4.52.0-canary.e53e79e

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 (303) hide show
  1. package/README.md +1 -1
  2. package/classes/control.d.ts +4 -6
  3. package/classes/index.d.ts +0 -1
  4. package/constants/index.d.ts +0 -1
  5. package/constants/used-icons.d.ts +2 -2
  6. package/constants/version.d.ts +1 -1
  7. package/constants/version.js +1 -1
  8. package/date-time/date-fillers.d.ts +5 -5
  9. package/date-time/day-range.d.ts +1 -1
  10. package/date-time/day.d.ts +4 -4
  11. package/date-time/time.d.ts +2 -2
  12. package/date-time/types.d.ts +1 -12
  13. package/directives/active-zone/active-zone.directive.d.ts +4 -5
  14. package/directives/animated/animated.directive.d.ts +1 -4
  15. package/directives/animated/index.d.ts +0 -1
  16. package/directives/auto-focus/autofocus.directive.d.ts +2 -3
  17. package/directives/auto-focus/autofocus.options.d.ts +2 -2
  18. package/directives/copy-processor/copy-processor.directive.d.ts +2 -2
  19. package/directives/hovered/hovered.directive.d.ts +1 -2
  20. package/directives/index.d.ts +1 -5
  21. package/directives/media/media.directive.d.ts +8 -12
  22. package/directives/native-validator/native-validator.directive.d.ts +2 -2
  23. package/directives/obscured/obscured.directive.d.ts +4 -4
  24. package/directives/pan/pan.directive.d.ts +1 -2
  25. package/directives/platform/platform.directive.d.ts +2 -2
  26. package/directives/resizer/resizer.directive.d.ts +3 -4
  27. package/directives/swipe/swipe.directive.d.ts +1 -2
  28. package/directives/transitioned/transitioned.directive.d.ts +1 -0
  29. package/directives/value-changes/value-changes.directive.d.ts +2 -2
  30. package/directives/with-styles/index.d.ts +1 -0
  31. package/directives/with-styles/with-styles.directive.d.ts +10 -0
  32. package/fesm2022/taiga-ui-cdk-classes.mjs +8 -91
  33. package/fesm2022/taiga-ui-cdk-classes.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-cdk-constants.mjs +15 -17
  35. package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-cdk-date-time.mjs +35 -23
  37. package/fesm2022/taiga-ui-cdk-date-time.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs +28 -37
  39. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-cdk-directives-animated.mjs +38 -84
  41. package/fesm2022/taiga-ui-cdk-directives-animated.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs +10 -13
  43. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-cdk-directives-control.mjs +3 -4
  45. package/fesm2022/taiga-ui-cdk-directives-control.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs +7 -10
  47. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-cdk-directives-element.mjs +3 -4
  49. package/fesm2022/taiga-ui-cdk-directives-element.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs +12 -23
  51. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-cdk-directives-font-size.mjs +4 -7
  53. package/fesm2022/taiga-ui-cdk-directives-font-size.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs +3 -4
  55. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs +10 -13
  57. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-cdk-directives-item.mjs +3 -4
  59. package/fesm2022/taiga-ui-cdk-directives-item.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-cdk-directives-media.mjs +32 -57
  61. package/fesm2022/taiga-ui-cdk-directives-media.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs +7 -10
  63. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs.map +1 -1
  64. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs +13 -19
  65. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-cdk-directives-pan.mjs +10 -12
  67. package/fesm2022/taiga-ui-cdk-directives-pan.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-cdk-directives-platform.mjs +9 -12
  69. package/fesm2022/taiga-ui-cdk-directives-platform.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-cdk-directives-resizer.mjs +19 -23
  71. package/fesm2022/taiga-ui-cdk-directives-resizer.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-cdk-directives-swipe.mjs +10 -12
  73. package/fesm2022/taiga-ui-cdk-directives-swipe.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs +7 -14
  75. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-cdk-directives-validator.mjs +3 -4
  77. package/fesm2022/taiga-ui-cdk-directives-validator.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs +8 -9
  79. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs.map +1 -1
  80. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs +3 -4
  81. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs +29 -0
  83. package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs.map +1 -0
  84. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs +6 -7
  85. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs.map +1 -1
  86. package/fesm2022/taiga-ui-cdk-directives.mjs +1 -5
  87. package/fesm2022/taiga-ui-cdk-directives.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-cdk-observables.mjs +10 -28
  89. package/fesm2022/taiga-ui-cdk-observables.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-cdk-pipes-filter.mjs +3 -4
  91. package/fesm2022/taiga-ui-cdk-pipes-filter.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs +3 -4
  93. package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs +5 -5
  95. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-cdk-pipes.mjs +0 -6
  97. package/fesm2022/taiga-ui-cdk-pipes.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-cdk-portals.mjs +126 -0
  99. package/fesm2022/taiga-ui-cdk-portals.mjs.map +1 -0
  100. package/fesm2022/taiga-ui-cdk-tokens.mjs +19 -52
  101. package/fesm2022/taiga-ui-cdk-tokens.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-cdk-utils-browser.mjs +3 -26
  103. package/fesm2022/taiga-ui-cdk-utils-browser.mjs.map +1 -1
  104. package/fesm2022/taiga-ui-cdk-utils-di.mjs +46 -6
  105. package/fesm2022/taiga-ui-cdk-utils-di.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-cdk-utils-dom.mjs +16 -96
  107. package/fesm2022/taiga-ui-cdk-utils-dom.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-cdk-utils-focus.mjs +27 -44
  109. package/fesm2022/taiga-ui-cdk-utils-focus.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-cdk-utils-math.mjs +1 -12
  111. package/fesm2022/taiga-ui-cdk-utils-math.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs +45 -125
  113. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-cdk-utils.mjs +0 -1
  115. package/fesm2022/taiga-ui-cdk-utils.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-cdk.mjs +1 -1
  117. package/index.d.ts +1 -1
  118. package/observables/index.d.ts +0 -2
  119. package/package.json +21 -63
  120. package/pipes/index.d.ts +0 -6
  121. package/pipes/obfuscate/obfuscate.options.d.ts +2 -2
  122. package/portals/directive.d.ts +11 -0
  123. package/portals/index.d.ts +4 -0
  124. package/portals/portal.d.ts +24 -0
  125. package/portals/portals.d.ts +12 -0
  126. package/portals/service.d.ts +15 -0
  127. package/schematics/collection.json +2 -1
  128. package/schematics/migrate-tui-let/index.js +4 -3
  129. package/schematics/migrate-tui-let/index.js.map +1 -1
  130. package/schematics/migrate-tui-let/schema.json +7 -0
  131. package/schematics/ng-add/constants/versions.d.ts +1 -1
  132. package/schematics/ng-update/interfaces/html-comment.d.ts +1 -1
  133. package/schematics/ng-update/interfaces/removable-input.d.ts +1 -1
  134. package/schematics/ng-update/interfaces/replacement-attribute-to-directive.d.ts +1 -1
  135. package/schematics/ng-update/interfaces/replacement-attribute-value.d.ts +1 -1
  136. package/schematics/ng-update/interfaces/replacement-attribute.d.ts +1 -1
  137. package/schematics/ng-update/interfaces/replacement-tag.d.ts +1 -1
  138. package/schematics/ng-update/{v4/steps → utils}/replace-functions.d.ts +1 -1
  139. package/schematics/ng-update/{v4/steps → utils}/replace-functions.js +1 -1
  140. package/schematics/ng-update/utils/replace-functions.js.map +1 -0
  141. package/schematics/ng-update/v4/index.js +1 -1
  142. package/schematics/ng-update/v4/index.js.map +1 -1
  143. package/schematics/ng-update/v4/migrate-css-vars/rename-css-vars.js +1 -1
  144. package/schematics/ng-update/v4/migrate-css-vars/rename-css-vars.js.map +1 -1
  145. package/schematics/ng-update/v4/steps/constants/migration-warnings.js +1 -1
  146. package/schematics/ng-update/v4/steps/constants/migration-warnings.js.map +1 -1
  147. package/schematics/ng-update/v4/steps/migrate-templates.d.ts +2 -2
  148. package/schematics/ng-update/v4/steps/restore-tui-mapper.js +1 -1
  149. package/schematics/ng-update/v4/steps/restore-tui-mapper.js.map +1 -1
  150. package/schematics/ng-update/v4/steps/restore-tui-matcher.js +1 -1
  151. package/schematics/ng-update/v4/steps/restore-tui-matcher.js.map +1 -1
  152. package/schematics/ng-update/v4/steps/styles/migrate-space-mixins.js +1 -1
  153. package/schematics/ng-update/v4/steps/styles/migrate-space-mixins.js.map +1 -1
  154. package/schematics/ng-update/v5/index.js +12 -0
  155. package/schematics/ng-update/v5/index.js.map +1 -1
  156. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.d.ts +2 -0
  157. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js +22 -0
  158. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js.map +1 -0
  159. package/schematics/ng-update/v5/steps/constants/functions.d.ts +2 -0
  160. package/schematics/ng-update/v5/steps/constants/functions.js +67 -0
  161. package/schematics/ng-update/v5/steps/constants/functions.js.map +1 -0
  162. package/schematics/ng-update/v5/steps/constants/html-comments.d.ts +2 -0
  163. package/schematics/ng-update/v5/steps/constants/html-comments.js +11 -0
  164. package/schematics/ng-update/v5/steps/constants/html-comments.js.map +1 -0
  165. package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.d.ts +2 -0
  166. package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js +22 -0
  167. package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js.map +1 -0
  168. package/schematics/ng-update/v5/steps/migrate-templates.d.ts +17 -0
  169. package/schematics/ng-update/v5/steps/migrate-templates.js +46 -0
  170. package/schematics/ng-update/v5/steps/migrate-templates.js.map +1 -0
  171. package/schematics/ng-update/v5/steps/templates/migrate-avatar.d.ts +8 -0
  172. package/schematics/ng-update/v5/steps/templates/migrate-avatar.js +111 -0
  173. package/schematics/ng-update/v5/steps/templates/migrate-avatar.js.map +1 -0
  174. package/schematics/ng-update/v5/steps/templates/migrate-input-year.d.ts +8 -0
  175. package/schematics/ng-update/v5/steps/templates/migrate-input-year.js +52 -0
  176. package/schematics/ng-update/v5/steps/templates/migrate-input-year.js.map +1 -0
  177. package/schematics/utils/angular-json-manipulations.js +0 -2
  178. package/schematics/utils/angular-json-manipulations.js.map +1 -1
  179. package/schematics/utils/run-migration.d.ts +14 -0
  180. package/schematics/utils/run-migration.js +27 -0
  181. package/schematics/utils/run-migration.js.map +1 -0
  182. package/schematics/utils/templates/elements.js +4 -12
  183. package/schematics/utils/templates/elements.js.map +1 -1
  184. package/schematics/utils/templates/ng-component-input-manipulations.d.ts +3 -3
  185. package/schematics/utils/templates/ng-component-input-manipulations.js +1 -3
  186. package/schematics/utils/templates/ng-component-input-manipulations.js.map +1 -1
  187. package/tokens/environment.d.ts +5 -13
  188. package/tokens/index.d.ts +0 -2
  189. package/tokens/removed-element.d.ts +0 -3
  190. package/types/index.d.ts +0 -2
  191. package/utils/browser/index.d.ts +0 -2
  192. package/utils/di/create-options.d.ts +2 -2
  193. package/utils/di/index.d.ts +3 -0
  194. package/utils/di/provide-options.d.ts +2 -0
  195. package/utils/dom/get-element-obscurers.d.ts +1 -1
  196. package/utils/dom/index.d.ts +0 -6
  197. package/utils/focus/get-closest-focusable.d.ts +1 -6
  198. package/utils/focus/{get-native-focused.d.ts → get-focused.d.ts} +1 -1
  199. package/utils/focus/index.d.ts +4 -6
  200. package/utils/focus/{is-native-keyboard-focusable.d.ts → is-focusable.d.ts} +1 -1
  201. package/utils/focus/{is-native-focused-in.d.ts → is-focused-in.d.ts} +1 -1
  202. package/utils/focus/{is-native-focused.d.ts → is-focused.d.ts} +1 -1
  203. package/utils/index.d.ts +0 -1
  204. package/utils/math/index.d.ts +0 -2
  205. package/utils/miscellaneous/generate-id.d.ts +1 -0
  206. package/utils/miscellaneous/index.d.ts +2 -11
  207. package/utils/miscellaneous/sanitize-text.d.ts +23 -0
  208. package/classes/portals.d.ts +0 -33
  209. package/constants/allow-signal-writes.d.ts +0 -2
  210. package/directives/animated/animated-parent.directive.d.ts +0 -10
  211. package/directives/click-outside/click-outside.directive.d.ts +0 -14
  212. package/directives/click-outside/index.d.ts +0 -1
  213. package/directives/droppable/droppable.directive.d.ts +0 -8
  214. package/directives/droppable/index.d.ts +0 -1
  215. package/directives/let/index.d.ts +0 -2
  216. package/directives/let/let-context.d.ts +0 -11
  217. package/directives/let/let.directive.d.ts +0 -19
  218. package/directives/popover/index.d.ts +0 -1
  219. package/directives/popover/popover.directive.d.ts +0 -14
  220. package/directives/repeat-times/index.d.ts +0 -1
  221. package/directives/repeat-times/repeat-times.directive.d.ts +0 -22
  222. package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs +0 -39
  223. package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs.map +0 -1
  224. package/fesm2022/taiga-ui-cdk-directives-droppable.mjs +0 -37
  225. package/fesm2022/taiga-ui-cdk-directives-droppable.mjs.map +0 -1
  226. package/fesm2022/taiga-ui-cdk-directives-let.mjs +0 -54
  227. package/fesm2022/taiga-ui-cdk-directives-let.mjs.map +0 -1
  228. package/fesm2022/taiga-ui-cdk-directives-popover.mjs +0 -32
  229. package/fesm2022/taiga-ui-cdk-directives-popover.mjs.map +0 -1
  230. package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs +0 -61
  231. package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs.map +0 -1
  232. package/fesm2022/taiga-ui-cdk-pipes-animation.mjs +0 -33
  233. package/fesm2022/taiga-ui-cdk-pipes-animation.mjs.map +0 -1
  234. package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs +0 -25
  235. package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs.map +0 -1
  236. package/fesm2022/taiga-ui-cdk-pipes-keys.mjs +0 -24
  237. package/fesm2022/taiga-ui-cdk-pipes-keys.mjs.map +0 -1
  238. package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs +0 -25
  239. package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs.map +0 -1
  240. package/fesm2022/taiga-ui-cdk-pipes-replace.mjs +0 -26
  241. package/fesm2022/taiga-ui-cdk-pipes-replace.mjs.map +0 -1
  242. package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs +0 -24
  243. package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs.map +0 -1
  244. package/fesm2022/taiga-ui-cdk-services.mjs +0 -151
  245. package/fesm2022/taiga-ui-cdk-services.mjs.map +0 -1
  246. package/fesm2022/taiga-ui-cdk-utils-color.mjs +0 -195
  247. package/fesm2022/taiga-ui-cdk-utils-color.mjs.map +0 -1
  248. package/observables/must-be-present.d.ts +0 -5
  249. package/observables/query-list-observable.d.ts +0 -6
  250. package/pipes/animation/animation.pipe.d.ts +0 -13
  251. package/pipes/animation/index.d.ts +0 -1
  252. package/pipes/is-present/index.d.ts +0 -1
  253. package/pipes/is-present/is-present.pipe.d.ts +0 -7
  254. package/pipes/keys/index.d.ts +0 -1
  255. package/pipes/keys/keys.pipe.d.ts +0 -7
  256. package/pipes/repeat-times/index.d.ts +0 -7
  257. package/pipes/replace/index.d.ts +0 -1
  258. package/pipes/replace/replace.pipe.d.ts +0 -7
  259. package/pipes/to-array/index.d.ts +0 -1
  260. package/pipes/to-array/to-array.pipe.d.ts +0 -7
  261. package/schematics/ng-update/v4/steps/replace-functions.js.map +0 -1
  262. package/services/id.service.d.ts +0 -8
  263. package/services/index.d.ts +0 -4
  264. package/services/popover.service.d.ts +0 -25
  265. package/services/scroll.service.d.ts +0 -13
  266. package/services/theme-color.service.d.ts +0 -18
  267. package/tokens/base-href.d.ts +0 -2
  268. package/tokens/range.d.ts +0 -5
  269. package/types/safe-html.d.ts +0 -2
  270. package/types/values-of.d.ts +0 -1
  271. package/utils/browser/is-apple.d.ts +0 -11
  272. package/utils/browser/is-ios.d.ts +0 -6
  273. package/utils/color/get-gradient-data.d.ts +0 -1
  274. package/utils/color/hex-to-rgb.d.ts +0 -1
  275. package/utils/color/hex-to-rgba.d.ts +0 -3
  276. package/utils/color/hsv-to-rgb.d.ts +0 -4
  277. package/utils/color/index.d.ts +0 -9
  278. package/utils/color/parse-color.d.ts +0 -1
  279. package/utils/color/parse-gradient.d.ts +0 -10
  280. package/utils/color/rgb-to-hex.d.ts +0 -1
  281. package/utils/color/rgb-to-hsv.d.ts +0 -1
  282. package/utils/color/rgba-to-hex.d.ts +0 -2
  283. package/utils/dom/get-element-point.d.ts +0 -2
  284. package/utils/dom/is-current-target.d.ts +0 -1
  285. package/utils/dom/is-inside-iframe.d.ts +0 -4
  286. package/utils/dom/is-node-in.d.ts +0 -8
  287. package/utils/dom/retarget-boundary-crossing.d.ts +0 -1
  288. package/utils/dom/value-binding.d.ts +0 -3
  289. package/utils/focus/blur-native-focused.d.ts +0 -4
  290. package/utils/focus/is-native-mouse-focusable.d.ts +0 -1
  291. package/utils/math/to-integer.d.ts +0 -1
  292. package/utils/math/to-radians.d.ts +0 -4
  293. package/utils/miscellaneous/change-date-separator.d.ts +0 -1
  294. package/utils/miscellaneous/create-token.d.ts +0 -9
  295. package/utils/miscellaneous/directive-listener.d.ts +0 -9
  296. package/utils/miscellaneous/flat-length.d.ts +0 -6
  297. package/utils/miscellaneous/get-original-array-from-query-list.d.ts +0 -8
  298. package/utils/miscellaneous/is-falsy.d.ts +0 -1
  299. package/utils/miscellaneous/is-valid-url.d.ts +0 -4
  300. package/utils/miscellaneous/provide-options.d.ts +0 -2
  301. package/utils/miscellaneous/uniq-by.d.ts +0 -1
  302. /package/utils/{miscellaneous → di}/directive-binding.d.ts +0 -0
  303. /package/utils/{miscellaneous → di}/provide.d.ts +0 -0
@@ -1,65 +1,55 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Input, Output, Directive } from '@angular/core';
2
+ import { effect, untracked, input, model, Directive } from '@angular/core';
3
3
  import { tuiInjectElement } from '@taiga-ui/cdk/utils';
4
4
 
5
5
  class TuiMedia {
6
6
  constructor() {
7
7
  this.el = tuiInjectElement();
8
- this.playbackRate = 1;
9
- this.volume = 1;
10
- this.currentTimeChange = new EventEmitter();
11
- this.pausedChange = new EventEmitter();
12
- this.volumeChange = new EventEmitter();
13
- }
14
- set playbackRateSetter(playbackRate) {
15
- this.updatePlaybackRate(playbackRate);
16
- }
17
- set currentTime(currentTime) {
18
- if (Math.abs(currentTime - this.currentTime) > 0.05) {
19
- this.el.currentTime = currentTime;
20
- }
21
- }
22
- set paused(paused) {
23
- if (paused) {
24
- this.el.pause?.();
25
- }
26
- else {
27
- void this.el.play?.();
28
- this.updatePlaybackRate(this.playbackRate);
29
- }
30
- }
31
- get currentTime() {
32
- return this.el.currentTime ?? 0;
33
- }
34
- get paused() {
35
- return this.el.paused;
8
+ this.setElCurrentTime = effect(() => {
9
+ if (Math.abs(this.currentTime() - this.el.currentTime) > 0.05) {
10
+ this.el.currentTime = this.currentTime();
11
+ }
12
+ });
13
+ this.setElPlaybackRate = effect(() => {
14
+ this.updatePlaybackRate(this.playbackRate());
15
+ });
16
+ this.setElPaused = effect(() => {
17
+ const paused = this.paused();
18
+ if (paused) {
19
+ this.el.pause?.();
20
+ }
21
+ else {
22
+ void this.el.play?.();
23
+ }
24
+ this.updatePlaybackRate(untracked(this.playbackRate));
25
+ });
26
+ this.playbackRate = input(1);
27
+ this.volume = model(1);
28
+ this.currentTime = model(this.el.currentTime ?? 0);
29
+ this.paused = model(this.el.paused);
36
30
  }
37
31
  onPausedChange(paused) {
38
- this.pausedChange.emit(paused);
39
- this.updatePlaybackRate(this.playbackRate);
32
+ this.paused.set(paused);
40
33
  }
41
34
  onVolumeChange() {
42
- this.volume = this.el.volume;
43
- this.volumeChange.emit(this.volume);
35
+ this.volume.set(this.el.volume);
44
36
  }
45
37
  onCurrentTimeChange() {
46
- this.currentTimeChange.emit(this.currentTime);
38
+ this.currentTime.set(this.el.currentTime);
47
39
  }
48
40
  updatePlaybackRate(playbackRate) {
49
- this.playbackRate = playbackRate;
50
- this.el.playbackRate = this.playbackRate;
41
+ this.el.playbackRate = playbackRate;
51
42
  }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiMedia, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
53
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiMedia, isStandalone: true, selector: "video[tuiMedia], audio[tuiMedia]", inputs: { volume: "volume", playbackRateSetter: ["playbackRate", "playbackRateSetter"], currentTime: "currentTime", paused: "paused" }, outputs: { currentTimeChange: "currentTimeChange", pausedChange: "pausedChange", volumeChange: "volumeChange" }, host: { listeners: { "durationchange": "0", "ended": "onPausedChange(true)", "pause": "onPausedChange(true)", "play": "onPausedChange(false)", "volumechange": "onVolumeChange()", "timeupdate": "onCurrentTimeChange()", "seeking": "onCurrentTimeChange()", "seeked": "onCurrentTimeChange()" }, properties: { "volume": "volume" } }, exportAs: ["tuiMedia"], ngImport: i0 }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiMedia, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.16", type: TuiMedia, isStandalone: true, selector: "video[tuiMedia], audio[tuiMedia]", inputs: { playbackRate: { classPropertyName: "playbackRate", publicName: "playbackRate", isSignal: true, isRequired: false, transformFunction: null }, volume: { classPropertyName: "volume", publicName: "volume", isSignal: true, isRequired: false, transformFunction: null }, currentTime: { classPropertyName: "currentTime", publicName: "currentTime", isSignal: true, isRequired: false, transformFunction: null }, paused: { classPropertyName: "paused", publicName: "paused", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { volume: "volumeChange", currentTime: "currentTimeChange", paused: "pausedChange" }, host: { listeners: { "durationchange": "0", "ended": "onPausedChange(true)", "pause": "onPausedChange(true)", "play": "onPausedChange(false)", "volumechange": "onVolumeChange()", "timeupdate": "onCurrentTimeChange()", "seeking": "onCurrentTimeChange()", "seeked": "onCurrentTimeChange()" }, properties: { "volume": "volume()" } }, exportAs: ["tuiMedia"], ngImport: i0 }); }
54
45
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiMedia, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiMedia, decorators: [{
56
47
  type: Directive,
57
48
  args: [{
58
- standalone: true,
59
49
  selector: 'video[tuiMedia], audio[tuiMedia]',
60
50
  exportAs: 'tuiMedia',
61
51
  host: {
62
- '[volume]': 'volume',
52
+ '[volume]': 'volume()',
63
53
  '(durationchange)': '0',
64
54
  '(ended)': 'onPausedChange(true)',
65
55
  '(pause)': 'onPausedChange(true)',
@@ -70,22 +60,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
70
60
  '(seeked)': 'onCurrentTimeChange()',
71
61
  },
72
62
  }]
73
- }], propDecorators: { volume: [{
74
- type: Input
75
- }], currentTimeChange: [{
76
- type: Output
77
- }], pausedChange: [{
78
- type: Output
79
- }], volumeChange: [{
80
- type: Output
81
- }], playbackRateSetter: [{
82
- type: Input,
83
- args: ['playbackRate']
84
- }], currentTime: [{
85
- type: Input
86
- }], paused: [{
87
- type: Input
88
- }] } });
63
+ }] });
89
64
 
90
65
  /**
91
66
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-media.mjs","sources":["../../../projects/cdk/directives/media/media.directive.ts","../../../projects/cdk/directives/media/taiga-ui-cdk-directives-media.ts"],"sourcesContent":["import {Directive, EventEmitter, Input, Output} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils';\n\n@Directive({\n standalone: true,\n selector: 'video[tuiMedia], audio[tuiMedia]',\n exportAs: 'tuiMedia',\n host: {\n '[volume]': 'volume',\n '(durationchange)': '0',\n '(ended)': 'onPausedChange(true)',\n '(pause)': 'onPausedChange(true)',\n '(play)': 'onPausedChange(false)',\n '(volumechange)': 'onVolumeChange()',\n '(timeupdate)': 'onCurrentTimeChange()',\n '(seeking)': 'onCurrentTimeChange()',\n '(seeked)': 'onCurrentTimeChange()',\n },\n})\nexport class TuiMedia {\n private readonly el = tuiInjectElement<HTMLMediaElement>();\n\n private playbackRate = 1;\n\n @Input()\n public volume = 1;\n\n @Output()\n public readonly currentTimeChange = new EventEmitter<number>();\n\n @Output()\n public readonly pausedChange = new EventEmitter<boolean>();\n\n @Output()\n public readonly volumeChange = new EventEmitter<number>();\n\n @Input('playbackRate')\n public set playbackRateSetter(playbackRate: number) {\n this.updatePlaybackRate(playbackRate);\n }\n\n @Input()\n public set currentTime(currentTime: number) {\n if (Math.abs(currentTime - this.currentTime) > 0.05) {\n this.el.currentTime = currentTime;\n }\n }\n\n @Input()\n public set paused(paused: boolean) {\n if (paused) {\n this.el.pause?.();\n } else {\n void this.el.play?.();\n this.updatePlaybackRate(this.playbackRate);\n }\n }\n\n public get currentTime(): number {\n return this.el.currentTime ?? 0;\n }\n\n public get paused(): boolean {\n return this.el.paused;\n }\n\n protected onPausedChange(paused: boolean): void {\n this.pausedChange.emit(paused);\n this.updatePlaybackRate(this.playbackRate);\n }\n\n protected onVolumeChange(): void {\n this.volume = this.el.volume;\n this.volumeChange.emit(this.volume);\n }\n\n protected onCurrentTimeChange(): void {\n this.currentTimeChange.emit(this.currentTime);\n }\n\n private updatePlaybackRate(playbackRate: number): void {\n this.playbackRate = playbackRate;\n this.el.playbackRate = this.playbackRate;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-media.mjs","sources":["../../../projects/cdk/directives/media/media.directive.ts","../../../projects/cdk/directives/media/taiga-ui-cdk-directives-media.ts"],"sourcesContent":["import {Directive, effect, input, model, untracked} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils';\n\n@Directive({\n selector: 'video[tuiMedia], audio[tuiMedia]',\n exportAs: 'tuiMedia',\n host: {\n '[volume]': 'volume()',\n '(durationchange)': '0',\n '(ended)': 'onPausedChange(true)',\n '(pause)': 'onPausedChange(true)',\n '(play)': 'onPausedChange(false)',\n '(volumechange)': 'onVolumeChange()',\n '(timeupdate)': 'onCurrentTimeChange()',\n '(seeking)': 'onCurrentTimeChange()',\n '(seeked)': 'onCurrentTimeChange()',\n },\n})\nexport class TuiMedia {\n private readonly el = tuiInjectElement<HTMLMediaElement>();\n\n protected readonly setElCurrentTime = effect(() => {\n if (Math.abs(this.currentTime() - this.el.currentTime) > 0.05) {\n this.el.currentTime = this.currentTime();\n }\n });\n\n protected readonly setElPlaybackRate = effect(() => {\n this.updatePlaybackRate(this.playbackRate());\n });\n\n protected readonly setElPaused = effect(() => {\n const paused = this.paused();\n\n if (paused) {\n this.el.pause?.();\n } else {\n void this.el.play?.();\n }\n\n this.updatePlaybackRate(untracked(this.playbackRate));\n });\n\n public readonly playbackRate = input<number>(1);\n\n public readonly volume = model<number>(1);\n\n public readonly currentTime = model<number>(this.el.currentTime ?? 0);\n\n public readonly paused = model<boolean>(this.el.paused);\n\n protected onPausedChange(paused: boolean): void {\n this.paused.set(paused);\n }\n\n protected onVolumeChange(): void {\n this.volume.set(this.el.volume);\n }\n\n protected onCurrentTimeChange(): void {\n this.currentTime.set(this.el.currentTime);\n }\n\n private updatePlaybackRate(playbackRate: number): void {\n this.el.playbackRate = playbackRate;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Input, Directive } from '@angular/core';
2
+ import { input, Directive } from '@angular/core';
3
3
  import { NG_VALIDATORS } from '@angular/forms';
4
4
  import { tuiZonefree, tuiTakeUntilDestroyed } from '@taiga-ui/cdk/observables';
5
5
  import { tuiInjectElement, tuiProvide } from '@taiga-ui/cdk/utils';
@@ -12,7 +12,7 @@ class TuiNativeValidator {
12
12
  this.sub = this.control$
13
13
  .pipe(switchMap((control) => control?.events || of(null)), delay(0), tuiZonefree(), tuiTakeUntilDestroyed())
14
14
  .subscribe(() => this.handleValidation());
15
- this.tuiNativeValidator = 'Invalid';
15
+ this.tuiNativeValidator = input('Invalid');
16
16
  }
17
17
  validate(control) {
18
18
  this.control$.next(control);
@@ -22,24 +22,21 @@ class TuiNativeValidator {
22
22
  const invalid = !!this.control$.value?.touched && this.control$.value?.invalid;
23
23
  // TODO: Replace with :has(:invalid) when supported
24
24
  this.el.closest('tui-textfield')?.classList.toggle('tui-invalid', invalid);
25
- this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator : '');
25
+ this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator() : '');
26
26
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNativeValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
28
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiNativeValidator, isStandalone: true, selector: "[tuiNativeValidator]", inputs: { tuiNativeValidator: "tuiNativeValidator" }, host: { listeners: { "focusout": "handleValidation()" } }, providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)], ngImport: i0 }); }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiNativeValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
28
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.16", type: TuiNativeValidator, isStandalone: true, selector: "[tuiNativeValidator]", inputs: { tuiNativeValidator: { classPropertyName: "tuiNativeValidator", publicName: "tuiNativeValidator", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focusout": "handleValidation()" } }, providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)], ngImport: i0 }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNativeValidator, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiNativeValidator, decorators: [{
31
31
  type: Directive,
32
32
  args: [{
33
- standalone: true,
34
33
  selector: '[tuiNativeValidator]',
35
34
  providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],
36
35
  host: {
37
36
  '(focusout)': 'handleValidation()',
38
37
  },
39
38
  }]
40
- }], propDecorators: { tuiNativeValidator: [{
41
- type: Input
42
- }] } });
39
+ }] });
43
40
 
44
41
  /**
45
42
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-native-validator.mjs","sources":["../../../projects/cdk/directives/native-validator/native-validator.directive.ts","../../../projects/cdk/directives/native-validator/taiga-ui-cdk-directives-native-validator.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {type AbstractControl, NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {tuiTakeUntilDestroyed, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement, tuiProvide} from '@taiga-ui/cdk/utils';\nimport {BehaviorSubject, delay, of, switchMap} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: '[tuiNativeValidator]',\n providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],\n host: {\n '(focusout)': 'handleValidation()',\n },\n})\nexport class TuiNativeValidator implements Validator {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly control$ = new BehaviorSubject<AbstractControl | null>(null);\n\n protected readonly sub = this.control$\n .pipe(\n switchMap((control: any) => control?.events || of(null)),\n delay(0),\n tuiZonefree(),\n tuiTakeUntilDestroyed(),\n )\n .subscribe(() => this.handleValidation());\n\n @Input()\n public tuiNativeValidator = 'Invalid';\n\n public validate(control: AbstractControl): null {\n this.control$.next(control);\n\n return null;\n }\n\n protected handleValidation(): void {\n const invalid = !!this.control$.value?.touched && this.control$.value?.invalid;\n\n // TODO: Replace with :has(:invalid) when supported\n this.el.closest('tui-textfield')?.classList.toggle('tui-invalid', invalid);\n this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator : '');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAca,kBAAkB,CAAA;AAR/B,IAAA,WAAA,GAAA;QASqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAyB,IAAI,CAAC;QAE1D,IAAG,CAAA,GAAA,GAAG,IAAI,CAAC;AACzB,aAAA,IAAI,CACD,SAAS,CAAC,CAAC,OAAY,KAAK,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,EACxD,KAAK,CAAC,CAAC,CAAC,EACR,WAAW,EAAE,EACb,qBAAqB,EAAE;aAE1B,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAGtC,IAAkB,CAAA,kBAAA,GAAG,SAAS;AAexC;AAbU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAE3B,QAAA,OAAO,IAAI;;IAGL,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO;;AAG9E,QAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC;AAC1E,QAAA,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,OAAO,GAAG,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;;+GA3B9D,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EALhB,CAAC,UAAU,CAAC,aAAa,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAKvD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,EAAsB,kBAAA,EAAA,IAAI,CAAC,CAAC;AAChE,oBAAA,IAAI,EAAE;AACF,wBAAA,YAAY,EAAE,oBAAoB;AACrC,qBAAA;AACJ,iBAAA;8BAeU,kBAAkB,EAAA,CAAA;sBADxB;;;AC3BL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-native-validator.mjs","sources":["../../../projects/cdk/directives/native-validator/native-validator.directive.ts","../../../projects/cdk/directives/native-validator/taiga-ui-cdk-directives-native-validator.ts"],"sourcesContent":["import {Directive, input} from '@angular/core';\nimport {type AbstractControl, NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {tuiTakeUntilDestroyed, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement, tuiProvide} from '@taiga-ui/cdk/utils';\nimport {BehaviorSubject, delay, of, switchMap} from 'rxjs';\n\n@Directive({\n selector: '[tuiNativeValidator]',\n providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],\n host: {\n '(focusout)': 'handleValidation()',\n },\n})\nexport class TuiNativeValidator implements Validator {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly control$ = new BehaviorSubject<AbstractControl | null>(null);\n\n protected readonly sub = this.control$\n .pipe(\n switchMap((control: any) => control?.events || of(null)),\n delay(0),\n tuiZonefree(),\n tuiTakeUntilDestroyed(),\n )\n .subscribe(() => this.handleValidation());\n\n public readonly tuiNativeValidator = input('Invalid');\n\n public validate(control: AbstractControl): null {\n this.control$.next(control);\n\n return null;\n }\n\n protected handleValidation(): void {\n const invalid = !!this.control$.value?.touched && this.control$.value?.invalid;\n\n // TODO: Replace with :has(:invalid) when supported\n this.el.closest('tui-textfield')?.classList.toggle('tui-invalid', invalid);\n this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator() : '');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAaa,kBAAkB,CAAA;AAP/B,IAAA,WAAA,GAAA;QAQqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAyB,IAAI,CAAC;QAE1D,IAAG,CAAA,GAAA,GAAG,IAAI,CAAC;AACzB,aAAA,IAAI,CACD,SAAS,CAAC,CAAC,OAAY,KAAK,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,EACxD,KAAK,CAAC,CAAC,CAAC,EACR,WAAW,EAAE,EACb,qBAAqB,EAAE;aAE1B,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAE7B,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC;AAexD;AAbU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAE3B,QAAA,OAAO,IAAI;;IAGL,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO;;AAG9E,QAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC;AAC1E,QAAA,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC;;+GA1BhE,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EALhB,CAAC,UAAU,CAAC,aAAa,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAKvD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,EAAsB,kBAAA,EAAA,IAAI,CAAC,CAAC;AAChE,oBAAA,IAAI,EAAE;AACF,wBAAA,YAAY,EAAE,oBAAoB;AACrC,qBAAA;AACJ,iBAAA;;;ACZD;;AAEG;;;;"}
@@ -1,8 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Injectable, Input, Output, Directive } from '@angular/core';
2
+ import { inject, Injectable, input, Directive } from '@angular/core';
3
+ import { toObservable, outputFromObservable } from '@angular/core/rxjs-interop';
3
4
  import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
4
5
  import { tuiZonefreeScheduler, tuiZoneOptimized, tuiIfMap } from '@taiga-ui/cdk/observables';
5
- import { Observable, throttleTime, map, startWith, distinctUntilChanged, BehaviorSubject } from 'rxjs';
6
+ import { Observable, throttleTime, map, startWith, distinctUntilChanged } from 'rxjs';
6
7
  import { WA_ANIMATION_FRAME } from '@ng-web-apis/common';
7
8
  import { tuiInjectElement, tuiGetElementObscures } from '@taiga-ui/cdk/utils/dom';
8
9
 
@@ -16,10 +17,10 @@ class TuiObscuredService extends Observable {
16
17
  this.el = tuiInjectElement();
17
18
  this.obscured$ = inject(WA_ANIMATION_FRAME).pipe(throttleTime(100, tuiZonefreeScheduler()), map(() => tuiGetElementObscures(this.el)), startWith(null), distinctUntilChanged(), tuiZoneOptimized());
18
19
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiObscuredService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiObscuredService }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiObscuredService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiObscuredService }); }
21
22
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiObscuredService, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiObscuredService, decorators: [{
23
24
  type: Injectable
24
25
  }], ctorParameters: () => [] });
25
26
 
@@ -29,28 +30,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
29
30
  class TuiObscured {
30
31
  constructor() {
31
32
  this.activeZone = inject(TuiActiveZone, { optional: true });
32
- this.enabled$ = new BehaviorSubject(false);
33
33
  this.obscured$ = inject(TuiObscuredService, { self: true }).pipe(map((by) => !!by?.every((el) => !this.activeZone?.contains(el))));
34
- this.tuiObscured = this.enabled$.pipe(tuiIfMap(() => this.obscured$));
34
+ this.tuiObscuredEnabled = input();
35
+ this.tuiObscured$ = toObservable(this.tuiObscuredEnabled).pipe(tuiIfMap(() => this.obscured$));
36
+ this.tuiObscured = outputFromObservable(this.tuiObscured$);
35
37
  }
36
- set tuiObscuredEnabled(enabled) {
37
- this.enabled$.next(enabled);
38
- }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiObscured, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
40
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiObscured, isStandalone: true, selector: "[tuiObscured]", inputs: { tuiObscuredEnabled: "tuiObscuredEnabled" }, outputs: { tuiObscured: "tuiObscured" }, providers: [TuiObscuredService], ngImport: i0 }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiObscured, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.16", type: TuiObscured, isStandalone: true, selector: "[tuiObscured]", inputs: { tuiObscuredEnabled: { classPropertyName: "tuiObscuredEnabled", publicName: "tuiObscuredEnabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tuiObscured: "tuiObscured" }, providers: [TuiObscuredService], ngImport: i0 }); }
41
40
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiObscured, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiObscured, decorators: [{
43
42
  type: Directive,
44
43
  args: [{
45
- standalone: true,
46
44
  selector: '[tuiObscured]',
47
45
  providers: [TuiObscuredService],
48
46
  }]
49
- }], propDecorators: { tuiObscured: [{
50
- type: Output
51
- }], tuiObscuredEnabled: [{
52
- type: Input
53
- }] } });
47
+ }] });
54
48
 
55
49
  /**
56
50
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-obscured.mjs","sources":["../../../projects/cdk/directives/obscured/obscured.service.ts","../../../projects/cdk/directives/obscured/obscured.directive.ts","../../../projects/cdk/directives/obscured/taiga-ui-cdk-directives-obscured.ts"],"sourcesContent":["import {inject, Injectable} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZonefreeScheduler, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementObscures, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {distinctUntilChanged, map, Observable, startWith, throttleTime} from 'rxjs';\n\n/**\n * Service that monitors element visibility by polling and returning\n * either null or an array of elements that overlap given element edges\n */\n@Injectable()\nexport class TuiObscuredService extends Observable<readonly Element[] | null> {\n private readonly el = tuiInjectElement();\n private readonly obscured$ = inject(WA_ANIMATION_FRAME).pipe(\n throttleTime(100, tuiZonefreeScheduler()),\n map(() => tuiGetElementObscures(this.el)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(),\n );\n\n constructor() {\n super((subscriber) => this.obscured$.subscribe(subscriber));\n }\n}\n","import {Directive, inject, Input, Output} from '@angular/core';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiIfMap} from '@taiga-ui/cdk/observables';\nimport {BehaviorSubject, map} from 'rxjs';\n\nimport {TuiObscuredService} from './obscured.service';\n\n/**\n * Directive that monitors element visibility\n */\n@Directive({\n standalone: true,\n selector: '[tuiObscured]',\n providers: [TuiObscuredService],\n})\nexport class TuiObscured {\n private readonly activeZone = inject(TuiActiveZone, {optional: true});\n private readonly enabled$ = new BehaviorSubject(false);\n private readonly obscured$ = inject(TuiObscuredService, {self: true}).pipe(\n map((by) => !!by?.every((el) => !this.activeZone?.contains(el))),\n );\n\n @Output()\n public readonly tuiObscured = this.enabled$.pipe(tuiIfMap(() => this.obscured$));\n\n @Input()\n public set tuiObscuredEnabled(enabled: boolean) {\n this.enabled$.next(enabled);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAMA;;;AAGG;AAEG,MAAO,kBAAmB,SAAQ,UAAqC,CAAA;AAUzE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAV9C,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACxD,YAAY,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,EACzC,GAAG,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EACzC,SAAS,CAAC,IAAI,CAAC,EACf,oBAAoB,EAAE,EACtB,gBAAgB,EAAE,CACrB;;+GARQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACHD;;AAEG;MAMU,WAAW,CAAA;AALxB,IAAA,WAAA,GAAA;QAMqB,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC,aAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;QACrC,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CACtE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CACnE;AAGe,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;AAMnF;IAJG,IACW,kBAAkB,CAAC,OAAgB,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;;+GAZtB,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAFT,CAAC,kBAAkB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEtB,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;oBACzB,SAAS,EAAE,CAAC,kBAAkB,CAAC;AAClC,iBAAA;8BASmB,WAAW,EAAA,CAAA;sBAD1B;gBAIU,kBAAkB,EAAA,CAAA;sBAD5B;;;ACzBL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-obscured.mjs","sources":["../../../projects/cdk/directives/obscured/obscured.service.ts","../../../projects/cdk/directives/obscured/obscured.directive.ts","../../../projects/cdk/directives/obscured/taiga-ui-cdk-directives-obscured.ts"],"sourcesContent":["import {inject, Injectable} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZonefreeScheduler, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementObscures, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {distinctUntilChanged, map, Observable, startWith, throttleTime} from 'rxjs';\n\n/**\n * Service that monitors element visibility by polling and returning\n * either null or an array of elements that overlap given element edges\n */\n@Injectable()\nexport class TuiObscuredService extends Observable<readonly Element[] | null> {\n private readonly el = tuiInjectElement();\n private readonly obscured$ = inject(WA_ANIMATION_FRAME).pipe(\n throttleTime(100, tuiZonefreeScheduler()),\n map(() => tuiGetElementObscures(this.el)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(),\n );\n\n constructor() {\n super((subscriber) => this.obscured$.subscribe(subscriber));\n }\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {outputFromObservable, toObservable} from '@angular/core/rxjs-interop';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiIfMap} from '@taiga-ui/cdk/observables';\nimport {map} from 'rxjs';\n\nimport {TuiObscuredService} from './obscured.service';\n\n/**\n * Directive that monitors element visibility\n */\n@Directive({\n selector: '[tuiObscured]',\n providers: [TuiObscuredService],\n})\nexport class TuiObscured {\n private readonly activeZone = inject(TuiActiveZone, {optional: true});\n private readonly obscured$ = inject(TuiObscuredService, {self: true}).pipe(\n map((by) => !!by?.every((el) => !this.activeZone?.contains(el))),\n );\n\n public readonly tuiObscuredEnabled = input<boolean>();\n\n public readonly tuiObscured$ = toObservable(this.tuiObscuredEnabled).pipe(\n tuiIfMap(() => this.obscured$),\n );\n\n public readonly tuiObscured = outputFromObservable(this.tuiObscured$);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAMA;;;AAGG;AAEG,MAAO,kBAAmB,SAAQ,UAAqC,CAAA;AAUzE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAV9C,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACxD,YAAY,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,EACzC,GAAG,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EACzC,SAAS,CAAC,IAAI,CAAC,EACf,oBAAoB,EAAE,EACtB,gBAAgB,EAAE,CACrB;;+GARQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACFD;;AAEG;MAKU,WAAW,CAAA;AAJxB,IAAA,WAAA,GAAA;QAKqB,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC,aAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QACpD,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CACtE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CACnE;QAEe,IAAkB,CAAA,kBAAA,GAAG,KAAK,EAAW;QAErC,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACrE,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CACjC;AAEe,QAAA,IAAA,CAAA,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxE;+GAbY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAFT,CAAC,kBAAkB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEtB,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;oBACzB,SAAS,EAAE,CAAC,kBAAkB,CAAC;AAClC,iBAAA;;;ACdD;;AAEG;;;;"}
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Injectable, Output, Directive } from '@angular/core';
2
+ import { inject, Injectable, Directive } from '@angular/core';
3
+ import { outputFromObservable } from '@angular/core/rxjs-interop';
3
4
  import { DOCUMENT } from '@angular/common';
4
5
  import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
5
6
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
@@ -19,30 +20,27 @@ class TuiPanService extends Observable {
19
20
  }), takeUntil(merge(tuiTypedFromEvent(doc, 'touchend'), tuiTypedFromEvent(doc, 'mouseup'))), repeat())
20
21
  .subscribe(subscriber));
21
22
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPanService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPanService }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiPanService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiPanService }); }
24
25
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPanService, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiPanService, decorators: [{
26
27
  type: Injectable
27
28
  }], ctorParameters: () => [] });
28
29
 
29
30
  class TuiPan {
30
31
  constructor() {
31
- this.tuiPan = inject(TuiPanService);
32
+ this.tuiPan = outputFromObservable(inject(TuiPanService));
32
33
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPan, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
34
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiPan, isStandalone: true, selector: "[tuiPan]", outputs: { tuiPan: "tuiPan" }, providers: [TuiPanService], ngImport: i0 }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiPan, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.16", type: TuiPan, isStandalone: true, selector: "[tuiPan]", outputs: { tuiPan: "tuiPan" }, providers: [TuiPanService], ngImport: i0 }); }
35
36
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPan, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiPan, decorators: [{
37
38
  type: Directive,
38
39
  args: [{
39
- standalone: true,
40
40
  selector: '[tuiPan]',
41
41
  providers: [TuiPanService],
42
42
  }]
43
- }], propDecorators: { tuiPan: [{
44
- type: Output
45
- }] } });
43
+ }] });
46
44
 
47
45
  /**
48
46
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-pan.mjs","sources":["../../../projects/cdk/directives/pan/pan.service.ts","../../../projects/cdk/directives/pan/pan.directive.ts","../../../projects/cdk/directives/pan/taiga-ui-cdk-directives-pan.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n filter,\n map,\n merge,\n Observable,\n pairwise,\n repeat,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor() {\n const el = tuiInjectElement();\n const doc = inject(DOCUMENT);\n\n super((subscriber) =>\n merge(\n tuiTypedFromEvent(el, 'touchstart', {passive: true}),\n tuiTypedFromEvent(el, 'mousedown'),\n )\n .pipe(\n switchMap(() =>\n merge(\n tuiTypedFromEvent(doc, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n tuiTypedFromEvent(doc, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = (second?.clientX ?? 0) - (first?.clientX ?? 0);\n const deltaY = (second?.clientY ?? 0) - (first?.clientY ?? 0);\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n tuiTypedFromEvent(doc, 'touchend'),\n tuiTypedFromEvent(doc, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {Directive, inject, Output} from '@angular/core';\n\nimport {TuiPanService} from './pan.service';\n\n@Directive({\n standalone: true,\n selector: '[tuiPan]',\n providers: [TuiPanService],\n})\nexport class TuiPan {\n @Output()\n public readonly tuiPan = inject(TuiPanService);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAgBM,MAAO,aAAc,SAAQ,UAAqC,CAAA;AACpE,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,EAAE,GAAG,gBAAgB,EAAE;AAC7B,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE5B,KAAK,CAAC,CAAC,UAAU,KACb,KAAK,CACD,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EACpD,iBAAiB,CAAC,EAAE,EAAE,WAAW,CAAC;AAEjC,aAAA,IAAI,CACD,SAAS,CAAC,MACN,KAAK,CACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE;AAChC,YAAA,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC,IAAI,CACH,MAAM,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EACzC,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACjC,EACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CACtC,CACJ,EACD,QAAQ,EAAE,EACV,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAI;AACpB,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;AAC7D,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;AAE7D,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAqB;SAC9C,CAAC,EACF,SAAS,CACL,KAAK,CACD,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,EAClC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CACpC,CACJ,EACD,MAAM,EAAE;AAEX,aAAA,SAAS,CAAC,UAAU,CAAC,CAC7B;;+GAtCI,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAb,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;;MCNY,MAAM,CAAA;AALnB,IAAA,WAAA,GAAA;AAOoB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AACjD;+GAHY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAFJ,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEjB,MAAM,EAAA,UAAA,EAAA,CAAA;kBALlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC7B,iBAAA;8BAGmB,MAAM,EAAA,CAAA;sBADrB;;;ACVL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-pan.mjs","sources":["../../../projects/cdk/directives/pan/pan.service.ts","../../../projects/cdk/directives/pan/pan.directive.ts","../../../projects/cdk/directives/pan/taiga-ui-cdk-directives-pan.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n filter,\n map,\n merge,\n Observable,\n pairwise,\n repeat,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor() {\n const el = tuiInjectElement();\n const doc = inject(DOCUMENT);\n\n super((subscriber) =>\n merge(\n tuiTypedFromEvent(el, 'touchstart', {passive: true}),\n tuiTypedFromEvent(el, 'mousedown'),\n )\n .pipe(\n switchMap(() =>\n merge(\n tuiTypedFromEvent(doc, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n tuiTypedFromEvent(doc, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = (second?.clientX ?? 0) - (first?.clientX ?? 0);\n const deltaY = (second?.clientY ?? 0) - (first?.clientY ?? 0);\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n tuiTypedFromEvent(doc, 'touchend'),\n tuiTypedFromEvent(doc, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\n\nimport {TuiPanService} from './pan.service';\n\n@Directive({\n selector: '[tuiPan]',\n providers: [TuiPanService],\n})\nexport class TuiPan {\n public readonly tuiPan = outputFromObservable(inject(TuiPanService));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAgBM,MAAO,aAAc,SAAQ,UAAqC,CAAA;AACpE,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,EAAE,GAAG,gBAAgB,EAAE;AAC7B,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE5B,KAAK,CAAC,CAAC,UAAU,KACb,KAAK,CACD,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EACpD,iBAAiB,CAAC,EAAE,EAAE,WAAW,CAAC;AAEjC,aAAA,IAAI,CACD,SAAS,CAAC,MACN,KAAK,CACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE;AAChC,YAAA,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC,IAAI,CACH,MAAM,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EACzC,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACjC,EACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CACtC,CACJ,EACD,QAAQ,EAAE,EACV,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAI;AACpB,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;AAC7D,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;AAE7D,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAqB;SAC9C,CAAC,EACF,SAAS,CACL,KAAK,CACD,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,EAClC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CACpC,CACJ,EACD,MAAM,EAAE;AAEX,aAAA,SAAS,CAAC,UAAU,CAAC,CAC7B;;+GAtCI,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAb,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;;MCNY,MAAM,CAAA;AAJnB,IAAA,WAAA,GAAA;QAKoB,IAAM,CAAA,MAAA,GAAG,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACvE;+GAFY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAFJ,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEjB,MAAM,EAAA,UAAA,EAAA,CAAA;kBAJlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC7B,iBAAA;;;ACRD;;AAEG;;;;"}
@@ -1,37 +1,34 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Input, Directive } from '@angular/core';
2
+ import { input, inject, Directive } from '@angular/core';
3
3
  import { TUI_PLATFORM } from '@taiga-ui/cdk/tokens';
4
4
 
5
5
  class TuiPlatform {
6
6
  constructor() {
7
- this.tuiPlatform = inject(TUI_PLATFORM, { skipSelf: true });
7
+ this.tuiPlatform = input(inject(TUI_PLATFORM, { skipSelf: true }));
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPlatform, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiPlatform, isStandalone: true, selector: "[tuiPlatform]", inputs: { tuiPlatform: "tuiPlatform" }, host: { properties: { "attr.data-platform": "tuiPlatform" } }, providers: [
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiPlatform, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.16", type: TuiPlatform, isStandalone: true, selector: "[tuiPlatform]", inputs: { tuiPlatform: { classPropertyName: "tuiPlatform", publicName: "tuiPlatform", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-platform": "tuiPlatform()" } }, providers: [
11
11
  {
12
12
  provide: TUI_PLATFORM,
13
- useFactory: () => inject(TuiPlatform).tuiPlatform,
13
+ useFactory: () => inject(TuiPlatform).tuiPlatform(),
14
14
  },
15
15
  ], ngImport: i0 }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPlatform, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiPlatform, decorators: [{
18
18
  type: Directive,
19
19
  args: [{
20
- standalone: true,
21
20
  selector: '[tuiPlatform]',
22
21
  providers: [
23
22
  {
24
23
  provide: TUI_PLATFORM,
25
- useFactory: () => inject(TuiPlatform).tuiPlatform,
24
+ useFactory: () => inject(TuiPlatform).tuiPlatform(),
26
25
  },
27
26
  ],
28
27
  host: {
29
- '[attr.data-platform]': 'tuiPlatform',
28
+ '[attr.data-platform]': 'tuiPlatform()',
30
29
  },
31
30
  }]
32
- }], propDecorators: { tuiPlatform: [{
33
- type: Input
34
- }] } });
31
+ }] });
35
32
 
36
33
  /**
37
34
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-platform.mjs","sources":["../../../projects/cdk/directives/platform/platform.directive.ts","../../../projects/cdk/directives/platform/taiga-ui-cdk-directives-platform.ts"],"sourcesContent":["import {Directive, inject, Input} from '@angular/core';\nimport {TUI_PLATFORM} from '@taiga-ui/cdk/tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiPlatform]',\n providers: [\n {\n provide: TUI_PLATFORM,\n useFactory: () => inject(TuiPlatform).tuiPlatform,\n },\n ],\n host: {\n '[attr.data-platform]': 'tuiPlatform',\n },\n})\nexport class TuiPlatform {\n @Input()\n public tuiPlatform = inject(TUI_PLATFORM, {skipSelf: true});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAgBa,WAAW,CAAA;AAbxB,IAAA,WAAA,GAAA;QAeW,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC,YAAY,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC9D;+GAHY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAVT,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW;AACpD,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAKQ,WAAW,EAAA,UAAA,EAAA,CAAA;kBAbvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,YAAY;AACrB,4BAAA,UAAU,EAAE,MAAM,MAAM,CAAA,WAAA,CAAa,CAAC,WAAW;AACpD,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,sBAAsB,EAAE,aAAa;AACxC,qBAAA;AACJ,iBAAA;8BAGU,WAAW,EAAA,CAAA;sBADjB;;;ACjBL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-platform.mjs","sources":["../../../projects/cdk/directives/platform/platform.directive.ts","../../../projects/cdk/directives/platform/taiga-ui-cdk-directives-platform.ts"],"sourcesContent":["import {Directive, inject, input} from '@angular/core';\nimport {TUI_PLATFORM} from '@taiga-ui/cdk/tokens';\n\n@Directive({\n selector: '[tuiPlatform]',\n providers: [\n {\n provide: TUI_PLATFORM,\n useFactory: () => inject(TuiPlatform).tuiPlatform(),\n },\n ],\n host: {\n '[attr.data-platform]': 'tuiPlatform()',\n },\n})\nexport class TuiPlatform {\n public readonly tuiPlatform = input(inject(TUI_PLATFORM, {skipSelf: true}));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAea,WAAW,CAAA;AAZxB,IAAA,WAAA,GAAA;AAaoB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAC9E;+GAFY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAVT,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;AACtD,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAKQ,WAAW,EAAA,UAAA,EAAA,CAAA;kBAZvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,YAAY;4BACrB,UAAU,EAAE,MAAM,MAAM,CAAa,WAAA,CAAA,CAAC,WAAW,EAAE;AACtD,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,sBAAsB,EAAE,eAAe;AAC1C,qBAAA;AACJ,iBAAA;;;ACdD;;AAEG;;;;"}
@@ -1,16 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, inject, EventEmitter, Output, Input } from '@angular/core';
2
+ import { Directive, inject, input, output } from '@angular/core';
3
3
  import { TuiElement } from '@taiga-ui/cdk/directives/element';
4
4
  import { tuiPx } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
 
6
6
  class TuiResizable extends TuiElement {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiResizable, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiResizable, isStandalone: true, selector: "[tuiResizable]", usesInheritance: true, ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiResizable, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.16", type: TuiResizable, isStandalone: true, selector: "[tuiResizable]", usesInheritance: true, ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiResizable, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiResizable, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
- standalone: true,
14
13
  selector: '[tuiResizable]',
15
14
  }]
16
15
  }] });
@@ -22,17 +21,18 @@ class TuiResizer {
22
21
  this.y = NaN;
23
22
  this.width = 0;
24
23
  this.height = 0;
25
- this.tuiResizer = [0, 0];
26
- this.tuiSizeChange = new EventEmitter();
24
+ this.tuiResizer = input([0, 0]);
25
+ this.tuiSizeChange = output();
27
26
  }
28
27
  get cursor() {
29
- if (!this.tuiResizer[0]) {
28
+ const tuiResizer = this.tuiResizer();
29
+ if (!tuiResizer[0]) {
30
30
  return 'ns-resize';
31
31
  }
32
- if (!this.tuiResizer[1]) {
32
+ if (!tuiResizer[1]) {
33
33
  return 'ew-resize';
34
34
  }
35
- if (this.tuiResizer[0] * this.tuiResizer[1] > 0) {
35
+ if (tuiResizer[0] * tuiResizer[1] > 0) {
36
36
  return 'nwse-resize';
37
37
  }
38
38
  return 'nesw-resize';
@@ -55,29 +55,29 @@ class TuiResizer {
55
55
  this.x = NaN;
56
56
  }
57
57
  onMove(x, y) {
58
+ const tuiResizer = this.tuiResizer();
58
59
  if (Number.isNaN(this.x)) {
59
60
  return;
60
61
  }
61
62
  const { style } = this.resizable.nativeElement;
62
63
  const size = [
63
- this.width + this.tuiResizer[0] * (x - this.x),
64
- this.height + this.tuiResizer[1] * (y - this.y),
64
+ this.width + tuiResizer[0] * (x - this.x),
65
+ this.height + tuiResizer[1] * (y - this.y),
65
66
  ];
66
- if (this.tuiResizer[0]) {
67
+ if (tuiResizer[0]) {
67
68
  style.width = tuiPx(size[0]);
68
69
  }
69
- if (this.tuiResizer[1]) {
70
+ if (tuiResizer[1]) {
70
71
  style.height = tuiPx(size[1]);
71
72
  }
72
73
  this.tuiSizeChange.emit(size);
73
74
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiResizer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
75
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiResizer, isStandalone: true, selector: "[tuiResizer]", inputs: { tuiResizer: "tuiResizer" }, outputs: { tuiSizeChange: "tuiSizeChange" }, host: { listeners: { "pointerdown.zoneless.prevent": "onPointerDown($event.x, $event.y)", "document:pointermove.zoneless": "onPointerMove($event)", "document:pointerup.zoneless": "onPointerUp()" }, properties: { "style.cursor": "cursor", "style.touchAction": "\"none\"" } }, ngImport: i0 }); }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiResizer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
76
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.16", type: TuiResizer, isStandalone: true, selector: "[tuiResizer]", inputs: { tuiResizer: { classPropertyName: "tuiResizer", publicName: "tuiResizer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tuiSizeChange: "tuiSizeChange" }, host: { listeners: { "pointerdown.zoneless.prevent": "onPointerDown($event.x, $event.y)", "document:pointermove.zoneless": "onPointerMove($event)", "document:pointerup.zoneless": "onPointerUp()" }, properties: { "style.cursor": "cursor", "style.touchAction": "\"none\"" } }, ngImport: i0 }); }
76
77
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiResizer, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiResizer, decorators: [{
78
79
  type: Directive,
79
80
  args: [{
80
- standalone: true,
81
81
  selector: '[tuiResizer]',
82
82
  host: {
83
83
  '[style.cursor]': 'cursor',
@@ -87,11 +87,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
87
87
  '(document:pointerup.zoneless)': 'onPointerUp()',
88
88
  },
89
89
  }]
90
- }], propDecorators: { tuiResizer: [{
91
- type: Input
92
- }], tuiSizeChange: [{
93
- type: Output
94
- }] } });
90
+ }] });
95
91
 
96
92
  /**
97
93
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-resizer.mjs","sources":["../../../projects/cdk/directives/resizer/resizable.directive.ts","../../../projects/cdk/directives/resizer/resizer.directive.ts","../../../projects/cdk/directives/resizer/taiga-ui-cdk-directives-resizer.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiElement} from '@taiga-ui/cdk/directives/element';\n\n@Directive({\n standalone: true,\n selector: '[tuiResizable]',\n})\nexport class TuiResizable extends TuiElement {}\n","import {\n Directive,\n type ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiResizable} from './resizable.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiResizer]',\n host: {\n '[style.cursor]': 'cursor',\n '[style.touchAction]': '\"none\"',\n '(pointerdown.zoneless.prevent)': 'onPointerDown($event.x, $event.y)',\n '(document:pointermove.zoneless)': 'onPointerMove($event)',\n '(document:pointerup.zoneless)': 'onPointerUp()',\n },\n})\nexport class TuiResizer {\n private readonly resizable: ElementRef<HTMLElement> = inject(TuiResizable);\n\n protected x = NaN;\n protected y = NaN;\n protected width = 0;\n protected height = 0;\n\n @Input()\n public tuiResizer: readonly [x: number, y: number] = [0, 0];\n\n @Output()\n public readonly tuiSizeChange = new EventEmitter<readonly [x: number, y: number]>();\n\n protected get cursor(): string {\n if (!this.tuiResizer[0]) {\n return 'ns-resize';\n }\n\n if (!this.tuiResizer[1]) {\n return 'ew-resize';\n }\n\n if (this.tuiResizer[0] * this.tuiResizer[1] > 0) {\n return 'nwse-resize';\n }\n\n return 'nesw-resize';\n }\n\n protected onPointerDown(x: number, y: number): void {\n this.x = x;\n this.y = y;\n this.width = this.resizable.nativeElement.clientWidth;\n this.height = this.resizable.nativeElement.clientHeight;\n }\n\n protected onPointerMove({x, y, buttons}: PointerEvent): void {\n if (!buttons) {\n this.onPointerUp();\n } else {\n this.onMove(x, y);\n }\n }\n\n protected onPointerUp(): void {\n this.x = NaN;\n }\n\n protected onMove(x: number, y: number): void {\n if (Number.isNaN(this.x)) {\n return;\n }\n\n const {style} = this.resizable.nativeElement;\n const size = [\n this.width + this.tuiResizer[0] * (x - this.x),\n this.height + this.tuiResizer[1] * (y - this.y),\n ] as const;\n\n if (this.tuiResizer[0]) {\n style.width = tuiPx(size[0]);\n }\n\n if (this.tuiResizer[1]) {\n style.height = tuiPx(size[1]);\n }\n\n this.tuiSizeChange.emit(size);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAOM,MAAO,YAAa,SAAQ,UAAU,CAAA;+GAA/B,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA;;;MCiBY,UAAU,CAAA;AAXvB,IAAA,WAAA,GAAA;AAYqB,QAAA,IAAA,CAAA,SAAS,GAA4B,MAAM,CAAC,YAAY,CAAC;QAEhE,IAAC,CAAA,CAAA,GAAG,GAAG;QACP,IAAC,CAAA,CAAA,GAAG,GAAG;QACP,IAAK,CAAA,KAAA,GAAG,CAAC;QACT,IAAM,CAAA,MAAA,GAAG,CAAC;AAGb,QAAA,IAAA,CAAA,UAAU,GAAoC,CAAC,CAAC,EAAE,CAAC,CAAC;AAG3C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAmC;AA0DtF;AAxDG,IAAA,IAAc,MAAM,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AACrB,YAAA,OAAO,WAAW;;QAGtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AACrB,YAAA,OAAO,WAAW;;AAGtB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC7C,YAAA,OAAO,aAAa;;AAGxB,QAAA,OAAO,aAAa;;IAGd,aAAa,CAAC,CAAS,EAAE,CAAS,EAAA;AACxC,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;QACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY;;AAGjD,IAAA,aAAa,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAe,EAAA;QACjD,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,CAAC,WAAW,EAAE;;aACf;AACH,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;;IAIf,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,CAAC,GAAG,GAAG;;IAGN,MAAM,CAAC,CAAS,EAAE,CAAS,EAAA;QACjC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACtB;;QAGJ,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa;AAC5C,QAAA,MAAM,IAAI,GAAG;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;SACzC;AAEV,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YACpB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;AAGhC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YACpB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;AAGjC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;+GApExB,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,8BAAA,EAAA,mCAAA,EAAA,+BAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAXtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACF,wBAAA,gBAAgB,EAAE,QAAQ;AAC1B,wBAAA,qBAAqB,EAAE,QAAQ;AAC/B,wBAAA,gCAAgC,EAAE,mCAAmC;AACrE,wBAAA,iCAAiC,EAAE,uBAAuB;AAC1D,wBAAA,+BAA+B,EAAE,eAAe;AACnD,qBAAA;AACJ,iBAAA;8BAUU,UAAU,EAAA,CAAA;sBADhB;gBAIe,aAAa,EAAA,CAAA;sBAD5B;;;AClCL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-resizer.mjs","sources":["../../../projects/cdk/directives/resizer/resizable.directive.ts","../../../projects/cdk/directives/resizer/resizer.directive.ts","../../../projects/cdk/directives/resizer/taiga-ui-cdk-directives-resizer.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiElement} from '@taiga-ui/cdk/directives/element';\n\n@Directive({\n selector: '[tuiResizable]',\n})\nexport class TuiResizable extends TuiElement {}\n","import {Directive, type ElementRef, inject, input, output} from '@angular/core';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiResizable} from './resizable.directive';\n\n@Directive({\n selector: '[tuiResizer]',\n host: {\n '[style.cursor]': 'cursor',\n '[style.touchAction]': '\"none\"',\n '(pointerdown.zoneless.prevent)': 'onPointerDown($event.x, $event.y)',\n '(document:pointermove.zoneless)': 'onPointerMove($event)',\n '(document:pointerup.zoneless)': 'onPointerUp()',\n },\n})\nexport class TuiResizer {\n private readonly resizable: ElementRef<HTMLElement> = inject(TuiResizable);\n\n protected x = NaN;\n protected y = NaN;\n protected width = 0;\n protected height = 0;\n\n public readonly tuiResizer = input<readonly [x: number, y: number]>([0, 0]);\n\n public readonly tuiSizeChange = output<readonly [x: number, y: number]>();\n\n protected get cursor(): string {\n const tuiResizer = this.tuiResizer();\n\n if (!tuiResizer[0]) {\n return 'ns-resize';\n }\n\n if (!tuiResizer[1]) {\n return 'ew-resize';\n }\n\n if (tuiResizer[0] * tuiResizer[1] > 0) {\n return 'nwse-resize';\n }\n\n return 'nesw-resize';\n }\n\n protected onPointerDown(x: number, y: number): void {\n this.x = x;\n this.y = y;\n this.width = this.resizable.nativeElement.clientWidth;\n this.height = this.resizable.nativeElement.clientHeight;\n }\n\n protected onPointerMove({x, y, buttons}: PointerEvent): void {\n if (!buttons) {\n this.onPointerUp();\n } else {\n this.onMove(x, y);\n }\n }\n\n protected onPointerUp(): void {\n this.x = NaN;\n }\n\n protected onMove(x: number, y: number): void {\n const tuiResizer = this.tuiResizer();\n\n if (Number.isNaN(this.x)) {\n return;\n }\n\n const {style} = this.resizable.nativeElement;\n const size = [\n this.width + tuiResizer[0] * (x - this.x),\n this.height + tuiResizer[1] * (y - this.y),\n ] as const;\n\n if (tuiResizer[0]) {\n style.width = tuiPx(size[0]);\n }\n\n if (tuiResizer[1]) {\n style.height = tuiPx(size[1]);\n }\n\n this.tuiSizeChange.emit(size);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}