@taiga-ui/cdk 4.52.0-canary.974ca4b → 4.52.0-canary.9c7b1f0

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 (243) hide show
  1. package/constants/empty.d.ts +0 -9
  2. package/constants/handlers.d.ts +2 -0
  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 -3
  11. package/directives/animated/animated.directive.d.ts +1 -3
  12. package/directives/animated/index.d.ts +0 -1
  13. package/directives/index.d.ts +0 -4
  14. package/directives/transitioned/transitioned.directive.d.ts +1 -0
  15. package/directives/value-changes/value-changes.directive.d.ts +1 -1
  16. package/fesm2022/taiga-ui-cdk-classes.mjs +4 -4
  17. package/fesm2022/taiga-ui-cdk-classes.mjs.map +1 -1
  18. package/fesm2022/taiga-ui-cdk-constants.mjs +5 -14
  19. package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
  20. package/fesm2022/taiga-ui-cdk-date-time.mjs +22 -23
  21. package/fesm2022/taiga-ui-cdk-date-time.mjs.map +1 -1
  22. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs +16 -27
  23. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs.map +1 -1
  24. package/fesm2022/taiga-ui-cdk-directives-animated.mjs +23 -70
  25. package/fesm2022/taiga-ui-cdk-directives-animated.mjs.map +1 -1
  26. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs +5 -4
  27. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-cdk-directives-control.mjs +3 -3
  29. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs +4 -4
  30. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-cdk-directives-element.mjs +4 -4
  32. package/fesm2022/taiga-ui-cdk-directives-element.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs +5 -7
  34. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-cdk-directives-font-size.mjs +3 -3
  36. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs +3 -3
  37. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs +7 -7
  38. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-cdk-directives-item.mjs +3 -3
  40. package/fesm2022/taiga-ui-cdk-directives-media.mjs +4 -4
  41. package/fesm2022/taiga-ui-cdk-directives-media.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs +5 -4
  43. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs +7 -13
  45. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-cdk-directives-pan.mjs +6 -6
  47. package/fesm2022/taiga-ui-cdk-directives-platform.mjs +3 -3
  48. package/fesm2022/taiga-ui-cdk-directives-resizer.mjs +6 -6
  49. package/fesm2022/taiga-ui-cdk-directives-swipe.mjs +6 -6
  50. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs +8 -14
  51. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-cdk-directives-validator.mjs +4 -4
  53. package/fesm2022/taiga-ui-cdk-directives-validator.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs +8 -7
  55. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs +5 -4
  57. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs +3 -3
  59. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs +8 -7
  60. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-cdk-directives.mjs +0 -4
  62. package/fesm2022/taiga-ui-cdk-directives.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-cdk-observables.mjs +2 -24
  64. package/fesm2022/taiga-ui-cdk-observables.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-cdk-pipes-filter.mjs +3 -3
  66. package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs +3 -3
  67. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs +5 -4
  68. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-cdk-pipes.mjs +0 -6
  70. package/fesm2022/taiga-ui-cdk-pipes.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-cdk-portals.mjs +15 -16
  72. package/fesm2022/taiga-ui-cdk-portals.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-cdk-tokens.mjs +14 -47
  74. package/fesm2022/taiga-ui-cdk-tokens.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-cdk-utils-browser.mjs +2 -3
  76. package/fesm2022/taiga-ui-cdk-utils-browser.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-cdk-utils-di.mjs +45 -4
  78. package/fesm2022/taiga-ui-cdk-utils-di.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-cdk-utils-dom.mjs +1 -74
  80. package/fesm2022/taiga-ui-cdk-utils-dom.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-cdk-utils-focus.mjs +22 -38
  82. package/fesm2022/taiga-ui-cdk-utils-focus.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-cdk-utils-math.mjs +13 -21
  84. package/fesm2022/taiga-ui-cdk-utils-math.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs +45 -123
  86. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-cdk-utils.mjs +0 -1
  88. package/fesm2022/taiga-ui-cdk-utils.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-cdk.mjs +0 -1
  90. package/fesm2022/taiga-ui-cdk.mjs.map +1 -1
  91. package/index.d.ts +0 -1
  92. package/observables/index.d.ts +0 -2
  93. package/package.json +8 -57
  94. package/pipes/index.d.ts +0 -6
  95. package/portals/portal.d.ts +0 -1
  96. package/schematics/index.d.ts +5 -0
  97. package/schematics/index.js +4 -0
  98. package/schematics/index.js.map +1 -1
  99. package/schematics/ng-add/constants/versions.d.ts +1 -1
  100. package/schematics/ng-add/steps/add-taiga-modules.js +0 -15
  101. package/schematics/ng-add/steps/add-taiga-modules.js.map +1 -1
  102. package/schematics/ng-update/v4/migrate-css-vars/palette.d.ts +4 -4
  103. package/schematics/ng-update/v4/migrate-css-vars/palette.js +4 -4
  104. package/schematics/ng-update/v4/migrate-css-vars/palette.js.map +1 -1
  105. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js +13 -13
  106. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js.map +1 -1
  107. package/schematics/ng-update/v5/index.js +4 -0
  108. package/schematics/ng-update/v5/index.js.map +1 -1
  109. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.d.ts +2 -0
  110. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js +26 -0
  111. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js.map +1 -0
  112. package/schematics/ng-update/v5/steps/constants/functions.js +1 -6
  113. package/schematics/ng-update/v5/steps/constants/functions.js.map +1 -1
  114. package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js +10 -0
  115. package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js.map +1 -1
  116. package/schematics/ng-update/v5/steps/migrate-css-variables.d.ts +3 -0
  117. package/schematics/ng-update/v5/steps/migrate-css-variables.js +30 -0
  118. package/schematics/ng-update/v5/steps/migrate-css-variables.js.map +1 -0
  119. package/schematics/ng-update/v5/steps/migrate-templates.js +6 -0
  120. package/schematics/ng-update/v5/steps/migrate-templates.js.map +1 -1
  121. package/schematics/ng-update/v5/steps/migrate-tui-let.d.ts +3 -0
  122. package/schematics/ng-update/v5/steps/migrate-tui-let.js +95 -0
  123. package/schematics/ng-update/v5/steps/migrate-tui-let.js.map +1 -0
  124. package/schematics/ng-update/v5/steps/templates/migrate-avatar.d.ts +8 -0
  125. package/schematics/ng-update/v5/steps/templates/migrate-avatar.js +111 -0
  126. package/schematics/ng-update/v5/steps/templates/migrate-avatar.js.map +1 -0
  127. package/schematics/ng-update/v5/steps/templates/migrate-notification.d.ts +8 -0
  128. package/schematics/ng-update/v5/steps/templates/migrate-notification.js +45 -0
  129. package/schematics/ng-update/v5/steps/templates/migrate-notification.js.map +1 -0
  130. package/schematics/utils/run-migration.d.ts +2 -2
  131. package/schematics/utils/run-migration.js +4 -3
  132. package/schematics/utils/run-migration.js.map +1 -1
  133. package/schematics/utils/templates/elements.d.ts +4 -1
  134. package/schematics/utils/templates/elements.js.map +1 -1
  135. package/tokens/environment.d.ts +0 -13
  136. package/tokens/index.d.ts +0 -2
  137. package/tokens/removed-element.d.ts +0 -3
  138. package/types/index.d.ts +0 -3
  139. package/utils/di/index.d.ts +3 -0
  140. package/utils/dom/index.d.ts +0 -6
  141. package/utils/focus/get-closest-focusable.d.ts +1 -6
  142. package/utils/focus/index.d.ts +4 -6
  143. package/utils/focus/{is-native-keyboard-focusable.d.ts → is-focusable.d.ts} +1 -1
  144. package/utils/index.d.ts +0 -1
  145. package/utils/math/clamp.d.ts +1 -5
  146. package/utils/math/index.d.ts +0 -2
  147. package/utils/miscellaneous/generate-id.d.ts +1 -0
  148. package/utils/miscellaneous/index.d.ts +2 -11
  149. package/utils/miscellaneous/sanitize-text.d.ts +23 -0
  150. package/directives/animated/animated-parent.directive.d.ts +0 -10
  151. package/directives/click-outside/click-outside.directive.d.ts +0 -14
  152. package/directives/click-outside/index.d.ts +0 -1
  153. package/directives/droppable/droppable.directive.d.ts +0 -10
  154. package/directives/droppable/index.d.ts +0 -1
  155. package/directives/let/index.d.ts +0 -2
  156. package/directives/let/let-context.d.ts +0 -11
  157. package/directives/let/let.directive.d.ts +0 -18
  158. package/directives/repeat-times/index.d.ts +0 -1
  159. package/directives/repeat-times/repeat-times.directive.d.ts +0 -23
  160. package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs +0 -38
  161. package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs.map +0 -1
  162. package/fesm2022/taiga-ui-cdk-directives-droppable.mjs +0 -35
  163. package/fesm2022/taiga-ui-cdk-directives-droppable.mjs.map +0 -1
  164. package/fesm2022/taiga-ui-cdk-directives-let.mjs +0 -52
  165. package/fesm2022/taiga-ui-cdk-directives-let.mjs.map +0 -1
  166. package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs +0 -60
  167. package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs.map +0 -1
  168. package/fesm2022/taiga-ui-cdk-pipes-animation.mjs +0 -32
  169. package/fesm2022/taiga-ui-cdk-pipes-animation.mjs.map +0 -1
  170. package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs +0 -24
  171. package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs.map +0 -1
  172. package/fesm2022/taiga-ui-cdk-pipes-keys.mjs +0 -23
  173. package/fesm2022/taiga-ui-cdk-pipes-keys.mjs.map +0 -1
  174. package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs +0 -24
  175. package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs.map +0 -1
  176. package/fesm2022/taiga-ui-cdk-pipes-replace.mjs +0 -25
  177. package/fesm2022/taiga-ui-cdk-pipes-replace.mjs.map +0 -1
  178. package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs +0 -23
  179. package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs.map +0 -1
  180. package/fesm2022/taiga-ui-cdk-services.mjs +0 -111
  181. package/fesm2022/taiga-ui-cdk-services.mjs.map +0 -1
  182. package/fesm2022/taiga-ui-cdk-utils-color.mjs +0 -196
  183. package/fesm2022/taiga-ui-cdk-utils-color.mjs.map +0 -1
  184. package/observables/must-be-present.d.ts +0 -5
  185. package/observables/query-list-observable.d.ts +0 -6
  186. package/pipes/animation/animation.pipe.d.ts +0 -13
  187. package/pipes/animation/index.d.ts +0 -1
  188. package/pipes/is-present/index.d.ts +0 -1
  189. package/pipes/is-present/is-present.pipe.d.ts +0 -7
  190. package/pipes/keys/index.d.ts +0 -1
  191. package/pipes/keys/keys.pipe.d.ts +0 -7
  192. package/pipes/repeat-times/index.d.ts +0 -7
  193. package/pipes/replace/index.d.ts +0 -1
  194. package/pipes/replace/replace.pipe.d.ts +0 -7
  195. package/pipes/to-array/index.d.ts +0 -1
  196. package/pipes/to-array/to-array.pipe.d.ts +0 -7
  197. package/schematics/migrate-tui-let/index.d.ts +0 -3
  198. package/schematics/migrate-tui-let/index.js +0 -73
  199. package/schematics/migrate-tui-let/index.js.map +0 -1
  200. package/schematics/migrate-tui-let/schema.json +0 -7
  201. package/services/id.service.d.ts +0 -8
  202. package/services/index.d.ts +0 -3
  203. package/services/scroll.service.d.ts +0 -13
  204. package/services/theme-color.service.d.ts +0 -18
  205. package/tokens/base-href.d.ts +0 -2
  206. package/tokens/range.d.ts +0 -5
  207. package/types/loose-union.d.ts +0 -36
  208. package/types/safe-html.d.ts +0 -2
  209. package/types/values-of.d.ts +0 -1
  210. package/utils/color/get-gradient-data.d.ts +0 -1
  211. package/utils/color/hex-to-rgb.d.ts +0 -1
  212. package/utils/color/hex-to-rgba.d.ts +0 -3
  213. package/utils/color/hsv-to-rgb.d.ts +0 -4
  214. package/utils/color/index.d.ts +0 -9
  215. package/utils/color/parse-color.d.ts +0 -1
  216. package/utils/color/parse-gradient.d.ts +0 -10
  217. package/utils/color/rgb-to-hex.d.ts +0 -1
  218. package/utils/color/rgb-to-hsv.d.ts +0 -1
  219. package/utils/color/rgba-to-hex.d.ts +0 -2
  220. package/utils/dom/get-element-point.d.ts +0 -2
  221. package/utils/dom/is-current-target.d.ts +0 -1
  222. package/utils/dom/is-inside-iframe.d.ts +0 -4
  223. package/utils/dom/is-node-in.d.ts +0 -8
  224. package/utils/dom/retarget-boundary-crossing.d.ts +0 -1
  225. package/utils/dom/value-binding.d.ts +0 -3
  226. package/utils/focus/blur-native-focused.d.ts +0 -4
  227. package/utils/focus/is-native-mouse-focusable.d.ts +0 -1
  228. package/utils/math/to-integer.d.ts +0 -1
  229. package/utils/math/to-radians.d.ts +0 -4
  230. package/utils/miscellaneous/change-date-separator.d.ts +0 -1
  231. package/utils/miscellaneous/create-token.d.ts +0 -9
  232. package/utils/miscellaneous/flat-length.d.ts +0 -6
  233. package/utils/miscellaneous/get-original-array-from-query-list.d.ts +0 -8
  234. package/utils/miscellaneous/is-falsy.d.ts +0 -1
  235. package/utils/miscellaneous/is-valid-url.d.ts +0 -4
  236. package/utils/miscellaneous/object-shallow-equals.d.ts +0 -1
  237. package/utils/miscellaneous/uniq-by.d.ts +0 -1
  238. /package/utils/{miscellaneous → di}/directive-binding.d.ts +0 -0
  239. /package/utils/{miscellaneous → di}/provide-options.d.ts +0 -0
  240. /package/utils/{miscellaneous → di}/provide.d.ts +0 -0
  241. /package/utils/focus/{get-native-focused.d.ts → get-focused.d.ts} +0 -0
  242. /package/utils/focus/{is-native-focused-in.d.ts → is-focused-in.d.ts} +0 -0
  243. /package/utils/focus/{is-native-focused.d.ts → is-focused.d.ts} +0 -0
@@ -1,12 +1,6 @@
1
- export * from '@taiga-ui/cdk/pipes/animation';
2
1
  export * from '@taiga-ui/cdk/pipes/filter';
3
- export * from '@taiga-ui/cdk/pipes/is-present';
4
- export * from '@taiga-ui/cdk/pipes/keys';
5
2
  export * from '@taiga-ui/cdk/pipes/mapper';
6
3
  export * from '@taiga-ui/cdk/pipes/obfuscate';
7
- export * from '@taiga-ui/cdk/pipes/repeat-times';
8
- export * from '@taiga-ui/cdk/pipes/replace';
9
- export * from '@taiga-ui/cdk/pipes/to-array';
10
4
 
11
5
  /**
12
6
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-pipes.mjs","sources":["../../../projects/cdk/pipes/taiga-ui-cdk-pipes.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAAA;;AAEG"}
1
+ {"version":3,"file":"taiga-ui-cdk-pipes.mjs","sources":["../../../projects/cdk/pipes/taiga-ui-cdk-pipes.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;AAEG"}
@@ -4,15 +4,14 @@ import { outputFromObservable, toObservable } from '@angular/core/rxjs-interop';
4
4
  import { tuiIfMap } from '@taiga-ui/cdk/observables';
5
5
  import { PolymorpheusComponent, POLYMORPHEUS_CONTEXT, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
6
6
  import { Observable, ignoreElements, endWith, share } from 'rxjs';
7
- import { TuiIdService } from '@taiga-ui/cdk/services';
8
- import { tuiProvide } from '@taiga-ui/cdk/utils';
7
+ import { tuiProvide } from '@taiga-ui/cdk/utils/di';
8
+ import { tuiGenerateId } from '@taiga-ui/cdk/utils/miscellaneous';
9
9
 
10
10
  class TuiPortal {
11
11
  // eslint-disable-next-line @angular-eslint/prefer-inject
12
12
  constructor(service) {
13
13
  this.service = service;
14
14
  this.injector = inject(INJECTOR);
15
- this.id = inject(TuiIdService);
16
15
  }
17
16
  open(content, options = {}) {
18
17
  return new Observable(($implicit) => this.add(new PolymorpheusComponent(this.component, Injector.create({
@@ -26,7 +25,7 @@ class TuiPortal {
26
25
  content,
27
26
  $implicit,
28
27
  createdAt: Date.now(),
29
- id: this.id.generate(),
28
+ id: tuiGenerateId(),
30
29
  completeWith: (v) => {
31
30
  $implicit.next(v);
32
31
  $implicit.complete();
@@ -40,10 +39,10 @@ class TuiPortal {
40
39
  const ref = this.service.add(component);
41
40
  return () => ref.destroy();
42
41
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortal, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
44
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortal }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortal, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
43
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortal }); }
45
44
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortal, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortal, decorators: [{
47
46
  type: Injectable
48
47
  }], ctorParameters: () => [{ type: undefined }] });
49
48
  function tuiAsPortal(portal) {
@@ -60,10 +59,10 @@ class TuiPortalDirective extends PolymorpheusTemplate {
60
59
  .open(this, this.options())
61
60
  .pipe(ignoreElements(), endWith(false))), share()));
62
61
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortalDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
64
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiPortalDirective, isStandalone: true, inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange" }, usesInheritance: true, ngImport: i0 }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortalDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
63
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiPortalDirective, isStandalone: true, inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange" }, usesInheritance: true, ngImport: i0 }); }
65
64
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortalDirective, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortalDirective, decorators: [{
67
66
  type: Directive
68
67
  }] });
69
68
 
@@ -80,10 +79,10 @@ class TuiPortalService {
80
79
  ? this.host.addComponent(content)
81
80
  : this.host.addTemplate(content, context);
82
81
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
84
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortalService }); }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
83
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortalService }); }
85
84
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortalService, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortalService, decorators: [{
87
86
  type: Injectable
88
87
  }] });
89
88
  class TuiNoHostException extends Error {
@@ -112,10 +111,10 @@ class TuiPortals {
112
111
  addTemplate(templateRef, context) {
113
112
  return this.vcr().createEmbeddedView(templateRef, context);
114
113
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortals, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
116
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.15", type: TuiPortals, isStandalone: true, viewQueries: [{ propertyName: "vcr", first: true, predicate: ["vcr"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0 }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortals, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
115
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.17", type: TuiPortals, isStandalone: true, viewQueries: [{ propertyName: "vcr", first: true, predicate: ["vcr"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0 }); }
117
116
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPortals, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiPortals, decorators: [{
119
118
  type: Directive
120
119
  }], ctorParameters: () => [] });
121
120
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-portals.mjs","sources":["../../../projects/cdk/portals/portal.ts","../../../projects/cdk/portals/directive.ts","../../../projects/cdk/portals/service.ts","../../../projects/cdk/portals/portals.ts","../../../projects/cdk/portals/taiga-ui-cdk-portals.ts"],"sourcesContent":["import {\n inject,\n Injectable,\n INJECTOR,\n Injector,\n type Provider,\n type Type,\n} from '@angular/core';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils';\nimport {\n // eslint-disable-next-line no-restricted-imports\n POLYMORPHEUS_CONTEXT,\n PolymorpheusComponent,\n type PolymorpheusContent,\n} from '@taiga-ui/polymorpheus';\nimport {Observable, type Observer} from 'rxjs';\n\nimport {type TuiPortalService} from './service';\n\nexport type TuiPortalContext<T, O = void> = T &\n TuiContext<Observer<O>> & {\n readonly content: PolymorpheusContent<TuiPortalContext<T, O>>;\n readonly createdAt: number;\n readonly id: string;\n completeWith(value: O): void;\n };\n\n@Injectable()\nexport abstract class TuiPortal<T, K = void> {\n protected abstract readonly component: Type<any>;\n protected abstract readonly options: T;\n\n private readonly injector = inject(INJECTOR);\n private readonly id = inject(TuiIdService);\n\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(protected readonly service: TuiPortalService) {}\n\n public open<G = void>(\n content: PolymorpheusContent<TuiPortalContext<T, K extends void ? G : K>>,\n options: Partial<T> = {},\n ): Observable<K extends void ? G : K> {\n return new Observable(($implicit) =>\n this.add(\n new PolymorpheusComponent(\n this.component,\n Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: POLYMORPHEUS_CONTEXT,\n useValue: {\n ...this.options,\n ...options,\n content,\n $implicit,\n createdAt: Date.now(),\n id: this.id.generate(),\n completeWith: (v: K extends void ? G : K): void => {\n $implicit.next(v);\n $implicit.complete();\n },\n } satisfies TuiPortalContext<T, K extends void ? G : K>,\n },\n ],\n }),\n ),\n ),\n );\n }\n\n protected add(component: PolymorpheusComponent<unknown>): () => void {\n const ref = this.service.add(component);\n\n return () => ref.destroy();\n }\n}\n\nexport function tuiAsPortal(portal: typeof TuiPortal<any>): Provider {\n return tuiProvide(TuiPortal, portal);\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {outputFromObservable, toObservable} from '@angular/core/rxjs-interop';\nimport {tuiIfMap} from '@taiga-ui/cdk/observables';\nimport {PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\nimport {endWith, ignoreElements, share} from 'rxjs';\n\nimport {TuiPortal, type TuiPortalContext} from './portal';\n\n@Directive()\nexport class TuiPortalDirective<T> extends PolymorpheusTemplate<TuiPortalContext<T>> {\n private readonly service = inject(TuiPortal<T>);\n\n public readonly options = input<Partial<T>>({});\n public readonly open = input(false);\n public readonly openChange = outputFromObservable(\n toObservable(this.open).pipe(\n tuiIfMap(() =>\n this.service\n .open(this, this.options())\n .pipe(ignoreElements(), endWith(false)),\n ),\n share(),\n ),\n );\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {\n type ComponentRef,\n type EmbeddedViewRef,\n Injectable,\n type TemplateRef,\n} from '@angular/core';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {type TuiPortals} from './portals';\n\n@Injectable()\nexport abstract class TuiPortalService {\n protected host?: TuiPortals;\n\n public attach(host: TuiPortals): void {\n this.host = host;\n }\n\n public add<C>(content: PolymorpheusComponent<C>): ComponentRef<C>;\n public add<C>(content: TemplateRef<C>, context?: C): EmbeddedViewRef<C>;\n public add<C>(\n content: PolymorpheusComponent<C> | TemplateRef<C>,\n context?: C,\n ): ComponentRef<C> | EmbeddedViewRef<C> {\n if (!this.host) {\n throw new TuiNoHostException();\n }\n\n return content instanceof PolymorpheusComponent\n ? this.host.addComponent(content)\n : this.host.addTemplate(content, context);\n }\n}\n\nexport class TuiNoHostException extends Error {\n constructor() {\n super(\n ngDevMode\n ? 'Portals cannot be used without TuiPortals component; perhaps you forgot to wrap your application with tui-root.'\n : '',\n );\n }\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {\n type ComponentRef,\n Directive,\n type EmbeddedViewRef,\n inject,\n INJECTOR,\n type TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n// eslint-disable-next-line no-restricted-imports\nimport {POLYMORPHEUS_CONTEXT, type PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {TuiPortalService} from './service';\n\n@Directive()\nexport abstract class TuiPortals {\n private readonly vcr = viewChild.required('vcr', {read: ViewContainerRef});\n private readonly injector = inject(INJECTOR);\n\n constructor() {\n inject(TuiPortalService).attach(this);\n }\n\n public addComponent<C>(component: PolymorpheusComponent<C>): ComponentRef<C> {\n // TODO: Remove after updating to polymorpheus v5\n const context = component['i'].get(POLYMORPHEUS_CONTEXT, {optional: true});\n const injector = component.createInjector(this.injector, context || undefined);\n const ref = this.vcr().createComponent(component.component, {injector});\n\n ref.changeDetectorRef.detectChanges();\n\n return ref;\n }\n\n public addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.vcr().createEmbeddedView(templateRef, context);\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-portals.mjs","sources":["../../../projects/cdk/portals/portal.ts","../../../projects/cdk/portals/directive.ts","../../../projects/cdk/portals/service.ts","../../../projects/cdk/portals/portals.ts","../../../projects/cdk/portals/taiga-ui-cdk-portals.ts"],"sourcesContent":["import {\n inject,\n Injectable,\n INJECTOR,\n Injector,\n type Provider,\n type Type,\n} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n // eslint-disable-next-line no-restricted-imports\n POLYMORPHEUS_CONTEXT,\n PolymorpheusComponent,\n type PolymorpheusContent,\n} from '@taiga-ui/polymorpheus';\nimport {Observable, type Observer} from 'rxjs';\n\nimport {type TuiPortalService} from './service';\n\nexport type TuiPortalContext<T, O = void> = T &\n TuiContext<Observer<O>> & {\n readonly content: PolymorpheusContent<TuiPortalContext<T, O>>;\n readonly createdAt: number;\n readonly id: string;\n completeWith(value: O): void;\n };\n\n@Injectable()\nexport abstract class TuiPortal<T, K = void> {\n protected abstract readonly component: Type<any>;\n protected abstract readonly options: T;\n\n private readonly injector = inject(INJECTOR);\n\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(protected readonly service: TuiPortalService) {}\n\n public open<G = void>(\n content: PolymorpheusContent<TuiPortalContext<T, K extends void ? G : K>>,\n options: Partial<T> = {},\n ): Observable<K extends void ? G : K> {\n return new Observable(($implicit) =>\n this.add(\n new PolymorpheusComponent(\n this.component,\n Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: POLYMORPHEUS_CONTEXT,\n useValue: {\n ...this.options,\n ...options,\n content,\n $implicit,\n createdAt: Date.now(),\n id: tuiGenerateId(),\n completeWith: (v: K extends void ? G : K): void => {\n $implicit.next(v);\n $implicit.complete();\n },\n } satisfies TuiPortalContext<T, K extends void ? G : K>,\n },\n ],\n }),\n ),\n ),\n );\n }\n\n protected add(component: PolymorpheusComponent<unknown>): () => void {\n const ref = this.service.add(component);\n\n return () => ref.destroy();\n }\n}\n\nexport function tuiAsPortal(portal: typeof TuiPortal<any>): Provider {\n return tuiProvide(TuiPortal, portal);\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {outputFromObservable, toObservable} from '@angular/core/rxjs-interop';\nimport {tuiIfMap} from '@taiga-ui/cdk/observables';\nimport {PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\nimport {endWith, ignoreElements, share} from 'rxjs';\n\nimport {TuiPortal, type TuiPortalContext} from './portal';\n\n@Directive()\nexport class TuiPortalDirective<T> extends PolymorpheusTemplate<TuiPortalContext<T>> {\n private readonly service = inject(TuiPortal<T>);\n\n public readonly options = input<Partial<T>>({});\n public readonly open = input(false);\n public readonly openChange = outputFromObservable(\n toObservable(this.open).pipe(\n tuiIfMap(() =>\n this.service\n .open(this, this.options())\n .pipe(ignoreElements(), endWith(false)),\n ),\n share(),\n ),\n );\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {\n type ComponentRef,\n type EmbeddedViewRef,\n Injectable,\n type TemplateRef,\n} from '@angular/core';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {type TuiPortals} from './portals';\n\n@Injectable()\nexport abstract class TuiPortalService {\n protected host?: TuiPortals;\n\n public attach(host: TuiPortals): void {\n this.host = host;\n }\n\n public add<C>(content: PolymorpheusComponent<C>): ComponentRef<C>;\n public add<C>(content: TemplateRef<C>, context?: C): EmbeddedViewRef<C>;\n public add<C>(\n content: PolymorpheusComponent<C> | TemplateRef<C>,\n context?: C,\n ): ComponentRef<C> | EmbeddedViewRef<C> {\n if (!this.host) {\n throw new TuiNoHostException();\n }\n\n return content instanceof PolymorpheusComponent\n ? this.host.addComponent(content)\n : this.host.addTemplate(content, context);\n }\n}\n\nexport class TuiNoHostException extends Error {\n constructor() {\n super(\n ngDevMode\n ? 'Portals cannot be used without TuiPortals component; perhaps you forgot to wrap your application with tui-root.'\n : '',\n );\n }\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {\n type ComponentRef,\n Directive,\n type EmbeddedViewRef,\n inject,\n INJECTOR,\n type TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n// eslint-disable-next-line no-restricted-imports\nimport {POLYMORPHEUS_CONTEXT, type PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {TuiPortalService} from './service';\n\n@Directive()\nexport abstract class TuiPortals {\n private readonly vcr = viewChild.required('vcr', {read: ViewContainerRef});\n private readonly injector = inject(INJECTOR);\n\n constructor() {\n inject(TuiPortalService).attach(this);\n }\n\n public addComponent<C>(component: PolymorpheusComponent<C>): ComponentRef<C> {\n // TODO: Remove after updating to polymorpheus v5\n const context = component['i'].get(POLYMORPHEUS_CONTEXT, {optional: true});\n const injector = component.createInjector(this.injector, context || undefined);\n const ref = this.vcr().createComponent(component.component, {injector});\n\n ref.changeDetectorRef.detectChanges();\n\n return ref;\n }\n\n public addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.vcr().createEmbeddedView(templateRef, context);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,26 +1,23 @@
1
- import { DOCUMENT, isPlatformBrowser } from '@angular/common';
2
- import { InjectionToken, inject, NgZone, PLATFORM_ID } from '@angular/core';
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { InjectionToken, inject, RendererFactory2, NgZone } from '@angular/core';
3
3
  import { WA_WINDOW, WA_USER_AGENT, WA_NAVIGATOR } from '@ng-web-apis/common';
4
4
  import { tuiTypedFromEvent, tuiZonefreeScheduler } from '@taiga-ui/cdk/observables';
5
- import { tuiIsMouseFocusable, tuiGetDocumentOrShadowRoot, tuiGetActualTarget } from '@taiga-ui/cdk/utils';
5
+ import { tuiGetDocumentOrShadowRoot, tuiGetActualTarget } from '@taiga-ui/cdk/utils/dom';
6
+ import { tuiIsFocusable } from '@taiga-ui/cdk/utils/focus';
6
7
  import { Subject, startWith, switchMap, timer, map, share, merge, filter, takeUntil, repeat, withLatestFrom, of, take, distinctUntilChanged, fromEvent, shareReplay } from 'rxjs';
7
- import { ɵAnimationEngine as _AnimationEngine } from '@angular/animations/browser';
8
8
  import { toSignal } from '@angular/core/rxjs-interop';
9
9
  import { isIos } from '@ng-web-apis/platform';
10
- import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
11
10
 
12
- /**
13
- * Element currently being removed by AnimationEngine
14
- */
11
+ // TODO: Remove when fixed: https://issues.chromium.org/issues/41484175
15
12
  const TUI_REMOVED_ELEMENT = new InjectionToken(ngDevMode ? 'TUI_REMOVED_ELEMENT' : '', {
16
13
  factory: () => {
17
- const stub = { onRemovalComplete: () => { } };
18
14
  const element$ = new Subject();
19
- const engine = inject(_AnimationEngine, { optional: true }) || stub;
20
- const { onRemovalComplete = stub.onRemovalComplete } = engine;
21
- engine.onRemovalComplete = (element, context) => {
22
- element$.next(element);
23
- onRemovalComplete.call(engine, element, context);
15
+ const renderer = inject(RendererFactory2).createRenderer(null, null);
16
+ const proto = Object.getPrototypeOf(renderer.delegate ?? renderer);
17
+ const { removeChild } = proto;
18
+ proto.removeChild = function (...args) {
19
+ element$.next(args[1]);
20
+ removeChild.apply(this, args);
24
21
  };
25
22
  return element$.pipe(startWith(null), switchMap((element) => timer(0).pipe(map(() => null), startWith(element))), share());
26
23
  },
@@ -36,7 +33,7 @@ function isValidFocusout(target, removedElement = null) {
36
33
  // Not due to element being removed from DOM
37
34
  !removedElement?.contains(target) &&
38
35
  // Not due to scrollable element became non-scrollable
39
- tuiIsMouseFocusable(target));
36
+ (target.getAttribute('tabIndex') === '-1' || tuiIsFocusable(target)));
40
37
  }
41
38
  function shadowRootActiveElement(root) {
42
39
  return merge(tuiTypedFromEvent(root, 'focusin').pipe(map(({ target }) => target)), tuiTypedFromEvent(root, 'focusout').pipe(filter(({ target, relatedTarget }) => !!relatedTarget && isValidFocusout(target)), map(({ relatedTarget }) => relatedTarget)));
@@ -75,10 +72,6 @@ const TUI_ACTIVE_ELEMENT = new InjectionToken(ngDevMode ? 'TUI_ACTIVE_ELEMENT' :
75
72
  },
76
73
  });
77
74
 
78
- const TUI_BASE_HREF = new InjectionToken(ngDevMode ? 'TUI_BASE_HREF' : '', {
79
- factory: () => inject(DOCUMENT).querySelector('base')?.href ?? '',
80
- });
81
-
82
75
  /**
83
76
  * Unified mobile detection regex.
84
77
  * https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/
@@ -112,30 +105,11 @@ const TUI_IS_TOUCH = new InjectionToken(ngDevMode ? 'TUI_IS_TOUCH' : '', {
112
105
  });
113
106
  },
114
107
  });
115
- /**
116
- * @deprecated: use only {@link TUI_IS_E2E}
117
- * Detect if app is running under Cypress
118
- * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}
119
- * TODO: remove in v5
120
- */
121
- const TUI_IS_CYPRESS = new InjectionToken(ngDevMode ? 'TUI_IS_CYPRESS' : '', {
122
- factory: () => !!inject(WA_WINDOW).Cypress,
123
- });
124
- /**
125
- * @deprecated: use only {@link TUI_IS_E2E}
126
- * Manually provide `true` when running tests in Playwright
127
- * TODO: remove in v5
128
- */
129
- const TUI_IS_PLAYWRIGHT = new InjectionToken(ngDevMode ? 'TUI_IS_PLAYWRIGHT' : '', {
130
- factory: TUI_FALSE_HANDLER,
131
- });
132
108
  /**
133
109
  * Detect if app is running under any of test frameworks
134
110
  */
135
111
  const TUI_IS_E2E = new InjectionToken(ngDevMode ? 'TUI_IS_E2E' : '', {
136
- factory: () => inject(TUI_IS_CYPRESS) ||
137
- inject(TUI_IS_PLAYWRIGHT) ||
138
- inject(WA_NAVIGATOR).webdriver,
112
+ factory: () => !!inject(WA_WINDOW).Cypress || inject(WA_NAVIGATOR).webdriver,
139
113
  });
140
114
 
141
115
  const TUI_FALLBACK_VALUE = new InjectionToken(ngDevMode ? 'TUI_FALLBACK_VALUE' : '', {
@@ -148,13 +122,6 @@ function tuiFallbackValueProvider(useValue) {
148
122
  };
149
123
  }
150
124
 
151
- /**
152
- * SSR safe default empty Range
153
- */
154
- const TUI_RANGE = new InjectionToken(ngDevMode ? 'TUI_RANGE' : '', {
155
- factory: () => isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : {},
156
- });
157
-
158
125
  const TUI_WINDOW_SIZE = new InjectionToken(ngDevMode ? 'TUI_WINDOW_SIZE' : '', {
159
126
  factory: () => {
160
127
  const w = inject(WA_WINDOW);
@@ -183,5 +150,5 @@ const TUI_WINDOW_SIZE = new InjectionToken(ngDevMode ? 'TUI_WINDOW_SIZE' : '', {
183
150
  * Generated bundle index. Do not edit.
184
151
  */
185
152
 
186
- export { TUI_ACTIVE_ELEMENT, TUI_BASE_HREF, TUI_FALLBACK_VALUE, TUI_IS_ANDROID, TUI_IS_CYPRESS, TUI_IS_E2E, TUI_IS_IOS, TUI_IS_MOBILE, TUI_IS_PLAYWRIGHT, TUI_IS_TOUCH, TUI_IS_WEBKIT, TUI_MOBILE_REGEXP, TUI_PLATFORM, TUI_RANGE, TUI_REMOVED_ELEMENT, TUI_WINDOW_SIZE, tuiFallbackValueProvider };
153
+ export { TUI_ACTIVE_ELEMENT, TUI_FALLBACK_VALUE, TUI_IS_ANDROID, TUI_IS_E2E, TUI_IS_IOS, TUI_IS_MOBILE, TUI_IS_TOUCH, TUI_IS_WEBKIT, TUI_MOBILE_REGEXP, TUI_PLATFORM, TUI_REMOVED_ELEMENT, TUI_WINDOW_SIZE, tuiFallbackValueProvider };
187
154
  //# sourceMappingURL=taiga-ui-cdk-tokens.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-tokens.mjs","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/base-href.ts","../../../projects/cdk/tokens/environment.ts","../../../projects/cdk/tokens/fallback-value.ts","../../../projects/cdk/tokens/range.ts","../../../projects/cdk/tokens/window-size.ts","../../../projects/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine as AnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectionToken} from '@angular/core';\nimport {map, share, startWith, Subject, switchMap, timer} from 'rxjs';\n\n/**\n * Element currently being removed by AnimationEngine\n */\nexport const TUI_REMOVED_ELEMENT = new InjectionToken(\n ngDevMode ? 'TUI_REMOVED_ELEMENT' : '',\n {\n factory: () => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new Subject<Element | null>();\n const engine = inject(AnimationEngine, {optional: true}) || stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete.call(engine, element, context);\n };\n\n return element$.pipe(\n startWith(null),\n switchMap((element) =>\n timer(0).pipe(\n map(() => null),\n startWith(element),\n ),\n ),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken, NgZone} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent, tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {\n tuiGetActualTarget,\n tuiGetDocumentOrShadowRoot,\n tuiIsMouseFocusable,\n} from '@taiga-ui/cdk/utils';\nimport {\n distinctUntilChanged,\n filter,\n map,\n merge,\n type Observable,\n of,\n repeat,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n timer,\n withLatestFrom,\n} from 'rxjs';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n tuiGetDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled or under disabled fieldset\n !target.matches(':disabled') &&\n // Not due to element being removed from DOM\n !removedElement?.contains(target) &&\n // Not due to scrollable element became non-scrollable\n tuiIsMouseFocusable(target)\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n tuiTypedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n tuiTypedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n\n/**\n * Active element on the document for ActiveZone\n */\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n ngDevMode ? 'TUI_ACTIVE_ELEMENT' : '',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const win = inject(WA_WINDOW);\n const doc = inject(DOCUMENT);\n const zone = inject(NgZone);\n const focusout$ = tuiTypedFromEvent(win, 'focusout', {capture: true});\n const focusin$ = tuiTypedFromEvent(win, 'focusin', {capture: true});\n const blur$ = tuiTypedFromEvent(win, 'blur');\n const mousedown$ = tuiTypedFromEvent(win, 'mousedown');\n const mouseup$ = tuiTypedFromEvent(win, 'mouseup');\n\n return merge(\n focusout$.pipe(\n takeUntil(mousedown$),\n repeat({delay: () => mouseup$}),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(tuiGetActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => doc.activeElement),\n filter((element) => !!element?.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap((event) => {\n const target = tuiGetActualTarget(event);\n const root = tuiGetDocumentOrShadowRoot(target) || doc;\n\n return root === doc\n ? of(target)\n : shadowRootActiveElement(root as Document).pipe(\n startWith(target),\n );\n }),\n ),\n mousedown$.pipe(\n switchMap((event) => {\n const actualTargetInCurrentTime = tuiGetActualTarget(event);\n\n return !doc.activeElement || doc.activeElement === doc.body\n ? of(actualTargetInCurrentTime)\n : focusout$.pipe(\n take(1),\n map(\n /**\n * Do not use `map(() => tuiGetActualTarget(event))`\n * because we have different result in runtime\n */\n () => actualTargetInCurrentTime,\n ),\n takeUntil(timer(0, tuiZonefreeScheduler(zone))),\n );\n }),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\n\nexport const TUI_BASE_HREF = new InjectionToken(ngDevMode ? 'TUI_BASE_HREF' : '', {\n factory: () => inject(DOCUMENT).querySelector('base')?.href ?? '',\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {WA_NAVIGATOR, WA_USER_AGENT, WA_WINDOW} from '@ng-web-apis/common';\nimport {isIos} from '@ng-web-apis/platform';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {fromEvent, map} from 'rxjs';\n\n/**\n * Unified mobile detection regex.\n * https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\n */\nexport const TUI_MOBILE_REGEXP =\n /(?:android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series([46])0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|^(?:1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br([ev])w|bumb|bw-([nu])|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do([cp])o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly([-_])|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-([mpt])|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c([- _agpst])|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac([ \\-/])|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja([tv])a|jbro|jemu|jigs|kddi|keji|kgt([ /])|klon|kpt |kwc-|kyo([ck])|le(no|xi)|lg( g|\\/([klu])|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t([- ov])|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30([02])|n50([025])|n7(0([01])|10)|ne(([cm])-|on|tf|wf|wg|wt)|nok([6i])|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan([adt])|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c([-01])|47|mc|nd|ri)|sgh-|shar|sie([-m])|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel([im])|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c([- ])|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-)/i;\n\nexport const TUI_IS_MOBILE = new InjectionToken(ngDevMode ? 'TUI_IS_MOBILE' : '', {\n factory: () => TUI_MOBILE_REGEXP.test(inject(WA_USER_AGENT)),\n});\n\nexport const TUI_IS_IOS = new InjectionToken(ngDevMode ? 'TUI_IS_IOS' : '', {\n factory: () => isIos(inject(WA_NAVIGATOR)),\n});\n\nexport const TUI_IS_ANDROID = new InjectionToken(ngDevMode ? 'TUI_IS_ANDROID' : '', {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n});\n\nexport const TUI_IS_WEBKIT = new InjectionToken(ngDevMode ? 'TUI_IS_WEBKIT' : '', {\n factory: () => !!inject<any>(WA_WINDOW)?.webkitConvertPointFromNodeToPage,\n});\n\nexport const TUI_PLATFORM = new InjectionToken<'android' | 'ios' | 'web'>(\n ngDevMode ? 'TUI_PLATFORM' : '',\n {\n factory: () => {\n if (inject(TUI_IS_IOS)) {\n return 'ios';\n }\n\n return inject(TUI_IS_ANDROID) ? 'android' : 'web';\n },\n },\n);\n\nexport const TUI_IS_TOUCH = new InjectionToken(ngDevMode ? 'TUI_IS_TOUCH' : '', {\n factory: () => {\n const media = inject(WA_WINDOW).matchMedia('(pointer: coarse)');\n\n return toSignal(fromEvent(media, 'change').pipe(map(() => media.matches)), {\n initialValue: media.matches,\n });\n },\n});\n\n/**\n * @deprecated: use only {@link TUI_IS_E2E}\n * Detect if app is running under Cypress\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n * TODO: remove in v5\n */\nexport const TUI_IS_CYPRESS = new InjectionToken(ngDevMode ? 'TUI_IS_CYPRESS' : '', {\n factory: () => !!inject<any>(WA_WINDOW).Cypress,\n});\n\n/**\n * @deprecated: use only {@link TUI_IS_E2E}\n * Manually provide `true` when running tests in Playwright\n * TODO: remove in v5\n */\nexport const TUI_IS_PLAYWRIGHT = new InjectionToken<boolean>(\n ngDevMode ? 'TUI_IS_PLAYWRIGHT' : '',\n {\n factory: TUI_FALSE_HANDLER,\n },\n);\n\n/**\n * Detect if app is running under any of test frameworks\n */\nexport const TUI_IS_E2E = new InjectionToken(ngDevMode ? 'TUI_IS_E2E' : '', {\n factory: () =>\n inject(TUI_IS_CYPRESS) ||\n inject(TUI_IS_PLAYWRIGHT) ||\n inject(WA_NAVIGATOR).webdriver,\n});\n","import {InjectionToken, type ValueProvider} from '@angular/core';\n\nexport const TUI_FALLBACK_VALUE = new InjectionToken<any>(\n ngDevMode ? 'TUI_FALLBACK_VALUE' : '',\n {\n factory: () => null,\n },\n);\n\nexport function tuiFallbackValueProvider<T>(useValue: T): ValueProvider {\n return {\n provide: TUI_FALLBACK_VALUE,\n useValue,\n };\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, InjectionToken, PLATFORM_ID} from '@angular/core';\n\n/**\n * SSR safe default empty Range\n */\nexport const TUI_RANGE = new InjectionToken(ngDevMode ? 'TUI_RANGE' : '', {\n factory: () =>\n isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : ({} as unknown as Range),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {map, type Observable, shareReplay, startWith} from 'rxjs';\n\nexport const TUI_WINDOW_SIZE = new InjectionToken<Observable<DOMRect>>(\n ngDevMode ? 'TUI_WINDOW_SIZE' : '',\n {\n factory: () => {\n const w = inject(WA_WINDOW);\n\n return tuiTypedFromEvent(w, 'resize').pipe(\n startWith(null),\n map(() => {\n const width = Math.max(\n w.document.documentElement.clientWidth || 0,\n w.innerWidth || 0,\n w.visualViewport?.width || 0,\n );\n const height = Math.max(\n w.document.documentElement.clientHeight || 0,\n w.innerHeight || 0,\n w.visualViewport?.height || 0,\n );\n const rect = {\n width,\n height,\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n x: 0,\n y: 0,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n }),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AnimationEngine"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-tokens.mjs","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/environment.ts","../../../projects/cdk/tokens/fallback-value.ts","../../../projects/cdk/tokens/window-size.ts","../../../projects/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {inject, InjectionToken, RendererFactory2} from '@angular/core';\nimport {map, share, startWith, Subject, switchMap, timer} from 'rxjs';\n\n// TODO: Remove when fixed: https://issues.chromium.org/issues/41484175\nexport const TUI_REMOVED_ELEMENT = new InjectionToken(\n ngDevMode ? 'TUI_REMOVED_ELEMENT' : '',\n {\n factory: () => {\n const element$ = new Subject<Element | null>();\n const renderer = inject(RendererFactory2).createRenderer(null, null);\n const proto = Object.getPrototypeOf((renderer as any).delegate ?? renderer);\n const {removeChild} = proto;\n\n proto.removeChild = function (...args: any[]): void {\n element$.next(args[1]);\n removeChild.apply(this, args);\n };\n\n return element$.pipe(\n startWith(null),\n switchMap((element) =>\n timer(0).pipe(\n map(() => null),\n startWith(element),\n ),\n ),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken, NgZone} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent, tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiGetActualTarget, tuiGetDocumentOrShadowRoot} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocusable} from '@taiga-ui/cdk/utils/focus';\nimport {\n distinctUntilChanged,\n filter,\n map,\n merge,\n type Observable,\n of,\n repeat,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n timer,\n withLatestFrom,\n} from 'rxjs';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n tuiGetDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled or under disabled fieldset\n !target.matches(':disabled') &&\n // Not due to element being removed from DOM\n !removedElement?.contains(target) &&\n // Not due to scrollable element became non-scrollable\n (target.getAttribute('tabIndex') === '-1' || tuiIsFocusable(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n tuiTypedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n tuiTypedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n\n/**\n * Active element on the document for ActiveZone\n */\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n ngDevMode ? 'TUI_ACTIVE_ELEMENT' : '',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const win = inject(WA_WINDOW);\n const doc = inject(DOCUMENT);\n const zone = inject(NgZone);\n const focusout$ = tuiTypedFromEvent(win, 'focusout', {capture: true});\n const focusin$ = tuiTypedFromEvent(win, 'focusin', {capture: true});\n const blur$ = tuiTypedFromEvent(win, 'blur');\n const mousedown$ = tuiTypedFromEvent(win, 'mousedown');\n const mouseup$ = tuiTypedFromEvent(win, 'mouseup');\n\n return merge(\n focusout$.pipe(\n takeUntil(mousedown$),\n repeat({delay: () => mouseup$}),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(tuiGetActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => doc.activeElement),\n filter((element) => !!element?.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap((event) => {\n const target = tuiGetActualTarget(event);\n const root = tuiGetDocumentOrShadowRoot(target) || doc;\n\n return root === doc\n ? of(target)\n : shadowRootActiveElement(root as Document).pipe(\n startWith(target),\n );\n }),\n ),\n mousedown$.pipe(\n switchMap((event) => {\n const actualTargetInCurrentTime = tuiGetActualTarget(event);\n\n return !doc.activeElement || doc.activeElement === doc.body\n ? of(actualTargetInCurrentTime)\n : focusout$.pipe(\n take(1),\n map(\n /**\n * Do not use `map(() => tuiGetActualTarget(event))`\n * because we have different result in runtime\n */\n () => actualTargetInCurrentTime,\n ),\n takeUntil(timer(0, tuiZonefreeScheduler(zone))),\n );\n }),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {WA_NAVIGATOR, WA_USER_AGENT, WA_WINDOW} from '@ng-web-apis/common';\nimport {isIos} from '@ng-web-apis/platform';\nimport {fromEvent, map} from 'rxjs';\n\n/**\n * Unified mobile detection regex.\n * https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\n */\nexport const TUI_MOBILE_REGEXP =\n /(?:android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series([46])0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|^(?:1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br([ev])w|bumb|bw-([nu])|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do([cp])o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly([-_])|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-([mpt])|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c([- _agpst])|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac([ \\-/])|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja([tv])a|jbro|jemu|jigs|kddi|keji|kgt([ /])|klon|kpt |kwc-|kyo([ck])|le(no|xi)|lg( g|\\/([klu])|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t([- ov])|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30([02])|n50([025])|n7(0([01])|10)|ne(([cm])-|on|tf|wf|wg|wt)|nok([6i])|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan([adt])|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c([-01])|47|mc|nd|ri)|sgh-|shar|sie([-m])|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel([im])|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c([- ])|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-)/i;\n\nexport const TUI_IS_MOBILE = new InjectionToken(ngDevMode ? 'TUI_IS_MOBILE' : '', {\n factory: () => TUI_MOBILE_REGEXP.test(inject(WA_USER_AGENT)),\n});\n\nexport const TUI_IS_IOS = new InjectionToken(ngDevMode ? 'TUI_IS_IOS' : '', {\n factory: () => isIos(inject(WA_NAVIGATOR)),\n});\n\nexport const TUI_IS_ANDROID = new InjectionToken(ngDevMode ? 'TUI_IS_ANDROID' : '', {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n});\n\nexport const TUI_IS_WEBKIT = new InjectionToken(ngDevMode ? 'TUI_IS_WEBKIT' : '', {\n factory: () => !!inject<any>(WA_WINDOW)?.webkitConvertPointFromNodeToPage,\n});\n\nexport const TUI_PLATFORM = new InjectionToken<'android' | 'ios' | 'web'>(\n ngDevMode ? 'TUI_PLATFORM' : '',\n {\n factory: () => {\n if (inject(TUI_IS_IOS)) {\n return 'ios';\n }\n\n return inject(TUI_IS_ANDROID) ? 'android' : 'web';\n },\n },\n);\n\nexport const TUI_IS_TOUCH = new InjectionToken(ngDevMode ? 'TUI_IS_TOUCH' : '', {\n factory: () => {\n const media = inject(WA_WINDOW).matchMedia('(pointer: coarse)');\n\n return toSignal(fromEvent(media, 'change').pipe(map(() => media.matches)), {\n initialValue: media.matches,\n });\n },\n});\n\n/**\n * Detect if app is running under any of test frameworks\n */\nexport const TUI_IS_E2E = new InjectionToken(ngDevMode ? 'TUI_IS_E2E' : '', {\n factory: () => !!inject<any>(WA_WINDOW).Cypress || inject(WA_NAVIGATOR).webdriver,\n});\n","import {InjectionToken, type ValueProvider} from '@angular/core';\n\nexport const TUI_FALLBACK_VALUE = new InjectionToken<any>(\n ngDevMode ? 'TUI_FALLBACK_VALUE' : '',\n {\n factory: () => null,\n },\n);\n\nexport function tuiFallbackValueProvider<T>(useValue: T): ValueProvider {\n return {\n provide: TUI_FALLBACK_VALUE,\n useValue,\n };\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {map, type Observable, shareReplay, startWith} from 'rxjs';\n\nexport const TUI_WINDOW_SIZE = new InjectionToken<Observable<DOMRect>>(\n ngDevMode ? 'TUI_WINDOW_SIZE' : '',\n {\n factory: () => {\n const w = inject(WA_WINDOW);\n\n return tuiTypedFromEvent(w, 'resize').pipe(\n startWith(null),\n map(() => {\n const width = Math.max(\n w.document.documentElement.clientWidth || 0,\n w.innerWidth || 0,\n w.visualViewport?.width || 0,\n );\n const height = Math.max(\n w.document.documentElement.clientHeight || 0,\n w.innerHeight || 0,\n w.visualViewport?.height || 0,\n );\n const rect = {\n width,\n height,\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n x: 0,\n y: 0,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n }),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -11,10 +11,9 @@ function tuiIsSafari({ ownerDocument: doc }) {
11
11
  const win = doc?.defaultView;
12
12
  const isMacOsSafari = win.safari !== undefined &&
13
13
  win.safari?.pushNotification?.toString() === '[object SafariRemoteNotification]';
14
- const isIosSafari = (win.navigator?.vendor?.includes('Apple') &&
14
+ const isIosSafari = win.navigator?.vendor?.includes('Apple') &&
15
15
  !win.navigator?.userAgent?.includes('CriOS') &&
16
- !win.navigator?.userAgent?.includes('FxiOS')) ??
17
- false;
16
+ !win.navigator?.userAgent?.includes('FxiOS');
18
17
  return isMacOsSafari || isIosSafari;
19
18
  }
20
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-browser.mjs","sources":["../../../projects/cdk/utils/browser/is-edge.ts","../../../projects/cdk/utils/browser/is-firefox.ts","../../../projects/cdk/utils/browser/is-safari.ts","../../../projects/cdk/utils/browser/taiga-ui-cdk-utils-browser.ts"],"sourcesContent":["export function tuiIsEdge(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('edge');\n}\n","export function tuiIsFirefox(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('firefox');\n}\n","// TODO: Drop change to Document in v5\nexport function tuiIsSafari({ownerDocument: doc}: Element): boolean {\n const win = doc?.defaultView as unknown as Window & {safari?: any};\n\n const isMacOsSafari =\n win.safari !== undefined &&\n win.safari?.pushNotification?.toString() === '[object SafariRemoteNotification]';\n\n const isIosSafari =\n (win.navigator?.vendor?.includes('Apple') &&\n !win.navigator?.userAgent?.includes('CriOS') &&\n !win.navigator?.userAgent?.includes('FxiOS')) ??\n false;\n\n return isMacOsSafari || isIosSafari;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAM,SAAU,SAAS,CAAC,SAAiB,EAAA;IACvC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AACnD;;ACFM,SAAU,YAAY,CAAC,SAAiB,EAAA;IAC1C,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtD;;ACFA;SACgB,WAAW,CAAC,EAAC,aAAa,EAAE,GAAG,EAAU,EAAA;AACrD,IAAA,MAAM,GAAG,GAAG,GAAG,EAAE,WAAiD;AAElE,IAAA,MAAM,aAAa,GACf,GAAG,CAAC,MAAM,KAAK,SAAS;QACxB,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,mCAAmC;AAEpF,IAAA,MAAM,WAAW,GACb,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;QACrC,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;QAC5C,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;AAChD,QAAA,KAAK;IAET,OAAO,aAAa,IAAI,WAAW;AACvC;;ACfA;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-browser.mjs","sources":["../../../projects/cdk/utils/browser/is-edge.ts","../../../projects/cdk/utils/browser/is-firefox.ts","../../../projects/cdk/utils/browser/is-safari.ts","../../../projects/cdk/utils/browser/taiga-ui-cdk-utils-browser.ts"],"sourcesContent":["export function tuiIsEdge(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('edge');\n}\n","export function tuiIsFirefox(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('firefox');\n}\n","// TODO: Drop change to Document in v5\nexport function tuiIsSafari({ownerDocument: doc}: Element): boolean {\n const win = doc?.defaultView as unknown as Window & {safari?: any};\n\n const isMacOsSafari =\n win.safari !== undefined &&\n win.safari?.pushNotification?.toString() === '[object SafariRemoteNotification]';\n\n const isIosSafari =\n win.navigator?.vendor?.includes('Apple') &&\n !win.navigator?.userAgent?.includes('CriOS') &&\n !win.navigator?.userAgent?.includes('FxiOS');\n\n return isMacOsSafari || isIosSafari;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAM,SAAU,SAAS,CAAC,SAAiB,EAAA;IACvC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AACnD;;ACFM,SAAU,YAAY,CAAC,SAAiB,EAAA;IAC1C,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtD;;ACFA;SACgB,WAAW,CAAC,EAAC,aAAa,EAAE,GAAG,EAAU,EAAA;AACrD,IAAA,MAAM,GAAG,GAAG,GAAG,EAAE,WAAiD;AAElE,IAAA,MAAM,aAAa,GACf,GAAG,CAAC,MAAM,KAAK,SAAS;QACxB,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,mCAAmC;IAEpF,MAAM,WAAW,GACb,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;QACxC,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;QAC5C,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;IAEhD,OAAO,aAAa,IAAI,WAAW;AACvC;;ACdA;;AAEG;;;;"}
@@ -1,5 +1,16 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
1
+ import { inject, InjectionToken, isSignal, signal, effect } from '@angular/core';
2
+ import { tuiSetSignal } from '@taiga-ui/cdk/utils/miscellaneous';
3
+
4
+ function tuiProvideOptions(provide, options, fallback) {
5
+ return {
6
+ provide,
7
+ useFactory: () => ({
8
+ ...(inject(provide, { optional: true, skipSelf: true }) || fallback),
9
+ ...(inject(options, { optional: true }) ||
10
+ (typeof options === 'function' ? options() : options)),
11
+ }),
12
+ };
13
+ }
3
14
 
4
15
  function tuiCreateOptions(defaults) {
5
16
  const token = new InjectionToken(ngDevMode ? 'Options token' : '', {
@@ -8,11 +19,41 @@ function tuiCreateOptions(defaults) {
8
19
  return [token, (options) => tuiProvideOptions(token, options, defaults)];
9
20
  }
10
21
 
11
- // TODO: Move all DI utils into this entry point in v.5
22
+ // TODO: Consider {} as default options instead
23
+ function tuiDirectiveBinding(token, key, initial, options = { self: true }) {
24
+ const result = isSignal(initial) ? initial : signal(initial);
25
+ const directive = inject(token, options);
26
+ const output = directive?.[`${key.toString()}Change`];
27
+ if (!directive) {
28
+ return result;
29
+ }
30
+ // TODO: Figure out why effects are executed all the time and not just when result changes (check with Angular 18)
31
+ let previous;
32
+ effect(() => {
33
+ const value = result();
34
+ if (previous === value) {
35
+ return;
36
+ }
37
+ if (isSignal(directive[key])) {
38
+ tuiSetSignal(directive[key], value);
39
+ }
40
+ else {
41
+ directive[key] = value;
42
+ }
43
+ directive.ngOnChanges?.({});
44
+ output?.emit?.(value);
45
+ previous = value;
46
+ });
47
+ return result;
48
+ }
49
+
50
+ function tuiProvide(provide, useExisting, multi = false) {
51
+ return { provide, useExisting, multi };
52
+ }
12
53
 
13
54
  /**
14
55
  * Generated bundle index. Do not edit.
15
56
  */
16
57
 
17
- export { tuiCreateOptions };
58
+ export { tuiCreateOptions, tuiDirectiveBinding, tuiProvide, tuiProvideOptions };
18
59
  //# sourceMappingURL=taiga-ui-cdk-utils-di.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-di.mjs","sources":["../../../projects/cdk/utils/di/create-options.ts","../../../projects/cdk/utils/di/index.ts","../../../projects/cdk/utils/di/taiga-ui-cdk-utils-di.ts"],"sourcesContent":["import {type FactoryProvider, InjectionToken} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport function tuiCreateOptions<T>(\n defaults: T,\n): [\n token: InjectionToken<T>,\n provider: (item: Partial<T> | (() => Partial<T>)) => FactoryProvider,\n] {\n const token = new InjectionToken(ngDevMode ? 'Options token' : '', {\n factory: () => defaults,\n });\n\n return [token, (options) => tuiProvideOptions(token, options, defaults)];\n}\n","// TODO: Move all DI utils into this entry point in v.5\nexport * from './create-options';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAGM,SAAU,gBAAgB,CAC5B,QAAW,EAAA;AAKX,IAAA,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,eAAe,GAAG,EAAE,EAAE;AAC/D,QAAA,OAAO,EAAE,MAAM,QAAQ;AAC1B,KAAA,CAAC;AAEF,IAAA,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,KAAK,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5E;;ACdA;;ACAA;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-di.mjs","sources":["../../../projects/cdk/utils/di/provide-options.ts","../../../projects/cdk/utils/di/create-options.ts","../../../projects/cdk/utils/di/directive-binding.ts","../../../projects/cdk/utils/di/provide.ts","../../../projects/cdk/utils/di/taiga-ui-cdk-utils-di.ts"],"sourcesContent":["import {type FactoryProvider, inject, type InjectionToken} from '@angular/core';\n\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T> | (() => Partial<T>),\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n useFactory: (): T => ({\n ...(inject(provide, {optional: true, skipSelf: true}) || fallback),\n ...(inject(options as any, {optional: true}) ||\n (typeof options === 'function' ? options() : options)),\n }),\n };\n}\n","import {type FactoryProvider, InjectionToken} from '@angular/core';\n\nimport {tuiProvideOptions} from './provide-options';\n\nexport function tuiCreateOptions<T>(\n defaults: T,\n): [\n token: InjectionToken<T>,\n provider: (item: Partial<T> | (() => Partial<T>)) => FactoryProvider,\n] {\n const token = new InjectionToken(ngDevMode ? 'Options token' : '', {\n factory: () => defaults,\n });\n\n return [token, (options) => tuiProvideOptions(token, options, defaults)];\n}\n","import {\n effect,\n inject,\n type InjectOptions,\n isSignal,\n type ProviderToken,\n type Signal,\n signal,\n type WritableSignal,\n} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\n\ntype SignalLikeTypeOf<T> = T extends Signal<infer R> ? R : T;\n\ntype SignalLike<T> = Signal<T> | T;\n\n// TODO: Consider {} as default options instead\nexport function tuiDirectiveBinding<\n T,\n G extends keyof T,\n I extends SignalLike<SignalLikeTypeOf<T[G]>>,\n>(\n token: ProviderToken<T>,\n key: G,\n initial: I,\n options: InjectOptions = {self: true},\n): I extends Signal<any> ? I : WritableSignal<I> {\n const result: any = isSignal(initial) ? initial : signal(initial);\n const directive: any = inject(token, options);\n const output = directive?.[`${key.toString()}Change`];\n\n if (!directive) {\n return result;\n }\n\n // TODO: Figure out why effects are executed all the time and not just when result changes (check with Angular 18)\n let previous: any;\n\n effect(() => {\n const value: any = result();\n\n if (previous === value) {\n return;\n }\n\n if (isSignal(directive[key])) {\n tuiSetSignal(directive[key] as any, value);\n } else {\n directive[key] = value;\n }\n\n directive.ngOnChanges?.({});\n output?.emit?.(value);\n previous = value;\n });\n\n return result;\n}\n","import {type ExistingProvider, type ProviderToken} from '@angular/core';\n\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T | T[]>,\n useExisting: ProviderToken<T>,\n multi: boolean,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n multi = false,\n): ExistingProvider {\n return {provide, useExisting, multi};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAEgB,iBAAiB,CAC7B,OAA0B,EAC1B,OAAwC,EACxC,QAAW,EAAA;IAEX,OAAO;QACH,OAAO;AACP,QAAA,UAAU,EAAE,OAAU;AAClB,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,QAAQ,CAAC;YAClE,IAAI,MAAM,CAAC,OAAc,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AACxC,iBAAC,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;SAC7D,CAAC;KACL;AACL;;ACXM,SAAU,gBAAgB,CAC5B,QAAW,EAAA;AAKX,IAAA,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,eAAe,GAAG,EAAE,EAAE;AAC/D,QAAA,OAAO,EAAE,MAAM,QAAQ;AAC1B,KAAA,CAAC;AAEF,IAAA,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,KAAK,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5E;;ACCA;AACgB,SAAA,mBAAmB,CAK/B,KAAuB,EACvB,GAAM,EACN,OAAU,EACV,OAAyB,GAAA,EAAC,IAAI,EAAE,IAAI,EAAC,EAAA;AAErC,IAAA,MAAM,MAAM,GAAQ,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACjE,MAAM,SAAS,GAAQ,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;AAC7C,IAAA,MAAM,MAAM,GAAG,SAAS,GAAG,CAAA,EAAG,GAAG,CAAC,QAAQ,EAAE,CAAQ,MAAA,CAAA,CAAC;IAErD,IAAI,CAAC,SAAS,EAAE;AACZ,QAAA,OAAO,MAAM;;;AAIjB,IAAA,IAAI,QAAa;IAEjB,MAAM,CAAC,MAAK;AACR,QAAA,MAAM,KAAK,GAAQ,MAAM,EAAE;AAE3B,QAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;YACpB;;QAGJ,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1B,YAAY,CAAC,SAAS,CAAC,GAAG,CAAQ,EAAE,KAAK,CAAC;;aACvC;AACH,YAAA,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK;;AAG1B,QAAA,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;AAC3B,QAAA,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;QACrB,QAAQ,GAAG,KAAK;AACpB,KAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACjB;;AC9CM,SAAU,UAAU,CACtB,OAAyB,EACzB,WAA6B,EAC7B,KAAK,GAAG,KAAK,EAAA;AAEb,IAAA,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC;AACxC;;ACjBA;;AAEG;;;;"}
@@ -1,5 +1,4 @@
1
1
  import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
2
- import { tuiClamp } from '@taiga-ui/cdk/utils/math';
3
2
  import { inject, ElementRef, PLATFORM_ID, isSignal, signal, untracked, DestroyRef, effect, INJECTOR } from '@angular/core';
4
3
  import { coerceElement } from '@angular/cdk/coercion';
5
4
  import { isPlatformBrowser } from '@angular/common';
@@ -117,11 +116,6 @@ function tuiGetElementOffset(host, element) {
117
116
  return { offsetTop, offsetLeft };
118
117
  }
119
118
 
120
- function tuiGetElementPoint(x, y, element) {
121
- const { left, top, width, height } = element.getBoundingClientRect();
122
- return [tuiClamp(x - left, 0, width) / width, tuiClamp(y - top, 0, height) / height];
123
- }
124
-
125
119
  /**
126
120
  * @description:
127
121
  * cross browser way to get selected text
@@ -140,35 +134,11 @@ function tuiInjectElement() {
140
134
  return inject(ElementRef).nativeElement;
141
135
  }
142
136
 
143
- function tuiIsCurrentTarget({ target, currentTarget }) {
144
- return target === currentTarget;
145
- }
146
-
147
137
  function tuiIsElementEditable(element) {
148
138
  return ((tuiIsTextfield(element) && !element.readOnly && element.inputMode !== 'none') ||
149
139
  Boolean(element.isContentEditable));
150
140
  }
151
141
 
152
- /**
153
- * Checks if an app is running inside <iframe /> tag
154
- */
155
- function tuiIsInsideIframe(win) {
156
- return win.parent !== win;
157
- }
158
-
159
- /**
160
- * Checks if node is inside a specific selector
161
- *
162
- * @param node
163
- * @param selector
164
- * @return true if node is inside a particular selector
165
- */
166
- function tuiIsNodeIn(node, selector) {
167
- return tuiIsTextNode(node)
168
- ? !!node.parentElement?.closest(selector)
169
- : tuiIsElement(node) && !!node.closest(selector);
170
- }
171
-
172
142
  function tuiPointToClientRect(x = 0, y = 0) {
173
143
  const rect = {
174
144
  x,
@@ -186,22 +156,6 @@ function tuiPointToClientRect(x = 0, y = 0) {
186
156
  };
187
157
  }
188
158
 
189
- function tuiRetargetedBoundaryCrossing(event) {
190
- // firefox
191
- if ('explicitOriginalTarget' in event) {
192
- return event?.explicitOriginalTarget !== event.target;
193
- }
194
- // chrome
195
- if ('pointerId' in event) {
196
- return event.pointerId === -1;
197
- }
198
- // safari
199
- if ('detail' in event && 'webkitForce' in event) {
200
- return event?.detail === 0;
201
- }
202
- return false;
203
- }
204
-
205
159
  function tuiValue(input, injector = inject(INJECTOR)) {
206
160
  const win = injector.get(WA_WINDOW);
207
161
  if (!win.tuiInputPatched && isPlatformBrowser(injector.get(PLATFORM_ID))) {
@@ -275,36 +229,9 @@ function patch(prototype) {
275
229
  });
276
230
  }
277
231
 
278
- /**
279
- * Host binding `host: {'[value]': 'yourSignal()'}` is not an option for our textfields –
280
- * they use {@link TuiTextfieldDirective} as a host directive.
281
- * `TuiTextfieldDirective` has host binding which depends on native input's value.
282
- * Host bindings of the host directives are re-calculated BEFORE component's ones –
283
- * native input's value should be updated SYNCHRONOUSLY before next change detection iteration.
284
- * @deprecated
285
- */
286
- function tuiValueBinding(value = signal(tuiInjectElement().value || '')) {
287
- const el = tuiInjectElement();
288
- effect(() => {
289
- if (el.value === value()) {
290
- return;
291
- }
292
- const { selectionStart, selectionEnd } = el;
293
- el.value = value();
294
- if (el.matches(':focus')) {
295
- /**
296
- * After programmatic updates of input's value, caret is automatically placed at the end –
297
- * revert to the previous position
298
- */
299
- el.setSelectionRange(selectionStart, selectionEnd);
300
- }
301
- });
302
- return value;
303
- }
304
-
305
232
  /**
306
233
  * Generated bundle index. Do not edit.
307
234
  */
308
235
 
309
- export { tuiContainsOrAfter, tuiGetActualTarget, tuiGetClipboardDataText, tuiGetDocumentOrShadowRoot, tuiGetElementObscures, tuiGetElementOffset, tuiGetElementPoint, tuiGetSelectedText, tuiInjectElement, tuiIsCurrentTarget, tuiIsElement, tuiIsElementEditable, tuiIsHTMLElement, tuiIsInput, tuiIsInputEvent, tuiIsInsideIframe, tuiIsNodeIn, tuiIsTextNode, tuiIsTextarea, tuiIsTextfield, tuiPointToClientRect, tuiRetargetedBoundaryCrossing, tuiValue, tuiValueBinding };
236
+ export { tuiContainsOrAfter, tuiGetActualTarget, tuiGetClipboardDataText, tuiGetDocumentOrShadowRoot, tuiGetElementObscures, tuiGetElementOffset, tuiGetSelectedText, tuiInjectElement, tuiIsElement, tuiIsElementEditable, tuiIsHTMLElement, tuiIsInput, tuiIsInputEvent, tuiIsTextNode, tuiIsTextarea, tuiIsTextfield, tuiPointToClientRect, tuiValue };
310
237
  //# sourceMappingURL=taiga-ui-cdk-utils-dom.mjs.map