@taiga-ui/core 4.52.0-canary.56739a2 → 4.52.0-canary.58fe47a

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 (527) hide show
  1. package/README.md +1 -1
  2. package/classes/accessors.d.ts +1 -1
  3. package/classes/driver.d.ts +1 -1
  4. package/components/button/button.directive.d.ts +2 -3
  5. package/components/button/button.options.d.ts +1 -1
  6. package/components/calendar/calendar-sheet.component.d.ts +1 -6
  7. package/components/calendar/calendar-sheet.options.d.ts +1 -3
  8. package/components/cell/cell.directive.d.ts +9 -0
  9. package/components/cell/cell.options.d.ts +6 -0
  10. package/components/cell/index.d.ts +2 -0
  11. package/components/data-list/data-list.component.d.ts +8 -12
  12. package/components/data-list/data-list.d.ts +2 -4
  13. package/components/data-list/data-list.tokens.d.ts +1 -5
  14. package/components/data-list/index.d.ts +0 -2
  15. package/components/data-list/opt-group.directive.d.ts +2 -2
  16. package/components/data-list/option/option-content.d.ts +6 -8
  17. package/components/data-list/option/option.directive.d.ts +7 -8
  18. package/components/dialog/dialog.component.d.ts +6 -12
  19. package/components/dialog/dialog.directive.d.ts +5 -4
  20. package/components/dialog/dialog.factory.d.ts +1 -1
  21. package/components/dialog/dialog.options.d.ts +25 -0
  22. package/components/dialog/{dialog-close.service.d.ts → dialog.providers.d.ts} +2 -0
  23. package/components/dialog/dialog.service.d.ts +6 -3
  24. package/components/dialog/index.d.ts +2 -4
  25. package/components/error/error.component.d.ts +6 -8
  26. package/components/error/error.d.ts +4 -0
  27. package/components/error/error.directive.d.ts +19 -0
  28. package/components/error/error.pipe.d.ts +10 -0
  29. package/components/error/index.d.ts +3 -0
  30. package/components/expand/expand.component.d.ts +9 -28
  31. package/components/expand/index.d.ts +0 -2
  32. package/components/icon/icon.component.d.ts +6 -11
  33. package/components/index.d.ts +2 -2
  34. package/components/link/link.directive.d.ts +2 -2
  35. package/components/link/link.options.d.ts +1 -3
  36. package/components/loader/loader.component.d.ts +7 -7
  37. package/components/loader/loader.options.d.ts +1 -3
  38. package/components/modal/index.d.ts +2 -0
  39. package/components/modal/modal.component.d.ts +17 -0
  40. package/components/modal/modal.service.d.ts +13 -0
  41. package/components/notification/index.d.ts +3 -0
  42. package/components/notification/notification.component.d.ts +14 -0
  43. package/components/notification/notification.d.ts +3 -0
  44. package/components/notification/notification.directive.d.ts +7 -12
  45. package/components/notification/notification.options.d.ts +10 -7
  46. package/components/notification/notification.service.d.ts +17 -0
  47. package/components/root/root.component.d.ts +4 -6
  48. package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
  49. package/components/scrollbar/scrollbar.component.d.ts +2 -2
  50. package/components/scrollbar/scrollbar.directive.d.ts +2 -2
  51. package/components/scrollbar/scrollbar.options.d.ts +1 -1
  52. package/components/spin-button/spin-button.component.d.ts +8 -9
  53. package/components/textfield/index.d.ts +1 -3
  54. package/components/textfield/textfield-content.directive.d.ts +3 -2
  55. package/components/textfield/textfield-icon.d.ts +3 -3
  56. package/components/textfield/textfield-multi/textfield-item.component.d.ts +3 -2
  57. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +9 -14
  58. package/components/textfield/textfield.component.d.ts +17 -29
  59. package/components/textfield/textfield.d.ts +2 -3
  60. package/components/textfield/textfield.directive.d.ts +13 -20
  61. package/components/textfield/textfield.options.d.ts +8 -11
  62. package/directives/alert/alert.directive.d.ts +11 -0
  63. package/directives/alert/alert.service.d.ts +12 -0
  64. package/directives/alert/index.d.ts +2 -0
  65. package/directives/appearance/appearance.directive.d.ts +5 -13
  66. package/directives/appearance/appearance.options.d.ts +1 -1
  67. package/directives/date-format/date-format.directive.d.ts +3 -7
  68. package/directives/dropdown/dropdown-content.directive.d.ts +9 -0
  69. package/directives/dropdown/dropdown-hover.options.d.ts +1 -3
  70. package/directives/dropdown/dropdown-position.directive.d.ts +1 -1
  71. package/directives/dropdown/dropdown.d.ts +2 -2
  72. package/directives/dropdown/dropdown.directive.d.ts +1 -2
  73. package/directives/dropdown/index.d.ts +1 -3
  74. package/directives/group/group.options.d.ts +1 -3
  75. package/directives/hint/hint-describe.directive.d.ts +4 -6
  76. package/directives/hint/hint-host.directive.d.ts +2 -2
  77. package/directives/hint/hint-hover.directive.d.ts +3 -4
  78. package/directives/hint/hint-manual.directive.d.ts +2 -2
  79. package/directives/hint/hint-options.directive.d.ts +3 -3
  80. package/directives/hint/hint-overflow.directive.d.ts +2 -2
  81. package/directives/hint/hint-position.directive.d.ts +4 -5
  82. package/directives/hint/hint-unstyled.component.d.ts +2 -7
  83. package/directives/hint/hint.component.d.ts +10 -11
  84. package/directives/hint/hint.directive.d.ts +9 -11
  85. package/directives/hint/index.d.ts +0 -2
  86. package/directives/icons/icons.bindings.d.ts +5 -0
  87. package/directives/icons/icons.directive.d.ts +8 -16
  88. package/directives/icons/index.d.ts +1 -0
  89. package/directives/index.d.ts +1 -1
  90. package/directives/number-format/number-format.directive.d.ts +3 -7
  91. package/directives/popup/popup.directive.d.ts +6 -5
  92. package/directives/popup/popup.service.d.ts +1 -1
  93. package/directives/popup/popups.component.d.ts +2 -2
  94. package/directives/title/title.directive.d.ts +2 -3
  95. package/fesm2022/taiga-ui-core-animations.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-core-classes.mjs +5 -5
  97. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-core-components-button.mjs +13 -21
  99. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-core-components-calendar.mjs +26 -36
  101. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-core-components-cell.mjs +45 -0
  103. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -0
  104. package/fesm2022/taiga-ui-core-components-data-list.mjs +57 -219
  105. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-core-components-dialog.mjs +75 -113
  107. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-core-components-error.mjs +110 -26
  109. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-core-components-expand.mjs +34 -132
  111. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-core-components-icon.mjs +22 -40
  113. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-core-components-label.mjs +10 -13
  115. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-core-components-link.mjs +16 -25
  117. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-core-components-loader.mjs +17 -36
  119. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-core-components-modal.mjs +89 -0
  121. package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -0
  122. package/fesm2022/taiga-ui-core-components-notification.mjs +107 -64
  123. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  124. package/fesm2022/taiga-ui-core-components-root.mjs +21 -54
  125. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  126. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +58 -67
  127. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  128. package/fesm2022/taiga-ui-core-components-spin-button.mjs +16 -29
  129. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  130. package/fesm2022/taiga-ui-core-components-textfield.mjs +192 -405
  131. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  132. package/fesm2022/taiga-ui-core-components.mjs +2 -2
  133. package/fesm2022/taiga-ui-core-directives-alert.mjs +73 -0
  134. package/fesm2022/taiga-ui-core-directives-alert.mjs.map +1 -0
  135. package/fesm2022/taiga-ui-core-directives-appearance.mjs +32 -69
  136. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  137. package/fesm2022/taiga-ui-core-directives-date-format.mjs +26 -20
  138. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  139. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +110 -172
  140. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  141. package/fesm2022/taiga-ui-core-directives-group.mjs +13 -20
  142. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  143. package/fesm2022/taiga-ui-core-directives-hint.mjs +150 -251
  144. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  145. package/fesm2022/taiga-ui-core-directives-icons.mjs +35 -45
  146. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  147. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +13 -16
  148. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  149. package/fesm2022/taiga-ui-core-directives-number-format.mjs +32 -20
  150. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  151. package/fesm2022/taiga-ui-core-directives-popup.mjs +20 -27
  152. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  153. package/fesm2022/taiga-ui-core-directives-title.mjs +13 -19
  154. package/fesm2022/taiga-ui-core-directives-title.mjs.map +1 -1
  155. package/fesm2022/taiga-ui-core-directives.mjs +1 -1
  156. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +3 -4
  157. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
  158. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +3 -4
  159. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
  160. package/fesm2022/taiga-ui-core-pipes-flag.mjs +3 -4
  161. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
  162. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +3 -4
  163. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
  164. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +21 -15
  165. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  166. package/fesm2022/taiga-ui-core-pipes-initials.mjs +3 -4
  167. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
  168. package/fesm2022/taiga-ui-core-pipes-month.mjs +5 -5
  169. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
  170. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +3 -4
  171. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
  172. package/fesm2022/taiga-ui-core-pipes.mjs +0 -1
  173. package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
  174. package/fesm2022/taiga-ui-core-services.mjs +18 -18
  175. package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
  176. package/fesm2022/taiga-ui-core-tokens.mjs +45 -48
  177. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  178. package/fesm2022/taiga-ui-core-utils-dom.mjs.map +1 -1
  179. package/fesm2022/taiga-ui-core-utils-format.mjs +1 -0
  180. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  181. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +50 -4
  182. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  183. package/package.json +68 -169
  184. package/pipes/format-number/format-number.pipe.d.ts +6 -4
  185. package/pipes/index.d.ts +0 -1
  186. package/styles/components/appearance.less +6 -0
  187. package/styles/components/button.less +0 -2
  188. package/styles/components/icon.less +32 -22
  189. package/styles/components/icons.less +16 -12
  190. package/styles/components/link.less +2 -3
  191. package/styles/mixins/appearance.less +1 -1
  192. package/styles/mixins/mixins.less +1 -7
  193. package/styles/mixins/mixins.scss +1 -7
  194. package/styles/mixins/slider.less +21 -16
  195. package/styles/mixins/slider.scss +1 -2
  196. package/styles/theme/appearance/outline.less +1 -2
  197. package/styles/theme/appearance/textfield.less +1 -2
  198. package/styles/theme/variables.less +2 -4
  199. package/tokens/common-icons.d.ts +1 -3
  200. package/tokens/date-format.d.ts +2 -3
  201. package/tokens/i18n.d.ts +7 -7
  202. package/tokens/icon-resolver.d.ts +1 -5
  203. package/tokens/index.d.ts +1 -0
  204. package/tokens/number-format.d.ts +2 -3
  205. package/tokens/validation-errors.d.ts +4 -0
  206. package/types/index.d.ts +0 -2
  207. package/utils/miscellaneous/index.d.ts +1 -0
  208. package/utils/miscellaneous/provide-taiga.d.ts +13 -0
  209. package/components/alert/alert.component.d.ts +0 -15
  210. package/components/alert/alert.directive.d.ts +0 -7
  211. package/components/alert/alert.interfaces.d.ts +0 -12
  212. package/components/alert/alert.service.d.ts +0 -7
  213. package/components/alert/alert.tokens.d.ts +0 -12
  214. package/components/alert/alerts.component.d.ts +0 -12
  215. package/components/alert/index.d.ts +0 -6
  216. package/components/data-list/data-list.directive.d.ts +0 -7
  217. package/components/data-list/option/option-legacy.component.d.ts +0 -24
  218. package/components/dialog/dialog.interfaces.d.ts +0 -34
  219. package/components/dialog/dialog.tokens.d.ts +0 -15
  220. package/components/dialog/dialogs.component.d.ts +0 -8
  221. package/components/expand/expand-content.directive.d.ts +0 -8
  222. package/components/expand/expand.d.ts +0 -6
  223. package/components/fullscreen/fullscreen.component.d.ts +0 -14
  224. package/components/fullscreen/index.d.ts +0 -1
  225. package/components/textfield/select.directive.d.ts +0 -19
  226. package/components/textfield/textfield-dropdown.directive.d.ts +0 -16
  227. package/directives/dropdown/dropdown-portal.directive.d.ts +0 -14
  228. package/directives/dropdown/dropdown.service.d.ts +0 -6
  229. package/directives/dropdown/dropdowns.component.d.ts +0 -9
  230. package/directives/hint/hint.service.d.ts +0 -13
  231. package/directives/hint/hints.component.d.ts +0 -12
  232. package/directives/surface/index.d.ts +0 -1
  233. package/directives/surface/surface.directive.d.ts +0 -8
  234. package/esm2022/animations/animations.mjs +0 -363
  235. package/esm2022/animations/index.mjs +0 -2
  236. package/esm2022/animations/taiga-ui-core-animations.mjs +0 -5
  237. package/esm2022/classes/accessors.mjs +0 -31
  238. package/esm2022/classes/driver.mjs +0 -36
  239. package/esm2022/classes/index.mjs +0 -4
  240. package/esm2022/classes/taiga-ui-core-classes.mjs +0 -5
  241. package/esm2022/classes/vehicle.mjs +0 -7
  242. package/esm2022/components/alert/alert.component.mjs +0 -43
  243. package/esm2022/components/alert/alert.directive.mjs +0 -21
  244. package/esm2022/components/alert/alert.interfaces.mjs +0 -2
  245. package/esm2022/components/alert/alert.service.mjs +0 -18
  246. package/esm2022/components/alert/alert.tokens.mjs +0 -51
  247. package/esm2022/components/alert/alerts.component.mjs +0 -33
  248. package/esm2022/components/alert/index.mjs +0 -6
  249. package/esm2022/components/alert/taiga-ui-core-components-alert.mjs +0 -5
  250. package/esm2022/components/button/button.directive.mjs +0 -43
  251. package/esm2022/components/button/button.options.mjs +0 -7
  252. package/esm2022/components/button/index.mjs +0 -3
  253. package/esm2022/components/button/taiga-ui-core-components-button.mjs +0 -5
  254. package/esm2022/components/calendar/calendar-sheet.component.mjs +0 -168
  255. package/esm2022/components/calendar/calendar-sheet.options.mjs +0 -12
  256. package/esm2022/components/calendar/calendar-spin.component.mjs +0 -53
  257. package/esm2022/components/calendar/calendar-year.component.mjs +0 -128
  258. package/esm2022/components/calendar/calendar.component.mjs +0 -147
  259. package/esm2022/components/calendar/index.mjs +0 -6
  260. package/esm2022/components/calendar/taiga-ui-core-components-calendar.mjs +0 -5
  261. package/esm2022/components/data-list/data-list.component.mjs +0 -139
  262. package/esm2022/components/data-list/data-list.directive.mjs +0 -19
  263. package/esm2022/components/data-list/data-list.mjs +0 -14
  264. package/esm2022/components/data-list/data-list.tokens.mjs +0 -18
  265. package/esm2022/components/data-list/index.mjs +0 -9
  266. package/esm2022/components/data-list/opt-group.directive.mjs +0 -21
  267. package/esm2022/components/data-list/option/option-content.mjs +0 -36
  268. package/esm2022/components/data-list/option/option-legacy.component.mjs +0 -90
  269. package/esm2022/components/data-list/option/option.directive.mjs +0 -109
  270. package/esm2022/components/data-list/taiga-ui-core-components-data-list.mjs +0 -5
  271. package/esm2022/components/dialog/dialog-close.service.mjs +0 -41
  272. package/esm2022/components/dialog/dialog.component.mjs +0 -63
  273. package/esm2022/components/dialog/dialog.directive.mjs +0 -21
  274. package/esm2022/components/dialog/dialog.factory.mjs +0 -15
  275. package/esm2022/components/dialog/dialog.interfaces.mjs +0 -2
  276. package/esm2022/components/dialog/dialog.service.mjs +0 -18
  277. package/esm2022/components/dialog/dialog.tokens.mjs +0 -33
  278. package/esm2022/components/dialog/dialogs.component.mjs +0 -29
  279. package/esm2022/components/dialog/index.mjs +0 -8
  280. package/esm2022/components/dialog/taiga-ui-core-components-dialog.mjs +0 -5
  281. package/esm2022/components/error/error.component.mjs +0 -34
  282. package/esm2022/components/error/index.mjs +0 -2
  283. package/esm2022/components/error/taiga-ui-core-components-error.mjs +0 -5
  284. package/esm2022/components/expand/expand-content.directive.mjs +0 -18
  285. package/esm2022/components/expand/expand.component.mjs +0 -124
  286. package/esm2022/components/expand/expand.mjs +0 -7
  287. package/esm2022/components/expand/index.mjs +0 -4
  288. package/esm2022/components/expand/taiga-ui-core-components-expand.mjs +0 -5
  289. package/esm2022/components/fullscreen/fullscreen.component.mjs +0 -60
  290. package/esm2022/components/fullscreen/index.mjs +0 -2
  291. package/esm2022/components/fullscreen/taiga-ui-core-components-fullscreen.mjs +0 -5
  292. package/esm2022/components/icon/icon.component.mjs +0 -44
  293. package/esm2022/components/icon/icon.pipe.mjs +0 -19
  294. package/esm2022/components/icon/index.mjs +0 -3
  295. package/esm2022/components/icon/taiga-ui-core-components-icon.mjs +0 -5
  296. package/esm2022/components/index.mjs +0 -18
  297. package/esm2022/components/label/index.mjs +0 -2
  298. package/esm2022/components/label/label.directive.mjs +0 -41
  299. package/esm2022/components/label/taiga-ui-core-components-label.mjs +0 -5
  300. package/esm2022/components/link/index.mjs +0 -3
  301. package/esm2022/components/link/link.directive.mjs +0 -47
  302. package/esm2022/components/link/link.options.mjs +0 -13
  303. package/esm2022/components/link/taiga-ui-core-components-link.mjs +0 -5
  304. package/esm2022/components/loader/index.mjs +0 -3
  305. package/esm2022/components/loader/loader.component.mjs +0 -46
  306. package/esm2022/components/loader/loader.options.mjs +0 -18
  307. package/esm2022/components/loader/taiga-ui-core-components-loader.mjs +0 -5
  308. package/esm2022/components/notification/index.mjs +0 -3
  309. package/esm2022/components/notification/notification.directive.mjs +0 -81
  310. package/esm2022/components/notification/notification.options.mjs +0 -23
  311. package/esm2022/components/notification/taiga-ui-core-components-notification.mjs +0 -5
  312. package/esm2022/components/root/index.mjs +0 -2
  313. package/esm2022/components/root/root.component.mjs +0 -85
  314. package/esm2022/components/root/taiga-ui-core-components-root.mjs +0 -5
  315. package/esm2022/components/scrollbar/index.mjs +0 -9
  316. package/esm2022/components/scrollbar/scroll-controls.component.mjs +0 -32
  317. package/esm2022/components/scrollbar/scroll-into-view.directive.mjs +0 -43
  318. package/esm2022/components/scrollbar/scroll-ref.directive.mjs +0 -19
  319. package/esm2022/components/scrollbar/scrollable.directive.mjs +0 -26
  320. package/esm2022/components/scrollbar/scrollbar.component.mjs +0 -72
  321. package/esm2022/components/scrollbar/scrollbar.directive.mjs +0 -93
  322. package/esm2022/components/scrollbar/scrollbar.options.mjs +0 -6
  323. package/esm2022/components/scrollbar/scrollbar.service.mjs +0 -46
  324. package/esm2022/components/scrollbar/taiga-ui-core-components-scrollbar.mjs +0 -5
  325. package/esm2022/components/spin-button/index.mjs +0 -2
  326. package/esm2022/components/spin-button/spin-button.component.mjs +0 -51
  327. package/esm2022/components/spin-button/taiga-ui-core-components-spin-button.mjs +0 -5
  328. package/esm2022/components/taiga-ui-core-components.mjs +0 -5
  329. package/esm2022/components/textfield/index.mjs +0 -16
  330. package/esm2022/components/textfield/select-like.directive.mjs +0 -42
  331. package/esm2022/components/textfield/select.directive.mjs +0 -64
  332. package/esm2022/components/textfield/taiga-ui-core-components-textfield.mjs +0 -5
  333. package/esm2022/components/textfield/textfield-accessor.mjs +0 -7
  334. package/esm2022/components/textfield/textfield-auxiliary.mjs +0 -7
  335. package/esm2022/components/textfield/textfield-content.directive.mjs +0 -22
  336. package/esm2022/components/textfield/textfield-dropdown.directive.mjs +0 -43
  337. package/esm2022/components/textfield/textfield-icon.mjs +0 -10
  338. package/esm2022/components/textfield/textfield-multi/textfield-item.component.mjs +0 -34
  339. package/esm2022/components/textfield/textfield-multi/textfield-multi.component.mjs +0 -137
  340. package/esm2022/components/textfield/textfield.component.mjs +0 -180
  341. package/esm2022/components/textfield/textfield.directive.mjs +0 -134
  342. package/esm2022/components/textfield/textfield.mjs +0 -19
  343. package/esm2022/components/textfield/textfield.options.mjs +0 -63
  344. package/esm2022/components/textfield/with-native-picker.directive.mjs +0 -24
  345. package/esm2022/directives/appearance/appearance.bindings.mjs +0 -15
  346. package/esm2022/directives/appearance/appearance.directive.mjs +0 -79
  347. package/esm2022/directives/appearance/appearance.options.mjs +0 -12
  348. package/esm2022/directives/appearance/index.mjs +0 -5
  349. package/esm2022/directives/appearance/taiga-ui-core-directives-appearance.mjs +0 -5
  350. package/esm2022/directives/appearance/with-appearance.mjs +0 -27
  351. package/esm2022/directives/date-format/date-format.directive.mjs +0 -31
  352. package/esm2022/directives/date-format/index.mjs +0 -2
  353. package/esm2022/directives/date-format/taiga-ui-core-directives-date-format.mjs +0 -5
  354. package/esm2022/directives/dropdown/dropdown-context.directive.mjs +0 -76
  355. package/esm2022/directives/dropdown/dropdown-hover.directive.mjs +0 -70
  356. package/esm2022/directives/dropdown/dropdown-hover.options.mjs +0 -17
  357. package/esm2022/directives/dropdown/dropdown-limit-width.mjs +0 -37
  358. package/esm2022/directives/dropdown/dropdown-manual.directive.mjs +0 -27
  359. package/esm2022/directives/dropdown/dropdown-open-legacy.directive.mjs +0 -33
  360. package/esm2022/directives/dropdown/dropdown-open.directive.mjs +0 -169
  361. package/esm2022/directives/dropdown/dropdown-options.directive.mjs +0 -73
  362. package/esm2022/directives/dropdown/dropdown-portal.directive.mjs +0 -34
  363. package/esm2022/directives/dropdown/dropdown-position-sided.directive.mjs +0 -69
  364. package/esm2022/directives/dropdown/dropdown-position.directive.mjs +0 -88
  365. package/esm2022/directives/dropdown/dropdown-selection.directive.mjs +0 -159
  366. package/esm2022/directives/dropdown/dropdown.bindings.mjs +0 -19
  367. package/esm2022/directives/dropdown/dropdown.component.mjs +0 -92
  368. package/esm2022/directives/dropdown/dropdown.directive.mjs +0 -110
  369. package/esm2022/directives/dropdown/dropdown.driver.mjs +0 -32
  370. package/esm2022/directives/dropdown/dropdown.mjs +0 -29
  371. package/esm2022/directives/dropdown/dropdown.providers.mjs +0 -10
  372. package/esm2022/directives/dropdown/dropdown.service.mjs +0 -15
  373. package/esm2022/directives/dropdown/dropdowns.component.mjs +0 -24
  374. package/esm2022/directives/dropdown/index.mjs +0 -22
  375. package/esm2022/directives/dropdown/taiga-ui-core-directives-dropdown.mjs +0 -5
  376. package/esm2022/directives/dropdown/with-dropdown-open.directive.mjs +0 -23
  377. package/esm2022/directives/group/group.directive.mjs +0 -53
  378. package/esm2022/directives/group/group.options.mjs +0 -15
  379. package/esm2022/directives/group/index.mjs +0 -3
  380. package/esm2022/directives/group/taiga-ui-core-directives-group.mjs +0 -5
  381. package/esm2022/directives/hint/hint-describe.directive.mjs +0 -50
  382. package/esm2022/directives/hint/hint-driver.directive.mjs +0 -19
  383. package/esm2022/directives/hint/hint-host.directive.mjs +0 -27
  384. package/esm2022/directives/hint/hint-hover.directive.mjs +0 -59
  385. package/esm2022/directives/hint/hint-manual.directive.mjs +0 -33
  386. package/esm2022/directives/hint/hint-options.directive.mjs +0 -86
  387. package/esm2022/directives/hint/hint-overflow.directive.mjs +0 -38
  388. package/esm2022/directives/hint/hint-pointer.directive.mjs +0 -33
  389. package/esm2022/directives/hint/hint-position.directive.mjs +0 -112
  390. package/esm2022/directives/hint/hint-unstyled.component.mjs +0 -39
  391. package/esm2022/directives/hint/hint.component.mjs +0 -127
  392. package/esm2022/directives/hint/hint.directive.mjs +0 -99
  393. package/esm2022/directives/hint/hint.mjs +0 -27
  394. package/esm2022/directives/hint/hint.providers.mjs +0 -9
  395. package/esm2022/directives/hint/hint.service.mjs +0 -29
  396. package/esm2022/directives/hint/hints.component.mjs +0 -34
  397. package/esm2022/directives/hint/index.mjs +0 -17
  398. package/esm2022/directives/hint/taiga-ui-core-directives-hint.mjs +0 -5
  399. package/esm2022/directives/icons/icons.directive.mjs +0 -66
  400. package/esm2022/directives/icons/index.mjs +0 -3
  401. package/esm2022/directives/icons/taiga-ui-core-directives-icons.mjs +0 -5
  402. package/esm2022/directives/icons/with-icons.mjs +0 -22
  403. package/esm2022/directives/index.mjs +0 -12
  404. package/esm2022/directives/items-handlers/index.mjs +0 -4
  405. package/esm2022/directives/items-handlers/items-handlers.directive.mjs +0 -63
  406. package/esm2022/directives/items-handlers/items-handlers.tokens.mjs +0 -27
  407. package/esm2022/directives/items-handlers/items-handlers.validator.mjs +0 -32
  408. package/esm2022/directives/items-handlers/taiga-ui-core-directives-items-handlers.mjs +0 -5
  409. package/esm2022/directives/number-format/index.mjs +0 -2
  410. package/esm2022/directives/number-format/number-format.directive.mjs +0 -31
  411. package/esm2022/directives/number-format/taiga-ui-core-directives-number-format.mjs +0 -5
  412. package/esm2022/directives/popup/index.mjs +0 -4
  413. package/esm2022/directives/popup/popup.directive.mjs +0 -31
  414. package/esm2022/directives/popup/popup.service.mjs +0 -15
  415. package/esm2022/directives/popup/popups.component.mjs +0 -20
  416. package/esm2022/directives/popup/taiga-ui-core-directives-popup.mjs +0 -5
  417. package/esm2022/directives/surface/index.mjs +0 -2
  418. package/esm2022/directives/surface/surface.directive.mjs +0 -44
  419. package/esm2022/directives/surface/taiga-ui-core-directives-surface.mjs +0 -5
  420. package/esm2022/directives/taiga-ui-core-directives.mjs +0 -5
  421. package/esm2022/directives/title/index.mjs +0 -2
  422. package/esm2022/directives/title/taiga-ui-core-directives-title.mjs +0 -5
  423. package/esm2022/directives/title/title.directive.mjs +0 -37
  424. package/esm2022/index.mjs +0 -9
  425. package/esm2022/pipes/auto-color/auto-color.pipe.mjs +0 -19
  426. package/esm2022/pipes/auto-color/index.mjs +0 -2
  427. package/esm2022/pipes/auto-color/taiga-ui-core-pipes-auto-color.mjs +0 -5
  428. package/esm2022/pipes/calendar-sheet/calendar-sheet.pipe.mjs +0 -54
  429. package/esm2022/pipes/calendar-sheet/index.mjs +0 -2
  430. package/esm2022/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.mjs +0 -5
  431. package/esm2022/pipes/calendar-sheet/utils.mjs +0 -36
  432. package/esm2022/pipes/fallback-src/fallback-src.pipe.mjs +0 -23
  433. package/esm2022/pipes/fallback-src/index.mjs +0 -2
  434. package/esm2022/pipes/fallback-src/taiga-ui-core-pipes-fallback-src.mjs +0 -5
  435. package/esm2022/pipes/flag/flag.pipe.mjs +0 -26
  436. package/esm2022/pipes/flag/index.mjs +0 -2
  437. package/esm2022/pipes/flag/taiga-ui-core-pipes-flag.mjs +0 -5
  438. package/esm2022/pipes/format-date/format-date.pipe.mjs +0 -22
  439. package/esm2022/pipes/format-date/index.mjs +0 -2
  440. package/esm2022/pipes/format-date/taiga-ui-core-pipes-format-date.mjs +0 -5
  441. package/esm2022/pipes/format-number/format-number.pipe.mjs +0 -36
  442. package/esm2022/pipes/format-number/index.mjs +0 -2
  443. package/esm2022/pipes/format-number/taiga-ui-core-pipes-format-number.mjs +0 -5
  444. package/esm2022/pipes/index.mjs +0 -10
  445. package/esm2022/pipes/initials/index.mjs +0 -2
  446. package/esm2022/pipes/initials/initials.pipe.mjs +0 -23
  447. package/esm2022/pipes/initials/taiga-ui-core-pipes-initials.mjs +0 -5
  448. package/esm2022/pipes/month/index.mjs +0 -2
  449. package/esm2022/pipes/month/month.pipe.mjs +0 -23
  450. package/esm2022/pipes/month/taiga-ui-core-pipes-month.mjs +0 -5
  451. package/esm2022/pipes/order-week-days/index.mjs +0 -2
  452. package/esm2022/pipes/order-week-days/order-week-days.pipe.mjs +0 -30
  453. package/esm2022/pipes/order-week-days/taiga-ui-core-pipes-order-week-days.mjs +0 -5
  454. package/esm2022/pipes/taiga-ui-core-pipes.mjs +0 -5
  455. package/esm2022/services/breakpoint.service.mjs +0 -31
  456. package/esm2022/services/dark-theme.service.mjs +0 -24
  457. package/esm2022/services/format-date.service.mjs +0 -24
  458. package/esm2022/services/index.mjs +0 -6
  459. package/esm2022/services/position.service.mjs +0 -26
  460. package/esm2022/services/taiga-ui-core-services.mjs +0 -5
  461. package/esm2022/services/visual-viewport.service.mjs +0 -29
  462. package/esm2022/taiga-ui-core.mjs +0 -5
  463. package/esm2022/tokens/animations-speed.mjs +0 -9
  464. package/esm2022/tokens/assets-path.mjs +0 -11
  465. package/esm2022/tokens/auxiliary.mjs +0 -9
  466. package/esm2022/tokens/common-icons.mjs +0 -18
  467. package/esm2022/tokens/dark-mode.mjs +0 -41
  468. package/esm2022/tokens/date-format.mjs +0 -20
  469. package/esm2022/tokens/day-type-handler.mjs +0 -8
  470. package/esm2022/tokens/first-day-of-week.mjs +0 -9
  471. package/esm2022/tokens/i18n.mjs +0 -45
  472. package/esm2022/tokens/icon-resolver.mjs +0 -44
  473. package/esm2022/tokens/icon.mjs +0 -8
  474. package/esm2022/tokens/icons.mjs +0 -21
  475. package/esm2022/tokens/index.mjs +0 -21
  476. package/esm2022/tokens/media.mjs +0 -12
  477. package/esm2022/tokens/number-format.mjs +0 -24
  478. package/esm2022/tokens/reduced-motion.mjs +0 -7
  479. package/esm2022/tokens/scroll-ref.mjs +0 -6
  480. package/esm2022/tokens/selection-stream.mjs +0 -14
  481. package/esm2022/tokens/spin-icons.mjs +0 -8
  482. package/esm2022/tokens/taiga-ui-core-tokens.mjs +0 -5
  483. package/esm2022/tokens/theme.mjs +0 -5
  484. package/esm2022/tokens/viewport.mjs +0 -35
  485. package/esm2022/types/direction.mjs +0 -2
  486. package/esm2022/types/index.mjs +0 -2
  487. package/esm2022/types/interactive-state.mjs +0 -2
  488. package/esm2022/types/orientation.mjs +0 -2
  489. package/esm2022/types/point.mjs +0 -2
  490. package/esm2022/types/portal-item.mjs +0 -2
  491. package/esm2022/types/range-state.mjs +0 -2
  492. package/esm2022/types/size.mjs +0 -13
  493. package/esm2022/types/taiga-ui-core-types.mjs +0 -5
  494. package/esm2022/types/value-content-context.mjs +0 -2
  495. package/esm2022/utils/dom/check-fixed-position.mjs +0 -9
  496. package/esm2022/utils/dom/get-viewport.mjs +0 -24
  497. package/esm2022/utils/dom/get-word-range.mjs +0 -51
  498. package/esm2022/utils/dom/index.mjs +0 -4
  499. package/esm2022/utils/dom/taiga-ui-core-utils-dom.mjs +0 -5
  500. package/esm2022/utils/format/format-number.mjs +0 -47
  501. package/esm2022/utils/format/get-fractional-part-padded.mjs +0 -16
  502. package/esm2022/utils/format/index.mjs +0 -5
  503. package/esm2022/utils/format/number-to-string-without-exp.mjs +0 -18
  504. package/esm2022/utils/format/string-hash-to-hsl.mjs +0 -21
  505. package/esm2022/utils/format/taiga-ui-core-utils-format.mjs +0 -5
  506. package/esm2022/utils/index.mjs +0 -4
  507. package/esm2022/utils/miscellaneous/font-scaling.mjs +0 -11
  508. package/esm2022/utils/miscellaneous/index.mjs +0 -7
  509. package/esm2022/utils/miscellaneous/is-editing-key.mjs +0 -18
  510. package/esm2022/utils/miscellaneous/is-obscured.mjs +0 -8
  511. package/esm2022/utils/miscellaneous/override-options.mjs +0 -11
  512. package/esm2022/utils/miscellaneous/size-bigger.mjs +0 -19
  513. package/esm2022/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.mjs +0 -5
  514. package/esm2022/utils/miscellaneous/to-animation-options.mjs +0 -16
  515. package/esm2022/utils/taiga-ui-core-utils.mjs +0 -5
  516. package/fesm2022/taiga-ui-core-components-alert.mjs +0 -149
  517. package/fesm2022/taiga-ui-core-components-alert.mjs.map +0 -1
  518. package/fesm2022/taiga-ui-core-components-fullscreen.mjs +0 -66
  519. package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +0 -1
  520. package/fesm2022/taiga-ui-core-directives-surface.mjs +0 -50
  521. package/fesm2022/taiga-ui-core-directives-surface.mjs.map +0 -1
  522. package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs +0 -29
  523. package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs.map +0 -1
  524. package/pipes/fallback-src/fallback-src.pipe.d.ts +0 -9
  525. package/pipes/fallback-src/index.d.ts +0 -1
  526. package/types/portal-item.d.ts +0 -9
  527. package/types/value-content-context.d.ts +0 -4
@@ -1,168 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { AsyncPipe, NgFor, NgIf } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output, } from '@angular/core';
4
- import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
5
- import { TuiDay, TuiDayRange, TuiMonth } from '@taiga-ui/cdk/date-time';
6
- import { TuiHovered } from '@taiga-ui/cdk/directives/hovered';
7
- import { TuiLet } from '@taiga-ui/cdk/directives/let';
8
- import { TuiRepeatTimes } from '@taiga-ui/cdk/directives/repeat-times';
9
- import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
10
- import { tuiNullableSame, tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
11
- import { TuiCalendarSheetPipe, TuiOrderWeekDaysPipe } from '@taiga-ui/core/pipes';
12
- import { TUI_DAY_TYPE_HANDLER, TUI_SHORT_WEEK_DAYS } from '@taiga-ui/core/tokens';
13
- import { TUI_CALENDAR_SHEET_OPTIONS } from './calendar-sheet.options';
14
- import * as i0 from "@angular/core";
15
- class TuiCalendarSheet {
16
- constructor() {
17
- this.options = inject(TUI_CALENDAR_SHEET_OPTIONS);
18
- this.today = TuiDay.currentLocal();
19
- this.unorderedWeekDays$ = inject(TUI_SHORT_WEEK_DAYS);
20
- this.dayTypeHandler = inject(TUI_DAY_TYPE_HANDLER);
21
- this.month = TuiMonth.currentLocal();
22
- this.disabledItemHandler = TUI_FALSE_HANDLER;
23
- this.markerHandler = null;
24
- this.value = null;
25
- this.hoveredItem = null;
26
- this.showAdjacent = true;
27
- /**
28
- * @deprecated use static DI options instead
29
- * ```
30
- * tuiCalendarSheetOptionsProvider({rangeMode: true})
31
- * ```
32
- * TODO(v5): delete it
33
- */
34
- this.single = true;
35
- this.hoveredItemChange = new EventEmitter();
36
- this.dayClick = new EventEmitter();
37
- this.toMarkers = (day, today, range, markerHandler) => {
38
- if (today || ['active', 'end', 'start'].includes(range || '')) {
39
- return null;
40
- }
41
- const markers = markerHandler?.(day);
42
- return markers?.length ? markers : null;
43
- };
44
- }
45
- /**
46
- * @deprecated TODO(v5): delete it. It is used nowhere except unit tests
47
- */
48
- itemIsInterval(day) {
49
- const { value, hoveredItem } = this;
50
- if (!(value instanceof TuiDayRange)) {
51
- return false;
52
- }
53
- if (!value.isSingleDay) {
54
- return value.from.daySameOrBefore(day) && value.to.dayAfter(day);
55
- }
56
- if (hoveredItem === null) {
57
- return false;
58
- }
59
- const range = TuiDayRange.sort(value.from, hoveredItem);
60
- return range.from.daySameOrBefore(day) && range.to.dayAfter(day);
61
- }
62
- onItemHovered(item) {
63
- this.updateHoveredItem(item || null);
64
- }
65
- getItemRange(item) {
66
- const { value, hoveredItem } = this;
67
- if (!value) {
68
- return null;
69
- }
70
- if (value instanceof TuiDay && !this.computedRangeMode) {
71
- return value.daySame(item) ? 'active' : null;
72
- }
73
- if (value instanceof TuiDayRange && value.isSingleDay) {
74
- return value.from.daySame(item) ? 'active' : null;
75
- }
76
- if (!(value instanceof TuiDay) && !(value instanceof TuiDayRange)) {
77
- return value.find((day) => day.daySame(item)) ? 'active' : null;
78
- }
79
- const range = this.getRange(value, hoveredItem);
80
- if (range.isSingleDay && range.from.daySame(item)) {
81
- return 'active';
82
- }
83
- if (range.from.daySame(item)) {
84
- return 'start';
85
- }
86
- if (range.to.daySame(item)) {
87
- return 'end';
88
- }
89
- return range.from.dayBefore(item) && range.to.dayAfter(item) ? 'middle' : null;
90
- }
91
- get computedRangeMode() {
92
- return !this.single || this.options.rangeMode;
93
- }
94
- get isRangePicking() {
95
- return this.computedRangeMode
96
- ? this.value instanceof TuiDay
97
- : /**
98
- * Only for backward compatibility!
99
- * TODO(v5): replace with `this.options.rangeMode && this.value instanceof TuiDay`
100
- */
101
- this.value instanceof TuiDayRange && this.value.isSingleDay;
102
- }
103
- itemIsToday(item) {
104
- return this.today.daySame(item);
105
- }
106
- itemIsUnavailable(item) {
107
- return !this.month.monthSame(item);
108
- }
109
- onItemClick(item) {
110
- this.dayClick.emit(item);
111
- }
112
- getRange(value, hoveredItem) {
113
- if (value instanceof TuiDay) {
114
- return TuiDayRange.sort(value, hoveredItem ?? value);
115
- }
116
- return value.isSingleDay
117
- ? TuiDayRange.sort(value.from, hoveredItem ?? value.to)
118
- : value;
119
- }
120
- updateHoveredItem(day) {
121
- if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {
122
- return;
123
- }
124
- this.hoveredItem = day;
125
- this.hoveredItemChange.emit(day);
126
- }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarSheet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendarSheet, isStandalone: true, selector: "tui-calendar-sheet", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", value: "value", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", single: "single" }, outputs: { hoveredItemChange: "hoveredItemChange", dayClick: "dayClick" }, host: { properties: { "class._picking": "isRangePicking" } }, ngImport: i0, template: "<div class=\"t-row t-row_weekday\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n <div\n *ngIf=\"item && (!itemIsUnavailable(item) || showAdjacent)\"\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n <div\n *ngIf=\"\n item\n | tuiMapper\n : toMarkers\n : itemIsToday(item)\n : getItemRange(item)\n : markerHandler as markers\n \"\n class=\"t-dots\"\n >\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n <div\n *ngIf=\"markers.length > 1\"\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:calc(100% / 7)}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-block-start:-.5rem;padding-block-end:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TuiCalendarSheetPipe, name: "tuiCalendarSheet" }, { kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "pipe", type: TuiOrderWeekDaysPipe, name: "tuiOrderWeekDays" }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
- }
130
- __decorate([
131
- tuiPure
132
- ], TuiCalendarSheet.prototype, "getRange", null);
133
- export { TuiCalendarSheet };
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarSheet, decorators: [{
135
- type: Component,
136
- args: [{ standalone: true, selector: 'tui-calendar-sheet', imports: [
137
- AsyncPipe,
138
- NgFor,
139
- NgIf,
140
- TuiCalendarSheetPipe,
141
- TuiHovered,
142
- TuiLet,
143
- TuiMapperPipe,
144
- TuiOrderWeekDaysPipe,
145
- TuiRepeatTimes,
146
- ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
147
- '[class._picking]': 'isRangePicking',
148
- }, template: "<div class=\"t-row t-row_weekday\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n <div\n *ngIf=\"item && (!itemIsUnavailable(item) || showAdjacent)\"\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n <div\n *ngIf=\"\n item\n | tuiMapper\n : toMarkers\n : itemIsToday(item)\n : getItemRange(item)\n : markerHandler as markers\n \"\n class=\"t-dots\"\n >\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n <div\n *ngIf=\"markers.length > 1\"\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:calc(100% / 7)}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-block-start:-.5rem;padding-block-end:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"] }]
149
- }], propDecorators: { month: [{
150
- type: Input
151
- }], disabledItemHandler: [{
152
- type: Input
153
- }], markerHandler: [{
154
- type: Input
155
- }], value: [{
156
- type: Input
157
- }], hoveredItem: [{
158
- type: Input
159
- }], showAdjacent: [{
160
- type: Input
161
- }], single: [{
162
- type: Input
163
- }], hoveredItemChange: [{
164
- type: Output
165
- }], dayClick: [{
166
- type: Output
167
- }], getRange: [] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci1zaGVldC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFDLG9CQUFvQixFQUFFLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUFDLG9CQUFvQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFaEYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMEJB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LENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBdEtRLGdCQUFnQjttR0FBaEIsZ0JBQWdCLDJaQzdDN0IseXdFQXNEQSxrb0lEMUJRLFNBQVMsOENBQ1QsS0FBSyxtSEFDTCxJQUFJLHdGQUNKLG9CQUFvQix5REFDcEIsVUFBVSw4RkFDVixNQUFNLG9FQUNOLGFBQWEsNkNBQ2Isb0JBQW9CLHlEQUNwQixjQUFjOztBQTJKVjtJQURQLE9BQU87Z0RBWVA7U0E3SlEsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBckI1QixTQUFTO2lDQUNNLElBQUksWUFDTixvQkFBb0IsV0FDckI7d0JBQ0wsU0FBUzt3QkFDVCxLQUFLO3dCQUNMLElBQUk7d0JBQ0osb0JBQW9CO3dCQUNwQixVQUFVO3dCQUNWLE1BQU07d0JBQ04sYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGNBQWM7cUJBQ2pCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLGtCQUFrQixFQUFFLGdCQUFnQjtxQkFDdkM7OEJBVU0sS0FBSztzQkFEWCxLQUFLO2dCQUlDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBV0MsTUFBTTtzQkFEWixLQUFLO2dCQUlVLGlCQUFpQjtzQkFEaEMsTUFBTTtnQkFJUyxRQUFRO3NCQUR2QixNQUFNO2dCQTRHQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nRm9yLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfRkFMU0VfSEFORExFUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlEYXksIFR1aURheVJhbmdlLCBUdWlNb250aH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtUdWlIb3ZlcmVkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvaG92ZXJlZCc7XG5pbXBvcnQge1R1aUxldH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2xldCc7XG5pbXBvcnQge1R1aVJlcGVhdFRpbWVzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvcmVwZWF0LXRpbWVzJztcbmltcG9ydCB7VHVpTWFwcGVyUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9waXBlcy9tYXBwZXInO1xuaW1wb3J0IHt0eXBlIFR1aUJvb2xlYW5IYW5kbGVyLCB0eXBlIFR1aUhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlOdWxsYWJsZVNhbWUsIHR1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aUNhbGVuZGFyU2hlZXRQaXBlLCBUdWlPcmRlcldlZWtEYXlzUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvcGlwZXMnO1xuaW1wb3J0IHtUVUlfREFZX1RZUEVfSEFORExFUiwgVFVJX1NIT1JUX1dFRUtfREFZU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcblxuaW1wb3J0IHtUVUlfQ0FMRU5EQVJfU0hFRVRfT1BUSU9OU30gZnJvbSAnLi9jYWxlbmRhci1zaGVldC5vcHRpb25zJztcblxuZXhwb3J0IHR5cGUgVHVpTWFya2VySGFuZGxlciA9IFR1aUhhbmRsZXI8VHVpRGF5LCBbXSB8IFtzdHJpbmcsIHN0cmluZ10gfCBbc3RyaW5nXT47XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktY2FsZW5kYXItc2hlZXQnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgTmdJZixcbiAgICAgICAgVHVpQ2FsZW5kYXJTaGVldFBpcGUsXG4gICAgICAgIFR1aUhvdmVyZWQsXG4gICAgICAgIFR1aUxldCxcbiAgICAgICAgVHVpTWFwcGVyUGlwZSxcbiAgICAgICAgVHVpT3JkZXJXZWVrRGF5c1BpcGUsXG4gICAgICAgIFR1aVJlcGVhdFRpbWVzLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLXNoZWV0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLXNoZWV0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuX3BpY2tpbmddJzogJ2lzUmFuZ2VQaWNraW5nJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYWxlbmRhclNoZWV0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0NBTEVOREFSX1NIRUVUX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9kYXkgPSBUdWlEYXkuY3VycmVudExvY2FsKCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdW5vcmRlcmVkV2Vla0RheXMkID0gaW5qZWN0KFRVSV9TSE9SVF9XRUVLX0RBWVMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkYXlUeXBlSGFuZGxlciA9IGluamVjdChUVUlfREFZX1RZUEVfSEFORExFUik7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb250aDogVHVpTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBUVUlfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlOiBUdWlEYXkgfCBUdWlEYXlSYW5nZSB8IHJlYWRvbmx5IFR1aURheVtdIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBob3ZlcmVkSXRlbTogVHVpRGF5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93QWRqYWNlbnQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIHN0YXRpYyBESSBvcHRpb25zIGluc3RlYWRcbiAgICAgKiBgYGBcbiAgICAgKiB0dWlDYWxlbmRhclNoZWV0T3B0aW9uc1Byb3ZpZGVyKHtyYW5nZU1vZGU6IHRydWV9KVxuICAgICAqIGBgYFxuICAgICAqIFRPRE8odjUpOiBkZWxldGUgaXRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaW5nbGUgPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGhvdmVyZWRJdGVtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlEYXkgfCBudWxsPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGRheUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlEYXk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBUT0RPKHY1KTogZGVsZXRlIGl0LiBJdCBpcyB1c2VkIG5vd2hlcmUgZXhjZXB0IHVuaXQgdGVzdHNcbiAgICAgKi9cbiAgICBwdWJsaWMgaXRlbUlzSW50ZXJ2YWwoZGF5OiBUdWlEYXkpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgVHVpRGF5UmFuZ2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlLmlzU2luZ2xlRGF5KSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuZnJvbS5kYXlTYW1lT3JCZWZvcmUoZGF5KSAmJiB2YWx1ZS50by5kYXlBZnRlcihkYXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdmVyZWRJdGVtID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByYW5nZSA9IFR1aURheVJhbmdlLnNvcnQodmFsdWUuZnJvbSwgaG92ZXJlZEl0ZW0pO1xuXG4gICAgICAgIHJldHVybiByYW5nZS5mcm9tLmRheVNhbWVPckJlZm9yZShkYXkpICYmIHJhbmdlLnRvLmRheUFmdGVyKGRheSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSXRlbUhvdmVyZWQoaXRlbTogVHVpRGF5IHwgZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkSXRlbShpdGVtIHx8IG51bGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtUmFuZ2UoaXRlbTogVHVpRGF5KTogJ2FjdGl2ZScgfCAnZW5kJyB8ICdtaWRkbGUnIHwgJ3N0YXJ0JyB8IG51bGwge1xuICAgICAgICBjb25zdCB7dmFsdWUsIGhvdmVyZWRJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUdWlEYXkgJiYgIXRoaXMuY29tcHV0ZWRSYW5nZU1vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5kYXlTYW1lKGl0ZW0pID8gJ2FjdGl2ZScgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVHVpRGF5UmFuZ2UgJiYgdmFsdWUuaXNTaW5nbGVEYXkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5mcm9tLmRheVNhbWUoaXRlbSkgPyAnYWN0aXZlJyA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIFR1aURheSkgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIFR1aURheVJhbmdlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmZpbmQoKGRheSkgPT4gZGF5LmRheVNhbWUoaXRlbSkpID8gJ2FjdGl2ZScgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmFuZ2UgPSB0aGlzLmdldFJhbmdlKHZhbHVlLCBob3ZlcmVkSXRlbSk7XG5cbiAgICAgICAgaWYgKHJhbmdlLmlzU2luZ2xlRGF5ICYmIHJhbmdlLmZyb20uZGF5U2FtZShpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuICdhY3RpdmUnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJhbmdlLmZyb20uZGF5U2FtZShpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuICdzdGFydCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmFuZ2UudG8uZGF5U2FtZShpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuICdlbmQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJhbmdlLmZyb20uZGF5QmVmb3JlKGl0ZW0pICYmIHJhbmdlLnRvLmRheUFmdGVyKGl0ZW0pID8gJ21pZGRsZScgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRSYW5nZU1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5zaW5nbGUgfHwgdGhpcy5vcHRpb25zLnJhbmdlTW9kZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlzUmFuZ2VQaWNraW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZFJhbmdlTW9kZVxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlIGluc3RhbmNlb2YgVHVpRGF5XG4gICAgICAgICAgICA6IC8qKlxuICAgICAgICAgICAgICAgKiBPbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IVxuICAgICAgICAgICAgICAgKiBUT0RPKHY1KTogcmVwbGFjZSB3aXRoIGB0aGlzLm9wdGlvbnMucmFuZ2VNb2RlICYmIHRoaXMudmFsdWUgaW5zdGFuY2VvZiBUdWlEYXlgXG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlIGluc3RhbmNlb2YgVHVpRGF5UmFuZ2UgJiYgdGhpcy52YWx1ZS5pc1NpbmdsZURheTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9NYXJrZXJzID0gKFxuICAgICAgICBkYXk6IFR1aURheSxcbiAgICAgICAgdG9kYXk6IGJvb2xlYW4sXG4gICAgICAgIHJhbmdlOiBzdHJpbmcgfCBudWxsLFxuICAgICAgICBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyIHwgbnVsbCxcbiAgICApOiBbc3RyaW5nLCBzdHJpbmddIHwgW3N0cmluZ10gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKHRvZGF5IHx8IFsnYWN0aXZlJywgJ2VuZCcsICdzdGFydCddLmluY2x1ZGVzKHJhbmdlIHx8ICcnKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXJrZXJzID0gbWFya2VySGFuZGxlcj8uKGRheSk7XG5cbiAgICAgICAgcmV0dXJuIG1hcmtlcnM/Lmxlbmd0aCA/IG1hcmtlcnMgOiBudWxsO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgaXRlbUlzVG9kYXkoaXRlbTogVHVpRGF5KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvZGF5LmRheVNhbWUoaXRlbSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGl0ZW1Jc1VuYXZhaWxhYmxlKGl0ZW06IFR1aURheSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubW9udGgubW9udGhTYW1lKGl0ZW0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkl0ZW1DbGljayhpdGVtOiBUdWlEYXkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXlDbGljay5lbWl0KGl0ZW0pO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRSYW5nZShcbiAgICAgICAgdmFsdWU6IFR1aURheSB8IFR1aURheVJhbmdlLFxuICAgICAgICBob3ZlcmVkSXRlbTogVHVpRGF5IHwgbnVsbCxcbiAgICApOiBUdWlEYXlSYW5nZSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFR1aURheSkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aURheVJhbmdlLnNvcnQodmFsdWUsIGhvdmVyZWRJdGVtID8/IHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZS5pc1NpbmdsZURheVxuICAgICAgICAgICAgPyBUdWlEYXlSYW5nZS5zb3J0KHZhbHVlLmZyb20sIGhvdmVyZWRJdGVtID8/IHZhbHVlLnRvKVxuICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhvdmVyZWRJdGVtKGRheTogVHVpRGF5IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAodHVpTnVsbGFibGVTYW1lKHRoaXMuaG92ZXJlZEl0ZW0sIGRheSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaG92ZXJlZEl0ZW0gPSBkYXk7XG4gICAgICAgIHRoaXMuaG92ZXJlZEl0ZW1DaGFuZ2UuZW1pdChkYXkpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0LXJvdyB0LXJvd193ZWVrZGF5XCI+XG4gICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIHVub3JkZXJlZFdlZWtEYXlzJCB8IHR1aU9yZGVyV2Vla0RheXMgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwidC1jZWxsXCJcbiAgICAgICAgW3RleHRDb250ZW50XT1cImRheVwiXG4gICAgPjwvZGl2PlxuPC9kaXY+XG48ZGl2ICp0dWlMZXQ9XCJtb250aCB8IHR1aUNhbGVuZGFyU2hlZXQ6IHRydWUgYXMgc2hlZXRcIj5cbiAgICA8ZGl2XG4gICAgICAgICp0dWlSZXBlYXRUaW1lcz1cImxldCByb3dJbmRleCBvZiBzaGVldC5sZW5ndGhcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNhbGVuZGFyLXNoZWV0X19yb3dcIlxuICAgICAgICBjbGFzcz1cInQtcm93XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnR1aVJlcGVhdFRpbWVzPVwibGV0IGNvbEluZGV4IG9mIHNoZWV0W3Jvd0luZGV4XT8ubGVuZ3RoIHx8IDBcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnR1aUxldD1cInNoZWV0W3Jvd0luZGV4XT8uW2NvbEluZGV4XSBhcyBpdGVtXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0gJiYgKCFpdGVtSXNVbmF2YWlsYWJsZShpdGVtKSB8fCBzaG93QWRqYWNlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1jYWxlbmRhci1zaGVldF9fY2VsbFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jZWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1yYW5nZV09XCJnZXRJdGVtUmFuZ2UoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXR5cGVdPVwiaXRlbSB8IHR1aU1hcHBlcjogZGF5VHlwZUhhbmRsZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudC1jZWxsX2Rpc2FibGVkXT1cImRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudC1jZWxsX3RvZGF5XT1cIml0ZW1Jc1RvZGF5KGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnQtY2VsbF91bmF2YWlsYWJsZV09XCJpdGVtSXNVbmF2YWlsYWJsZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICh0dWlIb3ZlcmVkQ2hhbmdlKT1cIm9uSXRlbUhvdmVyZWQoJGV2ZW50ICYmIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZGF5IH19XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHR1aU1hcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b01hcmtlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbUlzVG9kYXkoaXRlbSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2V0SXRlbVJhbmdlKGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG1hcmtlckhhbmRsZXIgYXMgbWFya2Vyc1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1kb3RzXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1kb3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIm1hcmtlcnM/LlswXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtYXJrZXJzLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1kb3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIm1hcmtlcnM/LlsxXSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,12 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
3
- export const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS = {
4
- rangeMode: false,
5
- };
6
- export const TUI_CALENDAR_SHEET_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_CALENDAR_SHEET_OPTIONS' : '', {
7
- factory: () => TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,
8
- });
9
- export function tuiCalendarSheetOptionsProvider(options) {
10
- return tuiProvideOptions(TUI_CALENDAR_SHEET_OPTIONS, options, TUI_CALENDAR_SHEET_DEFAULT_OPTIONS);
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItc2hlZXQub3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci1zaGVldC5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBTXBFLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUE0QjtJQUN2RSxTQUFTLEVBQUUsS0FBSztDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQ3hELFNBQVMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDN0M7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsa0NBQWtDO0NBQ3BELENBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSwrQkFBK0IsQ0FDM0MsT0FBeUM7SUFFekMsT0FBTyxpQkFBaUIsQ0FDcEIsMEJBQTBCLEVBQzFCLE9BQU8sRUFDUCxrQ0FBa0MsQ0FDckMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VuLCB0eXBlIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpUHJvdmlkZU9wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpQ2FsZW5kYXJTaGVldE9wdGlvbnMge1xuICAgIHJlYWRvbmx5IHJhbmdlTW9kZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9DQUxFTkRBUl9TSEVFVF9ERUZBVUxUX09QVElPTlM6IFR1aUNhbGVuZGFyU2hlZXRPcHRpb25zID0ge1xuICAgIHJhbmdlTW9kZTogZmFsc2UsXG59O1xuXG5leHBvcnQgY29uc3QgVFVJX0NBTEVOREFSX1NIRUVUX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgbmdEZXZNb2RlID8gJ1RVSV9DQUxFTkRBUl9TSEVFVF9PUFRJT05TJyA6ICcnLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gVFVJX0NBTEVOREFSX1NIRUVUX0RFRkFVTFRfT1BUSU9OUyxcbiAgICB9LFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUNhbGVuZGFyU2hlZXRPcHRpb25zUHJvdmlkZXIoXG4gICAgb3B0aW9uczogUGFydGlhbDxUdWlDYWxlbmRhclNoZWV0T3B0aW9ucz4sXG4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHR1aVByb3ZpZGVPcHRpb25zKFxuICAgICAgICBUVUlfQ0FMRU5EQVJfU0hFRVRfT1BUSU9OUyxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgVFVJX0NBTEVOREFSX1NIRUVUX0RFRkFVTFRfT1BUSU9OUyxcbiAgICApO1xufVxuIl19
@@ -1,53 +0,0 @@
1
- import { AsyncPipe, NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
3
- import { TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth, } from '@taiga-ui/cdk/date-time';
4
- import { TuiLink } from '@taiga-ui/core/components/link';
5
- import { TuiSpinButton } from '@taiga-ui/core/components/spin-button';
6
- import { TuiMonthPipe } from '@taiga-ui/core/pipes';
7
- import * as i0 from "@angular/core";
8
- class TuiCalendarSpin {
9
- constructor() {
10
- this.value = TuiMonth.currentLocal();
11
- this.min = TUI_FIRST_DAY;
12
- this.max = TUI_LAST_DAY;
13
- this.valueChange = new EventEmitter();
14
- this.yearClick = new EventEmitter();
15
- }
16
- onYearClick() {
17
- this.yearClick.next(this.value);
18
- }
19
- append(date) {
20
- const value = this.value.append(date);
21
- if (this.min.monthSameOrAfter(value)) {
22
- this.updateValue(this.min);
23
- }
24
- else {
25
- this.updateValue(this.max.monthSameOrBefore(value) ? this.max : value);
26
- }
27
- }
28
- updateValue(value) {
29
- if (this.value.monthSame(value)) {
30
- return;
31
- }
32
- this.value = value;
33
- this.valueChange.emit(value);
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarSpin, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendarSpin, isStandalone: true, selector: "tui-calendar-spin", inputs: { value: "value", min: "min", max: "max" }, outputs: { valueChange: "valueChange", yearClick: "yearClick" }, ngImport: i0, template: "<tui-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"value.monthSameOrBefore(min)\"\n [rightDisabled]=\"value.monthSameOrAfter(max)\"\n (leftClick)=\"append({month: -1})\"\n (rightClick)=\"append({month: 1})\"\n>\n {{ value | tuiMonth | async }}\n <ng-container *ngIf=\"min.year === max.year; else button\">\n {{ value.formattedYear }}\n </ng-container>\n <ng-template #button>\n <button\n id=\"year-btn\"\n automation-id=\"tui-primitive-year-month-pagination__year-button\"\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ value.formattedYear }}\n </button>\n </ng-template>\n</tui-spin-button>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "pipe", type: TuiMonthPipe, name: "tuiMonth" }, { kind: "component", type: TuiSpinButton, selector: "tui-spin-button", inputs: ["focusable", "disabled", "leftDisabled", "rightDisabled"], outputs: ["leftClick", "rightClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
- }
38
- export { TuiCalendarSpin };
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarSpin, decorators: [{
40
- type: Component,
41
- args: [{ standalone: true, selector: 'tui-calendar-spin', imports: [AsyncPipe, NgIf, TuiLink, TuiMonthPipe, TuiSpinButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"value.monthSameOrBefore(min)\"\n [rightDisabled]=\"value.monthSameOrAfter(max)\"\n (leftClick)=\"append({month: -1})\"\n (rightClick)=\"append({month: 1})\"\n>\n {{ value | tuiMonth | async }}\n <ng-container *ngIf=\"min.year === max.year; else button\">\n {{ value.formattedYear }}\n </ng-container>\n <ng-template #button>\n <button\n id=\"year-btn\"\n automation-id=\"tui-primitive-year-month-pagination__year-button\"\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ value.formattedYear }}\n </button>\n </ng-template>\n</tui-spin-button>\n", styles: [":host{display:block}\n"] }]
42
- }], propDecorators: { value: [{
43
- type: Input
44
- }], min: [{
45
- type: Input
46
- }], max: [{
47
- type: Input
48
- }], valueChange: [{
49
- type: Output
50
- }], yearClick: [{
51
- type: Output
52
- }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItc3Bpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXItc3Bpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXItc3Bpbi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGFBQWEsRUFDYixZQUFZLEVBQ1osUUFBUSxHQUdYLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBRWxELE1BUWEsZUFBZTtJQVI1QjtRQVVXLFVBQUssR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHaEMsUUFBRyxHQUFhLGFBQWEsQ0FBQztRQUc5QixRQUFHLEdBQWEsWUFBWSxDQUFDO1FBR3BCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUczQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztLQXdCM0Q7SUF0QmEsV0FBVztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVTLE1BQU0sQ0FBQyxJQUFrQjtRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUU7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWU7UUFDL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQXJDUSxlQUFlO21HQUFmLGVBQWUsa01DM0I1Qix1d0JBd0JBLDJFREZjLFNBQVMsOENBQUUsSUFBSSw2RkFBRSxPQUFPLHVGQUFFLFlBQVksaURBQUUsYUFBYTs7U0FLdEQsZUFBZTs0RkFBZixlQUFlO2tCQVIzQixTQUFTO2lDQUNNLElBQUksWUFDTixtQkFBbUIsV0FDcEIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLG1CQUcvQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQUl4QyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJVSxXQUFXO3NCQUQxQixNQUFNO2dCQUlTLFNBQVM7c0JBRHhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlNb250aCxcbiAgICB0eXBlIFR1aU1vbnRoTGlrZSxcbiAgICB0eXBlIFR1aVllYXIsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7VHVpTGlua30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9saW5rJztcbmltcG9ydCB7VHVpU3BpbkJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zcGluLWJ1dHRvbic7XG5pbXBvcnQge1R1aU1vbnRoUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvcGlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWNhbGVuZGFyLXNwaW4nLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIE5nSWYsIFR1aUxpbmssIFR1aU1vbnRoUGlwZSwgVHVpU3BpbkJ1dHRvbl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLXNwaW4udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItc3Bpbi5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUNhbGVuZGFyU3BpbiB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWUgPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pbjogVHVpTW9udGggPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4OiBUdWlNb250aCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpTW9udGg+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgeWVhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlZZWFyPigpO1xuXG4gICAgcHJvdGVjdGVkIG9uWWVhckNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnllYXJDbGljay5uZXh0KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhcHBlbmQoZGF0ZTogVHVpTW9udGhMaWtlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZS5hcHBlbmQoZGF0ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMubWluLm1vbnRoU2FtZU9yQWZ0ZXIodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMubWluKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5tYXgubW9udGhTYW1lT3JCZWZvcmUodmFsdWUpID8gdGhpcy5tYXggOiB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBUdWlNb250aCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWx1ZS5tb250aFNhbWUodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxufVxuIiwiPHR1aS1zcGluLWJ1dHRvblxuICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgIFtsZWZ0RGlzYWJsZWRdPVwidmFsdWUubW9udGhTYW1lT3JCZWZvcmUobWluKVwiXG4gICAgW3JpZ2h0RGlzYWJsZWRdPVwidmFsdWUubW9udGhTYW1lT3JBZnRlcihtYXgpXCJcbiAgICAobGVmdENsaWNrKT1cImFwcGVuZCh7bW9udGg6IC0xfSlcIlxuICAgIChyaWdodENsaWNrKT1cImFwcGVuZCh7bW9udGg6IDF9KVwiXG4+XG4gICAge3sgdmFsdWUgfCB0dWlNb250aCB8IGFzeW5jIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1pbi55ZWFyID09PSBtYXgueWVhcjsgZWxzZSBidXR0b25cIj5cbiAgICAgICAge3sgdmFsdWUuZm9ybWF0dGVkWWVhciB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBpZD1cInllYXItYnRuXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXllYXItbW9udGgtcGFnaW5hdGlvbl9feWVhci1idXR0b25cIlxuICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblllYXJDbGljaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgdmFsdWUuZm9ybWF0dGVkWWVhciB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC90dWktc3Bpbi1idXR0b24+XG4iXX0=
@@ -1,128 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, EventEmitter, inject, Input, Output, signal, } from '@angular/core';
2
- import { MAX_YEAR, MIN_YEAR, TuiDay, TuiMonth, TuiMonthRange, TuiYear, } from '@taiga-ui/cdk/date-time';
3
- import { TuiHovered } from '@taiga-ui/cdk/directives/hovered';
4
- import { TuiLet } from '@taiga-ui/cdk/directives/let';
5
- import { TuiRepeatTimes } from '@taiga-ui/cdk/directives/repeat-times';
6
- import { tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
7
- import { TuiScrollIntoView } from '@taiga-ui/core/components/scrollbar';
8
- import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives';
9
- import { tuiAsAuxiliary } from '@taiga-ui/core/tokens';
10
- import * as i0 from "@angular/core";
11
- const LIMIT = 100;
12
- const ITEMS_IN_ROW = 4;
13
- const CURRENT_YEAR = TuiMonth.currentLocal().year;
14
- class TuiCalendarYear {
15
- constructor() {
16
- this.hoveredItem = signal(null);
17
- this.isRangePicking = computed((x = this.value()) => this.rangeMode && (x instanceof TuiDay || x instanceof TuiMonth));
18
- this.rangeMode = false;
19
- this.disabledItemHandler = inject(TUI_ITEMS_HANDLERS).disabledItemHandler();
20
- this.yearClick = new EventEmitter();
21
- this.initialItem = signal(CURRENT_YEAR);
22
- this.min = signal(MIN_YEAR);
23
- this.max = signal(MAX_YEAR);
24
- this.value = signal(null);
25
- }
26
- // TODO(v5): use signal inputs
27
- set initialItemSetter(x) {
28
- this.initialItem.set(x ?? CURRENT_YEAR);
29
- }
30
- // TODO(v5): use signal inputs
31
- set minSetter(x) {
32
- this.min.set(x);
33
- }
34
- // TODO(v5): use signal inputs
35
- set maxSetter(x) {
36
- this.max.set(x);
37
- }
38
- // TODO(v5): use signal inputs
39
- set valueSetter(x) {
40
- this.value.set(x);
41
- }
42
- isDisabled(item) {
43
- return ((this.max() && this.max() < item) ||
44
- (this.min() && this.min() > item) ||
45
- this.disabledItemHandler(item));
46
- }
47
- getItemRange(item) {
48
- const value = this.value();
49
- const hoveredItem = this.hoveredItem();
50
- if (value instanceof TuiYear && value.year === item) {
51
- return 'active';
52
- }
53
- if (tuiIsNumber(value)) {
54
- return value === item ? 'active' : null;
55
- }
56
- if (!(value instanceof TuiMonthRange) && !(value instanceof TuiYear)) {
57
- return value?.find((day) => day.year === item) ? 'active' : null;
58
- }
59
- const hovered = this.isRangePicking() ? hoveredItem : null;
60
- const from = 'from' in value ? value.from?.year : value.year;
61
- const to = 'from' in value ? value.to.year : value.year;
62
- const min = Math.min(from, hovered ?? to);
63
- const max = Math.max(from, hovered ?? to);
64
- if (min === max && from === to && from === item) {
65
- return 'active';
66
- }
67
- if (min === item) {
68
- return 'start';
69
- }
70
- if (max === item) {
71
- return 'end';
72
- }
73
- return min < item && item < max ? 'middle' : null;
74
- }
75
- onItemHovered(hovered, item) {
76
- this.hoveredItem.set(hovered ? item : null);
77
- }
78
- get rows() {
79
- return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);
80
- }
81
- scrollItemIntoView(item) {
82
- return this.initialItem() === item;
83
- }
84
- getItem(rowIndex, colIndex) {
85
- return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;
86
- }
87
- itemIsToday(item) {
88
- return CURRENT_YEAR === item;
89
- }
90
- get calculatedMin() {
91
- const initial = this.initialItem() - LIMIT;
92
- const min = this.min() ?? MIN_YEAR;
93
- return min > initial ? min : initial;
94
- }
95
- get calculatedMax() {
96
- const initial = this.initialItem() + LIMIT;
97
- const max = this.max() ?? MAX_YEAR;
98
- return max < initial ? max + 1 : initial;
99
- }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarYear, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { rangeMode: "rangeMode", disabledItemHandler: "disabledItemHandler", initialItemSetter: ["initialItem", "initialItemSetter", (x) => x ?? CURRENT_YEAR], minSetter: ["min", "minSetter", (x) => x ?? MIN_YEAR], maxSetter: ["max", "maxSetter", (x) => x ?? MAX_YEAR], valueSetter: ["value", "valueSetter"] }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking()" } }, providers: [tuiAsAuxiliary(TuiCalendarYear)], ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
- }
103
- export { TuiCalendarYear };
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarYear, decorators: [{
105
- type: Component,
106
- args: [{ standalone: true, selector: 'tui-calendar-year', imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: {
107
- '[class._picking]': 'isRangePicking()',
108
- }, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"] }]
109
- }], propDecorators: { rangeMode: [{
110
- type: Input
111
- }], disabledItemHandler: [{
112
- type: Input
113
- }], yearClick: [{
114
- type: Output
115
- }], initialItemSetter: [{
116
- type: Input,
117
- args: [{ alias: 'initialItem', transform: (x) => x ?? CURRENT_YEAR }]
118
- }], minSetter: [{
119
- type: Input,
120
- args: [{ alias: 'min', transform: (x) => x ?? MIN_YEAR }]
121
- }], maxSetter: [{
122
- type: Input,
123
- args: [{ alias: 'max', transform: (x) => x ?? MAX_YEAR }]
124
- }], valueSetter: [{
125
- type: Input,
126
- args: ['value']
127
- }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIteWVhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIteWVhci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFFTixRQUFRLEVBQ1IsYUFBYSxFQUNiLE9BQU8sR0FDVixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBRXJELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNsQixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQztBQUVsRCxNQVlhLGVB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SERjYyxVQUFVLDhGQUFFLE1BQU0seUVBQUUsY0FBYyw2R0FBRSxpQkFBaUI7O1NBU3RELGVBQWU7NEZBQWYsZUFBZTtrQkFaM0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sbUJBQW1CLFdBQ3BCLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLENBQUMsbUJBRy9DLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLGlCQUFpQixDQUFDLFFBQ3RDO3dCQUNGLGtCQUFrQixFQUFFLGtCQUFrQjtxQkFDekM7OEJBV00sU0FBUztzQkFEZixLQUFLO2dCQUlDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFLVSxTQUFTO3NCQUR4QixNQUFNO2dCQVlJLGlCQUFpQjtzQkFEM0IsS0FBSzt1QkFBQyxFQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFlBQVksRUFBQztnQkFPdEUsU0FBUztzQkFEbkIsS0FBSzt1QkFBQyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBQztnQkFPMUQsU0FBUztzQkFEbkIsS0FBSzt1QkFBQyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBQztnQkFPMUQsV0FBVztzQkFEckIsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgTUFYX1lFQVIsXG4gICAgTUlOX1lFQVIsXG4gICAgVHVpRGF5LFxuICAgIHR5cGUgVHVpRGF5UmFuZ2UsXG4gICAgVHVpTW9udGgsXG4gICAgVHVpTW9udGhSYW5nZSxcbiAgICBUdWlZZWFyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge1R1aUhvdmVyZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9ob3ZlcmVkJztcbmltcG9ydCB7VHVpTGV0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvbGV0JztcbmltcG9ydCB7VHVpUmVwZWF0VGltZXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9yZXBlYXQtdGltZXMnO1xuaW1wb3J0IHt0eXBlIFR1aUJvb2xlYW5IYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpSXNOdW1iZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aVNjcm9sbEludG9WaWV3fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Njcm9sbGJhcic7XG5pbXBvcnQge1RVSV9JVEVNU19IQU5ETEVSU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcyc7XG5pbXBvcnQge3R1aUFzQXV4aWxpYXJ5fSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuXG5jb25zdCBMSU1JVCA9IDEwMDtcbmNvbnN0IElURU1TX0lOX1JPVyA9IDQ7XG5jb25zdCBDVVJSRU5UX1lFQVIgPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKS55ZWFyO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWNhbGVuZGFyLXllYXInLFxuICAgIGltcG9ydHM6IFtUdWlIb3ZlcmVkLCBUdWlMZXQsIFR1aVJlcGVhdFRpbWVzLCBUdWlTY3JvbGxJbnRvVmlld10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLXllYXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIteWVhci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbdHVpQXNBdXhpbGlhcnkoVHVpQ2FsZW5kYXJZZWFyKV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLl9waWNraW5nXSc6ICdpc1JhbmdlUGlja2luZygpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYWxlbmRhclllYXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG92ZXJlZEl0ZW0gPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNSYW5nZVBpY2tpbmcgPSBjb21wdXRlZChcbiAgICAgICAgKHggPSB0aGlzLnZhbHVlKCkpID0+XG4gICAgICAgICAgICB0aGlzLnJhbmdlTW9kZSAmJiAoeCBpbnN0YW5jZW9mIFR1aURheSB8fCB4IGluc3RhbmNlb2YgVHVpTW9udGgpLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByYW5nZU1vZGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPG51bWJlcj4gPVxuICAgICAgICBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKS5kaXNhYmxlZEl0ZW1IYW5kbGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgeWVhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5pdGlhbEl0ZW0gPSBzaWduYWw8bnVtYmVyPihDVVJSRU5UX1lFQVIpO1xuICAgIHB1YmxpYyByZWFkb25seSBtaW4gPSBzaWduYWwoTUlOX1lFQVIpO1xuICAgIHB1YmxpYyByZWFkb25seSBtYXggPSBzaWduYWwoTUFYX1lFQVIpO1xuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDxcbiAgICAgICAgVHVpRGF5UmFuZ2UgfCBUdWlNb250aFJhbmdlIHwgVHVpWWVhciB8IG51bWJlciB8IHJlYWRvbmx5IFR1aURheVtdIHwgbnVsbFxuICAgID4obnVsbCk7XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoe2FsaWFzOiAnaW5pdGlhbEl0ZW0nLCB0cmFuc2Zvcm06ICh4OiBudW1iZXIgfCBudWxsKSA9PiB4ID8/IENVUlJFTlRfWUVBUn0pXG4gICAgcHVibGljIHNldCBpbml0aWFsSXRlbVNldHRlcih4OiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbEl0ZW0uc2V0KHggPz8gQ1VSUkVOVF9ZRUFSKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoe2FsaWFzOiAnbWluJywgdHJhbnNmb3JtOiAoeDogbnVtYmVyIHwgbnVsbCkgPT4geCA/PyBNSU5fWUVBUn0pXG4gICAgcHVibGljIHNldCBtaW5TZXR0ZXIoeDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubWluLnNldCh4KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoe2FsaWFzOiAnbWF4JywgdHJhbnNmb3JtOiAoeDogbnVtYmVyIHwgbnVsbCkgPT4geCA/PyBNQVhfWUVBUn0pXG4gICAgcHVibGljIHNldCBtYXhTZXR0ZXIoeDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubWF4LnNldCh4KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoJ3ZhbHVlJylcbiAgICBwdWJsaWMgc2V0IHZhbHVlU2V0dGVyKFxuICAgICAgICB4OiBUdWlEYXlSYW5nZSB8IFR1aU1vbnRoUmFuZ2UgfCBUdWlZZWFyIHwgbnVtYmVyIHwgcmVhZG9ubHkgVHVpRGF5W10gfCBudWxsLFxuICAgICkge1xuICAgICAgICB0aGlzLnZhbHVlLnNldCh4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNEaXNhYmxlZChpdGVtOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0aGlzLm1heCgpICYmIHRoaXMubWF4KCkgPCBpdGVtKSB8fFxuICAgICAgICAgICAgKHRoaXMubWluKCkgJiYgdGhpcy5taW4oKSA+IGl0ZW0pIHx8XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SXRlbVJhbmdlKGl0ZW06IG51bWJlcik6ICdhY3RpdmUnIHwgJ2VuZCcgfCAnbWlkZGxlJyB8ICdzdGFydCcgfCBudWxsIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRJdGVtID0gdGhpcy5ob3ZlcmVkSXRlbSgpO1xuXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFR1aVllYXIgJiYgdmFsdWUueWVhciA9PT0gaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuICdhY3RpdmUnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR1aUlzTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBpdGVtID8gJ2FjdGl2ZScgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBUdWlNb250aFJhbmdlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgVHVpWWVhcikpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZT8uZmluZCgoZGF5KSA9PiBkYXkueWVhciA9PT0gaXRlbSkgPyAnYWN0aXZlJyA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBob3ZlcmVkID0gdGhpcy5pc1JhbmdlUGlja2luZygpID8gaG92ZXJlZEl0ZW0gOiBudWxsO1xuICAgICAgICBjb25zdCBmcm9tID0gJ2Zyb20nIGluIHZhbHVlID8gdmFsdWUuZnJvbT8ueWVhciA6IHZhbHVlLnllYXI7XG4gICAgICAgIGNvbnN0IHRvID0gJ2Zyb20nIGluIHZhbHVlID8gdmFsdWUudG8ueWVhciA6IHZhbHVlLnllYXI7XG5cbiAgICAgICAgY29uc3QgbWluID0gTWF0aC5taW4oZnJvbSwgaG92ZXJlZCA/PyB0byk7XG4gICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KGZyb20sIGhvdmVyZWQgPz8gdG8pO1xuXG4gICAgICAgIGlmIChtaW4gPT09IG1heCAmJiBmcm9tID09PSB0byAmJiBmcm9tID09PSBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2FjdGl2ZSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWluID09PSBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3N0YXJ0JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXggPT09IGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiAnZW5kJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtaW4gPCBpdGVtICYmIGl0ZW0gPCBtYXggPyAnbWlkZGxlJyA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSXRlbUhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbiwgaXRlbTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG92ZXJlZEl0ZW0uc2V0KGhvdmVyZWQgPyBpdGVtIDogbnVsbCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCByb3dzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoKHRoaXMuY2FsY3VsYXRlZE1heCAtIHRoaXMuY2FsY3VsYXRlZE1pbikgLyBJVEVNU19JTl9ST1cpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzY3JvbGxJdGVtSW50b1ZpZXcoaXRlbTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxJdGVtKCkgPT09IGl0ZW07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEl0ZW0ocm93SW5kZXg6IG51bWJlciwgY29sSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiByb3dJbmRleCAqIElURU1TX0lOX1JPVyArIGNvbEluZGV4ICsgdGhpcy5jYWxjdWxhdGVkTWluO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpdGVtSXNUb2RheShpdGVtOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIENVUlJFTlRfWUVBUiA9PT0gaXRlbTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjYWxjdWxhdGVkTWluKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLmluaXRpYWxJdGVtKCkgLSBMSU1JVDtcbiAgICAgICAgY29uc3QgbWluID0gdGhpcy5taW4oKSA/PyBNSU5fWUVBUjtcblxuICAgICAgICByZXR1cm4gbWluID4gaW5pdGlhbCA/IG1pbiA6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY2FsY3VsYXRlZE1heCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBpbml0aWFsID0gdGhpcy5pbml0aWFsSXRlbSgpICsgTElNSVQ7XG4gICAgICAgIGNvbnN0IG1heCA9IHRoaXMubWF4KCkgPz8gTUFYX1lFQVI7XG5cbiAgICAgICAgcmV0dXJuIG1heCA8IGluaXRpYWwgPyBtYXggKyAxIDogaW5pdGlhbDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKnR1aVJlcGVhdFRpbWVzPVwibGV0IHJvd0luZGV4IG9mIHJvd3NcIlxuICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktY2FsZW5kYXIteWVhcl9fcm93XCJcbiAgICBjbGFzcz1cInQtcm93XCJcbj5cbiAgICA8bmctY29udGFpbmVyICp0dWlSZXBlYXRUaW1lcz1cImxldCBjb2xJbmRleCBvZiA0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICp0dWlMZXQ9XCJnZXRJdGVtKHJvd0luZGV4LCBjb2xJbmRleCkgYXMgaXRlbVwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNhbGVuZGFyLXllYXJfX2NlbGxcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNlbGxcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1yYW5nZV09XCJnZXRJdGVtUmFuZ2UoaXRlbSlcIlxuICAgICAgICAgICAgW2NsYXNzLnQtY2VsbF9kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWNlbGxfdG9kYXldPVwiaXRlbUlzVG9kYXkoaXRlbSlcIlxuICAgICAgICAgICAgW3R1aVNjcm9sbEludG9WaWV3XT1cInNjcm9sbEl0ZW1JbnRvVmlldyhpdGVtKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwieWVhckNsaWNrLmVtaXQoaXRlbSlcIlxuICAgICAgICAgICAgKHR1aUhvdmVyZWRDaGFuZ2UpPVwib25JdGVtSG92ZXJlZCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19