@taiga-ui/core 4.52.0-canary.aaf153c → 4.52.0-canary.b1ce38b

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 (257) hide show
  1. package/README.md +1 -1
  2. package/classes/accessors.d.ts +1 -1
  3. package/components/calendar/calendar-sheet.options.d.ts +1 -3
  4. package/{pipes/calendar-sheet → components/calendar}/calendar-sheet.pipe.d.ts +1 -1
  5. package/components/calendar/calendar-spin.component.d.ts +1 -0
  6. package/components/calendar/calendar-year.component.d.ts +1 -1
  7. package/components/calendar/index.d.ts +2 -0
  8. package/components/data-list/data-list.component.d.ts +7 -11
  9. package/components/data-list/data-list.d.ts +3 -4
  10. package/components/data-list/data-list.tokens.d.ts +1 -23
  11. package/components/data-list/index.d.ts +3 -4
  12. package/components/data-list/opt-group.directive.d.ts +2 -2
  13. package/components/data-list/option-content.directive.d.ts +14 -0
  14. package/components/data-list/option-with-value.directive.d.ts +9 -0
  15. package/components/data-list/option.directive.d.ts +19 -0
  16. package/components/icon/icon.component.d.ts +2 -2
  17. package/components/index.d.ts +2 -4
  18. package/components/input/index.d.ts +2 -0
  19. package/components/input/input.d.ts +5 -0
  20. package/components/input/input.directive.d.ts +30 -0
  21. package/components/link/link.options.d.ts +1 -3
  22. package/components/loader/loader.options.d.ts +1 -3
  23. package/components/notification/index.d.ts +3 -0
  24. package/components/notification/notification.component.d.ts +14 -0
  25. package/components/notification/notification.d.ts +3 -0
  26. package/components/notification/notification.directive.d.ts +4 -5
  27. package/components/notification/notification.options.d.ts +10 -7
  28. package/components/notification/notification.service.d.ts +17 -0
  29. package/components/root/root.component.d.ts +1 -1
  30. package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
  31. package/components/scrollbar/scrollbar.component.d.ts +2 -2
  32. package/components/scrollbar/scrollbar.directive.d.ts +2 -2
  33. package/components/textfield/index.d.ts +0 -1
  34. package/components/textfield/textfield-multi/textfield-item.component.d.ts +3 -2
  35. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +9 -13
  36. package/components/textfield/textfield.component.d.ts +23 -35
  37. package/components/textfield/textfield.d.ts +2 -3
  38. package/directives/date-format/date-format.directive.d.ts +3 -7
  39. package/directives/group/group.directive.d.ts +7 -7
  40. package/directives/group/group.options.d.ts +1 -3
  41. package/directives/index.d.ts +0 -5
  42. package/directives/number-format/number-format.directive.d.ts +3 -7
  43. package/fesm2022/taiga-ui-core-classes.mjs +9 -11
  44. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-core-components-button.mjs +6 -6
  46. package/fesm2022/taiga-ui-core-components-calendar.mjs +130 -31
  47. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-core-components-cell.mjs +7 -7
  49. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-core-components-data-list.mjs +110 -279
  51. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-core-components-error.mjs +11 -10
  53. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-core-components-expand.mjs +3 -3
  55. package/fesm2022/taiga-ui-core-components-icon.mjs +9 -10
  56. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-core-components-input.mjs +103 -0
  58. package/fesm2022/taiga-ui-core-components-input.mjs.map +1 -0
  59. package/fesm2022/taiga-ui-core-components-label.mjs +6 -6
  60. package/fesm2022/taiga-ui-core-components-link.mjs +11 -15
  61. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-core-components-loader.mjs +6 -11
  63. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  64. package/fesm2022/taiga-ui-core-components-notification.mjs +95 -23
  65. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-core-components-root.mjs +8 -10
  67. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +54 -63
  69. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-core-components-spin-button.mjs +3 -3
  71. package/fesm2022/taiga-ui-core-components-textfield.mjs +101 -263
  72. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  73. package/fesm2022/{taiga-ui-core-directives-title.mjs → taiga-ui-core-components-title.mjs} +7 -7
  74. package/fesm2022/{taiga-ui-core-directives-title.mjs.map → taiga-ui-core-components-title.mjs.map} +1 -1
  75. package/fesm2022/taiga-ui-core-components.mjs +2 -4
  76. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-core-directives-appearance.mjs +15 -15
  78. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-core-directives-date-format.mjs +26 -20
  80. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-core-directives-group.mjs +22 -34
  82. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-core-directives-icons.mjs +11 -11
  84. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +10 -13
  86. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-core-directives-number-format.mjs +32 -20
  88. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-directives.mjs +0 -5
  90. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +21 -15
  92. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-pipes.mjs +0 -7
  94. package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-core-portals-alert.mjs +73 -0
  96. package/fesm2022/taiga-ui-core-portals-alert.mjs.map +1 -0
  97. package/fesm2022/taiga-ui-core-portals-dialog.mjs +158 -0
  98. package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -0
  99. package/fesm2022/{taiga-ui-core-directives-dropdown.mjs → taiga-ui-core-portals-dropdown.mjs} +153 -268
  100. package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -0
  101. package/fesm2022/{taiga-ui-core-directives-hint.mjs → taiga-ui-core-portals-hint.mjs} +48 -50
  102. package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -0
  103. package/fesm2022/taiga-ui-core-portals-modal.mjs +89 -0
  104. package/fesm2022/taiga-ui-core-portals-modal.mjs.map +1 -0
  105. package/fesm2022/{taiga-ui-core-directives-popup.mjs → taiga-ui-core-portals-popup.mjs} +11 -11
  106. package/fesm2022/taiga-ui-core-portals-popup.mjs.map +1 -0
  107. package/fesm2022/taiga-ui-core-portals.mjs +11 -0
  108. package/fesm2022/taiga-ui-core-portals.mjs.map +1 -0
  109. package/fesm2022/taiga-ui-core-services.mjs +15 -35
  110. package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
  111. package/fesm2022/taiga-ui-core-tokens.mjs +22 -21
  112. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-core-utils-format.mjs +1 -22
  114. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +7 -16
  116. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  117. package/fesm2022/taiga-ui-core.mjs +1 -0
  118. package/fesm2022/taiga-ui-core.mjs.map +1 -1
  119. package/index.d.ts +1 -0
  120. package/package.json +51 -76
  121. package/pipes/format-number/format-number.pipe.d.ts +6 -4
  122. package/pipes/index.d.ts +0 -7
  123. package/{directives/notification/notification.directive.d.ts → portals/alert/alert.directive.d.ts} +3 -3
  124. package/{directives/notification/notification.service.d.ts → portals/alert/alert.service.d.ts} +3 -3
  125. package/portals/alert/index.d.ts +2 -0
  126. package/{components → portals}/dialog/dialog.component.d.ts +2 -3
  127. package/{components → portals}/dialog/dialog.options.d.ts +2 -3
  128. package/{components → portals}/dialog/dialog.providers.d.ts +1 -2
  129. package/{components → portals}/dialog/dialog.service.d.ts +1 -1
  130. package/{components → portals}/dialog/index.d.ts +0 -1
  131. package/{directives → portals}/dropdown/dropdown-hover.directive.d.ts +5 -10
  132. package/{directives → portals}/dropdown/dropdown-hover.options.d.ts +1 -3
  133. package/{directives → portals}/dropdown/dropdown-manual.directive.d.ts +2 -2
  134. package/portals/dropdown/dropdown-open.directive.d.ts +30 -0
  135. package/{directives → portals}/dropdown/dropdown-position-sided.directive.d.ts +3 -3
  136. package/{directives → portals}/dropdown/dropdown-position.directive.d.ts +5 -5
  137. package/{directives → portals}/dropdown/dropdown-selection.directive.d.ts +4 -5
  138. package/{directives → portals}/dropdown/dropdown.bindings.d.ts +0 -1
  139. package/{directives → portals}/dropdown/dropdown.d.ts +1 -2
  140. package/{directives → portals}/dropdown/dropdown.directive.d.ts +5 -6
  141. package/{directives → portals}/dropdown/index.d.ts +0 -1
  142. package/portals/index.d.ts +6 -0
  143. package/{components → portals}/modal/modal.component.d.ts +3 -3
  144. package/{components → portals}/modal/modal.service.d.ts +3 -3
  145. package/services/index.d.ts +0 -1
  146. package/styles/components/link.less +1 -0
  147. package/styles/components/textfield.less +10 -7
  148. package/styles/mixins/appearance.less +1 -1
  149. package/styles/mixins/mixins.less +0 -5
  150. package/styles/mixins/mixins.scss +0 -5
  151. package/styles/mixins/slider.scss +1 -2
  152. package/styles/theme/variables.less +2 -4
  153. package/tokens/common-icons.d.ts +1 -3
  154. package/tokens/date-format.d.ts +2 -3
  155. package/tokens/icons.d.ts +0 -4
  156. package/tokens/number-format.d.ts +2 -3
  157. package/types/index.d.ts +0 -2
  158. package/types/size.d.ts +0 -11
  159. package/utils/format/index.d.ts +0 -1
  160. package/utils/miscellaneous/get-duration.d.ts +2 -0
  161. package/utils/miscellaneous/index.d.ts +1 -1
  162. package/components/alert/alert.component.d.ts +0 -14
  163. package/components/alert/alert.directive.d.ts +0 -8
  164. package/components/alert/alert.interfaces.d.ts +0 -13
  165. package/components/alert/alert.service.d.ts +0 -11
  166. package/components/alert/alert.tokens.d.ts +0 -6
  167. package/components/alert/index.d.ts +0 -5
  168. package/components/data-list/data-list.directive.d.ts +0 -7
  169. package/components/data-list/option/option-content.d.ts +0 -16
  170. package/components/data-list/option/option-legacy.component.d.ts +0 -24
  171. package/components/data-list/option/option.directive.d.ts +0 -27
  172. package/components/dialog/active-zone-adapter.directive.d.ts +0 -11
  173. package/components/dialog/dialogs.component.d.ts +0 -8
  174. package/components/header/header.directive.d.ts +0 -17
  175. package/components/header/index.d.ts +0 -1
  176. package/components/textfield/textfield.directive.d.ts +0 -35
  177. package/directives/dropdown/dropdown-open-legacy.directive.d.ts +0 -12
  178. package/directives/dropdown/dropdown-open.directive.d.ts +0 -33
  179. package/directives/notification/index.d.ts +0 -2
  180. package/fesm2022/taiga-ui-core-components-alert.mjs +0 -110
  181. package/fesm2022/taiga-ui-core-components-alert.mjs.map +0 -1
  182. package/fesm2022/taiga-ui-core-components-dialog.mjs +0 -227
  183. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +0 -1
  184. package/fesm2022/taiga-ui-core-components-header.mjs +0 -42
  185. package/fesm2022/taiga-ui-core-components-header.mjs.map +0 -1
  186. package/fesm2022/taiga-ui-core-components-modal.mjs +0 -89
  187. package/fesm2022/taiga-ui-core-components-modal.mjs.map +0 -1
  188. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +0 -1
  189. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +0 -1
  190. package/fesm2022/taiga-ui-core-directives-notification.mjs +0 -73
  191. package/fesm2022/taiga-ui-core-directives-notification.mjs.map +0 -1
  192. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +0 -1
  193. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +0 -25
  194. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +0 -1
  195. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -94
  196. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +0 -1
  197. package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -32
  198. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +0 -1
  199. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -28
  200. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +0 -1
  201. package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -29
  202. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +0 -1
  203. package/fesm2022/taiga-ui-core-pipes-month.mjs +0 -30
  204. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +0 -1
  205. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -36
  206. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +0 -1
  207. package/pipes/auto-color/auto-color.pipe.d.ts +0 -7
  208. package/pipes/auto-color/index.d.ts +0 -1
  209. package/pipes/calendar-sheet/index.d.ts +0 -1
  210. package/pipes/calendar-sheet/utils.d.ts +0 -20
  211. package/pipes/flag/flag.pipe.d.ts +0 -14
  212. package/pipes/flag/index.d.ts +0 -1
  213. package/pipes/format-date/format-date.pipe.d.ts +0 -9
  214. package/pipes/format-date/index.d.ts +0 -1
  215. package/pipes/initials/index.d.ts +0 -1
  216. package/pipes/initials/initials.pipe.d.ts +0 -7
  217. package/pipes/month/index.d.ts +0 -1
  218. package/pipes/month/month.pipe.d.ts +0 -10
  219. package/pipes/order-week-days/index.d.ts +0 -1
  220. package/services/format-date.service.d.ts +0 -8
  221. package/types/range-state.d.ts +0 -4
  222. package/types/value-content-context.d.ts +0 -4
  223. package/utils/format/string-hash-to-hsl.d.ts +0 -6
  224. package/utils/miscellaneous/to-animation-options.d.ts +0 -4
  225. /package/{pipes/order-week-days → components/calendar}/order-week-days.pipe.d.ts +0 -0
  226. /package/{directives → components}/title/index.d.ts +0 -0
  227. /package/{directives → components}/title/title.directive.d.ts +0 -0
  228. /package/{components → portals}/dialog/dialog.directive.d.ts +0 -0
  229. /package/{components → portals}/dialog/dialog.factory.d.ts +0 -0
  230. /package/{directives → portals}/dropdown/dropdown-content.directive.d.ts +0 -0
  231. /package/{directives → portals}/dropdown/dropdown-context.directive.d.ts +0 -0
  232. /package/{directives → portals}/dropdown/dropdown-limit-width.d.ts +0 -0
  233. /package/{directives → portals}/dropdown/dropdown-options.directive.d.ts +0 -0
  234. /package/{directives → portals}/dropdown/dropdown.component.d.ts +0 -0
  235. /package/{directives → portals}/dropdown/dropdown.driver.d.ts +0 -0
  236. /package/{directives → portals}/dropdown/dropdown.providers.d.ts +0 -0
  237. /package/{directives → portals}/dropdown/with-dropdown-open.directive.d.ts +0 -0
  238. /package/{directives → portals}/hint/hint-describe.directive.d.ts +0 -0
  239. /package/{directives → portals}/hint/hint-driver.directive.d.ts +0 -0
  240. /package/{directives → portals}/hint/hint-host.directive.d.ts +0 -0
  241. /package/{directives → portals}/hint/hint-hover.directive.d.ts +0 -0
  242. /package/{directives → portals}/hint/hint-manual.directive.d.ts +0 -0
  243. /package/{directives → portals}/hint/hint-options.directive.d.ts +0 -0
  244. /package/{directives → portals}/hint/hint-overflow.directive.d.ts +0 -0
  245. /package/{directives → portals}/hint/hint-pointer.directive.d.ts +0 -0
  246. /package/{directives → portals}/hint/hint-position.directive.d.ts +0 -0
  247. /package/{directives → portals}/hint/hint-unstyled.component.d.ts +0 -0
  248. /package/{directives → portals}/hint/hint.component.d.ts +0 -0
  249. /package/{directives → portals}/hint/hint.d.ts +0 -0
  250. /package/{directives → portals}/hint/hint.directive.d.ts +0 -0
  251. /package/{directives → portals}/hint/hint.providers.d.ts +0 -0
  252. /package/{directives → portals}/hint/index.d.ts +0 -0
  253. /package/{components → portals}/modal/index.d.ts +0 -0
  254. /package/{directives → portals}/popup/index.d.ts +0 -0
  255. /package/{directives → portals}/popup/popup.directive.d.ts +0 -0
  256. /package/{directives → portals}/popup/popup.service.d.ts +0 -0
  257. /package/{directives → portals}/popup/popups.component.d.ts +0 -0
@@ -1,31 +1,130 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, EventEmitter, Output, Input, ChangeDetectionStrategy, Component, signal, computed, ChangeDetectorRef } from '@angular/core';
3
- import { TuiDay, TuiMonth, TuiDayRange, TUI_FIRST_DAY, TUI_LAST_DAY, MIN_YEAR, MAX_YEAR, TuiYear, TuiMonthRange, TUI_LAST_DISPLAYED_DAY } from '@taiga-ui/cdk/date-time';
2
+ import { inject, Pipe, EventEmitter, Output, Input, ChangeDetectionStrategy, Component, signal, computed, ChangeDetectorRef } from '@angular/core';
3
+ import { DAYS_IN_WEEK, TuiDay, TuiMonth, TuiDayRange, TUI_FIRST_DAY, TUI_LAST_DAY, MIN_YEAR, MAX_YEAR, TuiYear, TuiMonthRange, TUI_LAST_DISPLAYED_DAY } from '@taiga-ui/cdk/date-time';
4
4
  import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
5
- import { tuiProvideOptions, tuiNullableSame, tuiPure, tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
5
+ import { tuiNullableSame, tuiPure, tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
6
6
  import { TuiScrollIntoView, TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
7
- import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives';
8
- import { TUI_SHORT_WEEK_DAYS, TUI_DAY_TYPE_HANDLER, tuiAsAuxiliary } from '@taiga-ui/core/tokens';
9
- import { Subject } from 'rxjs';
7
+ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
8
+ import { TUI_FIRST_DAY_OF_WEEK, TUI_SHORT_WEEK_DAYS, TUI_DAY_TYPE_HANDLER, TUI_MONTHS, tuiAsAuxiliary } from '@taiga-ui/core/tokens';
9
+ import { map, Subject } from 'rxjs';
10
10
  import { __decorate } from 'tslib';
11
11
  import { AsyncPipe } from '@angular/common';
12
12
  import { toObservable } from '@angular/core/rxjs-interop';
13
13
  import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
14
14
  import { TuiHovered } from '@taiga-ui/cdk/directives/hovered';
15
- import { TuiRepeatTimes } from '@taiga-ui/cdk/directives/repeat-times';
16
- import { TuiCalendarSheetPipe, TuiOrderWeekDaysPipe, TuiMonthPipe } from '@taiga-ui/core/pipes';
15
+ import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
16
+ import { tuiInRange } from '@taiga-ui/cdk/utils/math';
17
17
  import { TuiLink } from '@taiga-ui/core/components/link';
18
18
  import { TuiSpinButton } from '@taiga-ui/core/components/spin-button';
19
19
 
20
20
  const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS = {
21
21
  rangeMode: false,
22
22
  };
23
- const TUI_CALENDAR_SHEET_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_CALENDAR_SHEET_OPTIONS' : '', {
24
- factory: () => TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,
25
- });
26
- function tuiCalendarSheetOptionsProvider(options) {
27
- return tuiProvideOptions(TUI_CALENDAR_SHEET_OPTIONS, options, TUI_CALENDAR_SHEET_DEFAULT_OPTIONS);
23
+ const [TUI_CALENDAR_SHEET_OPTIONS, tuiCalendarSheetOptionsProvider] = tuiCreateOptions(TUI_CALENDAR_SHEET_DEFAULT_OPTIONS);
24
+
25
+ /// <reference types="@taiga-ui/tsconfig/ng-dev-mode" />
26
+ const CALENDAR_ROWS_COUNT = 6;
27
+ class TuiCalendarSheetPipe {
28
+ constructor() {
29
+ this.firstDayOfWeek = inject(TUI_FIRST_DAY_OF_WEEK);
30
+ this.currentMonth = null;
31
+ this.currentSheet = [];
32
+ }
33
+ transform(month, showAdjacentDays = false) {
34
+ if (this.currentMonth?.monthSame(month)) {
35
+ return this.currentSheet;
36
+ }
37
+ const sheet = [];
38
+ for (let rowIndex = 0; rowIndex < CALENDAR_ROWS_COUNT; rowIndex++) {
39
+ const row = [];
40
+ for (let colIndex = 0; colIndex < DAYS_IN_WEEK; colIndex++) {
41
+ const day = getDayFromMonthRowCol({
42
+ month,
43
+ rowIndex,
44
+ colIndex,
45
+ firstDayOfWeek: this.firstDayOfWeek,
46
+ });
47
+ const isPrevMonthDay = (day, relativeToMonth = month) => day.year < relativeToMonth.year || day.month < relativeToMonth.month;
48
+ const isNextMonthDay = (day, relativeToMonth = month) => day.year > relativeToMonth.year || day.month > relativeToMonth.month;
49
+ if (isPrevMonthDay(day) && !showAdjacentDays) {
50
+ continue;
51
+ }
52
+ if (isNextMonthDay(day) && !showAdjacentDays) {
53
+ break;
54
+ }
55
+ row.push(day);
56
+ }
57
+ sheet.push(row);
58
+ }
59
+ this.currentSheet = sheet.filter((row) => row.length);
60
+ this.currentMonth = month;
61
+ return this.currentSheet;
62
+ }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendarSheetPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
64
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendarSheetPipe, isStandalone: true, name: "tuiCalendarSheet" }); }
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendarSheetPipe, decorators: [{
67
+ type: Pipe,
68
+ args: [{
69
+ name: 'tuiCalendarSheet',
70
+ }]
71
+ }] });
72
+ /**
73
+ * Computes day of week offset of the beginning of the month
74
+ */
75
+ function getMonthStartDaysOffset(month, firstDayOfWeek) {
76
+ const startMonthOffsetFromSunday = new Date(month.year, month.month, 1).getDay();
77
+ return startMonthOffsetFromSunday >= firstDayOfWeek
78
+ ? startMonthOffsetFromSunday - firstDayOfWeek
79
+ : DAYS_IN_WEEK - (firstDayOfWeek - startMonthOffsetFromSunday);
80
+ }
81
+ /**
82
+ * Calculated day on a calendar grid
83
+ * @return resulting day on these coordinates (could exceed passed month)
84
+ */
85
+ function getDayFromMonthRowCol({ month, rowIndex, colIndex, firstDayOfWeek, }) {
86
+ ngDevMode && console.assert(Number.isInteger(rowIndex));
87
+ ngDevMode && console.assert(tuiInRange(rowIndex, 0, 6));
88
+ ngDevMode && console.assert(Number.isInteger(colIndex));
89
+ ngDevMode && console.assert(tuiInRange(colIndex, 0, DAYS_IN_WEEK));
90
+ let day = rowIndex * DAYS_IN_WEEK +
91
+ colIndex -
92
+ getMonthStartDaysOffset(month, firstDayOfWeek) +
93
+ 1;
94
+ if (day > month.daysCount) {
95
+ day -= month.daysCount;
96
+ month = month.append({ month: 1 });
97
+ }
98
+ if (day <= 0) {
99
+ month = month.append({ month: -1 });
100
+ day = month.daysCount + day;
101
+ }
102
+ return new TuiDay(month.year, month.month, day);
103
+ }
104
+
105
+ function convertToSundayFirstWeekFormat(weekDaysNames) {
106
+ const sundayIndex = weekDaysNames.length - 1;
107
+ return [weekDaysNames[sundayIndex] || '', ...weekDaysNames.slice(0, sundayIndex)];
108
+ }
109
+ class TuiOrderWeekDaysPipe {
110
+ constructor() {
111
+ this.firstDayOfWeekIndex = inject(TUI_FIRST_DAY_OF_WEEK);
112
+ }
113
+ transform(mondayFirstWeekDays$) {
114
+ return mondayFirstWeekDays$.pipe(map(convertToSundayFirstWeekFormat), map((weekDays) => [
115
+ ...weekDays.slice(this.firstDayOfWeekIndex),
116
+ ...weekDays.slice(0, this.firstDayOfWeekIndex),
117
+ ]));
118
+ }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiOrderWeekDaysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
120
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.16", ngImport: i0, type: TuiOrderWeekDaysPipe, isStandalone: true, name: "tuiOrderWeekDays" }); }
28
121
  }
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiOrderWeekDaysPipe, decorators: [{
123
+ type: Pipe,
124
+ args: [{
125
+ name: 'tuiOrderWeekDays',
126
+ }]
127
+ }] });
29
128
 
30
129
  class TuiCalendarSheet {
31
130
  constructor() {
@@ -139,13 +238,13 @@ class TuiCalendarSheet {
139
238
  this.hoveredItem = day;
140
239
  this.hoveredItemChange.emit(day);
141
240
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarSheet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", 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 @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\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 @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\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 @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\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;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{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);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: "pipe", type: TuiCalendarSheetPipe, name: "tuiCalendarSheet" }, { kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { 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 }); }
241
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendarSheet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
242
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.16", 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 @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n @for (_ of '-'.repeat(sheet.length); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(sheet[rowIndex]?.length ?? 0); track $index) {\n @let item = sheet[rowIndex]?.[$index];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\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 @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n }\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;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;inset:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{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);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: "pipe", type: TuiCalendarSheetPipe, name: "tuiCalendarSheet" }, { kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "pipe", type: TuiOrderWeekDaysPipe, name: "tuiOrderWeekDays" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
144
243
  }
145
244
  __decorate([
146
245
  tuiPure
147
246
  ], TuiCalendarSheet.prototype, "getRange", null);
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarSheet, decorators: [{
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendarSheet, decorators: [{
149
248
  type: Component,
150
249
  args: [{ selector: 'tui-calendar-sheet', imports: [
151
250
  AsyncPipe,
@@ -153,10 +252,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
153
252
  TuiHovered,
154
253
  TuiMapperPipe,
155
254
  TuiOrderWeekDaysPipe,
156
- TuiRepeatTimes,
157
255
  ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
158
256
  '[class._picking]': 'isRangePicking',
159
- }, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\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 @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\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 @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\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;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{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);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"] }]
257
+ }, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n @for (_ of '-'.repeat(sheet.length); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(sheet[rowIndex]?.length ?? 0); track $index) {\n @let item = sheet[rowIndex]?.[$index];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\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 @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n }\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;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;inset:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{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);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"] }]
160
258
  }], propDecorators: { month: [{
161
259
  type: Input
162
260
  }], disabledItemHandler: [{
@@ -179,6 +277,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
179
277
 
180
278
  class TuiCalendarSpin {
181
279
  constructor() {
280
+ this.months = inject(TUI_MONTHS);
182
281
  this.value = TuiMonth.currentLocal();
183
282
  this.min = TUI_FIRST_DAY;
184
283
  this.max = TUI_LAST_DAY;
@@ -204,12 +303,12 @@ class TuiCalendarSpin {
204
303
  this.value = value;
205
304
  this.valueChange.emit(value);
206
305
  }
207
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarSpin, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
208
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", 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 @if (min.year === max.year) {\n {{ value.formattedYear }}\n } @else {\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 }\n</tui-spin-button>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { 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 }); }
306
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendarSpin, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
307
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.16", 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 {{ months()[value.month] }}\n @if (min.year === max.year) {\n {{ value.formattedYear }}\n } @else {\n <button\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ value.formattedYear }}\n </button>\n }\n</tui-spin-button>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "component", type: TuiSpinButton, selector: "tui-spin-button", inputs: ["focusable", "disabled", "leftDisabled", "rightDisabled"], outputs: ["leftClick", "rightClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
209
308
  }
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarSpin, decorators: [{
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendarSpin, decorators: [{
211
310
  type: Component,
212
- args: [{ selector: 'tui-calendar-spin', imports: [AsyncPipe, 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 @if (min.year === max.year) {\n {{ value.formattedYear }}\n } @else {\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 }\n</tui-spin-button>\n", styles: [":host{display:block}\n"] }]
311
+ args: [{ selector: 'tui-calendar-spin', imports: [TuiLink, 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 {{ months()[value.month] }}\n @if (min.year === max.year) {\n {{ value.formattedYear }}\n } @else {\n <button\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ value.formattedYear }}\n </button>\n }\n</tui-spin-button>\n", styles: [":host{display:block}\n"] }]
213
312
  }], propDecorators: { value: [{
214
313
  type: Input
215
314
  }], min: [{
@@ -311,14 +410,14 @@ class TuiCalendarYear {
311
410
  const max = this.max() ?? MAX_YEAR;
312
411
  return max < initial ? max + 1 : initial;
313
412
  }
314
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarYear, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", 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 @let item = getItem(rowIndex, colIndex);\n <div\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;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{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);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: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendarYear, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
414
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.16", 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: "@for (_ of '-'.repeat(rows); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(4); track $index) {\n @let item = getItem(rowIndex, $index);\n <div\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 }\n </div>\n}\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;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;inset:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{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);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: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
316
415
  }
317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarYear, decorators: [{
416
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendarYear, decorators: [{
318
417
  type: Component,
319
- args: [{ selector: 'tui-calendar-year', imports: [TuiHovered, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: {
418
+ args: [{ selector: 'tui-calendar-year', imports: [TuiHovered, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: {
320
419
  '[class._picking]': 'isRangePicking()',
321
- }, 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 @let item = getItem(rowIndex, colIndex);\n <div\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;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{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);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"] }]
420
+ }, template: "@for (_ of '-'.repeat(rows); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(4); track $index) {\n @let item = getItem(rowIndex, $index);\n <div\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 }\n </div>\n}\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;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;inset:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{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);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"] }]
322
421
  }], propDecorators: { rangeMode: [{
323
422
  type: Input
324
423
  }], disabledItemHandler: [{
@@ -426,10 +525,10 @@ class TuiCalendar {
426
525
  this.hoveredItem = day;
427
526
  this.hoveredItemChange.emit(day);
428
527
  }
429
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
430
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiCalendar, isStandalone: true, selector: "tui-calendar", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", min: "min", max: "max", minViewedMonth: "minViewedMonth", maxViewedMonth: "maxViewedMonth", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", markerHandler: "markerHandler", value: "value", initialView: "initialView" }, outputs: { dayClick: "dayClick", monthChange: "monthChange", hoveredItemChange: "hoveredItemChange" }, host: { listeners: { "pointerdown.prevent.zoneless": "0" } }, providers: [tuiAsAuxiliary(TuiCalendar)], ngImport: i0, template: "@if (isInYearView) {\n <tui-scrollbar\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n >\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n </tui-scrollbar>\n} @else {\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n}\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-sheet-dialog){inline-size:100%}tui-calendar-year{padding:0}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"], dependencies: [{ kind: "component", type: TuiCalendarSheet, selector: "tui-calendar-sheet", inputs: ["month", "disabledItemHandler", "markerHandler", "value", "hoveredItem", "showAdjacent", "single"], outputs: ["hoveredItemChange", "dayClick"] }, { kind: "component", type: TuiCalendarSpin, selector: "tui-calendar-spin", inputs: ["value", "min", "max"], outputs: ["valueChange", "yearClick"] }, { kind: "component", type: TuiCalendarYear, selector: "tui-calendar-year", inputs: ["rangeMode", "disabledItemHandler", "initialItem", "min", "max", "value"], outputs: ["yearClick"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
528
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
529
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.16", type: TuiCalendar, isStandalone: true, selector: "tui-calendar", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", min: "min", max: "max", minViewedMonth: "minViewedMonth", maxViewedMonth: "maxViewedMonth", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", markerHandler: "markerHandler", value: "value", initialView: "initialView" }, outputs: { dayClick: "dayClick", monthChange: "monthChange", hoveredItemChange: "hoveredItemChange" }, host: { listeners: { "pointerdown.prevent.zoneless": "0" } }, providers: [tuiAsAuxiliary(TuiCalendar)], ngImport: i0, template: "@if (isInYearView) {\n <tui-scrollbar\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n >\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n </tui-scrollbar>\n} @else {\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n}\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-sheet-dialog){inline-size:100%}tui-calendar-year{padding:0}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"], dependencies: [{ kind: "component", type: TuiCalendarSheet, selector: "tui-calendar-sheet", inputs: ["month", "disabledItemHandler", "markerHandler", "value", "hoveredItem", "showAdjacent", "single"], outputs: ["hoveredItemChange", "dayClick"] }, { kind: "component", type: TuiCalendarSpin, selector: "tui-calendar-spin", inputs: ["value", "min", "max"], outputs: ["valueChange", "yearClick"] }, { kind: "component", type: TuiCalendarYear, selector: "tui-calendar-year", inputs: ["rangeMode", "disabledItemHandler", "initialItem", "min", "max", "value"], outputs: ["yearClick"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
431
530
  }
432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendar, decorators: [{
531
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCalendar, decorators: [{
433
532
  type: Component,
434
533
  args: [{ selector: 'tui-calendar', imports: [
435
534
  TuiCalendarSheet,
@@ -474,5 +573,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
474
573
  * Generated bundle index. Do not edit.
475
574
  */
476
575
 
477
- export { TUI_CALENDAR_SHEET_DEFAULT_OPTIONS, TUI_CALENDAR_SHEET_OPTIONS, TuiCalendar, TuiCalendarSheet, TuiCalendarSpin, TuiCalendarYear, tuiCalendarSheetOptionsProvider };
576
+ export { TUI_CALENDAR_SHEET_DEFAULT_OPTIONS, TUI_CALENDAR_SHEET_OPTIONS, TuiCalendar, TuiCalendarSheet, TuiCalendarSheetPipe, TuiCalendarSpin, TuiCalendarYear, TuiOrderWeekDaysPipe, tuiCalendarSheetOptionsProvider };
478
577
  //# sourceMappingURL=taiga-ui-core-components-calendar.mjs.map