@taiga-ui/addon-mobile 2.61.0 → 3.0.0-rc.2

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 (509) hide show
  1. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar-dialog.umd.js +69 -283
  2. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar-dialog.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js +534 -406
  4. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js.map +1 -1
  5. package/bundles/taiga-ui-addon-mobile-components-mobile-dialog.umd.js +402 -293
  6. package/bundles/taiga-ui-addon-mobile-components-mobile-dialog.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js +450 -337
  8. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js.map +1 -1
  9. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js +875 -698
  10. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-mobile-components-theme-android.umd.js +374 -266
  12. package/bundles/taiga-ui-addon-mobile-components-theme-android.umd.js.map +1 -1
  13. package/bundles/taiga-ui-addon-mobile-components-theme-ios.umd.js +374 -266
  14. package/bundles/taiga-ui-addon-mobile-components-theme-ios.umd.js.map +1 -1
  15. package/bundles/taiga-ui-addon-mobile-components.umd.js +17 -31
  16. package/bundles/taiga-ui-addon-mobile-components.umd.js.map +1 -1
  17. package/bundles/taiga-ui-addon-mobile-const.umd.js +9 -254
  18. package/bundles/taiga-ui-addon-mobile-const.umd.js.map +1 -1
  19. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js +419 -308
  20. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js.map +1 -1
  21. package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.js +118 -325
  22. package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.js.map +1 -1
  23. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js +121 -338
  24. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js.map +1 -1
  25. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.js +434 -319
  26. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.js.map +1 -1
  27. package/bundles/taiga-ui-addon-mobile-directives-touchable.umd.js +403 -287
  28. package/bundles/taiga-ui-addon-mobile-directives-touchable.umd.js.map +1 -1
  29. package/bundles/taiga-ui-addon-mobile-directives.umd.js +13 -23
  30. package/bundles/taiga-ui-addon-mobile-directives.umd.js.map +1 -1
  31. package/bundles/taiga-ui-addon-mobile-interfaces.umd.js +2 -2
  32. package/bundles/taiga-ui-addon-mobile-interfaces.umd.js.map +1 -1
  33. package/bundles/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.umd.js +405 -283
  34. package/bundles/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.umd.js.map +1 -1
  35. package/bundles/taiga-ui-addon-mobile-internal.umd.js +5 -7
  36. package/bundles/taiga-ui-addon-mobile-internal.umd.js.map +1 -1
  37. package/bundles/taiga-ui-addon-mobile-tokens.umd.js +7 -3
  38. package/bundles/taiga-ui-addon-mobile-tokens.umd.js.map +1 -1
  39. package/bundles/taiga-ui-addon-mobile-types.umd.js +2 -2
  40. package/bundles/taiga-ui-addon-mobile-types.umd.js.map +1 -1
  41. package/bundles/taiga-ui-addon-mobile-utils.umd.js +8 -10
  42. package/bundles/taiga-ui-addon-mobile-utils.umd.js.map +1 -1
  43. package/bundles/taiga-ui-addon-mobile.umd.js +24 -30
  44. package/bundles/taiga-ui-addon-mobile.umd.js.map +1 -1
  45. package/components/mobile-calendar/mobile-calendar.component.d.ts +21 -2
  46. package/components/mobile-calendar/mobile-calendar.module.d.ts +12 -0
  47. package/components/mobile-calendar/mobile-calendar.providers.d.ts +1 -2
  48. package/components/mobile-calendar/package.json +2 -5
  49. package/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.d.ts +1 -0
  50. package/components/mobile-calendar-dialog/mobile-calendar-dialog.component.d.ts +3 -0
  51. package/components/mobile-calendar-dialog/mobile-calendar-dialog.module.d.ts +6 -2
  52. package/components/mobile-calendar-dialog/package.json +2 -5
  53. package/components/mobile-calendar-dialog/taiga-ui-addon-mobile-components-mobile-calendar-dialog.d.ts +1 -0
  54. package/components/mobile-dialog/mobile-dialog.component.d.ts +3 -0
  55. package/components/mobile-dialog/mobile-dialog.module.d.ts +9 -0
  56. package/components/mobile-dialog/mobile-dialog.service.d.ts +4 -1
  57. package/components/mobile-dialog/package.json +2 -5
  58. package/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.d.ts +1 -0
  59. package/components/package.json +2 -5
  60. package/components/pull-to-refresh/loader-android/loader-android.component.d.ts +3 -0
  61. package/components/pull-to-refresh/loader-ios/loader-ios.component.d.ts +3 -0
  62. package/components/pull-to-refresh/package.json +2 -5
  63. package/components/pull-to-refresh/pull-to-refresh.component.d.ts +3 -0
  64. package/components/pull-to-refresh/pull-to-refresh.module.d.ts +10 -0
  65. package/components/pull-to-refresh/pull-to-refresh.providers.d.ts +1 -2
  66. package/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.d.ts +1 -0
  67. package/components/sheet/components/sheet/sheet.component.d.ts +5 -2
  68. package/components/sheet/components/sheet/sheet.providers.d.ts +1 -8
  69. package/components/sheet/components/sheet-bar/sheet-bar.component.d.ts +5 -2
  70. package/components/sheet/components/sheet-heading/sheet-heading.component.d.ts +3 -0
  71. package/components/sheet/components/sheets-host/sheets-host.component.d.ts +3 -0
  72. package/components/sheet/directives/sheet-close/sheet-close.directive.d.ts +3 -0
  73. package/components/sheet/directives/sheet-stop/sheet-stop.directive.d.ts +3 -0
  74. package/components/sheet/directives/sheet-top/sheet-top.directive.d.ts +5 -2
  75. package/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.d.ts +3 -0
  76. package/components/sheet/package.json +2 -5
  77. package/components/sheet/sheet-options.d.ts +1 -1
  78. package/components/sheet/sheet-tokens.d.ts +5 -0
  79. package/components/sheet/sheet.d.ts +4 -0
  80. package/components/sheet/sheet.directive.d.ts +3 -0
  81. package/components/sheet/sheet.module.d.ts +17 -0
  82. package/components/sheet/sheet.service.d.ts +3 -0
  83. package/components/sheet/taiga-ui-addon-mobile-components-sheet.d.ts +1 -0
  84. package/components/taiga-ui-addon-mobile-components.d.ts +1 -0
  85. package/components/theme-android/package.json +2 -5
  86. package/components/theme-android/taiga-ui-addon-mobile-components-theme-android.d.ts +1 -0
  87. package/components/theme-android/theme-android.component.d.ts +3 -0
  88. package/components/theme-android/theme-android.module.d.ts +5 -0
  89. package/components/theme-ios/package.json +2 -5
  90. package/components/theme-ios/taiga-ui-addon-mobile-components-theme-ios.d.ts +1 -0
  91. package/components/theme-ios/theme-ios.component.d.ts +3 -0
  92. package/components/theme-ios/theme-ios.module.d.ts +5 -0
  93. package/const/package.json +2 -5
  94. package/const/taiga-ui-addon-mobile-const.d.ts +1 -0
  95. package/directives/elastic-sticky/elastic-sticky.directive.d.ts +3 -0
  96. package/directives/elastic-sticky/elastic-sticky.module.d.ts +5 -0
  97. package/directives/elastic-sticky/elastic-sticky.service.d.ts +3 -0
  98. package/directives/elastic-sticky/package.json +2 -5
  99. package/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.d.ts +1 -0
  100. package/directives/mobile-tabs/mobile-tabs.component.d.ts +3 -0
  101. package/directives/mobile-tabs/mobile-tabs.directive.d.ts +3 -0
  102. package/directives/mobile-tabs/mobile-tabs.module.d.ts +6 -0
  103. package/directives/mobile-tabs/package.json +2 -5
  104. package/directives/mobile-tabs/taiga-ui-addon-mobile-directives-mobile-tabs.d.ts +1 -0
  105. package/directives/package.json +2 -5
  106. package/directives/ripple/package.json +2 -5
  107. package/directives/ripple/ripple-styles.component.d.ts +3 -0
  108. package/directives/ripple/ripple.directive.d.ts +3 -0
  109. package/directives/ripple/ripple.module.d.ts +6 -0
  110. package/directives/ripple/ripple.providers.d.ts +1 -3
  111. package/directives/ripple/taiga-ui-addon-mobile-directives-ripple.d.ts +1 -1
  112. package/directives/sidebar/package.json +2 -5
  113. package/directives/sidebar/sidebar.component.d.ts +3 -0
  114. package/directives/sidebar/sidebar.directive.d.ts +7 -4
  115. package/directives/sidebar/sidebar.module.d.ts +8 -0
  116. package/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.d.ts +1 -0
  117. package/directives/taiga-ui-addon-mobile-directives.d.ts +1 -0
  118. package/directives/touchable/package.json +2 -5
  119. package/directives/touchable/taiga-ui-addon-mobile-directives-touchable.d.ts +1 -0
  120. package/directives/touchable/touchable.directive.d.ts +6 -3
  121. package/directives/touchable/touchable.module.d.ts +5 -0
  122. package/esm2015/components/index.js +1 -1
  123. package/esm2015/components/mobile-calendar/index.js +1 -1
  124. package/esm2015/components/mobile-calendar/mobile-calendar.component.js +78 -59
  125. package/esm2015/components/mobile-calendar/mobile-calendar.const.js +1 -1
  126. package/esm2015/components/mobile-calendar/mobile-calendar.module.js +34 -13
  127. package/esm2015/components/mobile-calendar/mobile-calendar.providers.js +7 -9
  128. package/esm2015/components/mobile-calendar/mobile-calendar.strategy.js +1 -1
  129. package/esm2015/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.js +1 -1
  130. package/esm2015/components/mobile-calendar-dialog/index.js +1 -1
  131. package/esm2015/components/mobile-calendar-dialog/mobile-calendar-dialog.component.js +19 -17
  132. package/esm2015/components/mobile-calendar-dialog/mobile-calendar-dialog.module.js +27 -21
  133. package/esm2015/components/mobile-calendar-dialog/taiga-ui-addon-mobile-components-mobile-calendar-dialog.js +1 -1
  134. package/esm2015/components/mobile-dialog/index.js +2 -1
  135. package/esm2015/components/mobile-dialog/mobile-dialog-options.js +2 -1
  136. package/esm2015/components/mobile-dialog/mobile-dialog.component.js +28 -23
  137. package/esm2015/components/mobile-dialog/mobile-dialog.module.js +17 -21
  138. package/esm2015/components/mobile-dialog/mobile-dialog.service.js +11 -12
  139. package/esm2015/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.js +1 -1
  140. package/esm2015/components/pull-to-refresh/index.js +1 -1
  141. package/esm2015/components/pull-to-refresh/loader-android/loader-android.component.js +21 -19
  142. package/esm2015/components/pull-to-refresh/loader-ios/loader-ios.component.js +19 -16
  143. package/esm2015/components/pull-to-refresh/pull-to-refresh.component.js +31 -24
  144. package/esm2015/components/pull-to-refresh/pull-to-refresh.module.js +21 -16
  145. package/esm2015/components/pull-to-refresh/pull-to-refresh.providers.js +15 -14
  146. package/esm2015/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.js +1 -1
  147. package/esm2015/components/sheet/components/sheet/sheet.component.js +66 -57
  148. package/esm2015/components/sheet/components/sheet/sheet.providers.js +17 -21
  149. package/esm2015/components/sheet/components/sheet-bar/sheet-bar.component.js +31 -28
  150. package/esm2015/components/sheet/components/sheet-heading/sheet-heading.component.js +29 -23
  151. package/esm2015/components/sheet/components/sheets-host/sheets-host.component.js +33 -24
  152. package/esm2015/components/sheet/directives/sheet-close/sheet-close.directive.js +38 -32
  153. package/esm2015/components/sheet/directives/sheet-stop/sheet-stop.directive.js +30 -25
  154. package/esm2015/components/sheet/directives/sheet-top/sheet-top.directive.js +38 -34
  155. package/esm2015/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.js +40 -39
  156. package/esm2015/components/sheet/index.js +2 -1
  157. package/esm2015/components/sheet/ios.hacks.js +7 -7
  158. package/esm2015/components/sheet/sheet-options.js +3 -4
  159. package/esm2015/components/sheet/sheet-tokens.js +5 -0
  160. package/esm2015/components/sheet/sheet.directive.js +30 -23
  161. package/esm2015/components/sheet/sheet.js +2 -1
  162. package/esm2015/components/sheet/sheet.module.js +55 -29
  163. package/esm2015/components/sheet/sheet.service.js +14 -16
  164. package/esm2015/components/sheet/taiga-ui-addon-mobile-components-sheet.js +1 -1
  165. package/esm2015/components/taiga-ui-addon-mobile-components.js +1 -1
  166. package/esm2015/components/theme-android/index.js +1 -1
  167. package/esm2015/components/theme-android/taiga-ui-addon-mobile-components-theme-android.js +1 -1
  168. package/esm2015/components/theme-android/theme-android.component.js +16 -15
  169. package/esm2015/components/theme-android/theme-android.module.js +14 -11
  170. package/esm2015/components/theme-ios/index.js +1 -1
  171. package/esm2015/components/theme-ios/taiga-ui-addon-mobile-components-theme-ios.js +1 -1
  172. package/esm2015/components/theme-ios/theme-ios.component.js +16 -15
  173. package/esm2015/components/theme-ios/theme-ios.module.js +14 -11
  174. package/esm2015/const/index.js +1 -1
  175. package/esm2015/const/mobile-alert-options.js +1 -1
  176. package/esm2015/const/taiga-ui-addon-mobile-const.js +1 -1
  177. package/esm2015/directives/elastic-sticky/elastic-sticky.directive.js +20 -19
  178. package/esm2015/directives/elastic-sticky/elastic-sticky.module.js +14 -11
  179. package/esm2015/directives/elastic-sticky/elastic-sticky.service.js +32 -29
  180. package/esm2015/directives/elastic-sticky/index.js +1 -1
  181. package/esm2015/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.js +1 -1
  182. package/esm2015/directives/index.js +1 -1
  183. package/esm2015/directives/mobile-tabs/index.js +1 -1
  184. package/esm2015/directives/mobile-tabs/mobile-tabs.component.js +14 -12
  185. package/esm2015/directives/mobile-tabs/mobile-tabs.directive.js +36 -28
  186. package/esm2015/directives/mobile-tabs/mobile-tabs.module.js +15 -12
  187. package/esm2015/directives/mobile-tabs/taiga-ui-addon-mobile-directives-mobile-tabs.js +1 -1
  188. package/esm2015/directives/ripple/index.js +1 -1
  189. package/esm2015/directives/ripple/ripple-styles.component.js +14 -12
  190. package/esm2015/directives/ripple/ripple.directive.js +40 -33
  191. package/esm2015/directives/ripple/ripple.module.js +15 -12
  192. package/esm2015/directives/ripple/ripple.providers.js +29 -33
  193. package/esm2015/directives/ripple/taiga-ui-addon-mobile-directives-ripple.js +1 -2
  194. package/esm2015/directives/sidebar/index.js +1 -1
  195. package/esm2015/directives/sidebar/sidebar.component.js +31 -27
  196. package/esm2015/directives/sidebar/sidebar.directive.js +39 -38
  197. package/esm2015/directives/sidebar/sidebar.module.js +16 -13
  198. package/esm2015/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.js +1 -1
  199. package/esm2015/directives/taiga-ui-addon-mobile-directives.js +1 -1
  200. package/esm2015/directives/touchable/index.js +1 -1
  201. package/esm2015/directives/touchable/taiga-ui-addon-mobile-directives-touchable.js +1 -1
  202. package/esm2015/directives/touchable/touchable.directive.js +39 -29
  203. package/esm2015/directives/touchable/touchable.module.js +14 -11
  204. package/esm2015/index.js +3 -2
  205. package/esm2015/interfaces/index.js +2 -1
  206. package/esm2015/interfaces/mobile-alert-data.js +2 -1
  207. package/esm2015/interfaces/taiga-ui-addon-mobile-interfaces.js +2 -1
  208. package/esm2015/internal/index.js +1 -1
  209. package/esm2015/internal/primitive-calendar-mobile/index.js +1 -1
  210. package/esm2015/internal/primitive-calendar-mobile/primitive-calendar-mobile.component.js +28 -24
  211. package/esm2015/internal/primitive-calendar-mobile/primitive-calendar-mobile.module.js +24 -13
  212. package/esm2015/internal/primitive-calendar-mobile/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.js +1 -1
  213. package/esm2015/internal/taiga-ui-addon-mobile-internal.js +1 -1
  214. package/esm2015/taiga-ui-addon-mobile.js +1 -1
  215. package/esm2015/tokens/index.js +1 -1
  216. package/esm2015/tokens/loaded.js +1 -1
  217. package/esm2015/tokens/taiga-ui-addon-mobile-tokens.js +1 -1
  218. package/esm2015/types/index.js +2 -1
  219. package/esm2015/types/taiga-ui-addon-mobile-types.js +2 -1
  220. package/esm2015/types/touch-mode.js +2 -1
  221. package/esm2015/utils/find-touch-index.js +2 -7
  222. package/esm2015/utils/index.js +1 -1
  223. package/esm2015/utils/taiga-ui-addon-mobile-utils.js +1 -1
  224. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar-dialog.js +45 -35
  225. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar-dialog.js.map +1 -1
  226. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js +117 -77
  227. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
  228. package/fesm2015/taiga-ui-addon-mobile-components-mobile-dialog.js +54 -50
  229. package/fesm2015/taiga-ui-addon-mobile-components-mobile-dialog.js.map +1 -1
  230. package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js +97 -80
  231. package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js.map +1 -1
  232. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js +437 -370
  233. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
  234. package/fesm2015/taiga-ui-addon-mobile-components-theme-android.js +27 -21
  235. package/fesm2015/taiga-ui-addon-mobile-components-theme-android.js.map +1 -1
  236. package/fesm2015/taiga-ui-addon-mobile-components-theme-ios.js +27 -21
  237. package/fesm2015/taiga-ui-addon-mobile-components-theme-ios.js.map +1 -1
  238. package/fesm2015/taiga-ui-addon-mobile-components.js.map +1 -1
  239. package/fesm2015/taiga-ui-addon-mobile-const.js.map +1 -1
  240. package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js +61 -52
  241. package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +1 -1
  242. package/fesm2015/taiga-ui-addon-mobile-directives-mobile-tabs.js +61 -45
  243. package/fesm2015/taiga-ui-addon-mobile-directives-mobile-tabs.js.map +1 -1
  244. package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js +93 -82
  245. package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
  246. package/fesm2015/taiga-ui-addon-mobile-directives-sidebar.js +79 -70
  247. package/fesm2015/taiga-ui-addon-mobile-directives-sidebar.js.map +1 -1
  248. package/fesm2015/taiga-ui-addon-mobile-directives-touchable.js +51 -36
  249. package/fesm2015/taiga-ui-addon-mobile-directives-touchable.js.map +1 -1
  250. package/fesm2015/taiga-ui-addon-mobile-directives.js.map +1 -1
  251. package/fesm2015/taiga-ui-addon-mobile-interfaces.js.map +1 -1
  252. package/fesm2015/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.js +50 -33
  253. package/fesm2015/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.js.map +1 -1
  254. package/fesm2015/taiga-ui-addon-mobile-internal.js.map +1 -1
  255. package/fesm2015/taiga-ui-addon-mobile-tokens.js.map +1 -1
  256. package/fesm2015/taiga-ui-addon-mobile-types.js.map +1 -1
  257. package/fesm2015/taiga-ui-addon-mobile-utils.js +2 -7
  258. package/fesm2015/taiga-ui-addon-mobile-utils.js.map +1 -1
  259. package/fesm2015/taiga-ui-addon-mobile.js +2 -1
  260. package/fesm2015/taiga-ui-addon-mobile.js.map +1 -1
  261. package/index.d.ts +0 -1
  262. package/interfaces/package.json +2 -5
  263. package/interfaces/taiga-ui-addon-mobile-interfaces.d.ts +1 -0
  264. package/internal/package.json +2 -5
  265. package/internal/primitive-calendar-mobile/package.json +2 -5
  266. package/internal/primitive-calendar-mobile/primitive-calendar-mobile.component.d.ts +3 -1
  267. package/internal/primitive-calendar-mobile/primitive-calendar-mobile.module.d.ts +8 -0
  268. package/internal/primitive-calendar-mobile/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.d.ts +1 -0
  269. package/internal/taiga-ui-addon-mobile-internal.d.ts +1 -0
  270. package/package.json +12 -15
  271. package/taiga-ui-addon-mobile.d.ts +1 -0
  272. package/tokens/package.json +2 -5
  273. package/tokens/taiga-ui-addon-mobile-tokens.d.ts +1 -0
  274. package/types/package.json +2 -5
  275. package/types/taiga-ui-addon-mobile-types.d.ts +1 -0
  276. package/types/touch-mode.d.ts +1 -1
  277. package/utils/find-touch-index.d.ts +1 -5
  278. package/utils/package.json +2 -5
  279. package/utils/taiga-ui-addon-mobile-utils.d.ts +1 -0
  280. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar-dialog.umd.min.js +0 -2
  281. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar-dialog.umd.min.js.map +0 -1
  282. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.min.js +0 -2
  283. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.min.js.map +0 -1
  284. package/bundles/taiga-ui-addon-mobile-components-mobile-dialog.umd.min.js +0 -2
  285. package/bundles/taiga-ui-addon-mobile-components-mobile-dialog.umd.min.js.map +0 -1
  286. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.min.js +0 -2
  287. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.min.js.map +0 -1
  288. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js +0 -2
  289. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js.map +0 -1
  290. package/bundles/taiga-ui-addon-mobile-components-theme-android.umd.min.js +0 -2
  291. package/bundles/taiga-ui-addon-mobile-components-theme-android.umd.min.js.map +0 -1
  292. package/bundles/taiga-ui-addon-mobile-components-theme-ios.umd.min.js +0 -2
  293. package/bundles/taiga-ui-addon-mobile-components-theme-ios.umd.min.js.map +0 -1
  294. package/bundles/taiga-ui-addon-mobile-components.umd.min.js +0 -2
  295. package/bundles/taiga-ui-addon-mobile-components.umd.min.js.map +0 -1
  296. package/bundles/taiga-ui-addon-mobile-const.umd.min.js +0 -2
  297. package/bundles/taiga-ui-addon-mobile-const.umd.min.js.map +0 -1
  298. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.min.js +0 -2
  299. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.min.js.map +0 -1
  300. package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.min.js +0 -2
  301. package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.min.js.map +0 -1
  302. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.min.js +0 -2
  303. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.min.js.map +0 -1
  304. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.min.js +0 -2
  305. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.min.js.map +0 -1
  306. package/bundles/taiga-ui-addon-mobile-directives-touchable.umd.min.js +0 -2
  307. package/bundles/taiga-ui-addon-mobile-directives-touchable.umd.min.js.map +0 -1
  308. package/bundles/taiga-ui-addon-mobile-directives.umd.min.js +0 -2
  309. package/bundles/taiga-ui-addon-mobile-directives.umd.min.js.map +0 -1
  310. package/bundles/taiga-ui-addon-mobile-enums.umd.js +0 -20
  311. package/bundles/taiga-ui-addon-mobile-enums.umd.js.map +0 -1
  312. package/bundles/taiga-ui-addon-mobile-enums.umd.min.js +0 -2
  313. package/bundles/taiga-ui-addon-mobile-enums.umd.min.js.map +0 -1
  314. package/bundles/taiga-ui-addon-mobile-interfaces.umd.min.js +0 -2
  315. package/bundles/taiga-ui-addon-mobile-interfaces.umd.min.js.map +0 -1
  316. package/bundles/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.umd.min.js +0 -2
  317. package/bundles/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.umd.min.js.map +0 -1
  318. package/bundles/taiga-ui-addon-mobile-internal.umd.min.js +0 -2
  319. package/bundles/taiga-ui-addon-mobile-internal.umd.min.js.map +0 -1
  320. package/bundles/taiga-ui-addon-mobile-tokens.umd.min.js +0 -2
  321. package/bundles/taiga-ui-addon-mobile-tokens.umd.min.js.map +0 -1
  322. package/bundles/taiga-ui-addon-mobile-types.umd.min.js +0 -2
  323. package/bundles/taiga-ui-addon-mobile-types.umd.min.js.map +0 -1
  324. package/bundles/taiga-ui-addon-mobile-utils.umd.min.js +0 -2
  325. package/bundles/taiga-ui-addon-mobile-utils.umd.min.js.map +0 -1
  326. package/bundles/taiga-ui-addon-mobile.umd.min.js +0 -2
  327. package/bundles/taiga-ui-addon-mobile.umd.min.js.map +0 -1
  328. package/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.metadata.json +0 -1
  329. package/components/mobile-calendar-dialog/taiga-ui-addon-mobile-components-mobile-calendar-dialog.metadata.json +0 -1
  330. package/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.metadata.json +0 -1
  331. package/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.metadata.json +0 -1
  332. package/components/sheet/taiga-ui-addon-mobile-components-sheet.metadata.json +0 -1
  333. package/components/taiga-ui-addon-mobile-components.metadata.json +0 -1
  334. package/components/theme-android/taiga-ui-addon-mobile-components-theme-android.metadata.json +0 -1
  335. package/components/theme-ios/taiga-ui-addon-mobile-components-theme-ios.metadata.json +0 -1
  336. package/const/taiga-ui-addon-mobile-const.metadata.json +0 -1
  337. package/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.metadata.json +0 -1
  338. package/directives/mobile-tabs/taiga-ui-addon-mobile-directives-mobile-tabs.metadata.json +0 -1
  339. package/directives/ripple/taiga-ui-addon-mobile-directives-ripple.metadata.json +0 -1
  340. package/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.metadata.json +0 -1
  341. package/directives/taiga-ui-addon-mobile-directives.metadata.json +0 -1
  342. package/directives/touchable/taiga-ui-addon-mobile-directives-touchable.metadata.json +0 -1
  343. package/enums/index.d.ts +0 -1
  344. package/enums/package.json +0 -13
  345. package/enums/taiga-ui-addon-mobile-enums.d.ts +0 -4
  346. package/enums/taiga-ui-addon-mobile-enums.metadata.json +0 -1
  347. package/enums/touch-mode.d.ts +0 -8
  348. package/esm2015/enums/index.js +0 -2
  349. package/esm2015/enums/taiga-ui-addon-mobile-enums.js +0 -5
  350. package/esm2015/enums/touch-mode.js +0 -10
  351. package/esm5/components/index.js +0 -8
  352. package/esm5/components/mobile-calendar/index.js +0 -6
  353. package/esm5/components/mobile-calendar/mobile-calendar.component.js +0 -295
  354. package/esm5/components/mobile-calendar/mobile-calendar.const.js +0 -25
  355. package/esm5/components/mobile-calendar/mobile-calendar.module.js +0 -34
  356. package/esm5/components/mobile-calendar/mobile-calendar.providers.js +0 -31
  357. package/esm5/components/mobile-calendar/mobile-calendar.strategy.js +0 -134
  358. package/esm5/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.js +0 -5
  359. package/esm5/components/mobile-calendar-dialog/index.js +0 -3
  360. package/esm5/components/mobile-calendar-dialog/mobile-calendar-dialog.component.js +0 -57
  361. package/esm5/components/mobile-calendar-dialog/mobile-calendar-dialog.module.js +0 -28
  362. package/esm5/components/mobile-calendar-dialog/taiga-ui-addon-mobile-components-mobile-calendar-dialog.js +0 -5
  363. package/esm5/components/mobile-dialog/index.js +0 -4
  364. package/esm5/components/mobile-dialog/mobile-dialog-options.js +0 -1
  365. package/esm5/components/mobile-dialog/mobile-dialog.component.js +0 -34
  366. package/esm5/components/mobile-dialog/mobile-dialog.module.js +0 -31
  367. package/esm5/components/mobile-dialog/mobile-dialog.service.js +0 -34
  368. package/esm5/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.js +0 -5
  369. package/esm5/components/pull-to-refresh/index.js +0 -6
  370. package/esm5/components/pull-to-refresh/loader-android/loader-android.component.js +0 -43
  371. package/esm5/components/pull-to-refresh/loader-ios/loader-ios.component.js +0 -41
  372. package/esm5/components/pull-to-refresh/pull-to-refresh.component.js +0 -56
  373. package/esm5/components/pull-to-refresh/pull-to-refresh.module.js +0 -26
  374. package/esm5/components/pull-to-refresh/pull-to-refresh.providers.js +0 -32
  375. package/esm5/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.js +0 -5
  376. package/esm5/components/sheet/components/sheet/sheet.component.js +0 -150
  377. package/esm5/components/sheet/components/sheet/sheet.providers.js +0 -42
  378. package/esm5/components/sheet/components/sheet-bar/sheet-bar.component.js +0 -43
  379. package/esm5/components/sheet/components/sheet-heading/sheet-heading.component.js +0 -40
  380. package/esm5/components/sheet/components/sheets-host/sheets-host.component.js +0 -40
  381. package/esm5/components/sheet/directives/sheet-close/sheet-close.directive.js +0 -56
  382. package/esm5/components/sheet/directives/sheet-stop/sheet-stop.directive.js +0 -46
  383. package/esm5/components/sheet/directives/sheet-top/sheet-top.directive.js +0 -56
  384. package/esm5/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.js +0 -93
  385. package/esm5/components/sheet/index.js +0 -15
  386. package/esm5/components/sheet/ios.hacks.js +0 -42
  387. package/esm5/components/sheet/sheet-options.js +0 -16
  388. package/esm5/components/sheet/sheet.directive.js +0 -58
  389. package/esm5/components/sheet/sheet.js +0 -1
  390. package/esm5/components/sheet/sheet.module.js +0 -52
  391. package/esm5/components/sheet/sheet.service.js +0 -42
  392. package/esm5/components/sheet/taiga-ui-addon-mobile-components-sheet.js +0 -5
  393. package/esm5/components/taiga-ui-addon-mobile-components.js +0 -5
  394. package/esm5/components/theme-android/index.js +0 -3
  395. package/esm5/components/theme-android/taiga-ui-addon-mobile-components-theme-android.js +0 -5
  396. package/esm5/components/theme-android/theme-android.component.js +0 -22
  397. package/esm5/components/theme-android/theme-android.module.js +0 -16
  398. package/esm5/components/theme-ios/index.js +0 -3
  399. package/esm5/components/theme-ios/taiga-ui-addon-mobile-components-theme-ios.js +0 -5
  400. package/esm5/components/theme-ios/theme-ios.component.js +0 -22
  401. package/esm5/components/theme-ios/theme-ios.module.js +0 -16
  402. package/esm5/const/index.js +0 -2
  403. package/esm5/const/mobile-alert-options.js +0 -8
  404. package/esm5/const/taiga-ui-addon-mobile-const.js +0 -5
  405. package/esm5/directives/elastic-sticky/elastic-sticky.directive.js +0 -26
  406. package/esm5/directives/elastic-sticky/elastic-sticky.module.js +0 -16
  407. package/esm5/directives/elastic-sticky/elastic-sticky.service.js +0 -58
  408. package/esm5/directives/elastic-sticky/index.js +0 -4
  409. package/esm5/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.js +0 -5
  410. package/esm5/directives/index.js +0 -6
  411. package/esm5/directives/mobile-tabs/index.js +0 -4
  412. package/esm5/directives/mobile-tabs/mobile-tabs.component.js +0 -16
  413. package/esm5/directives/mobile-tabs/mobile-tabs.directive.js +0 -51
  414. package/esm5/directives/mobile-tabs/mobile-tabs.module.js +0 -18
  415. package/esm5/directives/mobile-tabs/taiga-ui-addon-mobile-directives-mobile-tabs.js +0 -5
  416. package/esm5/directives/ripple/index.js +0 -4
  417. package/esm5/directives/ripple/ripple-styles.component.js +0 -16
  418. package/esm5/directives/ripple/ripple.directive.js +0 -63
  419. package/esm5/directives/ripple/ripple.module.js +0 -18
  420. package/esm5/directives/ripple/ripple.providers.js +0 -54
  421. package/esm5/directives/ripple/taiga-ui-addon-mobile-directives-ripple.js +0 -6
  422. package/esm5/directives/sidebar/index.js +0 -4
  423. package/esm5/directives/sidebar/sidebar.component.js +0 -75
  424. package/esm5/directives/sidebar/sidebar.directive.js +0 -78
  425. package/esm5/directives/sidebar/sidebar.module.js +0 -21
  426. package/esm5/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.js +0 -5
  427. package/esm5/directives/taiga-ui-addon-mobile-directives.js +0 -5
  428. package/esm5/directives/touchable/index.js +0 -3
  429. package/esm5/directives/touchable/taiga-ui-addon-mobile-directives-touchable.js +0 -5
  430. package/esm5/directives/touchable/touchable.directive.js +0 -90
  431. package/esm5/directives/touchable/touchable.module.js +0 -16
  432. package/esm5/enums/index.js +0 -2
  433. package/esm5/enums/taiga-ui-addon-mobile-enums.js +0 -5
  434. package/esm5/enums/touch-mode.js +0 -10
  435. package/esm5/index.js +0 -7
  436. package/esm5/interfaces/index.js +0 -1
  437. package/esm5/interfaces/mobile-alert-data.js +0 -1
  438. package/esm5/interfaces/taiga-ui-addon-mobile-interfaces.js +0 -4
  439. package/esm5/internal/index.js +0 -2
  440. package/esm5/internal/primitive-calendar-mobile/index.js +0 -3
  441. package/esm5/internal/primitive-calendar-mobile/primitive-calendar-mobile.component.js +0 -37
  442. package/esm5/internal/primitive-calendar-mobile/primitive-calendar-mobile.module.js +0 -28
  443. package/esm5/internal/primitive-calendar-mobile/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.js +0 -5
  444. package/esm5/internal/taiga-ui-addon-mobile-internal.js +0 -5
  445. package/esm5/taiga-ui-addon-mobile.js +0 -5
  446. package/esm5/tokens/index.js +0 -2
  447. package/esm5/tokens/loaded.js +0 -6
  448. package/esm5/tokens/taiga-ui-addon-mobile-tokens.js +0 -5
  449. package/esm5/types/index.js +0 -1
  450. package/esm5/types/taiga-ui-addon-mobile-types.js +0 -4
  451. package/esm5/types/touch-mode.js +0 -1
  452. package/esm5/utils/find-touch-index.js +0 -15
  453. package/esm5/utils/index.js +0 -2
  454. package/esm5/utils/taiga-ui-addon-mobile-utils.js +0 -5
  455. package/fesm2015/taiga-ui-addon-mobile-enums.js +0 -16
  456. package/fesm2015/taiga-ui-addon-mobile-enums.js.map +0 -1
  457. package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar-dialog.js +0 -87
  458. package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar-dialog.js.map +0 -1
  459. package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar.js +0 -502
  460. package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar.js.map +0 -1
  461. package/fesm5/taiga-ui-addon-mobile-components-mobile-dialog.js +0 -91
  462. package/fesm5/taiga-ui-addon-mobile-components-mobile-dialog.js.map +0 -1
  463. package/fesm5/taiga-ui-addon-mobile-components-pull-to-refresh.js +0 -185
  464. package/fesm5/taiga-ui-addon-mobile-components-pull-to-refresh.js.map +0 -1
  465. package/fesm5/taiga-ui-addon-mobile-components-sheet.js +0 -680
  466. package/fesm5/taiga-ui-addon-mobile-components-sheet.js.map +0 -1
  467. package/fesm5/taiga-ui-addon-mobile-components-theme-android.js +0 -40
  468. package/fesm5/taiga-ui-addon-mobile-components-theme-android.js.map +0 -1
  469. package/fesm5/taiga-ui-addon-mobile-components-theme-ios.js +0 -40
  470. package/fesm5/taiga-ui-addon-mobile-components-theme-ios.js.map +0 -1
  471. package/fesm5/taiga-ui-addon-mobile-components.js +0 -12
  472. package/fesm5/taiga-ui-addon-mobile-components.js.map +0 -1
  473. package/fesm5/taiga-ui-addon-mobile-const.js +0 -15
  474. package/fesm5/taiga-ui-addon-mobile-const.js.map +0 -1
  475. package/fesm5/taiga-ui-addon-mobile-directives-elastic-sticky.js +0 -97
  476. package/fesm5/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +0 -1
  477. package/fesm5/taiga-ui-addon-mobile-directives-mobile-tabs.js +0 -82
  478. package/fesm5/taiga-ui-addon-mobile-directives-mobile-tabs.js.map +0 -1
  479. package/fesm5/taiga-ui-addon-mobile-directives-ripple.js +0 -143
  480. package/fesm5/taiga-ui-addon-mobile-directives-ripple.js.map +0 -1
  481. package/fesm5/taiga-ui-addon-mobile-directives-sidebar.js +0 -168
  482. package/fesm5/taiga-ui-addon-mobile-directives-sidebar.js.map +0 -1
  483. package/fesm5/taiga-ui-addon-mobile-directives-touchable.js +0 -108
  484. package/fesm5/taiga-ui-addon-mobile-directives-touchable.js.map +0 -1
  485. package/fesm5/taiga-ui-addon-mobile-directives.js +0 -10
  486. package/fesm5/taiga-ui-addon-mobile-directives.js.map +0 -1
  487. package/fesm5/taiga-ui-addon-mobile-enums.js +0 -16
  488. package/fesm5/taiga-ui-addon-mobile-enums.js.map +0 -1
  489. package/fesm5/taiga-ui-addon-mobile-interfaces.js +0 -4
  490. package/fesm5/taiga-ui-addon-mobile-interfaces.js.map +0 -1
  491. package/fesm5/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.js +0 -65
  492. package/fesm5/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.js.map +0 -1
  493. package/fesm5/taiga-ui-addon-mobile-internal.js +0 -6
  494. package/fesm5/taiga-ui-addon-mobile-internal.js.map +0 -1
  495. package/fesm5/taiga-ui-addon-mobile-tokens.js +0 -13
  496. package/fesm5/taiga-ui-addon-mobile-tokens.js.map +0 -1
  497. package/fesm5/taiga-ui-addon-mobile-types.js +0 -4
  498. package/fesm5/taiga-ui-addon-mobile-types.js.map +0 -1
  499. package/fesm5/taiga-ui-addon-mobile-utils.js +0 -21
  500. package/fesm5/taiga-ui-addon-mobile-utils.js.map +0 -1
  501. package/fesm5/taiga-ui-addon-mobile.js +0 -11
  502. package/fesm5/taiga-ui-addon-mobile.js.map +0 -1
  503. package/interfaces/taiga-ui-addon-mobile-interfaces.metadata.json +0 -1
  504. package/internal/primitive-calendar-mobile/taiga-ui-addon-mobile-internal-primitive-calendar-mobile.metadata.json +0 -1
  505. package/internal/taiga-ui-addon-mobile-internal.metadata.json +0 -1
  506. package/taiga-ui-addon-mobile.metadata.json +0 -1
  507. package/tokens/taiga-ui-addon-mobile-tokens.metadata.json +0 -1
  508. package/types/taiga-ui-addon-mobile-types.metadata.json +0 -1
  509. package/utils/taiga-ui-addon-mobile-utils.metadata.json +0 -1
@@ -1,502 +0,0 @@
1
- import { __decorate, __param } from 'tslib';
2
- import { DOCUMENT, CommonModule } from '@angular/common';
3
- import { InjectionToken, Optional, ChangeDetectorRef, EventEmitter, Inject, ViewChild, Input, Output, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
4
- import { MONTHS_IN_YEAR, tuiPure, TuiDestroyService, TuiScrollService, TUI_IS_IOS, watch, TuiDay, TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonth, TuiDayRange, typedFromEvent, tuiDefaultProp, TuiMapperPipeModule } from '@taiga-ui/cdk';
5
- import { TUI_CLOSE_WORD, TUI_ORDERED_SHORT_WEEK_DAYS, TuiLinkModule, TuiButtonModule, TuiMonthPipeModule } from '@taiga-ui/core';
6
- import { TUI_CALENDAR_DATA_STREAM, TUI_CANCEL_WORD, TUI_DONE_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS } from '@taiga-ui/kit';
7
- import { Subject, EMPTY, identity, race, timer, Observable } from 'rxjs';
8
- import { distinctUntilChanged, takeUntil, delay, take, windowToggle, flatMap, map, filter, switchMap, debounceTime, switchMapTo } from 'rxjs/operators';
9
- import { VIRTUAL_SCROLL_STRATEGY, ScrollingModule } from '@angular/cdk/scrolling';
10
- import { TuiRippleModule } from '@taiga-ui/addon-mobile/directives/ripple';
11
- import { TuiTouchableModule } from '@taiga-ui/addon-mobile/directives/touchable';
12
- import { TuiPrimitiveCalendarMobileModule } from '@taiga-ui/addon-mobile/internal/primitive-calendar-mobile';
13
-
14
- var SCROLL_DEBOUNCE_TIME = 80;
15
- var YEARS_IN_ROW = 5;
16
- var STARTING_YEAR = 1900;
17
- var RANGE = 196;
18
- var BUFFER = 500;
19
- var ANDROID_LABEL = 64;
20
- var ANDROID_WEEK = 48;
21
- var IOS_LABEL = 50;
22
- var IOS_WEEK = 50;
23
- var YEARLY_CYCLE = 28;
24
- var ANDROID_CYCLE = getCycle(ANDROID_LABEL, ANDROID_WEEK);
25
- var IOS_CYCLE = getCycle(IOS_LABEL, IOS_WEEK);
26
- function getCycle(label, week) {
27
- return Array.from({ length: YEARLY_CYCLE }, function (_, i) {
28
- return Array.from({ length: MONTHS_IN_YEAR }, function (_, month) { return label + weekCount(i, month) * week; });
29
- });
30
- }
31
- function weekCount(year, month) {
32
- var firstOfMonth = new Date(year + STARTING_YEAR, month, 1);
33
- var lastOfMonth = new Date(year + STARTING_YEAR, month + 1, 0);
34
- var days = lastOfMonth.getDate() + (firstOfMonth.getDay() || 7) - 1;
35
- return Math.ceil(days / 7);
36
- }
37
-
38
- var ANDROID_CYCLE_HEIGHT = reduceCycle(ANDROID_CYCLE);
39
- var IOS_CYCLE_HEIGHT = reduceCycle(IOS_CYCLE);
40
- function reduceCycle(cycle, lastYear, lastMonth) {
41
- if (lastYear === void 0) { lastYear = 28; }
42
- if (lastMonth === void 0) { lastMonth = 12; }
43
- return cycle.reduce(function (total, year, yearIndex) {
44
- return yearIndex <= lastYear
45
- ? total +
46
- year.reduce(function (sum, month, monthIndex) {
47
- return yearIndex < lastYear ||
48
- (yearIndex === lastYear && monthIndex < lastMonth)
49
- ? sum + month
50
- : sum;
51
- }, 0)
52
- : total;
53
- }, 0);
54
- }
55
- /**
56
- * This scroll strategy is hard wired with styles for iOS and Android.
57
- * It is dependent on month height on those platforms and is designed to
58
- * work for {@link TuiMobileCalendarComponent} with years 1906 to 2102
59
- */
60
- var TuiMobileCalendarStrategy = /** @class */ (function () {
61
- function TuiMobileCalendarStrategy(isIos, scrollService) {
62
- this.isIos = isIos;
63
- this.scrollService = scrollService;
64
- this.index$ = new Subject();
65
- this.viewport = null;
66
- }
67
- Object.defineProperty(TuiMobileCalendarStrategy.prototype, "scrolledIndexChange", {
68
- get: function () {
69
- return this.index$.pipe(distinctUntilChanged());
70
- },
71
- enumerable: true,
72
- configurable: true
73
- });
74
- TuiMobileCalendarStrategy.prototype.attach = function (viewport) {
75
- var cycle = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;
76
- this.viewport = viewport;
77
- this.viewport.setTotalContentSize(cycle * 7);
78
- this.updateRenderedRange(this.viewport);
79
- };
80
- TuiMobileCalendarStrategy.prototype.detach = function () {
81
- this.index$.complete();
82
- this.viewport = null;
83
- };
84
- TuiMobileCalendarStrategy.prototype.onContentScrolled = function () {
85
- if (this.viewport) {
86
- this.updateRenderedRange(this.viewport);
87
- }
88
- };
89
- /** These do not matter for this case */
90
- TuiMobileCalendarStrategy.prototype.onDataLengthChanged = function () { };
91
- TuiMobileCalendarStrategy.prototype.onContentRendered = function () { };
92
- TuiMobileCalendarStrategy.prototype.onRenderedOffsetChanged = function () { };
93
- TuiMobileCalendarStrategy.prototype.scrollToIndex = function (index, behavior) {
94
- if (!this.viewport) {
95
- return;
96
- }
97
- var scrollTop = this.getOffsetForIndex(index);
98
- if (behavior !== "smooth") {
99
- this.viewport.scrollToOffset(scrollTop, behavior);
100
- return;
101
- }
102
- this.scrollService
103
- .scroll$(this.viewport.elementRef.nativeElement, scrollTop)
104
- .subscribe();
105
- };
106
- TuiMobileCalendarStrategy.prototype.getOffsetForIndex = function (index) {
107
- var month = index % MONTHS_IN_YEAR;
108
- var year = (index - month) / MONTHS_IN_YEAR;
109
- return this.computeHeight(year, month);
110
- };
111
- TuiMobileCalendarStrategy.prototype.getIndexForOffset = function (offset) {
112
- var cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;
113
- var cycleHeight = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;
114
- var remainder = offset % cycleHeight;
115
- var years = ((offset - remainder) / cycleHeight) * YEARLY_CYCLE;
116
- var accumulator = 0;
117
- for (var year = 0; year < cycle.length; year++) {
118
- for (var month = 0; month < cycle[year].length; month++) {
119
- accumulator += cycle[year][month];
120
- if (accumulator - cycle[year][month] / 2 > remainder) {
121
- return Math.max((years + year) * MONTHS_IN_YEAR + month, 0);
122
- }
123
- }
124
- }
125
- return RANGE;
126
- };
127
- TuiMobileCalendarStrategy.prototype.computeHeight = function (year, month) {
128
- var cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;
129
- var remainder = year % YEARLY_CYCLE;
130
- var remainderHeight = reduceCycle(cycle, remainder, month);
131
- var fullCycles = (year - remainder) / YEARLY_CYCLE;
132
- var fullCyclesHeight = this.isIos
133
- ? fullCycles * IOS_CYCLE_HEIGHT
134
- : fullCycles * ANDROID_CYCLE_HEIGHT;
135
- return fullCyclesHeight + remainderHeight;
136
- };
137
- TuiMobileCalendarStrategy.prototype.updateRenderedRange = function (viewport) {
138
- var offset = viewport.measureScrollOffset();
139
- var _a = viewport.getRenderedRange(), start = _a.start, end = _a.end;
140
- var viewportSize = viewport.getViewportSize();
141
- var dataLength = viewport.getDataLength();
142
- var newRange = { start: start, end: end };
143
- var firstVisibleIndex = this.getIndexForOffset(offset);
144
- var startBuffer = offset - this.getOffsetForIndex(start);
145
- if (startBuffer < BUFFER && start !== 0) {
146
- newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER * 2));
147
- newRange.end = Math.min(dataLength, this.getIndexForOffset(offset + viewportSize + BUFFER));
148
- }
149
- else {
150
- var endBuffer = this.getOffsetForIndex(end) - offset - viewportSize;
151
- if (endBuffer < BUFFER && end !== dataLength) {
152
- newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER));
153
- newRange.end = Math.min(dataLength, this.getIndexForOffset(offset + viewportSize + BUFFER * 2));
154
- }
155
- }
156
- viewport.setRenderedRange(newRange);
157
- viewport.setRenderedContentOffset(this.getOffsetForIndex(newRange.start));
158
- this.index$.next(firstVisibleIndex);
159
- };
160
- __decorate([
161
- tuiPure
162
- ], TuiMobileCalendarStrategy.prototype, "scrolledIndexChange", null);
163
- return TuiMobileCalendarStrategy;
164
- }());
165
-
166
- var TUI_VALUE_STREAM = new InjectionToken("Stream for updating value");
167
- var TUI_MOBILE_CALENDAR_PROVIDERS = [
168
- TuiDestroyService,
169
- TuiScrollService,
170
- {
171
- provide: VIRTUAL_SCROLL_STRATEGY,
172
- deps: [TUI_IS_IOS, TuiScrollService],
173
- useClass: TuiMobileCalendarStrategy,
174
- },
175
- {
176
- provide: TUI_VALUE_STREAM,
177
- deps: [
178
- [new Optional(), TUI_CALENDAR_DATA_STREAM],
179
- TuiDestroyService,
180
- ChangeDetectorRef,
181
- ],
182
- useFactory: valueStreamFactory,
183
- },
184
- ];
185
- // eslint-disable-next-line @typescript-eslint/naming-convention
186
- function valueStreamFactory(value$, destroy$, changeDetectorRef) {
187
- return (value$ || EMPTY).pipe(watch(changeDetectorRef), takeUntil(destroy$));
188
- }
189
-
190
- // @dynamic
191
- var TuiMobileCalendarComponent = /** @class */ (function () {
192
- function TuiMobileCalendarComponent(isIOS, documentRef, destroy$, valueChanges, closeWord$, cancelWord$, doneWord$, weekDays$, chooseDayOrRangeTexts$) {
193
- var _this = this;
194
- this.isIOS = isIOS;
195
- this.documentRef = documentRef;
196
- this.destroy$ = destroy$;
197
- this.closeWord$ = closeWord$;
198
- this.cancelWord$ = cancelWord$;
199
- this.doneWord$ = doneWord$;
200
- this.weekDays$ = weekDays$;
201
- this.chooseDayOrRangeTexts$ = chooseDayOrRangeTexts$;
202
- this.today = TuiDay.currentLocal();
203
- this.activeYear = this.initialYear;
204
- this.activeMonth = this.initialMonth;
205
- this.single = true;
206
- this.min = TUI_FIRST_DAY;
207
- this.max = TUI_LAST_DAY;
208
- this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
209
- this.cancel = new EventEmitter();
210
- this.confirm = new EventEmitter();
211
- this.value = null;
212
- this.years = Array.from({ length: RANGE }, function (_, i) { return i + STARTING_YEAR; });
213
- this.months = Array.from({ length: RANGE * 12 }, function (_, i) {
214
- return new TuiMonth(Math.floor(i / MONTHS_IN_YEAR) + STARTING_YEAR, i % MONTHS_IN_YEAR);
215
- });
216
- this.disabledItemHandlerMapper = function (disabledItemHandler, min, max) { return function (item) {
217
- return item.dayBefore(min) ||
218
- (max !== null && item.dayAfter(max)) ||
219
- disabledItemHandler(item);
220
- }; };
221
- valueChanges.pipe(takeUntil(this.destroy$)).subscribe(function (value) {
222
- _this.value = value;
223
- });
224
- }
225
- Object.defineProperty(TuiMobileCalendarComponent.prototype, "yearWidth", {
226
- get: function () {
227
- return this.documentRef.documentElement.clientWidth / YEARS_IN_ROW;
228
- },
229
- enumerable: true,
230
- configurable: true
231
- });
232
- TuiMobileCalendarComponent.prototype.ngAfterViewInit = function () {
233
- // Virtual scroll has not yet rendered items even in ngAfterViewInit
234
- this.waitScrolledChange();
235
- };
236
- TuiMobileCalendarComponent.prototype.onClose = function () {
237
- this.cancel.emit();
238
- };
239
- TuiMobileCalendarComponent.prototype.onConfirm = function () {
240
- if (this.value) {
241
- this.confirm.emit(this.value);
242
- }
243
- else {
244
- this.cancel.emit();
245
- }
246
- };
247
- TuiMobileCalendarComponent.prototype.onDayClick = function (day) {
248
- if (this.single) {
249
- this.value = day;
250
- return;
251
- }
252
- if (this.value === null ||
253
- this.value instanceof TuiDay ||
254
- !this.value.isSingleDay) {
255
- this.value = new TuiDayRange(day, day);
256
- return;
257
- }
258
- this.value = TuiDayRange.sort(this.value.from, day);
259
- };
260
- TuiMobileCalendarComponent.prototype.getState = function (index) {
261
- if (this.isYearActive(index)) {
262
- return "active";
263
- }
264
- if (this.isYearActive(index - 1) || this.isYearActive(index + 1)) {
265
- return "adjacent";
266
- }
267
- return null;
268
- };
269
- TuiMobileCalendarComponent.prototype.onMonthChange = function (month) {
270
- // Skipping initial callback where index === 0
271
- if (!month || this.activeMonth === month) {
272
- return;
273
- }
274
- this.activeMonth = month;
275
- var activeYear = this.monthToYear(month);
276
- if (activeYear === this.activeYear) {
277
- return;
278
- }
279
- this.activeYear = activeYear;
280
- this.scrollToActiveYear();
281
- };
282
- TuiMobileCalendarComponent.prototype.setYear = function (year) {
283
- var _this = this;
284
- if (this.activeYear === year) {
285
- return;
286
- }
287
- this.activeMonth += this.getMonthOffset(year);
288
- this.activeYear = year;
289
- this.scrollToActiveYear("smooth");
290
- // Delay is required to run months scroll in the next frame to prevent flicker
291
- setTimeout(function () {
292
- _this.scrollToActiveMonth();
293
- });
294
- };
295
- Object.defineProperty(TuiMobileCalendarComponent.prototype, "initialYear", {
296
- get: function () {
297
- if (!this.value) {
298
- return this.today.year;
299
- }
300
- if (this.value instanceof TuiDay) {
301
- return this.value.year;
302
- }
303
- return this.value.from.year;
304
- },
305
- enumerable: true,
306
- configurable: true
307
- });
308
- Object.defineProperty(TuiMobileCalendarComponent.prototype, "initialMonth", {
309
- get: function () {
310
- if (!this.value) {
311
- return this.today.month + (this.today.year - STARTING_YEAR) * MONTHS_IN_YEAR;
312
- }
313
- if (this.value instanceof TuiDay) {
314
- return this.value.month + (this.value.year - STARTING_YEAR) * MONTHS_IN_YEAR;
315
- }
316
- return (this.value.from.month +
317
- (this.value.from.year - STARTING_YEAR) * MONTHS_IN_YEAR);
318
- },
319
- enumerable: true,
320
- configurable: true
321
- });
322
- TuiMobileCalendarComponent.prototype.getYearsViewportSize = function () {
323
- var _a;
324
- return ((_a = this.yearsScrollRef) === null || _a === void 0 ? void 0 : _a.getViewportSize()) || 0;
325
- };
326
- TuiMobileCalendarComponent.prototype.updateViewportDimension = function () {
327
- var _a, _b;
328
- (_a = this.yearsScrollRef) === null || _a === void 0 ? void 0 : _a.checkViewportSize();
329
- (_b = this.monthsScrollRef) === null || _b === void 0 ? void 0 : _b.checkViewportSize();
330
- };
331
- TuiMobileCalendarComponent.prototype.lateInit = function () {
332
- return this.getYearsViewportSize() > 0 ? identity : delay(200);
333
- };
334
- TuiMobileCalendarComponent.prototype.waitScrolledChange = function () {
335
- var _this = this;
336
- var _a;
337
- this.updateViewportDimension();
338
- (_a = this.monthsScrollRef) === null || _a === void 0 ? void 0 : _a.scrolledIndexChange.pipe(this.lateInit(), take(1), takeUntil(this.destroy$)).subscribe(function () {
339
- _this.updateViewportDimension();
340
- _this.initYearScroll();
341
- _this.initMonthScroll();
342
- _this.scrollToActiveYear();
343
- _this.scrollToActiveMonth();
344
- });
345
- };
346
- TuiMobileCalendarComponent.prototype.initYearScroll = function () {
347
- var _this = this;
348
- var yearsScrollRef = this.yearsScrollRef;
349
- if (!yearsScrollRef) {
350
- return;
351
- }
352
- var touchstart$ = typedFromEvent(yearsScrollRef.elementRef.nativeElement, "touchstart");
353
- var touchend$ = typedFromEvent(yearsScrollRef.elementRef.nativeElement, "touchend");
354
- var click$ = typedFromEvent(yearsScrollRef.elementRef.nativeElement, "click");
355
- // Refresh activeYear
356
- yearsScrollRef
357
- .elementScrolled()
358
- .pipe(
359
- // Ignore smooth scroll resulting from click on the exact year
360
- windowToggle(touchstart$, function () { return click$; }), flatMap(function (x) { return x; }),
361
- // Delay is required to run months scroll in the next frame to prevent flicker
362
- delay(0), map(function () {
363
- return Math.round(yearsScrollRef.measureScrollOffset() / _this.yearWidth) +
364
- Math.floor(YEARS_IN_ROW / 2) +
365
- STARTING_YEAR;
366
- }), filter(function (activeYear) { return activeYear !== _this.activeYear; }), takeUntil(this.destroy$))
367
- .subscribe(function (activeYear) {
368
- _this.activeMonth += _this.getMonthOffset(activeYear);
369
- _this.activeYear = activeYear;
370
- _this.scrollToActiveMonth();
371
- });
372
- // Smooth scroll to activeYear after scrolling is done
373
- touchstart$
374
- .pipe(switchMap(function () { return touchend$; }), switchMap(function () {
375
- return race(yearsScrollRef.elementScrolled(), timer(SCROLL_DEBOUNCE_TIME)).pipe(debounceTime(SCROLL_DEBOUNCE_TIME * 2), take(1), takeUntil(touchstart$));
376
- }), takeUntil(this.destroy$))
377
- .subscribe(function () {
378
- _this.scrollToActiveYear("smooth");
379
- });
380
- };
381
- TuiMobileCalendarComponent.prototype.initMonthScroll = function () {
382
- var _this = this;
383
- var monthsScrollRef = this.monthsScrollRef;
384
- if (!monthsScrollRef) {
385
- return;
386
- }
387
- var touchstart$ = typedFromEvent(monthsScrollRef.elementRef.nativeElement, "touchstart", { passive: true });
388
- var touchend$ = typedFromEvent(monthsScrollRef.elementRef.nativeElement, "touchend");
389
- // Smooth scroll to the closest month after scrolling is done
390
- touchstart$
391
- .pipe(switchMapTo(touchend$), switchMapTo(race(monthsScrollRef.elementScrolled(), timer(SCROLL_DEBOUNCE_TIME)).pipe(debounceTime(SCROLL_DEBOUNCE_TIME * 2), take(1), takeUntil(touchstart$))), takeUntil(this.destroy$))
392
- .subscribe(function () {
393
- _this.scrollToActiveMonth("smooth");
394
- });
395
- };
396
- TuiMobileCalendarComponent.prototype.scrollToActiveYear = function (behavior) {
397
- var _a;
398
- (_a = this.yearsScrollRef) === null || _a === void 0 ? void 0 : _a.scrollToIndex(Math.max(this.activeYear - STARTING_YEAR - 2, 0), behavior);
399
- };
400
- TuiMobileCalendarComponent.prototype.scrollToActiveMonth = function (behavior) {
401
- var _a;
402
- (_a = this.monthsScrollRef) === null || _a === void 0 ? void 0 : _a.scrollToIndex(this.activeMonth, behavior);
403
- };
404
- TuiMobileCalendarComponent.prototype.isYearActive = function (index) {
405
- return index === this.activeYear;
406
- };
407
- TuiMobileCalendarComponent.prototype.monthToYear = function (month) {
408
- return Math.ceil((month + 1) / MONTHS_IN_YEAR) + STARTING_YEAR - 1;
409
- };
410
- TuiMobileCalendarComponent.prototype.getMonthOffset = function (year) {
411
- return (year - this.activeYear) * MONTHS_IN_YEAR;
412
- };
413
- TuiMobileCalendarComponent.ctorParameters = function () { return [
414
- { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
415
- { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
416
- { type: TuiDestroyService, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
417
- { type: Observable, decorators: [{ type: Inject, args: [TUI_VALUE_STREAM,] }] },
418
- { type: Observable, decorators: [{ type: Inject, args: [TUI_CLOSE_WORD,] }] },
419
- { type: Observable, decorators: [{ type: Inject, args: [TUI_CANCEL_WORD,] }] },
420
- { type: Observable, decorators: [{ type: Inject, args: [TUI_DONE_WORD,] }] },
421
- { type: Observable, decorators: [{ type: Inject, args: [TUI_ORDERED_SHORT_WEEK_DAYS,] }] },
422
- { type: Observable, decorators: [{ type: Inject, args: [TUI_CHOOSE_DAY_OR_RANGE_TEXTS,] }] }
423
- ]; };
424
- __decorate([
425
- ViewChild("yearsScrollRef")
426
- ], TuiMobileCalendarComponent.prototype, "yearsScrollRef", void 0);
427
- __decorate([
428
- ViewChild("monthsScrollRef")
429
- ], TuiMobileCalendarComponent.prototype, "monthsScrollRef", void 0);
430
- __decorate([
431
- Input(),
432
- tuiDefaultProp()
433
- ], TuiMobileCalendarComponent.prototype, "single", void 0);
434
- __decorate([
435
- Input(),
436
- tuiDefaultProp()
437
- ], TuiMobileCalendarComponent.prototype, "min", void 0);
438
- __decorate([
439
- Input(),
440
- tuiDefaultProp()
441
- ], TuiMobileCalendarComponent.prototype, "max", void 0);
442
- __decorate([
443
- Input(),
444
- tuiDefaultProp()
445
- ], TuiMobileCalendarComponent.prototype, "disabledItemHandler", void 0);
446
- __decorate([
447
- Output()
448
- ], TuiMobileCalendarComponent.prototype, "cancel", void 0);
449
- __decorate([
450
- Output()
451
- ], TuiMobileCalendarComponent.prototype, "confirm", void 0);
452
- TuiMobileCalendarComponent = __decorate([
453
- Component({
454
- selector: "tui-mobile-calendar",
455
- template: "<header class=\"t-header\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-mobile-calendar__cancel\"\n icon=\"tuiIconRemoveLarge\"\n shape=\"rounded\"\n appearance=\"\"\n tuiRipple\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClose()\"\n ></button>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n class=\"t-link t-link_close\"\n (click)=\"onClose()\"\n >\n {{ cancelWord$ | async }}\n </button>\n <h2\n *ngIf=\"chooseDayOrRangeTexts$ | async as texts\"\n automation-id=\"tui-mobile-calendar__label\"\n class=\"t-label\"\n >\n {{ single ? texts[0] : texts[1] }}\n </h2>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n automation-id=\"tui-mobile-calendar__confirm\"\n class=\"t-link\"\n (click)=\"onConfirm()\"\n >\n {{ doneWord$ | async }}\n </button>\n</header>\n<cdk-virtual-scroll-viewport\n #yearsScrollRef\n orientation=\"horizontal\"\n class=\"t-years\"\n [itemSize]=\"yearWidth\"\n>\n <div class=\"t-years-wrapper\">\n <button\n *cdkVirtualFor=\"let index of years\"\n class=\"t-year\"\n [attr.data-state]=\"getState(index)\"\n (click)=\"setYear(index)\"\n >\n {{ index }}\n </button>\n </div>\n</cdk-virtual-scroll-viewport>\n<div class=\"t-week\">\n <div\n *ngFor=\"let day of weekDays$ | async\"\n class=\"t-day\"\n >\n {{ day }}\n </div>\n</div>\n<cdk-virtual-scroll-viewport\n #monthsScrollRef\n class=\"t-months\"\n (scrolledIndexChange)=\"onMonthChange($event)\"\n>\n <section\n *cdkVirtualFor=\"let month of months; templateCacheSize: 10\"\n class=\"t-month-wrapper\"\n >\n <h2 class=\"t-month\">{{ month | tuiMonth | async }}</h2>\n <tui-primitive-calendar-mobile\n class=\"t-calendar\"\n [month]=\"month\"\n [value]=\"value\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper:min:max\"\n (dayClick)=\"onDayClick($event)\"\n ></tui-primitive-calendar-mobile>\n </section>\n</cdk-virtual-scroll-viewport>\n",
456
- changeDetection: ChangeDetectionStrategy.OnPush,
457
- providers: TUI_MOBILE_CALENDAR_PROVIDERS,
458
- host: { '[class._ios]': "isIOS" },
459
- styles: [":host{display:block;height:100%;font-family:-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:var(--tui-text-01);-webkit-tap-highlight-color:transparent}.t-header{position:relative;display:flex;align-items:center;height:3.5rem;padding:0 1rem;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-header{height:2.75rem;border-bottom:none}.t-close{width:1.5rem;height:1.5rem;margin-right:2rem}:host._ios .t-close{display:none}.t-link{margin-left:auto;flex-shrink:0;font-size:.875rem;line-height:1rem;font-weight:500;text-transform:uppercase;color:var(--tui-link)}.t-link_close{display:none}:host._ios .t-link{min-width:3.75rem;text-align:right;font-size:.9375rem;line-height:1.125rem;font-weight:400;letter-spacing:.018125rem;text-transform:none}:host._ios .t-link_close{display:block;margin:0 auto 0 0;text-align:left}.t-label{position:relative;overflow:hidden;flex-grow:1;margin:0;font-size:1.25rem;line-height:3.5rem;font-weight:500;letter-spacing:-.0125rem;white-space:nowrap}.t-label:after{content:'';position:absolute;top:0;right:0;width:1.875rem;height:100%;background-image:linear-gradient(to right,transparent 0,var(--tui-base-01) 80%,var(--tui-base-01) 100%);pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,0) 0,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}:host._ios .t-label{font-size:1.0625rem;font-weight:600;letter-spacing:-.025625rem;text-align:center}:host-context([data-mode=onDark]) .t-label:after{background-image:linear-gradient(to right,rgba(34,34,34,0) 0,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}.t-years{scrollbar-width:none;-ms-overflow-style:none;height:4.0625rem;background-color:var(--tui-base-01);box-shadow:0 .5px var(--tui-base-03)}.t-years::-webkit-scrollbar,.t-years::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._ios .t-years{background-color:transparent}.t-years-wrapper{display:flex;height:4.0625rem}.t-year{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:0 0;line-height:inherit;outline:0;width:20vw;flex-shrink:0;font-size:.9375rem;font-weight:700;letter-spacing:.015625rem;cursor:pointer;opacity:.1;transform:scale(.73);transition:color,opacity,transform .2s}.t-year[data-state=adjacent]{transform:scale(.86);opacity:.3}.t-year[data-state=active]{color:var(--tui-link);opacity:1;transform:scale(1)}.t-week{display:flex;align-items:center;height:1.875rem;width:20.75rem;max-width:100%;margin:0 auto;font-size:.75rem}:host._ios .t-week{width:22.625rem;font-size:.6875rem;font-weight:500;color:var(--tui-text-02)}.t-day{flex:1;text-align:center}.t-months{scrollbar-width:none;-ms-overflow-style:none;height:calc(100% - 9.5rem);box-shadow:0 -1px var(--tui-base-03);overflow-x:hidden}.t-months::-webkit-scrollbar,.t-months::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._ios .t-months{height:calc(100% - 8.75rem)}.t-month-wrapper{margin:.625rem 0 -.625rem}.t-month{height:2.75rem;line-height:2.75rem;padding-left:1rem;font-size:.875rem;font-weight:500;text-transform:uppercase;margin:0 0 1.25rem;box-sizing:border-box;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-month{height:3.125rem;margin:0;border-bottom:none;text-transform:none;font-size:1.375rem;line-height:3.125rem;letter-spacing:.02rem;font-weight:700}.t-calendar{margin:0 auto;font-family:inherit;font-size:1.125rem;transition:opacity .2s}:host._ios .t-calendar{font-size:1.0625rem}"]
460
- }),
461
- __param(0, Inject(TUI_IS_IOS)),
462
- __param(1, Inject(DOCUMENT)),
463
- __param(2, Inject(TuiDestroyService)),
464
- __param(3, Inject(TUI_VALUE_STREAM)),
465
- __param(4, Inject(TUI_CLOSE_WORD)),
466
- __param(5, Inject(TUI_CANCEL_WORD)),
467
- __param(6, Inject(TUI_DONE_WORD)),
468
- __param(7, Inject(TUI_ORDERED_SHORT_WEEK_DAYS)),
469
- __param(8, Inject(TUI_CHOOSE_DAY_OR_RANGE_TEXTS))
470
- ], TuiMobileCalendarComponent);
471
- return TuiMobileCalendarComponent;
472
- }());
473
-
474
- var TuiMobileCalendarModule = /** @class */ (function () {
475
- function TuiMobileCalendarModule() {
476
- }
477
- TuiMobileCalendarModule = __decorate([
478
- NgModule({
479
- imports: [
480
- CommonModule,
481
- ScrollingModule,
482
- TuiTouchableModule,
483
- TuiRippleModule,
484
- TuiMapperPipeModule,
485
- TuiLinkModule,
486
- TuiPrimitiveCalendarMobileModule,
487
- TuiButtonModule,
488
- TuiMonthPipeModule,
489
- ],
490
- declarations: [TuiMobileCalendarComponent],
491
- exports: [TuiMobileCalendarComponent],
492
- })
493
- ], TuiMobileCalendarModule);
494
- return TuiMobileCalendarModule;
495
- }());
496
-
497
- /**
498
- * Generated bundle index. Do not edit.
499
- */
500
-
501
- export { ANDROID_CYCLE, ANDROID_LABEL, ANDROID_WEEK, BUFFER, IOS_CYCLE, IOS_LABEL, IOS_WEEK, RANGE, SCROLL_DEBOUNCE_TIME, STARTING_YEAR, TUI_MOBILE_CALENDAR_PROVIDERS, TUI_VALUE_STREAM, TuiMobileCalendarComponent, TuiMobileCalendarModule, TuiMobileCalendarStrategy, YEARLY_CYCLE, YEARS_IN_ROW, valueStreamFactory };
502
- //# sourceMappingURL=taiga-ui-addon-mobile-components-mobile-calendar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-mobile-calendar.js","sources":["ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.const.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.strategy.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.providers.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.component.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.module.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.ts"],"sourcesContent":["import {MONTHS_IN_YEAR} from '@taiga-ui/cdk';\n\nexport const SCROLL_DEBOUNCE_TIME = 80;\nexport const YEARS_IN_ROW = 5;\nexport const STARTING_YEAR = 1900;\nexport const RANGE = 196;\nexport const BUFFER = 500;\nexport const ANDROID_LABEL = 64;\nexport const ANDROID_WEEK = 48;\nexport const IOS_LABEL = 50;\nexport const IOS_WEEK = 50;\nexport const YEARLY_CYCLE = 28;\nexport const ANDROID_CYCLE = getCycle(ANDROID_LABEL, ANDROID_WEEK);\nexport const IOS_CYCLE = getCycle(IOS_LABEL, IOS_WEEK);\n\nfunction getCycle(label: number, week: number): ReadonlyArray<readonly number[]> {\n return Array.from({length: YEARLY_CYCLE}, (_, i) =>\n Array.from(\n {length: MONTHS_IN_YEAR},\n (_, month) => label + weekCount(i, month) * week,\n ),\n );\n}\n\nfunction weekCount(year: number, month: number): number {\n const firstOfMonth = new Date(year + STARTING_YEAR, month, 1);\n const lastOfMonth = new Date(year + STARTING_YEAR, month + 1, 0);\n const days = lastOfMonth.getDate() + (firstOfMonth.getDay() || 7) - 1;\n\n return Math.ceil(days / 7);\n}\n","import {CdkVirtualScrollViewport, VirtualScrollStrategy} from '@angular/cdk/scrolling';\nimport {MONTHS_IN_YEAR, tuiPure, TuiScrollService} from '@taiga-ui/cdk';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\n\nimport {\n ANDROID_CYCLE,\n BUFFER,\n IOS_CYCLE,\n RANGE,\n YEARLY_CYCLE,\n} from './mobile-calendar.const';\n\nconst ANDROID_CYCLE_HEIGHT = reduceCycle(ANDROID_CYCLE);\nconst IOS_CYCLE_HEIGHT = reduceCycle(IOS_CYCLE);\n\nfunction reduceCycle(\n cycle: ReadonlyArray<readonly number[]>,\n lastYear: number = 28,\n lastMonth: number = 12,\n): number {\n return cycle.reduce(\n (total, year, yearIndex) =>\n yearIndex <= lastYear\n ? total +\n year.reduce(\n (sum, month, monthIndex) =>\n yearIndex < lastYear ||\n (yearIndex === lastYear && monthIndex < lastMonth)\n ? sum + month\n : sum,\n 0,\n )\n : total,\n 0,\n );\n}\n\n/**\n * This scroll strategy is hard wired with styles for iOS and Android.\n * It is dependent on month height on those platforms and is designed to\n * work for {@link TuiMobileCalendarComponent} with years 1906 to 2102\n */\nexport class TuiMobileCalendarStrategy implements VirtualScrollStrategy {\n private readonly index$ = new Subject<number>();\n\n private viewport: CdkVirtualScrollViewport | null = null;\n\n constructor(\n private readonly isIos: boolean,\n private readonly scrollService: TuiScrollService,\n ) {}\n\n @tuiPure\n get scrolledIndexChange(): Observable<number> {\n return this.index$.pipe(distinctUntilChanged());\n }\n\n attach(viewport: CdkVirtualScrollViewport): void {\n const cycle = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n\n this.viewport = viewport;\n this.viewport.setTotalContentSize(cycle * 7);\n this.updateRenderedRange(this.viewport);\n }\n\n detach(): void {\n this.index$.complete();\n this.viewport = null;\n }\n\n onContentScrolled(): void {\n if (this.viewport) {\n this.updateRenderedRange(this.viewport);\n }\n }\n\n /** These do not matter for this case */\n onDataLengthChanged(): void {}\n onContentRendered(): void {}\n onRenderedOffsetChanged(): void {}\n\n scrollToIndex(index: number, behavior: ScrollBehavior): void {\n if (!this.viewport) {\n return;\n }\n\n const scrollTop = this.getOffsetForIndex(index);\n\n if (behavior !== `smooth`) {\n this.viewport.scrollToOffset(scrollTop, behavior);\n\n return;\n }\n\n this.scrollService\n .scroll$(this.viewport.elementRef.nativeElement, scrollTop)\n .subscribe();\n }\n\n private getOffsetForIndex(index: number): number {\n const month = index % MONTHS_IN_YEAR;\n const year = (index - month) / MONTHS_IN_YEAR;\n\n return this.computeHeight(year, month);\n }\n\n private getIndexForOffset(offset: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const cycleHeight = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n const remainder = offset % cycleHeight;\n const years = ((offset - remainder) / cycleHeight) * YEARLY_CYCLE;\n\n let accumulator = 0;\n\n for (let year = 0; year < cycle.length; year++) {\n for (let month = 0; month < cycle[year].length; month++) {\n accumulator += cycle[year][month];\n\n if (accumulator - cycle[year][month] / 2 > remainder) {\n return Math.max((years + year) * MONTHS_IN_YEAR + month, 0);\n }\n }\n }\n\n return RANGE;\n }\n\n private computeHeight(year: number, month?: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const remainder = year % YEARLY_CYCLE;\n const remainderHeight = reduceCycle(cycle, remainder, month);\n const fullCycles = (year - remainder) / YEARLY_CYCLE;\n const fullCyclesHeight = this.isIos\n ? fullCycles * IOS_CYCLE_HEIGHT\n : fullCycles * ANDROID_CYCLE_HEIGHT;\n\n return fullCyclesHeight + remainderHeight;\n }\n\n private updateRenderedRange(viewport: CdkVirtualScrollViewport): void {\n const offset = viewport.measureScrollOffset();\n const {start, end} = viewport.getRenderedRange();\n const viewportSize = viewport.getViewportSize();\n const dataLength = viewport.getDataLength();\n const newRange = {start, end};\n const firstVisibleIndex = this.getIndexForOffset(offset);\n const startBuffer = offset - this.getOffsetForIndex(start);\n\n if (startBuffer < BUFFER && start !== 0) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER * 2));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER),\n );\n } else {\n const endBuffer = this.getOffsetForIndex(end) - offset - viewportSize;\n\n if (endBuffer < BUFFER && end !== dataLength) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER * 2),\n );\n }\n }\n\n viewport.setRenderedRange(newRange);\n viewport.setRenderedContentOffset(this.getOffsetForIndex(newRange.start));\n this.index$.next(firstVisibleIndex);\n }\n}\n","import {VIRTUAL_SCROLL_STRATEGY} from '@angular/cdk/scrolling';\nimport {ChangeDetectorRef, InjectionToken, Optional, Provider} from '@angular/core';\nimport {\n TUI_IS_IOS,\n TuiDayRange,\n TuiDestroyService,\n TuiScrollService,\n watch,\n} from '@taiga-ui/cdk';\nimport {TUI_CALENDAR_DATA_STREAM} from '@taiga-ui/kit';\nimport {EMPTY, Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiMobileCalendarStrategy} from './mobile-calendar.strategy';\n\nexport const TUI_VALUE_STREAM = new InjectionToken<Observable<TuiDayRange | null>>(\n `Stream for updating value`,\n);\nexport const TUI_MOBILE_CALENDAR_PROVIDERS: Provider[] = [\n TuiDestroyService,\n TuiScrollService,\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n deps: [TUI_IS_IOS, TuiScrollService],\n useClass: TuiMobileCalendarStrategy,\n },\n {\n provide: TUI_VALUE_STREAM,\n deps: [\n [new Optional(), TUI_CALENDAR_DATA_STREAM],\n TuiDestroyService,\n ChangeDetectorRef,\n ],\n useFactory: valueStreamFactory,\n },\n];\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function valueStreamFactory(\n value$: Observable<TuiDayRange | null> | null,\n destroy$: Observable<void>,\n changeDetectorRef: ChangeDetectorRef,\n): Observable<TuiDayRange | null> {\n return (value$ || EMPTY).pipe(watch(changeDetectorRef), takeUntil(destroy$));\n}\n","import {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n MONTHS_IN_YEAR,\n TUI_FIRST_DAY,\n TUI_IS_IOS,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiDestroyService,\n TuiMapper,\n TuiMonth,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_CLOSE_WORD, TUI_ORDERED_SHORT_WEEK_DAYS} from '@taiga-ui/core';\nimport {\n TUI_CANCEL_WORD,\n TUI_CHOOSE_DAY_OR_RANGE_TEXTS,\n TUI_DONE_WORD,\n} from '@taiga-ui/kit';\nimport {identity, MonoTypeOperatorFunction, Observable, race, timer} from 'rxjs';\nimport {\n debounceTime,\n delay,\n filter,\n flatMap,\n map,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n windowToggle,\n} from 'rxjs/operators';\n\nimport {\n RANGE,\n SCROLL_DEBOUNCE_TIME,\n STARTING_YEAR,\n YEARS_IN_ROW,\n} from './mobile-calendar.const';\nimport {\n TUI_MOBILE_CALENDAR_PROVIDERS,\n TUI_VALUE_STREAM,\n} from './mobile-calendar.providers';\n\n// @dynamic\n@Component({\n selector: `tui-mobile-calendar`,\n templateUrl: `./mobile-calendar.template.html`,\n styleUrls: [`./mobile-calendar.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_MOBILE_CALENDAR_PROVIDERS,\n host: {'[class._ios]': `isIOS`},\n})\nexport class TuiMobileCalendarComponent {\n @ViewChild(`yearsScrollRef`)\n private readonly yearsScrollRef?: CdkVirtualScrollViewport;\n\n @ViewChild(`monthsScrollRef`)\n private readonly monthsScrollRef?: CdkVirtualScrollViewport;\n\n private readonly today = TuiDay.currentLocal();\n private activeYear = this.initialYear;\n private activeMonth = this.initialMonth;\n\n @Input()\n @tuiDefaultProp()\n single = true;\n\n @Input()\n @tuiDefaultProp()\n min = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly cancel = new EventEmitter<void>();\n\n @Output()\n readonly confirm = new EventEmitter<TuiDayRange | TuiDay>();\n\n value: TuiDay | TuiDayRange | null = null;\n\n readonly years = Array.from({length: RANGE}, (_, i) => i + STARTING_YEAR);\n\n readonly months = Array.from(\n {length: RANGE * 12},\n (_, i) =>\n new TuiMonth(\n Math.floor(i / MONTHS_IN_YEAR) + STARTING_YEAR,\n i % MONTHS_IN_YEAR,\n ),\n );\n\n constructor(\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n @Inject(TUI_VALUE_STREAM) valueChanges: Observable<TuiDayRange | null>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n @Inject(TUI_CANCEL_WORD) readonly cancelWord$: Observable<string>,\n @Inject(TUI_DONE_WORD) readonly doneWord$: Observable<string>,\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<\n [string, string, string, string, string, string, string]\n >,\n @Inject(TUI_CHOOSE_DAY_OR_RANGE_TEXTS)\n readonly chooseDayOrRangeTexts$: Observable<[string, string]>,\n ) {\n valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.value = value;\n });\n }\n\n get yearWidth(): number {\n return this.documentRef.documentElement.clientWidth / YEARS_IN_ROW;\n }\n\n ngAfterViewInit(): void {\n // Virtual scroll has not yet rendered items even in ngAfterViewInit\n this.waitScrolledChange();\n }\n\n onClose(): void {\n this.cancel.emit();\n }\n\n onConfirm(): void {\n if (this.value) {\n this.confirm.emit(this.value);\n } else {\n this.cancel.emit();\n }\n }\n\n onDayClick(day: TuiDay): void {\n if (this.single) {\n this.value = day;\n\n return;\n }\n\n if (\n this.value === null ||\n this.value instanceof TuiDay ||\n !this.value.isSingleDay\n ) {\n this.value = new TuiDayRange(day, day);\n\n return;\n }\n\n this.value = TuiDayRange.sort(this.value.from, day);\n }\n\n getState(index: number): 'active' | 'adjacent' | null {\n if (this.isYearActive(index)) {\n return `active`;\n }\n\n if (this.isYearActive(index - 1) || this.isYearActive(index + 1)) {\n return `adjacent`;\n }\n\n return null;\n }\n\n onMonthChange(month: number): void {\n // Skipping initial callback where index === 0\n if (!month || this.activeMonth === month) {\n return;\n }\n\n this.activeMonth = month;\n\n const activeYear = this.monthToYear(month);\n\n if (activeYear === this.activeYear) {\n return;\n }\n\n this.activeYear = activeYear;\n this.scrollToActiveYear();\n }\n\n setYear(year: number): void {\n if (this.activeYear === year) {\n return;\n }\n\n this.activeMonth += this.getMonthOffset(year);\n this.activeYear = year;\n this.scrollToActiveYear(`smooth`);\n\n // Delay is required to run months scroll in the next frame to prevent flicker\n setTimeout(() => {\n this.scrollToActiveMonth();\n });\n }\n\n readonly disabledItemHandlerMapper: TuiMapper<\n TuiBooleanHandler<TuiDay>,\n TuiBooleanHandler<TuiDay>\n > = (disabledItemHandler, min: TuiDay, max: TuiDay) => item =>\n item.dayBefore(min) ||\n (max !== null && item.dayAfter(max)) ||\n disabledItemHandler(item);\n\n private get initialYear(): number {\n if (!this.value) {\n return this.today.year;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.year;\n }\n\n return this.value.from.year;\n }\n\n private get initialMonth(): number {\n if (!this.value) {\n return this.today.month + (this.today.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.month + (this.value.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n return (\n this.value.from.month +\n (this.value.from.year - STARTING_YEAR) * MONTHS_IN_YEAR\n );\n }\n\n private getYearsViewportSize(): number {\n return this.yearsScrollRef?.getViewportSize() || 0;\n }\n\n private updateViewportDimension(): void {\n this.yearsScrollRef?.checkViewportSize();\n this.monthsScrollRef?.checkViewportSize();\n }\n\n private lateInit(): MonoTypeOperatorFunction<number> {\n return this.getYearsViewportSize() > 0 ? identity : delay(200);\n }\n\n private waitScrolledChange(): void {\n this.updateViewportDimension();\n\n this.monthsScrollRef?.scrolledIndexChange\n .pipe(this.lateInit(), take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.updateViewportDimension();\n this.initYearScroll();\n this.initMonthScroll();\n this.scrollToActiveYear();\n this.scrollToActiveMonth();\n });\n }\n\n private initYearScroll(): void {\n const {yearsScrollRef} = this;\n\n if (!yearsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n `touchstart`,\n );\n const touchend$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n `touchend`,\n );\n const click$ = typedFromEvent(yearsScrollRef.elementRef.nativeElement, `click`);\n\n // Refresh activeYear\n yearsScrollRef\n .elementScrolled()\n .pipe(\n // Ignore smooth scroll resulting from click on the exact year\n windowToggle(touchstart$, () => click$),\n flatMap(x => x),\n // Delay is required to run months scroll in the next frame to prevent flicker\n delay(0),\n map(\n () =>\n Math.round(\n yearsScrollRef.measureScrollOffset() / this.yearWidth,\n ) +\n Math.floor(YEARS_IN_ROW / 2) +\n STARTING_YEAR,\n ),\n filter(activeYear => activeYear !== this.activeYear),\n takeUntil(this.destroy$),\n )\n .subscribe(activeYear => {\n this.activeMonth += this.getMonthOffset(activeYear);\n this.activeYear = activeYear;\n this.scrollToActiveMonth();\n });\n\n // Smooth scroll to activeYear after scrolling is done\n touchstart$\n .pipe(\n switchMap(() => touchend$),\n switchMap(() =>\n race<unknown>(\n yearsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveYear(`smooth`);\n });\n }\n\n private initMonthScroll(): void {\n const {monthsScrollRef} = this;\n\n if (!monthsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n `touchstart`,\n {passive: true},\n );\n const touchend$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n `touchend`,\n );\n\n // Smooth scroll to the closest month after scrolling is done\n touchstart$\n .pipe(\n switchMapTo(touchend$),\n switchMapTo(\n race<unknown>(\n monthsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveMonth(`smooth`);\n });\n }\n\n private scrollToActiveYear(behavior?: ScrollBehavior): void {\n this.yearsScrollRef?.scrollToIndex(\n Math.max(this.activeYear - STARTING_YEAR - 2, 0),\n behavior,\n );\n }\n\n private scrollToActiveMonth(behavior?: ScrollBehavior): void {\n this.monthsScrollRef?.scrollToIndex(this.activeMonth, behavior);\n }\n\n private isYearActive(index: number): boolean {\n return index === this.activeYear;\n }\n\n private monthToYear(month: number): number {\n return Math.ceil((month + 1) / MONTHS_IN_YEAR) + STARTING_YEAR - 1;\n }\n\n private getMonthOffset(year: number): number {\n return (year - this.activeYear) * MONTHS_IN_YEAR;\n }\n}\n","import {ScrollingModule} from '@angular/cdk/scrolling';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRippleModule} from '@taiga-ui/addon-mobile/directives/ripple';\nimport {TuiTouchableModule} from '@taiga-ui/addon-mobile/directives/touchable';\nimport {TuiPrimitiveCalendarMobileModule} from '@taiga-ui/addon-mobile/internal/primitive-calendar-mobile';\nimport {TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule, TuiLinkModule, TuiMonthPipeModule} from '@taiga-ui/core';\n\nimport {TuiMobileCalendarComponent} from './mobile-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ScrollingModule,\n TuiTouchableModule,\n TuiRippleModule,\n TuiMapperPipeModule,\n TuiLinkModule,\n TuiPrimitiveCalendarMobileModule,\n TuiButtonModule,\n TuiMonthPipeModule,\n ],\n declarations: [TuiMobileCalendarComponent],\n exports: [TuiMobileCalendarComponent],\n})\nexport class TuiMobileCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}