@taiga-ui/cdk 2.20.0 → 2.24.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 (204) hide show
  1. package/README.md +7 -3
  2. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  3. package/abstract/theme-switcher.d.ts +2 -1
  4. package/bundles/taiga-ui-cdk-abstract.umd.js +29 -15
  5. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
  7. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +1 -1
  9. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -1
  10. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +1 -1
  11. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +1 -1
  12. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +13 -31
  13. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
  14. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js +2 -2
  15. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-cdk-directives-pan.umd.js +266 -0
  17. package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -0
  18. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +16 -0
  19. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -0
  20. package/bundles/taiga-ui-cdk-directives-swipe.umd.js +266 -0
  21. package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -0
  22. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +16 -0
  23. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -0
  24. package/bundles/taiga-ui-cdk-directives-zoom.umd.js +269 -0
  25. package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -0
  26. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +16 -0
  27. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -0
  28. package/bundles/taiga-ui-cdk-directives.umd.js +28 -4
  29. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  30. package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
  31. package/bundles/taiga-ui-cdk-services.umd.js +154 -5
  32. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-services.umd.min.js +2 -2
  34. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-tokens.umd.js +16 -4
  36. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  38. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-utils-dom.umd.js +1 -3
  40. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
  42. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +17 -0
  43. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  44. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js +1 -1
  45. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
  46. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
  47. package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
  48. package/directives/autofilled/autofilled.directive.d.ts +4 -5
  49. package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
  50. package/directives/index.d.ts +3 -0
  51. package/directives/pan/index.d.ts +2 -0
  52. package/directives/pan/package.json +13 -0
  53. package/directives/pan/pan.directive.d.ts +5 -0
  54. package/directives/pan/pan.module.d.ts +5 -0
  55. package/directives/pan/taiga-ui-cdk-directives-pan.d.ts +4 -0
  56. package/directives/pan/taiga-ui-cdk-directives-pan.metadata.json +1 -0
  57. package/directives/swipe/index.d.ts +2 -0
  58. package/directives/swipe/package.json +13 -0
  59. package/directives/swipe/swipe.directive.d.ts +5 -0
  60. package/directives/swipe/swipe.module.d.ts +5 -0
  61. package/directives/swipe/taiga-ui-cdk-directives-swipe.d.ts +4 -0
  62. package/directives/swipe/taiga-ui-cdk-directives-swipe.metadata.json +1 -0
  63. package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
  64. package/directives/zoom/index.d.ts +2 -0
  65. package/directives/zoom/package.json +13 -0
  66. package/directives/zoom/taiga-ui-cdk-directives-zoom.d.ts +4 -0
  67. package/directives/zoom/taiga-ui-cdk-directives-zoom.metadata.json +1 -0
  68. package/directives/zoom/zoom.directive.d.ts +5 -0
  69. package/directives/zoom/zoom.module.d.ts +5 -0
  70. package/esm2015/abstract/control.js +7 -5
  71. package/esm2015/abstract/interactive.js +9 -6
  72. package/esm2015/abstract/theme-switcher.js +17 -7
  73. package/esm2015/components/dialog-host/dialog-host.component.js +1 -1
  74. package/esm2015/components/portal-host/portal-host.component.js +1 -1
  75. package/esm2015/directives/autofilled/autofilled.directive.js +11 -31
  76. package/esm2015/directives/index.js +4 -1
  77. package/esm2015/directives/pan/index.js +3 -0
  78. package/esm2015/directives/pan/pan.directive.js +22 -0
  79. package/esm2015/directives/pan/pan.module.js +16 -0
  80. package/esm2015/directives/pan/taiga-ui-cdk-directives-pan.js +5 -0
  81. package/esm2015/directives/swipe/index.js +3 -0
  82. package/esm2015/directives/swipe/swipe.directive.js +22 -0
  83. package/esm2015/directives/swipe/swipe.module.js +16 -0
  84. package/esm2015/directives/swipe/taiga-ui-cdk-directives-swipe.js +5 -0
  85. package/esm2015/directives/zoom/index.js +3 -0
  86. package/esm2015/directives/zoom/taiga-ui-cdk-directives-zoom.js +5 -0
  87. package/esm2015/directives/zoom/zoom.directive.js +25 -0
  88. package/esm2015/directives/zoom/zoom.module.js +16 -0
  89. package/esm2015/interfaces/index.js +1 -1
  90. package/esm2015/interfaces/swipe.js +1 -0
  91. package/esm2015/interfaces/zoom.js +1 -0
  92. package/esm2015/services/hovered.service.js +2 -2
  93. package/esm2015/services/index.js +4 -1
  94. package/esm2015/services/pan.service.js +35 -0
  95. package/esm2015/services/swipe.service.js +52 -0
  96. package/esm2015/services/zoom.service.js +55 -0
  97. package/esm2015/tokens/active-element.js +4 -5
  98. package/esm2015/tokens/index.js +3 -1
  99. package/esm2015/tokens/swipe-options.js +5 -0
  100. package/esm2015/tokens/zoom-options.js +7 -0
  101. package/esm2015/utils/dom/contains-or-after.js +2 -4
  102. package/esm2015/utils/miscellaneous/distance-between-touches.js +4 -0
  103. package/esm2015/utils/miscellaneous/fallback-value.js +2 -1
  104. package/esm2015/utils/miscellaneous/get-swipe-direction.js +9 -0
  105. package/esm2015/utils/miscellaneous/index.js +3 -1
  106. package/esm5/abstract/control.js +7 -5
  107. package/esm5/abstract/interactive.js +9 -6
  108. package/esm5/abstract/theme-switcher.js +15 -5
  109. package/esm5/components/dialog-host/dialog-host.component.js +1 -1
  110. package/esm5/components/portal-host/portal-host.component.js +1 -1
  111. package/esm5/directives/autofilled/autofilled.directive.js +14 -33
  112. package/esm5/directives/index.js +4 -1
  113. package/esm5/directives/pan/index.js +3 -0
  114. package/esm5/directives/pan/pan.directive.js +23 -0
  115. package/esm5/directives/pan/pan.module.js +19 -0
  116. package/esm5/directives/pan/taiga-ui-cdk-directives-pan.js +5 -0
  117. package/esm5/directives/swipe/index.js +3 -0
  118. package/esm5/directives/swipe/swipe.directive.js +23 -0
  119. package/esm5/directives/swipe/swipe.module.js +19 -0
  120. package/esm5/directives/swipe/taiga-ui-cdk-directives-swipe.js +5 -0
  121. package/esm5/directives/zoom/index.js +3 -0
  122. package/esm5/directives/zoom/taiga-ui-cdk-directives-zoom.js +5 -0
  123. package/esm5/directives/zoom/zoom.directive.js +26 -0
  124. package/esm5/directives/zoom/zoom.module.js +19 -0
  125. package/esm5/interfaces/index.js +1 -1
  126. package/esm5/interfaces/swipe.js +1 -0
  127. package/esm5/interfaces/zoom.js +1 -0
  128. package/esm5/services/hovered.service.js +2 -2
  129. package/esm5/services/index.js +4 -1
  130. package/esm5/services/pan.service.js +45 -0
  131. package/esm5/services/swipe.service.js +60 -0
  132. package/esm5/services/zoom.service.js +65 -0
  133. package/esm5/tokens/active-element.js +5 -5
  134. package/esm5/tokens/index.js +3 -1
  135. package/esm5/tokens/swipe-options.js +5 -0
  136. package/esm5/tokens/zoom-options.js +7 -0
  137. package/esm5/utils/dom/contains-or-after.js +2 -4
  138. package/esm5/utils/miscellaneous/distance-between-touches.js +5 -0
  139. package/esm5/utils/miscellaneous/fallback-value.js +2 -1
  140. package/esm5/utils/miscellaneous/get-swipe-direction.js +9 -0
  141. package/esm5/utils/miscellaneous/index.js +3 -1
  142. package/fesm2015/taiga-ui-cdk-abstract.js +27 -14
  143. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  144. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +1 -1
  145. package/fesm2015/taiga-ui-cdk-components-portal-host.js +1 -1
  146. package/fesm2015/taiga-ui-cdk-directives-autofilled.js +10 -30
  147. package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  148. package/fesm2015/taiga-ui-cdk-directives-pan.js +40 -0
  149. package/fesm2015/taiga-ui-cdk-directives-pan.js.map +1 -0
  150. package/fesm2015/taiga-ui-cdk-directives-swipe.js +40 -0
  151. package/fesm2015/taiga-ui-cdk-directives-swipe.js.map +1 -0
  152. package/fesm2015/taiga-ui-cdk-directives-zoom.js +43 -0
  153. package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -0
  154. package/fesm2015/taiga-ui-cdk-directives.js +3 -0
  155. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  156. package/fesm2015/taiga-ui-cdk-services.js +125 -6
  157. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  158. package/fesm2015/taiga-ui-cdk-tokens.js +14 -5
  159. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  160. package/fesm2015/taiga-ui-cdk-utils-dom.js +1 -3
  161. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  162. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +15 -1
  163. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  164. package/fesm5/taiga-ui-cdk-abstract.js +26 -12
  165. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  166. package/fesm5/taiga-ui-cdk-components-dialog-host.js +1 -1
  167. package/fesm5/taiga-ui-cdk-components-portal-host.js +1 -1
  168. package/fesm5/taiga-ui-cdk-directives-autofilled.js +13 -32
  169. package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  170. package/fesm5/taiga-ui-cdk-directives-pan.js +44 -0
  171. package/fesm5/taiga-ui-cdk-directives-pan.js.map +1 -0
  172. package/fesm5/taiga-ui-cdk-directives-swipe.js +44 -0
  173. package/fesm5/taiga-ui-cdk-directives-swipe.js.map +1 -0
  174. package/fesm5/taiga-ui-cdk-directives-zoom.js +47 -0
  175. package/fesm5/taiga-ui-cdk-directives-zoom.js.map +1 -0
  176. package/fesm5/taiga-ui-cdk-directives.js +3 -0
  177. package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
  178. package/fesm5/taiga-ui-cdk-services.js +153 -6
  179. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  180. package/fesm5/taiga-ui-cdk-tokens.js +15 -5
  181. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  182. package/fesm5/taiga-ui-cdk-utils-dom.js +1 -3
  183. package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
  184. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +16 -1
  185. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  186. package/interfaces/index.d.ts +2 -0
  187. package/interfaces/swipe.d.ts +9 -0
  188. package/interfaces/taiga-ui-cdk-interfaces.metadata.json +1 -1
  189. package/interfaces/zoom.d.ts +9 -0
  190. package/package.json +3 -3
  191. package/services/index.d.ts +3 -0
  192. package/services/pan.service.d.ts +8 -0
  193. package/services/swipe.service.d.ts +9 -0
  194. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  195. package/services/zoom.service.d.ts +6 -0
  196. package/tokens/index.d.ts +2 -0
  197. package/tokens/swipe-options.d.ts +3 -0
  198. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  199. package/tokens/zoom-options.d.ts +3 -0
  200. package/utils/miscellaneous/distance-between-touches.d.ts +1 -0
  201. package/utils/miscellaneous/fallback-value.d.ts +1 -0
  202. package/utils/miscellaneous/get-swipe-direction.d.ts +2 -0
  203. package/utils/miscellaneous/index.d.ts +2 -0
  204. package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.metadata.json +1 -1
@@ -0,0 +1,44 @@
1
+ import { __decorate, __param } from 'tslib';
2
+ import { Inject, Directive, NgModule } from '@angular/core';
3
+ import { TuiPanService } from '@taiga-ui/cdk/services';
4
+
5
+ // @dynamic
6
+ var TuiPanDirective = /** @class */ (function () {
7
+ function TuiPanDirective(tuiPan) {
8
+ this.tuiPan = tuiPan;
9
+ }
10
+ TuiPanDirective.ctorParameters = function () { return [
11
+ { type: TuiPanService, decorators: [{ type: Inject, args: [TuiPanService,] }] }
12
+ ]; };
13
+ TuiPanDirective = __decorate([
14
+ Directive({
15
+ selector: '[tuiPan]',
16
+ outputs: ['tuiPan'],
17
+ providers: [TuiPanService],
18
+ }),
19
+ __param(0, Inject(TuiPanService))
20
+ ], TuiPanDirective);
21
+ return TuiPanDirective;
22
+ }());
23
+
24
+ /**
25
+ * @experimental
26
+ */
27
+ var TuiPanModule = /** @class */ (function () {
28
+ function TuiPanModule() {
29
+ }
30
+ TuiPanModule = __decorate([
31
+ NgModule({
32
+ declarations: [TuiPanDirective],
33
+ exports: [TuiPanDirective],
34
+ })
35
+ ], TuiPanModule);
36
+ return TuiPanModule;
37
+ }());
38
+
39
+ /**
40
+ * Generated bundle index. Do not edit.
41
+ */
42
+
43
+ export { TuiPanDirective, TuiPanModule };
44
+ //# sourceMappingURL=taiga-ui-cdk-directives-pan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-cdk-directives-pan.js","sources":["ng://@taiga-ui/cdk/directives/pan/pan.directive.ts","ng://@taiga-ui/cdk/directives/pan/pan.module.ts","ng://@taiga-ui/cdk/directives/pan/taiga-ui-cdk-directives-pan.ts"],"sourcesContent":["import {Directive, Inject} from '@angular/core';\nimport {TuiPanService} from '@taiga-ui/cdk/services';\n\n// @dynamic\n@Directive({\n selector: '[tuiPan]',\n outputs: ['tuiPan'],\n providers: [TuiPanService],\n})\nexport class TuiPanDirective {\n constructor(@Inject(TuiPanService) readonly tuiPan: TuiPanService) {}\n}\n","import {NgModule} from '@angular/core';\nimport {TuiPanDirective} from './pan.directive';\n\n/**\n * @experimental\n */\n@NgModule({\n declarations: [TuiPanDirective],\n exports: [TuiPanDirective],\n})\nexport class TuiPanModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;IAOI,yBAA4C,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;KAAI;;gBAAjB,aAAa,uBAApD,MAAM,SAAC,aAAa;;IADxB,eAAe;QAL3B,SAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B,CAAC;QAEe,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;OADzB,eAAe,CAE3B;IAAD,sBAAC;CAFD;;ACNA;;;;IAOA;KAA4B;IAAf,YAAY;QAJxB,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,eAAe,CAAC;YAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;SAC7B,CAAC;OACW,YAAY,CAAG;IAAD,mBAAC;CAA5B;;ACVA;;;;;;"}
@@ -0,0 +1,44 @@
1
+ import { __decorate, __param } from 'tslib';
2
+ import { Inject, Directive, NgModule } from '@angular/core';
3
+ import { TuiSwipeService } from '@taiga-ui/cdk/services';
4
+
5
+ // @dynamic
6
+ var TuiSwipeDirective = /** @class */ (function () {
7
+ function TuiSwipeDirective(tuiSwipe) {
8
+ this.tuiSwipe = tuiSwipe;
9
+ }
10
+ TuiSwipeDirective.ctorParameters = function () { return [
11
+ { type: TuiSwipeService, decorators: [{ type: Inject, args: [TuiSwipeService,] }] }
12
+ ]; };
13
+ TuiSwipeDirective = __decorate([
14
+ Directive({
15
+ selector: '[tuiSwipe]',
16
+ outputs: ['tuiSwipe'],
17
+ providers: [TuiSwipeService],
18
+ }),
19
+ __param(0, Inject(TuiSwipeService))
20
+ ], TuiSwipeDirective);
21
+ return TuiSwipeDirective;
22
+ }());
23
+
24
+ /**
25
+ * @experimental
26
+ */
27
+ var TuiSwipeModule = /** @class */ (function () {
28
+ function TuiSwipeModule() {
29
+ }
30
+ TuiSwipeModule = __decorate([
31
+ NgModule({
32
+ declarations: [TuiSwipeDirective],
33
+ exports: [TuiSwipeDirective],
34
+ })
35
+ ], TuiSwipeModule);
36
+ return TuiSwipeModule;
37
+ }());
38
+
39
+ /**
40
+ * Generated bundle index. Do not edit.
41
+ */
42
+
43
+ export { TuiSwipeDirective, TuiSwipeModule };
44
+ //# sourceMappingURL=taiga-ui-cdk-directives-swipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-cdk-directives-swipe.js","sources":["ng://@taiga-ui/cdk/directives/swipe/swipe.directive.ts","ng://@taiga-ui/cdk/directives/swipe/swipe.module.ts","ng://@taiga-ui/cdk/directives/swipe/taiga-ui-cdk-directives-swipe.ts"],"sourcesContent":["import {Directive, Inject} from '@angular/core';\nimport {TuiSwipeService} from '@taiga-ui/cdk/services';\n\n// @dynamic\n@Directive({\n selector: '[tuiSwipe]',\n outputs: ['tuiSwipe'],\n providers: [TuiSwipeService],\n})\nexport class TuiSwipeDirective {\n constructor(@Inject(TuiSwipeService) readonly tuiSwipe: TuiSwipeService) {}\n}\n","import {NgModule} from '@angular/core';\nimport {TuiSwipeDirective} from './swipe.directive';\n\n/**\n * @experimental\n */\n@NgModule({\n declarations: [TuiSwipeDirective],\n exports: [TuiSwipeDirective],\n})\nexport class TuiSwipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;IAOI,2BAA8C,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;KAAI;;gBAAnB,eAAe,uBAA1D,MAAM,SAAC,eAAe;;IAD1B,iBAAiB;QAL7B,SAAS,CAAC;YACP,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,CAAC,UAAU,CAAC;YACrB,SAAS,EAAE,CAAC,eAAe,CAAC;SAC/B,CAAC;QAEe,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;OAD3B,iBAAiB,CAE7B;IAAD,wBAAC;CAFD;;ACNA;;;;IAOA;KAA8B;IAAjB,cAAc;QAJ1B,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,iBAAiB,CAAC;YACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;SAC/B,CAAC;OACW,cAAc,CAAG;IAAD,qBAAC;CAA9B;;ACVA;;;;;;"}
@@ -0,0 +1,47 @@
1
+ import { __decorate, __param } from 'tslib';
2
+ import { Inject, Directive, NgModule } from '@angular/core';
3
+ import { TuiZoomService } from '@taiga-ui/cdk/services';
4
+
5
+ // @dynamic
6
+ var TuiZoomDirective = /** @class */ (function () {
7
+ function TuiZoomDirective(tuiZoom) {
8
+ this.tuiZoom = tuiZoom;
9
+ }
10
+ TuiZoomDirective.ctorParameters = function () { return [
11
+ { type: TuiZoomService, decorators: [{ type: Inject, args: [TuiZoomService,] }] }
12
+ ]; };
13
+ TuiZoomDirective = __decorate([
14
+ Directive({
15
+ selector: '[tuiZoom]',
16
+ outputs: ['tuiZoom'],
17
+ providers: [TuiZoomService],
18
+ host: {
19
+ '[style.touch-actions]': '"none"',
20
+ },
21
+ }),
22
+ __param(0, Inject(TuiZoomService))
23
+ ], TuiZoomDirective);
24
+ return TuiZoomDirective;
25
+ }());
26
+
27
+ /**
28
+ * @experimental
29
+ */
30
+ var TuiZoomModule = /** @class */ (function () {
31
+ function TuiZoomModule() {
32
+ }
33
+ TuiZoomModule = __decorate([
34
+ NgModule({
35
+ declarations: [TuiZoomDirective],
36
+ exports: [TuiZoomDirective],
37
+ })
38
+ ], TuiZoomModule);
39
+ return TuiZoomModule;
40
+ }());
41
+
42
+ /**
43
+ * Generated bundle index. Do not edit.
44
+ */
45
+
46
+ export { TuiZoomDirective, TuiZoomModule };
47
+ //# sourceMappingURL=taiga-ui-cdk-directives-zoom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-cdk-directives-zoom.js","sources":["ng://@taiga-ui/cdk/directives/zoom/zoom.directive.ts","ng://@taiga-ui/cdk/directives/zoom/zoom.module.ts","ng://@taiga-ui/cdk/directives/zoom/taiga-ui-cdk-directives-zoom.ts"],"sourcesContent":["import {Directive, Inject} from '@angular/core';\nimport {TuiZoomService} from '@taiga-ui/cdk/services';\n\n// @dynamic\n@Directive({\n selector: '[tuiZoom]',\n outputs: ['tuiZoom'],\n providers: [TuiZoomService],\n host: {\n '[style.touch-actions]': '\"none\"',\n },\n})\nexport class TuiZoomDirective {\n constructor(@Inject(TuiZoomService) readonly tuiZoom: TuiZoomService) {}\n}\n","import {NgModule} from '@angular/core';\nimport {TuiZoomDirective} from './zoom.directive';\n\n/**\n * @experimental\n */\n@NgModule({\n declarations: [TuiZoomDirective],\n exports: [TuiZoomDirective],\n})\nexport class TuiZoomModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;IAUI,0BAA6C,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;KAAI;;gBAAlB,cAAc,uBAAvD,MAAM,SAAC,cAAc;;IADzB,gBAAgB;QAR5B,SAAS,CAAC;YACP,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,CAAC,SAAS,CAAC;YACpB,SAAS,EAAE,CAAC,cAAc,CAAC;YAC3B,IAAI,EAAE;gBACF,uBAAuB,EAAE,QAAQ;aACpC;SACJ,CAAC;QAEe,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;OAD1B,gBAAgB,CAE5B;IAAD,uBAAC;CAFD;;ACTA;;;;IAOA;KAA6B;IAAhB,aAAa;QAJzB,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;OACW,aAAa,CAAG;IAAD,oBAAC;CAA7B;;ACVA;;;;;;"}
@@ -22,6 +22,9 @@ export * from '@taiga-ui/cdk/directives/resize';
22
22
  export * from '@taiga-ui/cdk/directives/prevent-default';
23
23
  export * from '@taiga-ui/cdk/directives/repeat-times';
24
24
  export * from '@taiga-ui/cdk/directives/validator';
25
+ export * from '@taiga-ui/cdk/directives/pan';
26
+ export * from '@taiga-ui/cdk/directives/swipe';
27
+ export * from '@taiga-ui/cdk/directives/zoom';
25
28
 
26
29
  /**
27
30
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives.js","sources":["ng://@taiga-ui/cdk/directives/taiga-ui-cdk-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives.js","sources":["ng://@taiga-ui/cdk/directives/taiga-ui-cdk-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;"}
@@ -2,16 +2,17 @@ import { __extends, __decorate, __param, __spread, __read } from 'tslib';
2
2
  import { Injectable, Inject, Renderer2, ɵɵdefineInjectable, ɵɵinject, ElementRef, ChangeDetectorRef, NgZone, Self } from '@angular/core';
3
3
  import { Subject, Observable, merge, defer, fromEvent, of, timer } from 'rxjs';
4
4
  import { DOCUMENT } from '@angular/common';
5
- import { TUI_DEFAULT_RENDERER } from '@taiga-ui/cdk/tokens';
6
- import { focusVisibleObservable, watch, typedFromEvent, tuiZoneOptimized, tuiZonefree } from '@taiga-ui/cdk/observables';
7
- import { takeUntil, switchMap, filter, take, mapTo, startWith, distinctUntilChanged, delay, throttleTime, map, catchError, debounceTime, tap, shareReplay } from 'rxjs/operators';
5
+ import { TUI_DEFAULT_RENDERER, TUI_SWIPE_OPTIONS, TUI_ZOOM_OPTIONS } from '@taiga-ui/cdk/tokens';
6
+ import { focusVisibleObservable, watch, typedFromEvent, tuiZoneOptimized, tuiZonefree, preventDefault } from '@taiga-ui/cdk/observables';
7
+ import { takeUntil, switchMap, filter, take, mapTo, startWith, distinctUntilChanged, delay, throttleTime, map, catchError, debounceTime, tap, shareReplay, switchMapTo, pairwise, repeat, scan } from 'rxjs/operators';
8
8
  import { getActualTarget, getElementObscurers } from '@taiga-ui/cdk/utils/dom';
9
9
  import { WINDOW, ANIMATION_FRAME, PERFORMANCE } from '@ng-web-apis/common';
10
10
  import { POLLING_TIME, EMPTY_ARRAY } from '@taiga-ui/cdk/constants';
11
11
  import { RESIZE_OBSERVER_SUPPORT, RESIZE_OPTION_BOX, ResizeObserverService } from '@ng-web-apis/resize-observer';
12
12
  import { tuiAssert } from '@taiga-ui/cdk/classes';
13
13
  import { clamp } from '@taiga-ui/cdk/utils/math';
14
- import { easeInOutQuad } from '@taiga-ui/cdk/utils/miscellaneous';
14
+ import { easeInOutQuad, getSwipeDirection, isPresent } from '@taiga-ui/cdk/utils/miscellaneous';
15
+ import { distanceBetweenTouches } from '@taiga-ui/cdk/utils';
15
16
 
16
17
  /**
17
18
  * Observable abstraction over ngOnDestroy to use with takeUntil
@@ -96,7 +97,7 @@ var TuiFocusVisibleService = /** @class */ (function (_super) {
96
97
  var TuiHoveredService = /** @class */ (function () {
97
98
  function TuiHoveredService(documentRef, ngZone) {
98
99
  this.ngZone = ngZone;
99
- this.documentEvents$ = merge(typedFromEvent(documentRef, 'mousemove'), typedFromEvent(documentRef, 'touchend'));
100
+ this.documentEvents$ = merge(typedFromEvent(documentRef, 'mousemove'), typedFromEvent(documentRef, 'touchstart', { capture: true }));
100
101
  }
101
102
  TuiHoveredService.prototype.createHovered$ = function (target, options) {
102
103
  var _this = this;
@@ -335,9 +336,155 @@ var TuiStaticRequestService = /** @class */ (function () {
335
336
  return TuiStaticRequestService;
336
337
  }());
337
338
 
339
+ /**
340
+ * @dynamic
341
+ */
342
+ var TuiPanService = /** @class */ (function (_super) {
343
+ __extends(TuiPanService, _super);
344
+ function TuiPanService(_a, documentRef) {
345
+ var nativeElement = _a.nativeElement;
346
+ return _super.call(this, function (subscriber) {
347
+ merge(typedFromEvent(nativeElement, 'touchstart', { passive: true }), typedFromEvent(nativeElement, 'mousedown'))
348
+ .pipe(switchMapTo(merge(typedFromEvent(nativeElement, 'touchmove', {
349
+ passive: true,
350
+ }).pipe(filter(function (_a) {
351
+ var touches = _a.touches;
352
+ return touches.length < 2;
353
+ }), map(function (_a) {
354
+ var touches = _a.touches;
355
+ return touches[0];
356
+ })), typedFromEvent(nativeElement, 'mousemove'))), pairwise(), map(function (_a) {
357
+ var _b = __read(_a, 2), first = _b[0], second = _b[1];
358
+ var deltaX = second.clientX - first.clientX;
359
+ var deltaY = second.clientY - first.clientY;
360
+ return [deltaX, deltaY];
361
+ }), takeUntil(merge(typedFromEvent(documentRef, 'touchend'), typedFromEvent(documentRef, 'mouseup'))), repeat())
362
+ .subscribe(subscriber);
363
+ }) || this;
364
+ }
365
+ TuiPanService.ctorParameters = function () { return [
366
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
367
+ { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
368
+ ]; };
369
+ TuiPanService = __decorate([
370
+ Injectable(),
371
+ __param(0, Inject(ElementRef)),
372
+ __param(1, Inject(DOCUMENT))
373
+ ], TuiPanService);
374
+ return TuiPanService;
375
+ }(Observable));
376
+
377
+ /**
378
+ * @dynamic
379
+ */
380
+ var TuiSwipeService = /** @class */ (function (_super) {
381
+ __extends(TuiSwipeService, _super);
382
+ function TuiSwipeService(_a, _b, documentRef) {
383
+ var nativeElement = _a.nativeElement;
384
+ var timeout = _b.timeout, threshold = _b.threshold;
385
+ return _super.call(this, function (subscriber) {
386
+ merge(typedFromEvent(nativeElement, 'touchstart', { passive: true }), typedFromEvent(documentRef, 'touchend'))
387
+ .pipe(pairwise(), filter(function (_a) {
388
+ var _b = __read(_a, 2), first = _b[0], second = _b[1];
389
+ return !!first.touches.length &&
390
+ first.touches[0].identifier ===
391
+ second.changedTouches[0].identifier;
392
+ }), map(function (_a) {
393
+ var _b = __read(_a, 2), start = _b[0], end = _b[1];
394
+ var startX = start.touches[0].clientX;
395
+ var startY = start.touches[0].clientY;
396
+ var endX = end.changedTouches[0].clientX;
397
+ var endY = end.changedTouches[0].clientY;
398
+ var distanceX = startX - endX;
399
+ var distanceY = startY - endY;
400
+ var duration = end.timeStamp - start.timeStamp;
401
+ if ((Math.abs(distanceX) > threshold ||
402
+ Math.abs(distanceY) > threshold) &&
403
+ duration < timeout) {
404
+ return {
405
+ direction: getSwipeDirection(distanceX, distanceY),
406
+ events: [start, end],
407
+ };
408
+ }
409
+ return null;
410
+ }), filter(isPresent))
411
+ .subscribe(subscriber);
412
+ }) || this;
413
+ }
414
+ TuiSwipeService.ctorParameters = function () { return [
415
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
416
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_SWIPE_OPTIONS,] }] },
417
+ { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
418
+ ]; };
419
+ TuiSwipeService = __decorate([
420
+ Injectable(),
421
+ __param(0, Inject(ElementRef)),
422
+ __param(1, Inject(TUI_SWIPE_OPTIONS)),
423
+ __param(2, Inject(DOCUMENT))
424
+ ], TuiSwipeService);
425
+ return TuiSwipeService;
426
+ }(Observable));
427
+
428
+ var TOUCH_SENSITIVITY = 0.01;
429
+ // @dynamic
430
+ var TuiZoomService = /** @class */ (function (_super) {
431
+ __extends(TuiZoomService, _super);
432
+ function TuiZoomService(_a, _b) {
433
+ var nativeElement = _a.nativeElement;
434
+ var wheelSensitivity = _b.wheelSensitivity;
435
+ return _super.call(this, function (subscriber) {
436
+ merge(typedFromEvent(nativeElement, 'touchstart', { passive: true }).pipe(filter(function (_a) {
437
+ var touches = _a.touches;
438
+ return touches.length > 1;
439
+ }), switchMap(function (startEvent) {
440
+ return typedFromEvent(nativeElement, 'touchmove', {
441
+ passive: true,
442
+ }).pipe(takeUntil(typedFromEvent(nativeElement, 'touchend')), scan(function (prev, event) {
443
+ var distance = distanceBetweenTouches(event);
444
+ return {
445
+ event: event,
446
+ distance: distance,
447
+ delta: (distance - prev.distance) *
448
+ TOUCH_SENSITIVITY,
449
+ };
450
+ }, {
451
+ event: startEvent,
452
+ distance: distanceBetweenTouches(startEvent),
453
+ delta: 0,
454
+ }), map(function (_a) {
455
+ var event = _a.event, delta = _a.delta;
456
+ event.preventDefault();
457
+ var clientX = (event.touches[0].clientX +
458
+ event.touches[1].clientX) /
459
+ 2;
460
+ var clientY = (event.touches[0].clientY +
461
+ event.touches[1].clientY) /
462
+ 2;
463
+ return { clientX: clientX, clientY: clientY, delta: delta, event: event };
464
+ }));
465
+ })), typedFromEvent(nativeElement, 'wheel', { passive: false }).pipe(preventDefault(), map(function (wheel) { return ({
466
+ clientX: wheel.clientX,
467
+ clientY: wheel.clientY,
468
+ delta: -wheel.deltaY * wheelSensitivity,
469
+ event: wheel,
470
+ }); }))).subscribe(subscriber);
471
+ }) || this;
472
+ }
473
+ TuiZoomService.ctorParameters = function () { return [
474
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
475
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ZOOM_OPTIONS,] }] }
476
+ ]; };
477
+ TuiZoomService = __decorate([
478
+ Injectable(),
479
+ __param(0, Inject(ElementRef)),
480
+ __param(1, Inject(TUI_ZOOM_OPTIONS))
481
+ ], TuiZoomService);
482
+ return TuiZoomService;
483
+ }(Observable));
484
+
338
485
  /**
339
486
  * Generated bundle index. Do not edit.
340
487
  */
341
488
 
342
- export { TuiDestroyService, TuiDirectiveStylesService, TuiFocusVisibleService, TuiHoveredService, TuiIdService, TuiObscuredService, TuiParentsScrollService, TuiResizeService, TuiScrollService, TuiStaticRequestService };
489
+ export { TuiDestroyService, TuiDirectiveStylesService, TuiFocusVisibleService, TuiHoveredService, TuiIdService, TuiObscuredService, TuiPanService, TuiParentsScrollService, TuiResizeService, TuiScrollService, TuiStaticRequestService, TuiSwipeService, TuiZoomService };
343
490
  //# sourceMappingURL=taiga-ui-cdk-services.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-services.js","sources":["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/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/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends Subject<void> implements OnDestroy {\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} 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 constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\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';\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, 'touchend'),\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) {nativeElement}: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n const eventTargets: Array<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';\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 | ReadonlyArray<Element>> {\n private obscured$: Observable<null | ReadonlyArray<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 {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';\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 takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\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 takeUntil(timer(duration)),\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 );\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 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 xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-services.js","sources":["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/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/pan.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts","ng://@taiga-ui/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends Subject<void> implements OnDestroy {\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} 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 constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\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';\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) {nativeElement}: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n const eventTargets: Array<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';\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 | ReadonlyArray<Element>> {\n private obscured$: Observable<null | ReadonlyArray<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 {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';\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 takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\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 takeUntil(timer(duration)),\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 );\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 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 xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\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 {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(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(nativeElement, '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 takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\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 takeUntil(typedFromEvent(nativeElement, 'touchend')),\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 event.preventDefault();\n\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 ),\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -55,10 +55,10 @@ var TUI_ACTIVE_ELEMENT = new InjectionToken('Active element on the document for
55
55
  });
56
56
  // Checks if focusout event should be considered leaving active zone
57
57
  function isValidFocusout(target, removedElement) {
58
- var _a;
58
+ if (removedElement === void 0) { removedElement = null; }
59
59
  return (
60
60
  // Not due to switching tabs/going to DevTools
61
- ((_a = target.ownerDocument) === null || _a === void 0 ? void 0 : _a.activeElement) !== target &&
61
+ getDocumentOrShadowRoot(target).activeElement !== target &&
62
62
  // Not due to button/input becoming disabled
63
63
  !target.disabled &&
64
64
  // Not due to element being removed from DOM
@@ -69,8 +69,8 @@ function shadowRootActiveElement(root) {
69
69
  var target = _a.target;
70
70
  return target;
71
71
  })), typedFromEvent(root, 'focusout').pipe(filter(function (_a) {
72
- var target = _a.target;
73
- return isValidFocusout(target, null);
72
+ var target = _a.target, relatedTarget = _a.relatedTarget;
73
+ return !!relatedTarget && isValidFocusout(target);
74
74
  }), map(function (_a) {
75
75
  var relatedTarget = _a.relatedTarget;
76
76
  return relatedTarget;
@@ -133,9 +133,19 @@ var TUI_WINDOW_HEIGHT = new InjectionToken('Window height accounting for disappe
133
133
  },
134
134
  });
135
135
 
136
+ var TUI_SWIPE_OPTIONS = new InjectionToken('Swipe options', {
137
+ factory: function () { return ({ timeout: 500, threshold: 30 }); },
138
+ });
139
+
140
+ var TUI_ZOOM_OPTIONS = new InjectionToken('Zoom options', {
141
+ factory: function () { return ({
142
+ wheelSensitivity: 0.01,
143
+ }); },
144
+ });
145
+
136
146
  /**
137
147
  * Generated bundle index. Do not edit.
138
148
  */
139
149
 
140
- export { TUI_ACTIVE_ELEMENT, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_ANDROID, TUI_IS_CYPRESS, TUI_IS_IOS, TUI_IS_MOBILE, TUI_REMOVED_ELEMENT, TUI_SANITIZER, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_WINDOW_HEIGHT };
150
+ export { TUI_ACTIVE_ELEMENT, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_ANDROID, TUI_IS_CYPRESS, TUI_IS_IOS, TUI_IS_MOBILE, TUI_REMOVED_ELEMENT, TUI_SANITIZER, TUI_SWIPE_OPTIONS, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_WINDOW_HEIGHT, TUI_ZOOM_OPTIONS };
141
151
  //# sourceMappingURL=taiga-ui-cdk-tokens.js.map