@taiga-ui/cdk 4.52.0-canary.ece97e9 → 4.52.0-canary.efbd0d4

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 (266) hide show
  1. package/README.md +1 -1
  2. package/classes/control.d.ts +4 -6
  3. package/constants/used-icons.d.ts +2 -2
  4. package/constants/version.d.ts +1 -1
  5. package/constants/version.js +1 -1
  6. package/date-time/date-fillers.d.ts +5 -5
  7. package/date-time/day-range.d.ts +1 -1
  8. package/date-time/day.d.ts +3 -3
  9. package/date-time/types.d.ts +1 -7
  10. package/directives/active-zone/active-zone.directive.d.ts +0 -2
  11. package/directives/animated/animated.directive.d.ts +1 -3
  12. package/directives/animated/index.d.ts +0 -1
  13. package/directives/auto-focus/autofocus.directive.d.ts +2 -3
  14. package/directives/copy-processor/copy-processor.directive.d.ts +2 -2
  15. package/directives/hovered/hovered.directive.d.ts +1 -2
  16. package/directives/index.d.ts +0 -5
  17. package/directives/media/media.directive.d.ts +8 -12
  18. package/directives/native-validator/native-validator.directive.d.ts +2 -2
  19. package/directives/obscured/obscured.directive.d.ts +4 -4
  20. package/directives/pan/pan.directive.d.ts +1 -2
  21. package/directives/platform/platform.directive.d.ts +2 -2
  22. package/directives/resizer/resizer.directive.d.ts +3 -4
  23. package/directives/swipe/swipe.directive.d.ts +1 -2
  24. package/directives/transitioned/transitioned.directive.d.ts +1 -0
  25. package/directives/value-changes/value-changes.directive.d.ts +2 -2
  26. package/fesm2022/taiga-ui-cdk-classes.mjs +8 -20
  27. package/fesm2022/taiga-ui-cdk-classes.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-cdk-constants.mjs +14 -3
  29. package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-cdk-date-time.mjs +23 -24
  31. package/fesm2022/taiga-ui-cdk-date-time.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs +12 -17
  33. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-cdk-directives-animated.mjs +23 -72
  35. package/fesm2022/taiga-ui-cdk-directives-animated.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs +12 -14
  37. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-cdk-directives-control.mjs +3 -4
  39. package/fesm2022/taiga-ui-cdk-directives-control.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs +8 -11
  41. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-cdk-directives-element.mjs +4 -5
  43. package/fesm2022/taiga-ui-cdk-directives-element.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs +5 -8
  45. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-cdk-directives-font-size.mjs +4 -7
  47. package/fesm2022/taiga-ui-cdk-directives-font-size.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs +3 -4
  49. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs +11 -14
  51. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-cdk-directives-item.mjs +3 -4
  53. package/fesm2022/taiga-ui-cdk-directives-item.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-cdk-directives-media.mjs +33 -58
  55. package/fesm2022/taiga-ui-cdk-directives-media.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs +9 -11
  57. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs +14 -26
  59. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-cdk-directives-pan.mjs +10 -12
  61. package/fesm2022/taiga-ui-cdk-directives-pan.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-cdk-directives-platform.mjs +9 -12
  63. package/fesm2022/taiga-ui-cdk-directives-platform.mjs.map +1 -1
  64. package/fesm2022/taiga-ui-cdk-directives-resizer.mjs +19 -23
  65. package/fesm2022/taiga-ui-cdk-directives-resizer.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-cdk-directives-swipe.mjs +10 -12
  67. package/fesm2022/taiga-ui-cdk-directives-swipe.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs +8 -15
  69. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-cdk-directives-validator.mjs +4 -5
  71. package/fesm2022/taiga-ui-cdk-directives-validator.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs +8 -9
  73. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs +5 -5
  75. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs +3 -3
  77. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs +8 -8
  78. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-cdk-directives.mjs +0 -5
  80. package/fesm2022/taiga-ui-cdk-directives.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-cdk-observables.mjs +2 -24
  82. package/fesm2022/taiga-ui-cdk-observables.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-cdk-pipes-filter.mjs +3 -4
  84. package/fesm2022/taiga-ui-cdk-pipes-filter.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs +3 -4
  86. package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs +5 -5
  88. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-cdk-pipes.mjs +0 -6
  90. package/fesm2022/taiga-ui-cdk-pipes.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-cdk-portals.mjs +16 -16
  92. package/fesm2022/taiga-ui-cdk-portals.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-cdk-tokens.mjs +14 -47
  94. package/fesm2022/taiga-ui-cdk-tokens.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-cdk-utils-browser.mjs +2 -3
  96. package/fesm2022/taiga-ui-cdk-utils-browser.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-cdk-utils-di.mjs +45 -4
  98. package/fesm2022/taiga-ui-cdk-utils-di.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-cdk-utils-dom.mjs +2 -74
  100. package/fesm2022/taiga-ui-cdk-utils-dom.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-cdk-utils-focus.mjs +22 -38
  102. package/fesm2022/taiga-ui-cdk-utils-focus.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-cdk-utils-math.mjs +1 -12
  104. package/fesm2022/taiga-ui-cdk-utils-math.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs +45 -119
  106. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-cdk-utils.mjs +0 -1
  108. package/fesm2022/taiga-ui-cdk-utils.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-cdk.mjs +0 -1
  110. package/fesm2022/taiga-ui-cdk.mjs.map +1 -1
  111. package/index.d.ts +0 -1
  112. package/observables/index.d.ts +0 -2
  113. package/package.json +19 -69
  114. package/pipes/index.d.ts +0 -6
  115. package/pipes/obfuscate/obfuscate.options.d.ts +1 -1
  116. package/portals/portal.d.ts +1 -2
  117. package/schematics/index.d.ts +1 -0
  118. package/schematics/index.js +1 -0
  119. package/schematics/index.js.map +1 -1
  120. package/schematics/ng-add/constants/versions.d.ts +1 -1
  121. package/schematics/ng-add/steps/add-taiga-modules.js +0 -15
  122. package/schematics/ng-add/steps/add-taiga-modules.js.map +1 -1
  123. package/schematics/ng-update/interfaces/html-comment.d.ts +1 -1
  124. package/schematics/ng-update/interfaces/removable-input.d.ts +1 -1
  125. package/schematics/ng-update/interfaces/replacement-attribute-to-directive.d.ts +1 -1
  126. package/schematics/ng-update/interfaces/replacement-attribute-value.d.ts +1 -1
  127. package/schematics/ng-update/interfaces/replacement-attribute.d.ts +1 -1
  128. package/schematics/ng-update/interfaces/replacement-tag.d.ts +1 -1
  129. package/schematics/ng-update/v4/migrate-css-vars/palette.d.ts +4 -4
  130. package/schematics/ng-update/v4/migrate-css-vars/palette.js +4 -4
  131. package/schematics/ng-update/v4/migrate-css-vars/palette.js.map +1 -1
  132. package/schematics/ng-update/v4/steps/migrate-templates.d.ts +2 -2
  133. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js +13 -13
  134. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js.map +1 -1
  135. package/schematics/ng-update/v5/index.js +2 -0
  136. package/schematics/ng-update/v5/index.js.map +1 -1
  137. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.d.ts +2 -0
  138. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js +22 -0
  139. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js.map +1 -0
  140. package/schematics/ng-update/v5/steps/constants/functions.js +1 -6
  141. package/schematics/ng-update/v5/steps/constants/functions.js.map +1 -1
  142. package/schematics/ng-update/v5/steps/migrate-css-variables.d.ts +3 -0
  143. package/schematics/ng-update/v5/steps/migrate-css-variables.js +30 -0
  144. package/schematics/ng-update/v5/steps/migrate-css-variables.js.map +1 -0
  145. package/schematics/ng-update/v5/steps/migrate-templates.d.ts +2 -2
  146. package/schematics/ng-update/v5/steps/migrate-templates.js +6 -0
  147. package/schematics/ng-update/v5/steps/migrate-templates.js.map +1 -1
  148. package/schematics/ng-update/v5/steps/templates/migrate-avatar.d.ts +8 -0
  149. package/schematics/ng-update/v5/steps/templates/migrate-avatar.js +111 -0
  150. package/schematics/ng-update/v5/steps/templates/migrate-avatar.js.map +1 -0
  151. package/schematics/ng-update/v5/steps/templates/migrate-notification.d.ts +8 -0
  152. package/schematics/ng-update/v5/steps/templates/migrate-notification.js +45 -0
  153. package/schematics/ng-update/v5/steps/templates/migrate-notification.js.map +1 -0
  154. package/schematics/utils/run-migration.d.ts +2 -2
  155. package/schematics/utils/run-migration.js +4 -3
  156. package/schematics/utils/run-migration.js.map +1 -1
  157. package/schematics/utils/templates/elements.d.ts +4 -1
  158. package/schematics/utils/templates/elements.js.map +1 -1
  159. package/schematics/utils/templates/ng-component-input-manipulations.d.ts +3 -3
  160. package/tokens/environment.d.ts +0 -13
  161. package/tokens/index.d.ts +0 -2
  162. package/tokens/removed-element.d.ts +0 -3
  163. package/types/index.d.ts +0 -2
  164. package/utils/di/index.d.ts +3 -0
  165. package/utils/dom/index.d.ts +0 -6
  166. package/utils/focus/get-closest-focusable.d.ts +1 -6
  167. package/utils/focus/index.d.ts +4 -6
  168. package/utils/focus/{is-native-keyboard-focusable.d.ts → is-focusable.d.ts} +1 -1
  169. package/utils/index.d.ts +0 -1
  170. package/utils/math/index.d.ts +0 -2
  171. package/utils/miscellaneous/generate-id.d.ts +1 -0
  172. package/utils/miscellaneous/index.d.ts +2 -10
  173. package/utils/miscellaneous/sanitize-text.d.ts +23 -0
  174. package/directives/animated/animated-parent.directive.d.ts +0 -10
  175. package/directives/click-outside/click-outside.directive.d.ts +0 -14
  176. package/directives/click-outside/index.d.ts +0 -1
  177. package/directives/droppable/droppable.directive.d.ts +0 -8
  178. package/directives/droppable/index.d.ts +0 -1
  179. package/directives/let/index.d.ts +0 -2
  180. package/directives/let/let-context.d.ts +0 -11
  181. package/directives/let/let.directive.d.ts +0 -18
  182. package/directives/popover/index.d.ts +0 -1
  183. package/directives/popover/popover.directive.d.ts +0 -14
  184. package/directives/repeat-times/index.d.ts +0 -1
  185. package/directives/repeat-times/repeat-times.directive.d.ts +0 -22
  186. package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs +0 -39
  187. package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs.map +0 -1
  188. package/fesm2022/taiga-ui-cdk-directives-droppable.mjs +0 -37
  189. package/fesm2022/taiga-ui-cdk-directives-droppable.mjs.map +0 -1
  190. package/fesm2022/taiga-ui-cdk-directives-let.mjs +0 -53
  191. package/fesm2022/taiga-ui-cdk-directives-let.mjs.map +0 -1
  192. package/fesm2022/taiga-ui-cdk-directives-popover.mjs +0 -32
  193. package/fesm2022/taiga-ui-cdk-directives-popover.mjs.map +0 -1
  194. package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs +0 -61
  195. package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs.map +0 -1
  196. package/fesm2022/taiga-ui-cdk-pipes-animation.mjs +0 -33
  197. package/fesm2022/taiga-ui-cdk-pipes-animation.mjs.map +0 -1
  198. package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs +0 -25
  199. package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs.map +0 -1
  200. package/fesm2022/taiga-ui-cdk-pipes-keys.mjs +0 -24
  201. package/fesm2022/taiga-ui-cdk-pipes-keys.mjs.map +0 -1
  202. package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs +0 -25
  203. package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs.map +0 -1
  204. package/fesm2022/taiga-ui-cdk-pipes-replace.mjs +0 -26
  205. package/fesm2022/taiga-ui-cdk-pipes-replace.mjs.map +0 -1
  206. package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs +0 -24
  207. package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs.map +0 -1
  208. package/fesm2022/taiga-ui-cdk-services.mjs +0 -151
  209. package/fesm2022/taiga-ui-cdk-services.mjs.map +0 -1
  210. package/fesm2022/taiga-ui-cdk-utils-color.mjs +0 -195
  211. package/fesm2022/taiga-ui-cdk-utils-color.mjs.map +0 -1
  212. package/observables/must-be-present.d.ts +0 -5
  213. package/observables/query-list-observable.d.ts +0 -6
  214. package/pipes/animation/animation.pipe.d.ts +0 -13
  215. package/pipes/animation/index.d.ts +0 -1
  216. package/pipes/is-present/index.d.ts +0 -1
  217. package/pipes/is-present/is-present.pipe.d.ts +0 -7
  218. package/pipes/keys/index.d.ts +0 -1
  219. package/pipes/keys/keys.pipe.d.ts +0 -7
  220. package/pipes/repeat-times/index.d.ts +0 -7
  221. package/pipes/replace/index.d.ts +0 -1
  222. package/pipes/replace/replace.pipe.d.ts +0 -7
  223. package/pipes/to-array/index.d.ts +0 -1
  224. package/pipes/to-array/to-array.pipe.d.ts +0 -7
  225. package/services/id.service.d.ts +0 -8
  226. package/services/index.d.ts +0 -4
  227. package/services/popover.service.d.ts +0 -25
  228. package/services/scroll.service.d.ts +0 -13
  229. package/services/theme-color.service.d.ts +0 -18
  230. package/tokens/base-href.d.ts +0 -2
  231. package/tokens/range.d.ts +0 -5
  232. package/types/safe-html.d.ts +0 -2
  233. package/types/values-of.d.ts +0 -1
  234. package/utils/color/get-gradient-data.d.ts +0 -1
  235. package/utils/color/hex-to-rgb.d.ts +0 -1
  236. package/utils/color/hex-to-rgba.d.ts +0 -3
  237. package/utils/color/hsv-to-rgb.d.ts +0 -4
  238. package/utils/color/index.d.ts +0 -9
  239. package/utils/color/parse-color.d.ts +0 -1
  240. package/utils/color/parse-gradient.d.ts +0 -10
  241. package/utils/color/rgb-to-hex.d.ts +0 -1
  242. package/utils/color/rgb-to-hsv.d.ts +0 -1
  243. package/utils/color/rgba-to-hex.d.ts +0 -2
  244. package/utils/dom/get-element-point.d.ts +0 -2
  245. package/utils/dom/is-current-target.d.ts +0 -1
  246. package/utils/dom/is-inside-iframe.d.ts +0 -4
  247. package/utils/dom/is-node-in.d.ts +0 -8
  248. package/utils/dom/retarget-boundary-crossing.d.ts +0 -1
  249. package/utils/dom/value-binding.d.ts +0 -3
  250. package/utils/focus/blur-native-focused.d.ts +0 -4
  251. package/utils/focus/is-native-mouse-focusable.d.ts +0 -1
  252. package/utils/math/to-integer.d.ts +0 -1
  253. package/utils/math/to-radians.d.ts +0 -4
  254. package/utils/miscellaneous/change-date-separator.d.ts +0 -1
  255. package/utils/miscellaneous/create-token.d.ts +0 -9
  256. package/utils/miscellaneous/flat-length.d.ts +0 -6
  257. package/utils/miscellaneous/get-original-array-from-query-list.d.ts +0 -8
  258. package/utils/miscellaneous/is-falsy.d.ts +0 -1
  259. package/utils/miscellaneous/is-valid-url.d.ts +0 -4
  260. package/utils/miscellaneous/uniq-by.d.ts +0 -1
  261. /package/utils/{miscellaneous → di}/directive-binding.d.ts +0 -0
  262. /package/utils/{miscellaneous → di}/provide-options.d.ts +0 -0
  263. /package/utils/{miscellaneous → di}/provide.d.ts +0 -0
  264. /package/utils/focus/{get-native-focused.d.ts → get-focused.d.ts} +0 -0
  265. /package/utils/focus/{is-native-focused-in.d.ts → is-focused-in.d.ts} +0 -0
  266. /package/utils/focus/{is-native-focused.d.ts → is-focused.d.ts} +0 -0
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, NgZone, Injectable, Output, Directive } from '@angular/core';
3
- import { toSignal } from '@angular/core/rxjs-interop';
2
+ import { inject, NgZone, Injectable, Directive } from '@angular/core';
3
+ import { toSignal, outputFromObservable } from '@angular/core/rxjs-interop';
4
4
  import { TUI_TRUE_HANDLER, TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
5
5
  import { tuiTypedFromEvent, tuiZoneOptimized, tuiWatch } from '@taiga-ui/cdk/observables';
6
6
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
7
- import { tuiIsElement, tuiInjectElement } from '@taiga-ui/cdk/utils';
7
+ import { tuiIsElement, tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
8
8
  import { Observable, merge, map, filter, distinctUntilChanged, of } from 'rxjs';
9
9
 
10
10
  function movedOut({ currentTarget, relatedTarget }) {
@@ -21,10 +21,10 @@ class TuiHoveredService extends Observable {
21
21
  // Hello, Safari
22
22
  tuiTypedFromEvent(this.el, 'mouseout').pipe(filter(movedOut), map(TUI_FALSE_HANDLER))).pipe(distinctUntilChanged(), tuiZoneOptimized(this.zone));
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHoveredService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHoveredService }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHoveredService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHoveredService }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHoveredService, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHoveredService, decorators: [{
28
28
  type: Injectable
29
29
  }], ctorParameters: () => [] });
30
30
  function tuiHovered() {
@@ -35,21 +35,18 @@ function tuiHovered() {
35
35
 
36
36
  class TuiHovered {
37
37
  constructor() {
38
- this.tuiHoveredChange = inject(TuiHoveredService);
38
+ this.tuiHoveredChange = outputFromObservable(inject(TuiHoveredService));
39
39
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHovered, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHovered, isStandalone: true, selector: "[tuiHoveredChange]", outputs: { tuiHoveredChange: "tuiHoveredChange" }, providers: [TuiHoveredService], ngImport: i0 }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHovered, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiHovered, isStandalone: true, selector: "[tuiHoveredChange]", outputs: { tuiHoveredChange: "tuiHoveredChange" }, providers: [TuiHoveredService], ngImport: i0 }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHovered, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHovered, decorators: [{
44
44
  type: Directive,
45
45
  args: [{
46
- standalone: true,
47
46
  selector: '[tuiHoveredChange]',
48
47
  providers: [TuiHoveredService],
49
48
  }]
50
- }], propDecorators: { tuiHoveredChange: [{
51
- type: Output
52
- }] } });
49
+ }] });
53
50
 
54
51
  /**
55
52
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-hovered.mjs","sources":["../../../projects/cdk/directives/hovered/hovered.service.ts","../../../projects/cdk/directives/hovered/hovered.directive.ts","../../../projects/cdk/directives/hovered/taiga-ui-cdk-directives-hovered.ts"],"sourcesContent":["import {inject, Injectable, NgZone, type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiTypedFromEvent, tuiWatch, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils';\nimport {distinctUntilChanged, filter, map, merge, Observable, of} from 'rxjs';\n\nfunction movedOut({currentTarget, relatedTarget}: MouseEvent): boolean {\n return (\n !tuiIsElement(relatedTarget) ||\n !tuiIsElement(currentTarget) ||\n !currentTarget.contains(relatedTarget)\n );\n}\n\n@Injectable()\nexport class TuiHoveredService extends Observable<boolean> {\n private readonly el = tuiInjectElement();\n private readonly zone = inject(NgZone);\n\n private readonly stream$ = merge(\n tuiTypedFromEvent(this.el, 'mouseenter').pipe(map(TUI_TRUE_HANDLER)),\n tuiTypedFromEvent(this.el, 'mouseleave').pipe(map(TUI_FALSE_HANDLER)),\n // Hello, Safari\n tuiTypedFromEvent(this.el, 'mouseout').pipe(\n filter(movedOut),\n map(TUI_FALSE_HANDLER),\n ),\n ).pipe(distinctUntilChanged(), tuiZoneOptimized(this.zone));\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n}\n\nexport function tuiHovered(): Signal<boolean> {\n return toSignal(\n inject(TUI_IS_MOBILE) ? of(false) : inject(TuiHoveredService).pipe(tuiWatch()),\n {\n initialValue: false,\n },\n );\n}\n","import {Directive, inject, Output} from '@angular/core';\n\nimport {TuiHoveredService} from './hovered.service';\n\n@Directive({\n standalone: true,\n selector: '[tuiHoveredChange]',\n providers: [TuiHoveredService],\n})\nexport class TuiHovered {\n @Output()\n public readonly tuiHoveredChange = inject(TuiHoveredService);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAQA,SAAS,QAAQ,CAAC,EAAC,aAAa,EAAE,aAAa,EAAa,EAAA;AACxD,IAAA,QACI,CAAC,YAAY,CAAC,aAAa,CAAC;QAC5B,CAAC,YAAY,CAAC,aAAa,CAAC;AAC5B,QAAA,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC;AAE9C;AAGM,MAAO,iBAAkB,SAAQ,UAAmB,CAAA;AActD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAd5C,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAErB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAC5B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EACpE,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;;AAErE,QAAA,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,EAChB,GAAG,CAAC,iBAAiB,CAAC,CACzB,CACJ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;+GAZlD,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;SAoBe,UAAU,GAAA;IACtB,OAAO,QAAQ,CACX,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC9E;AACI,QAAA,YAAY,EAAE,KAAK;AACtB,KAAA,CACJ;AACL;;MClCa,UAAU,CAAA;AALvB,IAAA,WAAA,GAAA;AAOoB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/D;+GAHY,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,oBAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAFR,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAErB,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,SAAS,EAAE,CAAC,iBAAiB,CAAC;AACjC,iBAAA;8BAGmB,gBAAgB,EAAA,CAAA;sBAD/B;;;ACVL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-hovered.mjs","sources":["../../../projects/cdk/directives/hovered/hovered.service.ts","../../../projects/cdk/directives/hovered/hovered.directive.ts","../../../projects/cdk/directives/hovered/taiga-ui-cdk-directives-hovered.ts"],"sourcesContent":["import {inject, Injectable, NgZone, type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiTypedFromEvent, tuiWatch, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {distinctUntilChanged, filter, map, merge, Observable, of} from 'rxjs';\n\nfunction movedOut({currentTarget, relatedTarget}: MouseEvent): boolean {\n return (\n !tuiIsElement(relatedTarget) ||\n !tuiIsElement(currentTarget) ||\n !currentTarget.contains(relatedTarget)\n );\n}\n\n@Injectable()\nexport class TuiHoveredService extends Observable<boolean> {\n private readonly el = tuiInjectElement();\n private readonly zone = inject(NgZone);\n\n private readonly stream$ = merge(\n tuiTypedFromEvent(this.el, 'mouseenter').pipe(map(TUI_TRUE_HANDLER)),\n tuiTypedFromEvent(this.el, 'mouseleave').pipe(map(TUI_FALSE_HANDLER)),\n // Hello, Safari\n tuiTypedFromEvent(this.el, 'mouseout').pipe(\n filter(movedOut),\n map(TUI_FALSE_HANDLER),\n ),\n ).pipe(distinctUntilChanged(), tuiZoneOptimized(this.zone));\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n}\n\nexport function tuiHovered(): Signal<boolean> {\n return toSignal(\n inject(TUI_IS_MOBILE) ? of(false) : inject(TuiHoveredService).pipe(tuiWatch()),\n {\n initialValue: false,\n },\n );\n}\n","import {Directive, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\n\nimport {TuiHoveredService} from './hovered.service';\n\n@Directive({\n selector: '[tuiHoveredChange]',\n providers: [TuiHoveredService],\n})\nexport class TuiHovered {\n public readonly tuiHoveredChange = outputFromObservable(inject(TuiHoveredService));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAQA,SAAS,QAAQ,CAAC,EAAC,aAAa,EAAE,aAAa,EAAa,EAAA;AACxD,IAAA,QACI,CAAC,YAAY,CAAC,aAAa,CAAC;QAC5B,CAAC,YAAY,CAAC,aAAa,CAAC;AAC5B,QAAA,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC;AAE9C;AAGM,MAAO,iBAAkB,SAAQ,UAAmB,CAAA;AActD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAd5C,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAErB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAC5B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EACpE,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;;AAErE,QAAA,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,EAChB,GAAG,CAAC,iBAAiB,CAAC,CACzB,CACJ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;+GAZlD,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;SAoBe,UAAU,GAAA;IACtB,OAAO,QAAQ,CACX,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC9E;AACI,QAAA,YAAY,EAAE,KAAK;AACtB,KAAA,CACJ;AACL;;MClCa,UAAU,CAAA;AAJvB,IAAA,WAAA,GAAA;QAKoB,IAAgB,CAAA,gBAAA,GAAG,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACrF;+GAFY,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,oBAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAFR,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAErB,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,SAAS,EAAE,CAAC,iBAAiB,CAAC;AACjC,iBAAA;;;ACRD;;AAEG;;;;"}
@@ -5,13 +5,12 @@ import { Directive } from '@angular/core';
5
5
  * Blank directive for queries via `@ContentChildren` / `@ViewChildren` / `querySelector`
6
6
  */
7
7
  class TuiItem {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiItem, isStandalone: true, selector: "[tuiItem]", ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiItem, isStandalone: true, selector: "[tuiItem]", ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiItem, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiItem, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
- standalone: true,
15
14
  selector: '[tuiItem]',
16
15
  }]
17
16
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-item.mjs","sources":["../../../projects/cdk/directives/item/item.directive.ts","../../../projects/cdk/directives/item/taiga-ui-cdk-directives-item.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * Blank directive for queries via `@ContentChildren` / `@ViewChildren` / `querySelector`\n */\n@Directive({\n standalone: true,\n selector: '[tuiItem]',\n})\nexport class TuiItem {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA;;AAEG;MAKU,OAAO,CAAA;+GAAP,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAJnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,WAAW;AACxB,iBAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-item.mjs","sources":["../../../projects/cdk/directives/item/item.directive.ts","../../../projects/cdk/directives/item/taiga-ui-cdk-directives-item.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * Blank directive for queries via `@ContentChildren` / `@ViewChildren` / `querySelector`\n */\n@Directive({\n selector: '[tuiItem]',\n})\nexport class TuiItem {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA;;AAEG;MAIU,OAAO,CAAA;+GAAP,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAHnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACxB,iBAAA;;;ACPD;;AAEG;;;;"}
@@ -1,65 +1,55 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Input, Output, Directive } from '@angular/core';
3
- import { tuiInjectElement } from '@taiga-ui/cdk/utils';
2
+ import { effect, untracked, input, model, Directive } from '@angular/core';
3
+ import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
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.17", ngImport: i0, type: TuiMedia, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", 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.17", 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/dom';\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,8 +1,9 @@
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
- import { tuiInjectElement, tuiProvide } from '@taiga-ui/cdk/utils';
5
+ import { tuiProvide } from '@taiga-ui/cdk/utils/di';
6
+ import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
6
7
  import { BehaviorSubject, switchMap, of, delay } from 'rxjs';
7
8
 
8
9
  class TuiNativeValidator {
@@ -12,7 +13,7 @@ class TuiNativeValidator {
12
13
  this.sub = this.control$
13
14
  .pipe(switchMap((control) => control?.events || of(null)), delay(0), tuiZonefree(), tuiTakeUntilDestroyed())
14
15
  .subscribe(() => this.handleValidation());
15
- this.tuiNativeValidator = 'Invalid';
16
+ this.tuiNativeValidator = input('Invalid');
16
17
  }
17
18
  validate(control) {
18
19
  this.control$.next(control);
@@ -22,24 +23,21 @@ class TuiNativeValidator {
22
23
  const invalid = !!this.control$.value?.touched && this.control$.value?.invalid;
23
24
  // TODO: Replace with :has(:invalid) when supported
24
25
  this.el.closest('tui-textfield')?.classList.toggle('tui-invalid', invalid);
25
- this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator : '');
26
+ this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator() : '');
26
27
  }
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 }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiNativeValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", 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
30
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNativeValidator, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiNativeValidator, decorators: [{
31
32
  type: Directive,
32
33
  args: [{
33
- standalone: true,
34
34
  selector: '[tuiNativeValidator]',
35
35
  providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],
36
36
  host: {
37
37
  '(focusout)': 'handleValidation()',
38
38
  },
39
39
  }]
40
- }], propDecorators: { tuiNativeValidator: [{
41
- type: Input
42
- }] } });
40
+ }] });
43
41
 
44
42
  /**
45
43
  * 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 {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\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":";;;;;;;;MAca,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;;;ACbD;;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.17", ngImport: i0, type: TuiObscuredService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", 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.17", ngImport: i0, type: TuiObscuredService, decorators: [{
23
24
  type: Injectable
24
25
  }], ctorParameters: () => [] });
25
26
 
@@ -29,34 +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
- this.obscured$ = inject(TuiObscuredService, { self: true }).pipe(map((by) => !!by?.every((el) => check(el) || !this.activeZone?.contains(el))));
34
- this.tuiObscured = this.enabled$.pipe(tuiIfMap(() => this.obscured$));
33
+ this.obscured$ = inject(TuiObscuredService, { self: true }).pipe(map((by) => !!by?.every((el) => !this.activeZone?.contains(el))));
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.17", ngImport: i0, type: TuiObscured, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", 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.17", 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
- }] } });
54
- // TODO: Refactor so that dropdowns and dialogs work properly without hacks
55
- function check(el) {
56
- return (!!el.closest('tui-dialogs') &&
57
- // eslint-disable-next-line unicorn/prefer-query-selector
58
- !!el.ownerDocument.documentElement.getElementsByTagName('tui-dropdown').length);
59
- }
47
+ }] });
60
48
 
61
49
  /**
62
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) => check(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// TODO: Refactor so that dropdowns and dialogs work properly without hacks\nfunction check(el: Element): boolean {\n return (\n !!el.closest('tui-dialogs') &&\n // eslint-disable-next-line unicorn/prefer-query-selector\n !!el.ownerDocument.documentElement.getElementsByTagName('tui-dropdown').length\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,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAChF;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;;AAML;AACA,SAAS,KAAK,CAAC,EAAW,EAAA;IACtB,QACI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;;AAE3B,QAAA,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,MAAM;AAEtF;;ACtCA;;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.17", ngImport: i0, type: TuiPanService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", 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.17", 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.17", ngImport: i0, type: TuiPan, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", 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.17", 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.17", ngImport: i0, type: TuiPlatform, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", 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.17", 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;;;;"}