@taiga-ui/cdk 2.43.0 → 2.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/abstract/dialog.service.d.ts +2 -2
  2. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  4. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-classes.umd.js +4 -2
  6. package/bundles/taiga-ui-cdk-classes.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-classes.umd.min.js +1 -1
  8. package/bundles/taiga-ui-cdk-classes.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-coercion.umd.js +2 -0
  10. package/bundles/taiga-ui-cdk-coercion.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-coercion.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-constants.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-cdk-date-time.umd.js +11 -3
  17. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  18. package/bundles/taiga-ui-cdk-date-time.umd.min.js +1 -1
  19. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-cdk-decorators.umd.js +0 -2
  21. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  22. package/bundles/taiga-ui-cdk-decorators.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
  24. package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  26. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
  28. package/bundles/taiga-ui-cdk-directives-checked.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
  30. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  32. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  34. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
  36. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  38. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
  40. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-directives-portal.umd.js +281 -0
  42. package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -0
  43. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js +16 -0
  44. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js.map +1 -0
  45. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
  46. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
  48. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-directives.umd.js +12 -4
  50. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
  52. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  53. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  54. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
  58. package/classes/assert.d.ts +1 -1
  59. package/classes/validation-error.d.ts +1 -1
  60. package/constants/always-false-handler.d.ts +1 -1
  61. package/constants/always-true-handler.d.ts +1 -1
  62. package/constants/empty.d.ts +1 -1
  63. package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
  64. package/date-time/day.d.ts +4 -0
  65. package/decorators/default-prop.d.ts +1 -3
  66. package/decorators/pure.d.ts +1 -1
  67. package/decorators/taiga-ui-cdk-decorators.metadata.json +1 -1
  68. package/directives/for/for.directive.d.ts +1 -1
  69. package/directives/high-dpi/high-dpi.directive.d.ts +1 -1
  70. package/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.metadata.json +1 -1
  71. package/directives/index.d.ts +1 -0
  72. package/directives/portal/index.d.ts +2 -0
  73. package/directives/portal/package.json +13 -0
  74. package/directives/portal/portal.directive.d.ts +10 -0
  75. package/directives/portal/portal.module.d.ts +2 -0
  76. package/directives/portal/taiga-ui-cdk-directives-portal.d.ts +4 -0
  77. package/directives/portal/taiga-ui-cdk-directives-portal.metadata.json +1 -0
  78. package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
  79. package/directives/validator/validator.directive.d.ts +1 -1
  80. package/esm2015/abstract/control.js +1 -1
  81. package/esm2015/abstract/controller.js +1 -1
  82. package/esm2015/abstract/dialog.service.js +1 -1
  83. package/esm2015/abstract/interactive.js +1 -1
  84. package/esm2015/abstract/multiple-control.js +1 -1
  85. package/esm2015/abstract/portal-service.js +1 -1
  86. package/esm2015/abstract/theme-switcher.js +1 -1
  87. package/esm2015/classes/assert.js +5 -3
  88. package/esm2015/classes/validation-error.js +1 -1
  89. package/esm2015/coercion/coerce-boolean-property.js +3 -1
  90. package/esm2015/components/dialog-host/dialog-host.component.js +1 -1
  91. package/esm2015/constants/always-false-handler.js +1 -1
  92. package/esm2015/constants/always-true-handler.js +1 -1
  93. package/esm2015/constants/empty.js +1 -1
  94. package/esm2015/constants/matcher.js +1 -1
  95. package/esm2015/date-time/date-separator.js +1 -1
  96. package/esm2015/date-time/day.js +11 -1
  97. package/esm2015/decorators/default-prop.js +1 -3
  98. package/esm2015/decorators/pure.js +1 -1
  99. package/esm2015/decorators/required-setter.js +1 -1
  100. package/esm2015/directives/active-zone/active-zone.directive.js +1 -1
  101. package/esm2015/directives/auto-focus/autofocus.directive.js +1 -1
  102. package/esm2015/directives/checked/checked.directive.js +1 -1
  103. package/esm2015/directives/copy-processor/copy-processor.directive.js +1 -1
  104. package/esm2015/directives/focus-trap/focus-trap.directive.js +1 -1
  105. package/esm2015/directives/for/for.directive.js +1 -1
  106. package/esm2015/directives/high-dpi/high-dpi.directive.js +1 -1
  107. package/esm2015/directives/index.js +2 -1
  108. package/esm2015/directives/media/media.directive.js +1 -1
  109. package/esm2015/directives/overscroll/overscroll.directive.js +1 -1
  110. package/esm2015/directives/portal/index.js +3 -0
  111. package/esm2015/directives/portal/portal.directive.js +36 -0
  112. package/esm2015/directives/portal/portal.module.js +13 -0
  113. package/esm2015/directives/portal/taiga-ui-cdk-directives-portal.js +5 -0
  114. package/esm2015/directives/repeat-times/repeat-times.directive.js +1 -1
  115. package/esm2015/directives/validator/validator.directive.js +1 -1
  116. package/esm2015/interfaces/alert-context.js +1 -0
  117. package/esm2015/interfaces/index.js +1 -1
  118. package/esm2015/services/destroy.service.js +1 -1
  119. package/esm2015/services/directive-styles.service.js +1 -1
  120. package/esm2015/utils/focus/blur-native-focused.js +1 -1
  121. package/esm2015/utils/focus/move-focus.js +1 -1
  122. package/esm2015/utils/focus/set-native-focused.js +1 -1
  123. package/esm2015/utils/focus/set-native-mouse-focused.js +1 -1
  124. package/esm2015/utils/miscellaneous/mark-control-as-touched-and-validate.js +1 -1
  125. package/esm5/abstract/control.js +1 -1
  126. package/esm5/abstract/controller.js +1 -1
  127. package/esm5/abstract/dialog.service.js +1 -1
  128. package/esm5/abstract/interactive.js +1 -1
  129. package/esm5/abstract/multiple-control.js +1 -1
  130. package/esm5/abstract/portal-service.js +1 -1
  131. package/esm5/abstract/theme-switcher.js +1 -1
  132. package/esm5/classes/assert.js +5 -3
  133. package/esm5/classes/validation-error.js +1 -1
  134. package/esm5/coercion/coerce-boolean-property.js +3 -1
  135. package/esm5/components/dialog-host/dialog-host.component.js +1 -1
  136. package/esm5/constants/always-false-handler.js +1 -1
  137. package/esm5/constants/always-true-handler.js +1 -1
  138. package/esm5/constants/empty.js +1 -1
  139. package/esm5/constants/matcher.js +1 -1
  140. package/esm5/date-time/date-separator.js +2 -4
  141. package/esm5/date-time/day.js +11 -1
  142. package/esm5/decorators/default-prop.js +1 -3
  143. package/esm5/decorators/pure.js +1 -1
  144. package/esm5/decorators/required-setter.js +1 -1
  145. package/esm5/directives/active-zone/active-zone.directive.js +1 -1
  146. package/esm5/directives/auto-focus/autofocus.directive.js +1 -1
  147. package/esm5/directives/checked/checked.directive.js +1 -1
  148. package/esm5/directives/copy-processor/copy-processor.directive.js +1 -1
  149. package/esm5/directives/focus-trap/focus-trap.directive.js +1 -1
  150. package/esm5/directives/for/for.directive.js +1 -1
  151. package/esm5/directives/high-dpi/high-dpi.directive.js +1 -1
  152. package/esm5/directives/index.js +2 -1
  153. package/esm5/directives/media/media.directive.js +1 -1
  154. package/esm5/directives/overscroll/overscroll.directive.js +1 -1
  155. package/esm5/directives/portal/index.js +3 -0
  156. package/esm5/directives/portal/portal.directive.js +41 -0
  157. package/esm5/directives/portal/portal.module.js +16 -0
  158. package/esm5/directives/portal/taiga-ui-cdk-directives-portal.js +5 -0
  159. package/esm5/directives/repeat-times/repeat-times.directive.js +1 -1
  160. package/esm5/directives/validator/validator.directive.js +1 -1
  161. package/esm5/interfaces/alert-context.js +1 -0
  162. package/esm5/interfaces/index.js +1 -1
  163. package/esm5/services/destroy.service.js +1 -1
  164. package/esm5/services/directive-styles.service.js +1 -1
  165. package/esm5/utils/focus/blur-native-focused.js +1 -1
  166. package/esm5/utils/focus/move-focus.js +1 -1
  167. package/esm5/utils/focus/set-native-focused.js +1 -1
  168. package/esm5/utils/focus/set-native-mouse-focused.js +1 -1
  169. package/esm5/utils/miscellaneous/mark-control-as-touched-and-validate.js +1 -1
  170. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  171. package/fesm2015/taiga-ui-cdk-classes.js +4 -2
  172. package/fesm2015/taiga-ui-cdk-classes.js.map +1 -1
  173. package/fesm2015/taiga-ui-cdk-coercion.js +2 -0
  174. package/fesm2015/taiga-ui-cdk-coercion.js.map +1 -1
  175. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  176. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  177. package/fesm2015/taiga-ui-cdk-date-time.js +10 -0
  178. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  179. package/fesm2015/taiga-ui-cdk-decorators.js +0 -2
  180. package/fesm2015/taiga-ui-cdk-decorators.js.map +1 -1
  181. package/fesm2015/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  182. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  183. package/fesm2015/taiga-ui-cdk-directives-checked.js.map +1 -1
  184. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
  185. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  186. package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
  187. package/fesm2015/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
  188. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  189. package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  190. package/fesm2015/taiga-ui-cdk-directives-portal.js +51 -0
  191. package/fesm2015/taiga-ui-cdk-directives-portal.js.map +1 -0
  192. package/fesm2015/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
  193. package/fesm2015/taiga-ui-cdk-directives-validator.js.map +1 -1
  194. package/fesm2015/taiga-ui-cdk-directives.js +1 -0
  195. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  196. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  197. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  198. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  199. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  200. package/fesm5/taiga-ui-cdk-classes.js +4 -2
  201. package/fesm5/taiga-ui-cdk-classes.js.map +1 -1
  202. package/fesm5/taiga-ui-cdk-coercion.js +2 -0
  203. package/fesm5/taiga-ui-cdk-coercion.js.map +1 -1
  204. package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  205. package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
  206. package/fesm5/taiga-ui-cdk-date-time.js +11 -3
  207. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  208. package/fesm5/taiga-ui-cdk-decorators.js +0 -2
  209. package/fesm5/taiga-ui-cdk-decorators.js.map +1 -1
  210. package/fesm5/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  211. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  212. package/fesm5/taiga-ui-cdk-directives-checked.js.map +1 -1
  213. package/fesm5/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
  214. package/fesm5/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  215. package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
  216. package/fesm5/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
  217. package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
  218. package/fesm5/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  219. package/fesm5/taiga-ui-cdk-directives-portal.js +59 -0
  220. package/fesm5/taiga-ui-cdk-directives-portal.js.map +1 -0
  221. package/fesm5/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
  222. package/fesm5/taiga-ui-cdk-directives-validator.js.map +1 -1
  223. package/fesm5/taiga-ui-cdk-directives.js +1 -0
  224. package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
  225. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  226. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  227. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  228. package/interfaces/alert-context.d.ts +2 -0
  229. package/interfaces/index.d.ts +1 -0
  230. package/interfaces/taiga-ui-cdk-interfaces.metadata.json +1 -1
  231. package/package.json +1 -1
  232. package/schematics/ng-add/index.js +2 -10
  233. package/schematics/ng-add/steps/add-taiga-icons.js +2 -10
  234. package/schematics/ng-add/steps/add-taiga-modules.js +2 -10
  235. package/schematics/ng-add/steps/add-taiga-styles.js +2 -10
  236. package/schematics/ng-add/steps/wrap-with-tui-root.js +2 -10
  237. package/schematics/ng-update/index.js +2 -10
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","TuiDestroyService","_super","ngOnDestroy","complete","Injectable","ReplaySubject","TuiDirectiveStylesService","resolver","injector","documentRef","renderer","map","Map","addComponent","component","has","set","resolveComponentFactory","addStyle","styles","attribute","head","querySelector","style","createElement","setProperty","setAttribute","appendChild","ComponentFactoryResolver","type","Inject","args","Injector","INJECTOR","Document","DOCUMENT","Renderer2","TUI_DEFAULT_RENDERER","providedIn","TuiFocusVisibleService","_a","changeDetectorRef","destroy$","nativeElement","_this","subscriber","focusVisible$","subscribe","focusVisibleObservable","pipe","watch","takeUntil","ElementRef","ChangeDetectorRef","Observable","TuiHoveredService","ngZone","documentEvents$","merge","typedFromEvent","capture","createHovered$","options","passive","switchMap","filter","event","contains","getActualTarget","tuiZoneOptimized","take","mapTo","startWith","distinctUntilChanged","NgZone","TuiIdService","generate","TuiIdService_1","autoId","Date","now","TuiParentsScrollService","elementRef","windowRef","callback$","defer","eventTargets","parentElement","apply","concat","__spread","element","Window","WINDOW","TuiObscuredService","parentsScroll$","animationFrame$","obscured$","fromEvent","delay","throttleTime","POLLING_TIME","getElementObscurers","Self","ANIMATION_FRAME","TuiPanService","switchMapTo","touches","pairwise","_b","first","second","clientX","clientY","repeat","TuiResizeService","support","box","catchError","clientWidth","clientHeight","EMPTY_ARRAY","debounceTime","tuiZonefree","RESIZE_OBSERVER_SUPPORT","RESIZE_OPTION_BOX","ResizeObserverService","TuiScrollService","performanceRef","scroll$","scrollTop","scrollLeft","duration","tuiAssert","assert","initialTop","initialLeft","deltaTop","deltaLeft","of","start","elapsed","easeInOutQuad","clamp","percent","timer","tap","Performance","PERFORMANCE","TuiStaticRequestService","cache","request","url","get","piped","observer","xhr","XMLHttpRequest","onreadystatechange","readyState","response","responseType","responseText","status","open","send","abort","shareReplay","bufferSize","refCount","TuiSwipeService","timeout","threshold","identifier","changedTouches","end","startX","startY","distanceX","distanceY","timeStamp","Math","abs","direction","getSwipeDirection","events","isPresent","TUI_SWIPE_OPTIONS","TuiZoomService","wheelSensitivity","startEvent","preventDefault","scan","prev","distance","distanceBetweenTouches","delta","wheel","deltaY","TUI_ZOOM_OPTIONS"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Renderer2,\n Type,\n} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n private readonly map = new Map<Type<unknown>, unknown>();\n\n constructor(\n @Inject(ComponentFactoryResolver)\n private readonly resolver: ComponentFactoryResolver,\n @Inject(INJECTOR) private readonly injector: Injector,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addComponent(component: Type<unknown>) {\n if (!this.map.has(component)) {\n this.map.set(\n component,\n this.resolver.resolveComponentFactory(component).create(this.injector),\n );\n }\n }\n\n /** @deprecated use components approach */\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = elementRef;\n const eventTargets: (Element | Window)[] = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(element, 'scroll'),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {getElementObscurers} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | readonly Element[]> {\n private readonly obscured$: Observable<null | readonly Element[]>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n debounceTime(0),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n takeUntil(timer(duration)),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay({bufferSize: 1, refCount: false}));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, 'touchend'),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n// @dynamic\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n preventDefault(),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","TuiDestroyService","_super","ngOnDestroy","complete","Injectable","ReplaySubject","TuiDirectiveStylesService","resolver","injector","documentRef","renderer","map","Map","addComponent","component","has","set","resolveComponentFactory","addStyle","styles","attribute","head","querySelector","style","createElement","setProperty","setAttribute","appendChild","ComponentFactoryResolver","type","Inject","args","Injector","INJECTOR","Document","DOCUMENT","Renderer2","TUI_DEFAULT_RENDERER","providedIn","TuiFocusVisibleService","_a","changeDetectorRef","destroy$","nativeElement","_this","subscriber","focusVisible$","subscribe","focusVisibleObservable","pipe","watch","takeUntil","ElementRef","ChangeDetectorRef","Observable","TuiHoveredService","ngZone","documentEvents$","merge","typedFromEvent","capture","createHovered$","options","passive","switchMap","filter","event","contains","getActualTarget","tuiZoneOptimized","take","mapTo","startWith","distinctUntilChanged","NgZone","TuiIdService","generate","TuiIdService_1","autoId","Date","now","TuiParentsScrollService","elementRef","windowRef","callback$","defer","eventTargets","parentElement","apply","concat","__spread","element","Window","WINDOW","TuiObscuredService","parentsScroll$","animationFrame$","obscured$","fromEvent","delay","throttleTime","POLLING_TIME","getElementObscurers","Self","ANIMATION_FRAME","TuiPanService","switchMapTo","touches","pairwise","_b","first","second","clientX","clientY","repeat","TuiResizeService","support","box","catchError","clientWidth","clientHeight","EMPTY_ARRAY","debounceTime","tuiZonefree","RESIZE_OBSERVER_SUPPORT","RESIZE_OPTION_BOX","ResizeObserverService","TuiScrollService","performanceRef","scroll$","scrollTop","scrollLeft","duration","tuiAssert","assert","initialTop","initialLeft","deltaTop","deltaLeft","of","start","elapsed","easeInOutQuad","clamp","percent","timer","tap","Performance","PERFORMANCE","TuiStaticRequestService","cache","request","url","get","piped","observer","xhr","XMLHttpRequest","onreadystatechange","readyState","response","responseType","responseText","status","open","send","abort","shareReplay","bufferSize","refCount","TuiSwipeService","timeout","threshold","identifier","changedTouches","end","startX","startY","distanceX","distanceY","timeStamp","Math","abs","direction","getSwipeDirection","events","isPresent","TUI_SWIPE_OPTIONS","TuiZoomService","wheelSensitivity","startEvent","preventDefault","scan","prev","distance","distanceBetweenTouches","delta","wheel","deltaY","TUI_ZOOM_OPTIONS"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Renderer2,\n Type,\n} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n private readonly map = new Map<Type<unknown>, unknown>();\n\n constructor(\n @Inject(ComponentFactoryResolver)\n private readonly resolver: ComponentFactoryResolver,\n @Inject(INJECTOR) private readonly injector: Injector,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addComponent(component: Type<unknown>): void {\n if (!this.map.has(component)) {\n this.map.set(\n component,\n this.resolver.resolveComponentFactory(component).create(this.injector),\n );\n }\n }\n\n /** @deprecated use components approach */\n addStyle(styles: string, attribute: string): void {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = elementRef;\n const eventTargets: (Element | Window)[] = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(element, 'scroll'),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {getElementObscurers} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | readonly Element[]> {\n private readonly obscured$: Observable<null | readonly Element[]>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n debounceTime(0),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n takeUntil(timer(duration)),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay({bufferSize: 1, refCount: false}));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, 'touchend'),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n// @dynamic\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n preventDefault(),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-focus.umd.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n) {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document) {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n) {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n) {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n"],"names":["svgNodeFilter"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-focus.umd.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n"],"names":["svgNodeFilter"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts"],"names":["getNativeFocused","documentRef","activeElement","shadowRoot","element","setNativeFocused","focused","preventScroll","focus","blur","isNativeKeyboardFocusable","hasAttribute","getAttribute","HTMLElement","isContentEditable","tagName","isNativeMouseFocusable","getClosestFocusable","initial","prev","root","keyboard","ownerDocument","check","treeWalker","createTreeWalker","NodeFilter","SHOW_ELEMENT","svgNodeFilter","currentNode","previousNode","nextNode","getClosestKeyboardFocusable","isNativeFocused","node","contains","nativeFocused","currentIndex","elements","step","length","Event","dispatchEvent","bubbles","cancelable","event_1","createEvent","initEvent"],"mappings":"udAKgBA,EAAiBC,GAC7B,IAAKA,EAAYC,gBAAkBD,EAAYC,cAAcC,WACzD,OAAOF,EAAYC,cAKvB,IAFA,IAAIE,EAAUH,EAAYC,cAAcC,WAAWD,cAE5CE,GAAWA,EAAQD,YACtBC,EAAUA,EAAQD,WAAWD,cAGjC,OAAOE,WCTKC,EACZD,EACAE,EACAC,QADA,IAAAD,IAAAA,GAAA,QACA,IAAAC,IAAAA,GAAA,GAEID,EACAF,EAAQI,MAAM,CAACD,cAAaA,IAE5BH,EAAQK,gBCTAC,EAA0BN,GACtC,GAAIA,EAAQO,aAAa,aAAoD,OAArCP,EAAQQ,aAAa,YACzD,OAAO,EAIX,GACKR,aAAmBS,aAAeT,EAAQU,mBACN,MAArCV,EAAQQ,aAAa,YAErB,OAAO,EAGX,OAAQR,EAAQW,SACZ,IAAK,SACL,IAAK,SACL,IAAK,WACD,OAAO,EACX,IAAK,QACL,IAAK,QACD,OAAOX,EAAQO,aAAa,YAChC,IAAK,QACD,MAAwC,WAAjCP,EAAQQ,aAAa,QAChC,IAAK,IACL,IAAK,OACD,OAAOR,EAAQO,aAAa,QAChC,QACI,OAAO,YC/BHK,EAAuBZ,GACnC,OACKA,EAAQO,aAAa,cACgB,OAArCP,EAAQQ,aAAa,aAAwBF,EAA0BN,aCShEa,EACZC,EACAC,EACAC,EACAC,GAEA,QAJA,IAAAF,IAAAA,GAAA,QAEA,IAAAE,IAAAA,GAAA,IAEKD,EAAKE,cACN,OAAO,KAGX,IAAMC,EAAQF,EAAWX,EAA4BM,EAI/CQ,EAAaJ,EAAKE,cAAcG,iBAClCL,EACAM,WAAWC,aACXC,EAAAA,eACA,GAKJ,IAFAJ,EAAWK,YAAcX,EAElBC,EAAOK,EAAWM,eAAiBN,EAAWO,YAMjD,GAJIP,EAAWK,uBAAuBhB,cAClCK,EAAUM,EAAWK,aAGrBN,EAAML,GACN,OAAOA,EAIf,OAAO,SAIEc,EAA8Bf,WC1C3BgB,EAAgBC,GAC5B,QACMA,KAAUA,EAAKZ,eAAiBtB,EAAiBkC,EAAKZ,iBAAmBY,+BCNjDjC,GAC9B,IAAMC,EAAgBF,EAAiBC,GAGnCC,aAAyBW,aACzBR,EAAiBH,GAAe,kICHNgC,GAE9B,IAAKA,EAAKZ,gBAAkBY,EAAKC,SAC7B,OAAO,EAGX,IAAMC,EAAgBpC,EAAiBkC,EAAKZ,eAE5C,OAAyB,OAAlBc,GAA0BF,EAAKC,SAASC,kFCL/CC,EACAC,EACAC,GAIA,IAFAF,GAAgBE,EAETF,GAAgB,GAAKA,EAAeC,EAASE,QAAQ,CAGxD,GAFAnC,EAAiBiC,EAASD,IAEtBJ,EAAgBK,EAASD,IACzB,OAGJA,GAAgBE,0DCdpBnC,EACAE,EACAC,GAEA,QAHA,IAAAD,IAAAA,GAAA,QACA,IAAAC,IAAAA,GAAA,GAEKH,EAAQkB,cAAb,CAIA,GAAqB,mBAAVmB,MACPrC,EAAQsC,cAAc,IAAID,MAAM,YAAa,CAACE,SAAS,EAAMC,YAAY,SACtE,CACH,IAAMC,EAAQzC,EAAQkB,cAAcwB,YAAY,SAEhDD,EAAME,UAAU,aAAa,GAAM,GACnC3C,EAAQsC,cAAcG,GAG1BxC,EAAiBD,EAASE,EAASC","sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n) {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document) {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n) {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n) {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n"]}
1
+ {"version":3,"sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts"],"names":["getNativeFocused","documentRef","activeElement","shadowRoot","element","setNativeFocused","focused","preventScroll","focus","blur","isNativeKeyboardFocusable","hasAttribute","getAttribute","HTMLElement","isContentEditable","tagName","isNativeMouseFocusable","getClosestFocusable","initial","prev","root","keyboard","ownerDocument","check","treeWalker","createTreeWalker","NodeFilter","SHOW_ELEMENT","svgNodeFilter","currentNode","previousNode","nextNode","getClosestKeyboardFocusable","isNativeFocused","node","contains","nativeFocused","currentIndex","elements","step","length","Event","dispatchEvent","bubbles","cancelable","event_1","createEvent","initEvent"],"mappings":"udAKgBA,EAAiBC,GAC7B,IAAKA,EAAYC,gBAAkBD,EAAYC,cAAcC,WACzD,OAAOF,EAAYC,cAKvB,IAFA,IAAIE,EAAUH,EAAYC,cAAcC,WAAWD,cAE5CE,GAAWA,EAAQD,YACtBC,EAAUA,EAAQD,WAAWD,cAGjC,OAAOE,WCTKC,EACZD,EACAE,EACAC,QADA,IAAAD,IAAAA,GAAA,QACA,IAAAC,IAAAA,GAAA,GAEID,EACAF,EAAQI,MAAM,CAACD,cAAaA,IAE5BH,EAAQK,gBCTAC,EAA0BN,GACtC,GAAIA,EAAQO,aAAa,aAAoD,OAArCP,EAAQQ,aAAa,YACzD,OAAO,EAIX,GACKR,aAAmBS,aAAeT,EAAQU,mBACN,MAArCV,EAAQQ,aAAa,YAErB,OAAO,EAGX,OAAQR,EAAQW,SACZ,IAAK,SACL,IAAK,SACL,IAAK,WACD,OAAO,EACX,IAAK,QACL,IAAK,QACD,OAAOX,EAAQO,aAAa,YAChC,IAAK,QACD,MAAwC,WAAjCP,EAAQQ,aAAa,QAChC,IAAK,IACL,IAAK,OACD,OAAOR,EAAQO,aAAa,QAChC,QACI,OAAO,YC/BHK,EAAuBZ,GACnC,OACKA,EAAQO,aAAa,cACgB,OAArCP,EAAQQ,aAAa,aAAwBF,EAA0BN,aCShEa,EACZC,EACAC,EACAC,EACAC,GAEA,QAJA,IAAAF,IAAAA,GAAA,QAEA,IAAAE,IAAAA,GAAA,IAEKD,EAAKE,cACN,OAAO,KAGX,IAAMC,EAAQF,EAAWX,EAA4BM,EAI/CQ,EAAaJ,EAAKE,cAAcG,iBAClCL,EACAM,WAAWC,aACXC,EAAAA,eACA,GAKJ,IAFAJ,EAAWK,YAAcX,EAElBC,EAAOK,EAAWM,eAAiBN,EAAWO,YAMjD,GAJIP,EAAWK,uBAAuBhB,cAClCK,EAAUM,EAAWK,aAGrBN,EAAML,GACN,OAAOA,EAIf,OAAO,SAIEc,EAA8Bf,WC1C3BgB,EAAgBC,GAC5B,QACMA,KAAUA,EAAKZ,eAAiBtB,EAAiBkC,EAAKZ,iBAAmBY,+BCNjDjC,GAC9B,IAAMC,EAAgBF,EAAiBC,GAGnCC,aAAyBW,aACzBR,EAAiBH,GAAe,kICHNgC,GAE9B,IAAKA,EAAKZ,gBAAkBY,EAAKC,SAC7B,OAAO,EAGX,IAAMC,EAAgBpC,EAAiBkC,EAAKZ,eAE5C,OAAyB,OAAlBc,GAA0BF,EAAKC,SAASC,kFCL/CC,EACAC,EACAC,GAIA,IAFAF,GAAgBE,EAETF,GAAgB,GAAKA,EAAeC,EAASE,QAAQ,CAGxD,GAFAnC,EAAiBiC,EAASD,IAEtBJ,EAAgBK,EAASD,IACzB,OAGJA,GAAgBE,0DCdpBnC,EACAE,EACAC,GAEA,QAHA,IAAAD,IAAAA,GAAA,QACA,IAAAC,IAAAA,GAAA,GAEKH,EAAQkB,cAAb,CAIA,GAAqB,mBAAVmB,MACPrC,EAAQsC,cAAc,IAAID,MAAM,YAAa,CAACE,SAAS,EAAMC,YAAY,SACtE,CACH,IAAMC,EAAQzC,EAAQkB,cAAcwB,YAAY,SAEhDD,EAAME,UAAU,aAAa,GAAM,GACnC3C,EAAQsC,cAAcG,GAG1BxC,EAAiBD,EAASE,EAASC","sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.umd.js","sources":["ng://@taiga-ui/cdk/utils/miscellaneous/distance-between-touches.ts","ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-swipe-direction.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts"],"sourcesContent":["export function distanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(\n 0 <= t && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n * @deprecated use nullish coalescing operator\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(queryList: QueryList<T>): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function getSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? 'top' : 'bottom';\n } else {\n return deltaX > 0 ? 'left' : 'right';\n }\n}\n","/**\n * @deprecated: use identity from rxjs\n */\nexport function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl) {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n"],"names":["tuiAssert","FormArray","FormGroup"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.umd.js","sources":["ng://@taiga-ui/cdk/utils/miscellaneous/distance-between-touches.ts","ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-swipe-direction.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts"],"sourcesContent":["export function distanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(\n 0 <= t && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n * @deprecated use nullish coalescing operator\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(queryList: QueryList<T>): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function getSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? 'top' : 'bottom';\n } else {\n return deltaX > 0 ? 'left' : 'right';\n }\n}\n","/**\n * @deprecated: use identity from rxjs\n */\nexport function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n"],"names":["tuiAssert","FormArray","FormGroup"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/distance-between-touches.ts","ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-swipe-direction.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts"],"names":["isPresent","value","_a","touches","Math","hypot","clientX","clientY","t","tuiAssert","assert","fallback","array","reduce","count","section","length","queryList","find","_item","_index","originalArray","deltaX","deltaY","abs","item","element","HTMLInputElement","readOnly","HTMLTextAreaElement","isContentEditable","markControlAsTouchedAndValidate","control","FormArray","controls","forEach","nestedControl","FormGroup","Object","values","markAsTouched","updateValueAndValidity","a","b","handler","key","Array","from","map","has","set","Map"],"mappings":"yhBAAgBA,EAAaC,GACzB,OAAOA,MAAAA,oCCD4BC,OAACC,EAAAD,EAAAC,QACpC,OAAOC,KAAKC,MACRF,EAAQ,GAAGG,QAAUH,EAAQ,GAAGG,QAChCH,EAAQ,GAAGI,QAAUJ,EAAQ,GAAGI,mCCDVC,GAO1B,OANAC,EAAAA,UAAUC,OACN,GAAKF,GAAKA,GAAK,EACf,wDACAA,GAGGA,EAAI,GAAM,EAAIA,EAAIA,GAAU,EAAI,EAAIA,GAAKA,EAAlB,4BCDDP,EAA6BU,GAC1D,OAAOX,EAAUC,GAASA,EAAQU,yBCJXC,GACvB,OAAOA,EAAMC,QAAO,SAACC,EAAOC,GAAY,OAAAD,EAAQC,EAAQC,SAAQ,6CCEnBC,GAC7C,IAAIL,EAAsB,GAQ1B,OANAK,EAAUC,MAAK,SAACC,EAAOC,EAAQC,GAG3B,OAFAT,EAAQS,GAED,KAGJT,gCCfuBU,EAAgBC,GAC9C,OAAInB,KAAKoB,IAAID,GAAUnB,KAAKoB,IAAIF,GACrBC,EAAS,EAAI,MAAQ,SAErBD,EAAS,EAAI,OAAS,6BCHTG,GACxB,OAAOA,gCCJuBC,GAE9B,OACKA,aAAmBC,mBAAqBD,EAAQE,UAChDF,aAAmBG,sBAAwBH,EAAQE,UACpDF,EAAQI,uCCLS7B,GACrB,MAAwB,iBAAVA,4DCCF8B,EAAgCC,GACxCA,aAAmBC,EAAAA,WACnBD,EAAQE,SAASC,SAAQ,SAAAC,GACrBL,EAAgCK,MAIpCJ,aAAmBK,EAAAA,WACnBC,OAAOC,OAAOP,EAAQE,UAAUC,SAAQ,SAAAC,GACpCL,EAAgCK,MAIxCJ,EAAQQ,gBACRR,EAAQS,kDCLRC,EACAC,EACAC,GAEA,OAAU,OAANF,EACa,OAANC,EAGD,OAANA,GAIGC,EAAQF,EAAGC,sBCtBlB/B,EACAiC,GAEA,OAAOC,MAAMC,KACTnC,EACKC,QACG,SAACmC,EAAKvB,GAAS,OAACuB,EAAIC,IAAIxB,EAAKoB,IAAQG,EAAMA,EAAIE,IAAIzB,EAAKoB,GAAMpB,KAC9D,IAAI0B,KAEPZ","sourcesContent":["export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","export function distanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(\n 0 <= t && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n * @deprecated use nullish coalescing operator\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(queryList: QueryList<T>): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function getSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? 'top' : 'bottom';\n } else {\n return deltaX > 0 ? 'left' : 'right';\n }\n}\n","/**\n * @deprecated: use identity from rxjs\n */\nexport function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl) {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n"]}
1
+ {"version":3,"sources":["ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/distance-between-touches.ts","ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-swipe-direction.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts"],"names":["isPresent","value","_a","touches","Math","hypot","clientX","clientY","t","tuiAssert","assert","fallback","array","reduce","count","section","length","queryList","find","_item","_index","originalArray","deltaX","deltaY","abs","item","element","HTMLInputElement","readOnly","HTMLTextAreaElement","isContentEditable","markControlAsTouchedAndValidate","control","FormArray","controls","forEach","nestedControl","FormGroup","Object","values","markAsTouched","updateValueAndValidity","a","b","handler","key","Array","from","map","has","set","Map"],"mappings":"yhBAAgBA,EAAaC,GACzB,OAAOA,MAAAA,oCCD4BC,OAACC,EAAAD,EAAAC,QACpC,OAAOC,KAAKC,MACRF,EAAQ,GAAGG,QAAUH,EAAQ,GAAGG,QAChCH,EAAQ,GAAGI,QAAUJ,EAAQ,GAAGI,mCCDVC,GAO1B,OANAC,EAAAA,UAAUC,OACN,GAAKF,GAAKA,GAAK,EACf,wDACAA,GAGGA,EAAI,GAAM,EAAIA,EAAIA,GAAU,EAAI,EAAIA,GAAKA,EAAlB,4BCDDP,EAA6BU,GAC1D,OAAOX,EAAUC,GAASA,EAAQU,yBCJXC,GACvB,OAAOA,EAAMC,QAAO,SAACC,EAAOC,GAAY,OAAAD,EAAQC,EAAQC,SAAQ,6CCEnBC,GAC7C,IAAIL,EAAsB,GAQ1B,OANAK,EAAUC,MAAK,SAACC,EAAOC,EAAQC,GAG3B,OAFAT,EAAQS,GAED,KAGJT,gCCfuBU,EAAgBC,GAC9C,OAAInB,KAAKoB,IAAID,GAAUnB,KAAKoB,IAAIF,GACrBC,EAAS,EAAI,MAAQ,SAErBD,EAAS,EAAI,OAAS,6BCHTG,GACxB,OAAOA,gCCJuBC,GAE9B,OACKA,aAAmBC,mBAAqBD,EAAQE,UAChDF,aAAmBG,sBAAwBH,EAAQE,UACpDF,EAAQI,uCCLS7B,GACrB,MAAwB,iBAAVA,4DCCF8B,EAAgCC,GACxCA,aAAmBC,EAAAA,WACnBD,EAAQE,SAASC,SAAQ,SAAAC,GACrBL,EAAgCK,MAIpCJ,aAAmBK,EAAAA,WACnBC,OAAOC,OAAOP,EAAQE,UAAUC,SAAQ,SAAAC,GACpCL,EAAgCK,MAIxCJ,EAAQQ,gBACRR,EAAQS,kDCLRC,EACAC,EACAC,GAEA,OAAU,OAANF,EACa,OAANC,EAGD,OAANA,GAIGC,EAAQF,EAAGC,sBCtBlB/B,EACAiC,GAEA,OAAOC,MAAMC,KACTnC,EACKC,QACG,SAACmC,EAAKvB,GAAS,OAACuB,EAAIC,IAAIxB,EAAKoB,IAAQG,EAAMA,EAAIE,IAAIzB,EAAKoB,GAAMpB,KAC9D,IAAI0B,KAEPZ","sourcesContent":["export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","export function distanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(\n 0 <= t && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n * @deprecated use nullish coalescing operator\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(queryList: QueryList<T>): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function getSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? 'top' : 'bottom';\n } else {\n return deltaX > 0 ? 'left' : 'right';\n }\n}\n","/**\n * @deprecated: use identity from rxjs\n */\nexport function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  export declare const tuiAssert: {
2
2
  enabled: boolean;
3
- readonly assert: (assertion: boolean, ...args: any[]) => void;
3
+ readonly assert: (assertion: boolean, ...args: unknown[]) => void;
4
4
  };
5
5
  declare type PossibleNode = Node | Element | EventTarget | null;
6
6
  export declare function tuiAssertIsHTMLElement(node?: PossibleNode): asserts node is HTMLElement;
@@ -1,5 +1,5 @@
1
1
  import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
2
- export declare class TuiValidationError<T extends object = {}> {
2
+ export declare class TuiValidationError<T extends object = Record<string, any>> {
3
3
  readonly message: PolymorpheusContent<T>;
4
4
  readonly context: T;
5
5
  constructor(message: PolymorpheusContent<T>, context?: T);
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Handler that always returns `false`.
3
3
  */
4
- export declare const ALWAYS_FALSE_HANDLER: () => boolean;
4
+ export declare const ALWAYS_FALSE_HANDLER: () => false;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Handler that always returns `true`.
3
3
  */
4
- export declare const ALWAYS_TRUE_HANDLER: () => boolean;
4
+ export declare const ALWAYS_TRUE_HANDLER: () => true;
@@ -7,6 +7,6 @@ import { ValidatorFn } from '@angular/forms';
7
7
  */
8
8
  export declare const EMPTY_QUERY: QueryList<any>;
9
9
  export declare const EMPTY_ARRAY: [];
10
- export declare const EMPTY_FUNCTION: Function;
10
+ export declare const EMPTY_FUNCTION: (...args: any[]) => void;
11
11
  /** @deprecated use Validators.nullValidator */
12
12
  export declare const EMPTY_VALIDATOR: ValidatorFn;
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"ALWAYS_FALSE_HANDLER":{"__symbolic":"error","message":"Lambda not supported","line":3,"character":36,"module":"./always-false-handler"},"ALWAYS_TRUE_HANDLER":{"__symbolic":"error","message":"Lambda not supported","line":3,"character":35,"module":"./always-true-handler"},"CHROMIUM_EDGE_START_VERSION":79,"EMPTY_QUERY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"QueryList","line":8,"character":31}},"EMPTY_ARRAY":[],"EMPTY_FUNCTION":{"__symbolic":"error","message":"Lambda not supported","line":10,"character":40,"module":"./empty"},"EMPTY_VALIDATOR":{"__symbolic":"error","message":"Lambda not supported","line":12,"character":44,"module":"./empty"},"TUI_DEFAULT_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":10,"character":35,"module":"./matcher"},"TUI_STRICT_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":22,"character":34,"module":"./matcher"},"TUI_DEFAULT_IDENTITY_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":35,"character":73,"module":"./matcher"},"TUI_PARENT_ANIMATION":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":2,"character":36},"arguments":["tuiParentAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":3,"character":4},"arguments":["* => void",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":4,"character":8},"arguments":[{"overflow":"hidden"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":5,"character":8},"arguments":["@*",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animateChild","line":5,"character":21}}],{"optional":true}]}]]}]]},"POLLING_TIME":66.66666666666667,"TUI_DEFAULT_STRINGIFY":{"__symbolic":"error","message":"Lambda not supported","line":5,"character":60,"module":"./stringify"},"svgNodeFilter":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":42,"module":"./svg-node-filter"},"CHAR_NO_BREAK_SPACE":" ","CHAR_EN_DASH":"–","CHAR_BULLET":"•","CHAR_ELLIPSIS":"…","CHAR_CURRENCY_SIGN":"¤","CHAR_ZERO_WIDTH_SPACE":"​"},"origins":{"ALWAYS_FALSE_HANDLER":"./always-false-handler","ALWAYS_TRUE_HANDLER":"./always-true-handler","CHROMIUM_EDGE_START_VERSION":"./browser","EMPTY_QUERY":"./empty","EMPTY_ARRAY":"./empty","EMPTY_FUNCTION":"./empty","EMPTY_VALIDATOR":"./empty","TUI_DEFAULT_MATCHER":"./matcher","TUI_STRICT_MATCHER":"./matcher","TUI_DEFAULT_IDENTITY_MATCHER":"./matcher","TUI_PARENT_ANIMATION":"./parent-animation","POLLING_TIME":"./polling-time","TUI_DEFAULT_STRINGIFY":"./stringify","svgNodeFilter":"./svg-node-filter","CHAR_NO_BREAK_SPACE":"./unicode-chars","CHAR_EN_DASH":"./unicode-chars","CHAR_BULLET":"./unicode-chars","CHAR_ELLIPSIS":"./unicode-chars","CHAR_CURRENCY_SIGN":"./unicode-chars","CHAR_ZERO_WIDTH_SPACE":"./unicode-chars"},"importAs":"@taiga-ui/cdk/constants"}
1
+ {"__symbolic":"module","version":4,"metadata":{"ALWAYS_FALSE_HANDLER":{"__symbolic":"error","message":"Lambda not supported","line":3,"character":36,"module":"./always-false-handler"},"ALWAYS_TRUE_HANDLER":{"__symbolic":"error","message":"Lambda not supported","line":3,"character":35,"module":"./always-true-handler"},"CHROMIUM_EDGE_START_VERSION":79,"EMPTY_QUERY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"QueryList","line":8,"character":31}},"EMPTY_ARRAY":[],"EMPTY_FUNCTION":{"__symbolic":"error","message":"Lambda not supported","line":10,"character":56,"module":"./empty"},"EMPTY_VALIDATOR":{"__symbolic":"error","message":"Lambda not supported","line":12,"character":44,"module":"./empty"},"TUI_DEFAULT_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":10,"character":35,"module":"./matcher"},"TUI_STRICT_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":22,"character":34,"module":"./matcher"},"TUI_DEFAULT_IDENTITY_MATCHER":{"__symbolic":"error","message":"Lambda not supported","line":35,"character":73,"module":"./matcher"},"TUI_PARENT_ANIMATION":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":2,"character":36},"arguments":["tuiParentAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":3,"character":4},"arguments":["* => void",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":4,"character":8},"arguments":[{"overflow":"hidden"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":5,"character":8},"arguments":["@*",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animateChild","line":5,"character":21}}],{"optional":true}]}]]}]]},"POLLING_TIME":66.66666666666667,"TUI_DEFAULT_STRINGIFY":{"__symbolic":"error","message":"Lambda not supported","line":5,"character":60,"module":"./stringify"},"svgNodeFilter":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":42,"module":"./svg-node-filter"},"CHAR_NO_BREAK_SPACE":" ","CHAR_EN_DASH":"–","CHAR_BULLET":"•","CHAR_ELLIPSIS":"…","CHAR_CURRENCY_SIGN":"¤","CHAR_ZERO_WIDTH_SPACE":"​"},"origins":{"ALWAYS_FALSE_HANDLER":"./always-false-handler","ALWAYS_TRUE_HANDLER":"./always-true-handler","CHROMIUM_EDGE_START_VERSION":"./browser","EMPTY_QUERY":"./empty","EMPTY_ARRAY":"./empty","EMPTY_FUNCTION":"./empty","EMPTY_VALIDATOR":"./empty","TUI_DEFAULT_MATCHER":"./matcher","TUI_STRICT_MATCHER":"./matcher","TUI_DEFAULT_IDENTITY_MATCHER":"./matcher","TUI_PARENT_ANIMATION":"./parent-animation","POLLING_TIME":"./polling-time","TUI_DEFAULT_STRINGIFY":"./stringify","svgNodeFilter":"./svg-node-filter","CHAR_NO_BREAK_SPACE":"./unicode-chars","CHAR_EN_DASH":"./unicode-chars","CHAR_BULLET":"./unicode-chars","CHAR_ELLIPSIS":"./unicode-chars","CHAR_CURRENCY_SIGN":"./unicode-chars","CHAR_ZERO_WIDTH_SPACE":"./unicode-chars"},"importAs":"@taiga-ui/cdk/constants"}
@@ -39,6 +39,10 @@ export declare class TuiDay extends TuiMonth {
39
39
  * Current day based on local time zone
40
40
  */
41
41
  static currentLocal(): TuiDay;
42
+ /**
43
+ * Returns current day based on UTC
44
+ */
45
+ static currentUtc(): TuiDay;
42
46
  /**
43
47
  * Calculates {@link TuiDay} normalizing year, month and day. {@link NaN} is turned into minimal value.
44
48
  *
@@ -3,8 +3,6 @@ import { TuiBooleanHandler } from '@taiga-ui/cdk/types';
3
3
  * Decorator for checking input values for undefined. You can also pass
4
4
  * optional assertion to check input against.
5
5
  *
6
- * See {@link createPropDecorator} for more details.
7
- *
8
6
  * CAUTION: This decorator overwrites other getters and setters.
9
7
  */
10
- export declare function tuiDefaultProp<T extends object, K extends keyof T>(assertion?: TuiBooleanHandler<T[K]>, ...args: any[]): PropertyDecorator;
8
+ export declare function tuiDefaultProp<T extends object, K extends keyof T>(assertion?: TuiBooleanHandler<T[K]>, ...args: unknown[]): PropertyDecorator;
@@ -7,4 +7,4 @@
7
7
  *
8
8
  * CAUTION: `this` is not available inside such functions/getters, they must be pure.
9
9
  */
10
- export declare function tuiPure<T>(_target: Object, propertyKey: string, { get, enumerable, value }: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T>;
10
+ export declare function tuiPure<T>(_target: object, propertyKey: string, { get, enumerable, value }: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T>;
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"tuiDefaultProp":{"__symbolic":"function","parameters":["assertion","args"],"value":{"__symbolic":"error","message":"Lambda not supported","line":15,"character":11,"module":"./default-prop"}},"tuiPure":{"__symbolic":"function"},"tuiRequiredSetter":{"__symbolic":"function","parameters":["assertion","args"],"value":{"__symbolic":"error","message":"Lambda not supported","line":13,"character":11,"module":"./required-setter"}}},"origins":{"tuiDefaultProp":"./default-prop","tuiPure":"./pure","tuiRequiredSetter":"./required-setter"},"importAs":"@taiga-ui/cdk/decorators"}
1
+ {"__symbolic":"module","version":4,"metadata":{"tuiDefaultProp":{"__symbolic":"function","parameters":["assertion","args"],"value":{"__symbolic":"error","message":"Lambda not supported","line":13,"character":11,"module":"./default-prop"}},"tuiPure":{"__symbolic":"function"},"tuiRequiredSetter":{"__symbolic":"function","parameters":["assertion","args"],"value":{"__symbolic":"error","message":"Lambda not supported","line":13,"character":11,"module":"./required-setter"}}},"origins":{"tuiDefaultProp":"./default-prop","tuiPure":"./pure","tuiRequiredSetter":"./required-setter"},"importAs":"@taiga-ui/cdk/decorators"}
@@ -1,5 +1,5 @@
1
1
  import { OnChanges, TemplateRef, ViewContainerRef } from '@angular/core';
2
- export declare class TuiForDirective<T, K = {}> implements OnChanges {
2
+ export declare class TuiForDirective<T, K = unknown> implements OnChanges {
3
3
  private readonly vcr;
4
4
  private ref?;
5
5
  ngForOf: T[] | readonly T[] | null;
@@ -4,5 +4,5 @@ import { TemplateRef, ViewContainerRef } from '@angular/core';
4
4
  * @dynamic
5
5
  */
6
6
  export declare class TuiHighDpiDirective {
7
- constructor({ devicePixelRatio }: Window, viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>);
7
+ constructor({ devicePixelRatio }: Window, viewContainer: ViewContainerRef, templateRef: TemplateRef<Record<string, unknown>>);
8
8
  }