@taiga-ui/kit 2.34.0 → 2.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +2 -2
  2. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +2 -2
  4. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +64 -41
  6. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +2 -2
  8. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-input-month.umd.js +57 -32
  10. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +2 -2
  12. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-input-number.umd.js +8 -2
  14. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  16. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-input-phone.umd.js +8 -2
  18. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +2 -2
  20. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-input-tag.umd.js +15 -8
  22. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  24. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +24 -14
  26. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +1 -1
  28. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-multi-select.umd.js +21 -7
  30. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +2 -2
  32. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-progress.umd.js +140 -73
  34. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-progress.umd.min.js +2 -2
  36. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-slider.umd.js +37 -24
  38. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  40. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-text-area.umd.js +1 -1
  42. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  43. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js +1 -1
  45. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.min.js +1 -1
  46. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +38 -6
  47. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  48. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js +2 -2
  49. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -1
  50. package/bundles/taiga-ui-kit-providers.umd.js +29 -12
  51. package/bundles/taiga-ui-kit-providers.umd.js.map +1 -1
  52. package/bundles/taiga-ui-kit-providers.umd.min.js +1 -1
  53. package/bundles/taiga-ui-kit-providers.umd.min.js.map +1 -1
  54. package/bundles/taiga-ui-kit-tokens.umd.js +3 -0
  55. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  56. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  57. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  58. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  59. package/components/input-month/index.d.ts +1 -0
  60. package/components/input-month/input-month.component.d.ts +6 -4
  61. package/components/input-month/input-month.directive.d.ts +8 -1
  62. package/components/input-month/input-month.providers.d.ts +2 -0
  63. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  64. package/components/input-month-range/index.d.ts +1 -0
  65. package/components/input-month-range/input-month-range.component.d.ts +6 -7
  66. package/components/input-month-range/input-month-range.directive.d.ts +8 -1
  67. package/components/input-month-range/input-month-range.providers.d.ts +2 -0
  68. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  69. package/components/input-number/input-number.directive.d.ts +4 -1
  70. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  71. package/components/input-phone/input-phone.directive.d.ts +4 -1
  72. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  73. package/components/input-tag/input-tag.component.d.ts +4 -3
  74. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  75. package/components/line-clamp/line-clamp.component.d.ts +7 -3
  76. package/components/line-clamp/taiga-ui-kit-components-line-clamp.metadata.json +1 -1
  77. package/components/multi-select/hide-selected.pipe.d.ts +1 -1
  78. package/components/multi-select/multi-select.component.d.ts +4 -2
  79. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  80. package/components/progress/index.d.ts +4 -3
  81. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +11 -0
  82. package/components/progress/taiga-ui-kit-components-progress.metadata.json +1 -1
  83. package/components/progress/{pipes → utils}/abstract-color-segments.d.ts +0 -0
  84. package/components/progress/utils/calculate-color-segments.d.ts +5 -0
  85. package/components/progress/{pipes → utils}/progress-color-segments-async.pipe.d.ts +5 -0
  86. package/components/progress/utils/progress-color-segments.pipe.d.ts +9 -0
  87. package/components/slider/slider.component.d.ts +5 -6
  88. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  89. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  90. package/directives/lazy-loading/index.d.ts +1 -0
  91. package/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.d.ts +0 -1
  92. package/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.metadata.json +1 -1
  93. package/esm2015/components/calendar-month/calendar-month.component.js +3 -3
  94. package/esm2015/components/input-month/index.js +2 -1
  95. package/esm2015/components/input-month/input-month.component.js +19 -25
  96. package/esm2015/components/input-month/input-month.directive.js +32 -7
  97. package/esm2015/components/input-month/input-month.module.js +4 -4
  98. package/esm2015/components/input-month/input-month.providers.js +19 -0
  99. package/esm2015/components/input-month-range/index.js +2 -1
  100. package/esm2015/components/input-month-range/input-month-range.component.js +21 -37
  101. package/esm2015/components/input-month-range/input-month-range.directive.js +37 -7
  102. package/esm2015/components/input-month-range/input-month-range.module.js +3 -2
  103. package/esm2015/components/input-month-range/input-month-range.providers.js +19 -0
  104. package/esm2015/components/input-number/input-number.directive.js +9 -3
  105. package/esm2015/components/input-phone/input-phone.directive.js +9 -3
  106. package/esm2015/components/input-tag/input-tag.component.js +16 -9
  107. package/esm2015/components/line-clamp/line-clamp.component.js +25 -15
  108. package/esm2015/components/multi-select/hide-selected.pipe.js +4 -3
  109. package/esm2015/components/multi-select/multi-select.component.js +16 -6
  110. package/esm2015/components/progress/index.js +5 -4
  111. package/esm2015/components/progress/progress-bar/progress-color-segments.directive.js +48 -0
  112. package/esm2015/components/progress/progress.module.js +6 -3
  113. package/esm2015/components/progress/utils/abstract-color-segments.js +32 -0
  114. package/esm2015/components/progress/utils/calculate-color-segments.js +10 -0
  115. package/esm2015/components/progress/utils/progress-color-segments-async.pipe.js +21 -0
  116. package/esm2015/components/progress/utils/progress-color-segments.pipe.js +19 -0
  117. package/esm2015/components/slider/slider.component.js +34 -20
  118. package/esm2015/components/text-area/text-area.component.js +1 -1
  119. package/esm2015/directives/lazy-loading/index.js +2 -1
  120. package/esm2015/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.js +1 -2
  121. package/esm2015/pipes/field-error/field-error-content-pipe.js +35 -0
  122. package/esm2015/pipes/field-error/field-error.module.js +4 -3
  123. package/esm2015/pipes/field-error/index.js +2 -1
  124. package/esm2015/providers/index.js +2 -1
  125. package/esm2015/providers/month-formatter.provider.js +17 -0
  126. package/esm2015/providers/value-accessor.provider.js +2 -2
  127. package/esm2015/tokens/index.js +2 -1
  128. package/esm2015/tokens/month-formatter.js +3 -0
  129. package/esm5/components/calendar-month/calendar-month.component.js +3 -3
  130. package/esm5/components/input-month/index.js +2 -1
  131. package/esm5/components/input-month/input-month.component.js +18 -25
  132. package/esm5/components/input-month/input-month.directive.js +32 -9
  133. package/esm5/components/input-month/input-month.module.js +4 -4
  134. package/esm5/components/input-month/input-month.providers.js +19 -0
  135. package/esm5/components/input-month-range/index.js +2 -1
  136. package/esm5/components/input-month-range/input-month-range.component.js +20 -38
  137. package/esm5/components/input-month-range/input-month-range.directive.js +38 -8
  138. package/esm5/components/input-month-range/input-month-range.module.js +3 -2
  139. package/esm5/components/input-month-range/input-month-range.providers.js +19 -0
  140. package/esm5/components/input-number/input-number.directive.js +9 -3
  141. package/esm5/components/input-phone/input-phone.directive.js +9 -3
  142. package/esm5/components/input-tag/input-tag.component.js +16 -9
  143. package/esm5/components/line-clamp/line-clamp.component.js +26 -16
  144. package/esm5/components/multi-select/hide-selected.pipe.js +4 -4
  145. package/esm5/components/multi-select/multi-select.component.js +20 -6
  146. package/esm5/components/progress/index.js +5 -4
  147. package/esm5/components/progress/progress-bar/progress-color-segments.directive.js +56 -0
  148. package/esm5/components/progress/progress.module.js +6 -3
  149. package/esm5/components/progress/utils/abstract-color-segments.js +33 -0
  150. package/esm5/components/progress/utils/calculate-color-segments.js +12 -0
  151. package/esm5/components/progress/utils/progress-color-segments-async.pipe.js +27 -0
  152. package/esm5/components/progress/utils/progress-color-segments.pipe.js +24 -0
  153. package/esm5/components/slider/slider.component.js +37 -23
  154. package/esm5/components/text-area/text-area.component.js +1 -1
  155. package/esm5/directives/lazy-loading/index.js +2 -1
  156. package/esm5/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.js +1 -2
  157. package/esm5/pipes/field-error/field-error-content-pipe.js +36 -0
  158. package/esm5/pipes/field-error/field-error.module.js +4 -3
  159. package/esm5/pipes/field-error/index.js +2 -1
  160. package/esm5/providers/index.js +2 -1
  161. package/esm5/providers/month-formatter.provider.js +19 -0
  162. package/esm5/providers/value-accessor.provider.js +2 -2
  163. package/esm5/tokens/index.js +2 -1
  164. package/esm5/tokens/month-formatter.js +3 -0
  165. package/fesm2015/taiga-ui-kit-components-calendar-month.js +2 -2
  166. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  167. package/fesm2015/taiga-ui-kit-components-input-month-range.js +67 -41
  168. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  169. package/fesm2015/taiga-ui-kit-components-input-month.js +61 -31
  170. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  171. package/fesm2015/taiga-ui-kit-components-input-number.js +8 -2
  172. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  173. package/fesm2015/taiga-ui-kit-components-input-phone.js +8 -2
  174. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  175. package/fesm2015/taiga-ui-kit-components-input-tag.js +15 -8
  176. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  177. package/fesm2015/taiga-ui-kit-components-line-clamp.js +24 -14
  178. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  179. package/fesm2015/taiga-ui-kit-components-multi-select.js +18 -7
  180. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  181. package/fesm2015/taiga-ui-kit-components-progress.js +113 -55
  182. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  183. package/fesm2015/taiga-ui-kit-components-slider.js +33 -19
  184. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  185. package/fesm2015/taiga-ui-kit-components-text-area.js +1 -1
  186. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js +1 -1
  187. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  188. package/fesm2015/taiga-ui-kit-pipes-field-error.js +35 -4
  189. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
  190. package/fesm2015/taiga-ui-kit-providers.js +18 -4
  191. package/fesm2015/taiga-ui-kit-providers.js.map +1 -1
  192. package/fesm2015/taiga-ui-kit-tokens.js +3 -1
  193. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  194. package/fesm5/taiga-ui-kit-components-calendar-month.js +2 -2
  195. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  196. package/fesm5/taiga-ui-kit-components-input-month-range.js +68 -44
  197. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  198. package/fesm5/taiga-ui-kit-components-input-month.js +60 -33
  199. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  200. package/fesm5/taiga-ui-kit-components-input-number.js +8 -2
  201. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  202. package/fesm5/taiga-ui-kit-components-input-phone.js +8 -2
  203. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  204. package/fesm5/taiga-ui-kit-components-input-tag.js +15 -8
  205. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  206. package/fesm5/taiga-ui-kit-components-line-clamp.js +25 -15
  207. package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
  208. package/fesm5/taiga-ui-kit-components-multi-select.js +22 -8
  209. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  210. package/fesm5/taiga-ui-kit-components-progress.js +135 -69
  211. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  212. package/fesm5/taiga-ui-kit-components-slider.js +36 -22
  213. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  214. package/fesm5/taiga-ui-kit-components-text-area.js +1 -1
  215. package/fesm5/taiga-ui-kit-directives-lazy-loading.js +1 -1
  216. package/fesm5/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  217. package/fesm5/taiga-ui-kit-pipes-field-error.js +36 -4
  218. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -1
  219. package/fesm5/taiga-ui-kit-providers.js +20 -4
  220. package/fesm5/taiga-ui-kit-providers.js.map +1 -1
  221. package/fesm5/taiga-ui-kit-tokens.js +3 -1
  222. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  223. package/package.json +4 -4
  224. package/pipes/field-error/field-error-content-pipe.d.ts +11 -0
  225. package/pipes/field-error/index.d.ts +1 -0
  226. package/pipes/field-error/taiga-ui-kit-pipes-field-error.metadata.json +1 -1
  227. package/providers/index.d.ts +1 -0
  228. package/providers/month-formatter.provider.d.ts +6 -0
  229. package/providers/taiga-ui-kit-providers.metadata.json +1 -1
  230. package/tokens/index.d.ts +1 -0
  231. package/tokens/month-formatter.d.ts +4 -0
  232. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  233. package/components/progress/pipes/progress-color-segments.pipe.d.ts +0 -9
  234. package/esm2015/components/progress/pipes/abstract-color-segments.js +0 -32
  235. package/esm2015/components/progress/pipes/progress-color-segments-async.pipe.js +0 -15
  236. package/esm2015/components/progress/pipes/progress-color-segments.pipe.js +0 -18
  237. package/esm5/components/progress/pipes/abstract-color-segments.js +0 -35
  238. package/esm5/components/progress/pipes/progress-color-segments-async.pipe.js +0 -21
  239. package/esm5/components/progress/pipes/progress-color-segments.pipe.js +0 -23
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes-field-error.js","sources":["ng://@taiga-ui/kit/pipes/field-error/field-error-pipe.ts","ng://@taiga-ui/kit/pipes/field-error/field-error.module.ts","ng://@taiga-ui/kit/pipes/field-error/taiga-ui-kit-pipes-field-error.ts"],"sourcesContent":["import {Inject, Optional, Pipe, PipeTransform, Self} from '@angular/core';\nimport {\n AbstractControl,\n FormArrayName,\n FormGroupDirective,\n FormGroupName,\n NgControl,\n} from '@angular/forms';\nimport {tuiPure, TuiValidationError} from '@taiga-ui/cdk';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, isObservable, merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nconst EMPTY_RECORD = {};\n\n// @dynamic\n@Pipe({\n name: 'tuiFieldError',\n pure: false,\n})\nexport class TuiFieldErrorPipe implements PipeTransform {\n private order: ReadonlyArray<string> = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<\n string,\n PolymorpheusContent | Observable<PolymorpheusContent>\n >,\n ) {\n if (this.ngControl && !this.ngControl.valueAccessor) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n transform(order: ReadonlyArray<string>): Observable<TuiValidationError | null> {\n this.order = order;\n\n return this.computedError;\n }\n\n @tuiPure\n get change$(): Observable<unknown> {\n return merge(\n this.control?.valueChanges || EMPTY,\n this.control?.statusChanges || EMPTY,\n );\n }\n\n get computedError(): Observable<TuiValidationError | null> {\n return (this.invalid && this.touched && this.error) || of(null);\n }\n\n registerOnChange() {}\n\n registerOnTouched() {}\n\n setDisabledState() {}\n\n writeValue() {}\n\n private get error(): Observable<TuiValidationError> | null {\n const {errorId} = this;\n\n if (!errorId) {\n return null;\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control?.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control?.touched;\n }\n\n private get control(): AbstractControl | null {\n return (\n this.ngControl?.control ||\n this.formArrayName?.control ||\n this.formGroupName?.control ||\n this.formGroup?.control ||\n null\n );\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, any> {\n return this.control?.errors || EMPTY_RECORD;\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, any>,\n ): string {\n const id = order?.find(errorId => controlErrors[errorId]);\n const fallback = Object.keys(controlErrors)[0];\n\n return id || fallback || '';\n }\n\n @tuiPure\n private getError(\n firstError: any,\n errorContent?: PolymorpheusContent | Observable<PolymorpheusContent>,\n ): Observable<TuiValidationError> {\n if (firstError instanceof TuiValidationError) {\n return of(firstError);\n }\n\n if (errorContent === undefined && typeof firstError === 'string') {\n return of(new TuiValidationError(firstError));\n }\n\n if (isObservable(errorContent)) {\n return errorContent.pipe(\n map(error => new TuiValidationError(error || '', firstError)),\n );\n }\n\n return of(new TuiValidationError(errorContent || '', firstError));\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n@NgModule({\n declarations: [TuiFieldErrorPipe],\n exports: [TuiFieldErrorPipe],\n})\nexport class TuiFieldErrorPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-pipes-field-error.js","sources":["ng://@taiga-ui/kit/pipes/field-error/field-error-pipe.ts","ng://@taiga-ui/kit/pipes/field-error/field-error-content-pipe.ts","ng://@taiga-ui/kit/pipes/field-error/field-error.module.ts","ng://@taiga-ui/kit/pipes/field-error/taiga-ui-kit-pipes-field-error.ts"],"sourcesContent":["import {Inject, Optional, Pipe, PipeTransform, Self} from '@angular/core';\nimport {\n AbstractControl,\n FormArrayName,\n FormGroupDirective,\n FormGroupName,\n NgControl,\n} from '@angular/forms';\nimport {tuiPure, TuiValidationError} from '@taiga-ui/cdk';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, isObservable, merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nconst EMPTY_RECORD = {};\n\n// @dynamic\n@Pipe({\n name: 'tuiFieldError',\n pure: false,\n})\nexport class TuiFieldErrorPipe implements PipeTransform {\n private order: ReadonlyArray<string> = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<\n string,\n PolymorpheusContent | Observable<PolymorpheusContent>\n >,\n ) {\n if (this.ngControl && !this.ngControl.valueAccessor) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n transform(order: ReadonlyArray<string>): Observable<TuiValidationError | null> {\n this.order = order;\n\n return this.computedError;\n }\n\n @tuiPure\n get change$(): Observable<unknown> {\n return merge(\n this.control?.valueChanges || EMPTY,\n this.control?.statusChanges || EMPTY,\n );\n }\n\n get computedError(): Observable<TuiValidationError | null> {\n return (this.invalid && this.touched && this.error) || of(null);\n }\n\n registerOnChange() {}\n\n registerOnTouched() {}\n\n setDisabledState() {}\n\n writeValue() {}\n\n private get error(): Observable<TuiValidationError> | null {\n const {errorId} = this;\n\n if (!errorId) {\n return null;\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control?.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control?.touched;\n }\n\n private get control(): AbstractControl | null {\n return (\n this.ngControl?.control ||\n this.formArrayName?.control ||\n this.formGroupName?.control ||\n this.formGroup?.control ||\n null\n );\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, any> {\n return this.control?.errors || EMPTY_RECORD;\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, any>,\n ): string {\n const id = order?.find(errorId => controlErrors[errorId]);\n const fallback = Object.keys(controlErrors)[0];\n\n return id || fallback || '';\n }\n\n @tuiPure\n private getError(\n firstError: any,\n errorContent?: PolymorpheusContent | Observable<PolymorpheusContent>,\n ): Observable<TuiValidationError> {\n if (firstError instanceof TuiValidationError) {\n return of(firstError);\n }\n\n if (errorContent === undefined && typeof firstError === 'string') {\n return of(new TuiValidationError(firstError));\n }\n\n if (isObservable(errorContent)) {\n return errorContent.pipe(\n map(error => new TuiValidationError(error || '', firstError)),\n );\n }\n\n return of(new TuiValidationError(errorContent || '', firstError));\n }\n}\n","import {AsyncPipe} from '@angular/common';\nimport {Inject, Injector, OnDestroy, Pipe, PipeTransform} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n// @dynamic\n@Pipe({\n name: 'tuiFieldErrorContent',\n pure: false,\n})\nexport class TuiFieldErrorContentPipe implements PipeTransform, OnDestroy {\n private readonly localInjector = Injector.create({\n providers: [{provide: AsyncPipe}, {provide: TuiFieldErrorPipe}],\n parent: this.injector,\n });\n\n private readonly asyncPipe = this.localInjector.get(AsyncPipe);\n private readonly fieldErrorPipe = this.localInjector.get(TuiFieldErrorPipe);\n\n constructor(@Inject(Injector) private readonly injector: Injector) {}\n\n transform(order: ReadonlyArray<string>): PolymorpheusContent {\n return (\n this.asyncPipe.transform(this.fieldErrorPipe.transform(order))?.message || ''\n );\n }\n\n ngOnDestroy() {\n this.asyncPipe.ngOnDestroy();\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFieldErrorContentPipe} from './field-error-content-pipe';\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n@NgModule({\n declarations: [TuiFieldErrorPipe, TuiFieldErrorContentPipe],\n exports: [TuiFieldErrorPipe, TuiFieldErrorContentPipe],\n})\nexport class TuiFieldErrorPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,22 @@
1
+ import { TuiMonthPipe, TuiDropdownControllerDirective, TUI_DROPDOWN_CONTROLLER, TUI_VALUE_ACCESSOR } from '@taiga-ui/core';
2
+ import { TUI_MONTH_FORMATTER } from '@taiga-ui/kit/tokens';
3
+ import { of, identity } from 'rxjs';
4
+ import { map } from 'rxjs/operators';
1
5
  import { Optional, Self } from '@angular/core';
2
- import { TuiDropdownControllerDirective, TUI_DROPDOWN_CONTROLLER } from '@taiga-ui/core';
3
6
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { TUI_VALUE_ACCESSOR } from '@taiga-ui/core/tokens';
5
- import { identity } from 'rxjs';
7
+
8
+ const TUI_MONTH_FORMATTER_PROVIDER = {
9
+ provide: TUI_MONTH_FORMATTER,
10
+ deps: [TuiMonthPipe],
11
+ useFactory: monthFormatterFactory,
12
+ };
13
+ function monthFormatterFactory(pipe) {
14
+ return month => month
15
+ ? pipe
16
+ .transform(month)
17
+ .pipe(map(formatted => `${formatted} ${month.formattedYear}`))
18
+ : of('');
19
+ }
6
20
 
7
21
  function fixedDropdownControllerFactory(directive) {
8
22
  directive = directive || new TuiDropdownControllerDirective();
@@ -41,5 +55,5 @@ const TUI_VALUE_ACCESSOR_PROVIDER = {
41
55
  * Generated bundle index. Do not edit.
42
56
  */
43
57
 
44
- export { FIXED_DROPDOWN_CONTROLLER_PROVIDER, IDENTITY, LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER, TUI_VALUE_ACCESSOR_PROVIDER, fixedDropdownControllerFactory, leftAlignedDropdownControllerFactory };
58
+ export { FIXED_DROPDOWN_CONTROLLER_PROVIDER, IDENTITY, LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER, TUI_MONTH_FORMATTER_PROVIDER, TUI_VALUE_ACCESSOR_PROVIDER, fixedDropdownControllerFactory, leftAlignedDropdownControllerFactory, monthFormatterFactory };
45
59
  //# sourceMappingURL=taiga-ui-kit-providers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-providers.js","sources":["ng://@taiga-ui/kit/providers/specific-dropdown-controllers.ts","ng://@taiga-ui/kit/providers/value-accessor.provider.ts","ng://@taiga-ui/kit/providers/taiga-ui-kit-providers.ts"],"sourcesContent":["import {Optional, Provider} from '@angular/core';\nimport {TUI_DROPDOWN_CONTROLLER, TuiDropdownControllerDirective} from '@taiga-ui/core';\n\nexport function fixedDropdownControllerFactory(\n directive: TuiDropdownControllerDirective | null,\n): TuiDropdownControllerDirective {\n directive = directive || new TuiDropdownControllerDirective();\n directive.limitWidth = 'fixed';\n\n return directive;\n}\n\nexport const FIXED_DROPDOWN_CONTROLLER_PROVIDER: Provider = [\n {\n provide: TUI_DROPDOWN_CONTROLLER,\n deps: [[new Optional(), TuiDropdownControllerDirective]],\n useFactory: fixedDropdownControllerFactory,\n },\n];\n\nexport function leftAlignedDropdownControllerFactory(\n directive: TuiDropdownControllerDirective | null,\n): TuiDropdownControllerDirective {\n directive = directive || new TuiDropdownControllerDirective();\n directive.align = 'left';\n\n return directive;\n}\n\nexport const LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER: Provider = [\n {\n provide: TUI_DROPDOWN_CONTROLLER,\n deps: [[new Optional(), TuiDropdownControllerDirective]],\n useFactory: leftAlignedDropdownControllerFactory,\n },\n];\n","import {FactoryProvider, Optional, Self} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {TUI_VALUE_ACCESSOR} from '@taiga-ui/core/tokens';\nimport {identity} from 'rxjs';\n\n// TODO: remove in ivy compilation\nexport const IDENTITY = identity;\n\nexport const TUI_VALUE_ACCESSOR_PROVIDER: FactoryProvider = {\n provide: TUI_VALUE_ACCESSOR,\n deps: [[new Optional(), new Self(), NG_VALUE_ACCESSOR]],\n useFactory: IDENTITY,\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;SAGgB,8BAA8B,CAC1C,SAAgD;IAEhD,SAAS,GAAG,SAAS,IAAI,IAAI,8BAA8B,EAAE,CAAC;IAC9D,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC;IAE/B,OAAO,SAAS,CAAC;AACrB,CAAC;MAEY,kCAAkC,GAAa;IACxD;QACI,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,8BAA8B,CAAC,CAAC;QACxD,UAAU,EAAE,8BAA8B;KAC7C;EACH;SAEc,oCAAoC,CAChD,SAAgD;IAEhD,SAAS,GAAG,SAAS,IAAI,IAAI,8BAA8B,EAAE,CAAC;IAC9D,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC;IAEzB,OAAO,SAAS,CAAC;AACrB,CAAC;MAEY,yCAAyC,GAAa;IAC/D;QACI,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,8BAA8B,CAAC,CAAC;QACxD,UAAU,EAAE,oCAAoC;KACnD;;;AC7BL;MACa,QAAQ,GAAG,SAAS;MAEpB,2BAA2B,GAAoB;IACxD,OAAO,EAAE,kBAAkB;IAC3B,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACvD,UAAU,EAAE,QAAQ;;;ACXxB;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-providers.js","sources":["ng://@taiga-ui/kit/providers/month-formatter.provider.ts","ng://@taiga-ui/kit/providers/specific-dropdown-controllers.ts","ng://@taiga-ui/kit/providers/value-accessor.provider.ts","ng://@taiga-ui/kit/providers/taiga-ui-kit-providers.ts"],"sourcesContent":["import {FactoryProvider} from '@angular/core';\nimport {TuiHandler, TuiMonth} from '@taiga-ui/cdk';\nimport {TuiMonthPipe} from '@taiga-ui/core';\nimport {TUI_MONTH_FORMATTER} from '@taiga-ui/kit/tokens';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport const TUI_MONTH_FORMATTER_PROVIDER: FactoryProvider = {\n provide: TUI_MONTH_FORMATTER,\n deps: [TuiMonthPipe],\n useFactory: monthFormatterFactory,\n};\n\nexport function monthFormatterFactory(\n pipe: TuiMonthPipe,\n): TuiHandler<TuiMonth | null, Observable<string>> {\n return month =>\n month\n ? pipe\n .transform(month)\n .pipe(map(formatted => `${formatted} ${month.formattedYear}`))\n : of('');\n}\n","import {Optional, Provider} from '@angular/core';\nimport {TUI_DROPDOWN_CONTROLLER, TuiDropdownControllerDirective} from '@taiga-ui/core';\n\nexport function fixedDropdownControllerFactory(\n directive: TuiDropdownControllerDirective | null,\n): TuiDropdownControllerDirective {\n directive = directive || new TuiDropdownControllerDirective();\n directive.limitWidth = 'fixed';\n\n return directive;\n}\n\nexport const FIXED_DROPDOWN_CONTROLLER_PROVIDER: Provider = [\n {\n provide: TUI_DROPDOWN_CONTROLLER,\n deps: [[new Optional(), TuiDropdownControllerDirective]],\n useFactory: fixedDropdownControllerFactory,\n },\n];\n\nexport function leftAlignedDropdownControllerFactory(\n directive: TuiDropdownControllerDirective | null,\n): TuiDropdownControllerDirective {\n directive = directive || new TuiDropdownControllerDirective();\n directive.align = 'left';\n\n return directive;\n}\n\nexport const LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER: Provider = [\n {\n provide: TUI_DROPDOWN_CONTROLLER,\n deps: [[new Optional(), TuiDropdownControllerDirective]],\n useFactory: leftAlignedDropdownControllerFactory,\n },\n];\n","import {FactoryProvider, Optional, Self} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {TUI_VALUE_ACCESSOR} from '@taiga-ui/core';\nimport {identity} from 'rxjs';\n\n// TODO: remove in ivy compilation\nexport const IDENTITY = identity;\n\nexport const TUI_VALUE_ACCESSOR_PROVIDER: FactoryProvider = {\n provide: TUI_VALUE_ACCESSOR,\n deps: [[new Optional(), new Self(), NG_VALUE_ACCESSOR]],\n useFactory: IDENTITY,\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAOa,4BAA4B,GAAoB;IACzD,OAAO,EAAE,mBAAmB;IAC5B,IAAI,EAAE,CAAC,YAAY,CAAC;IACpB,UAAU,EAAE,qBAAqB;EACnC;SAEc,qBAAqB,CACjC,IAAkB;IAElB,OAAO,KAAK,IACR,KAAK;UACC,IAAI;aACC,SAAS,CAAC,KAAK,CAAC;aAChB,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,SAAS,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;UAClE,EAAE,CAAC,EAAE,CAAC,CAAC;AACrB;;SCnBgB,8BAA8B,CAC1C,SAAgD;IAEhD,SAAS,GAAG,SAAS,IAAI,IAAI,8BAA8B,EAAE,CAAC;IAC9D,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC;IAE/B,OAAO,SAAS,CAAC;AACrB,CAAC;MAEY,kCAAkC,GAAa;IACxD;QACI,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,8BAA8B,CAAC,CAAC;QACxD,UAAU,EAAE,8BAA8B;KAC7C;EACH;SAEc,oCAAoC,CAChD,SAAgD;IAEhD,SAAS,GAAG,SAAS,IAAI,IAAI,8BAA8B,EAAE,CAAC;IAC9D,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC;IAEzB,OAAO,SAAS,CAAC;AACrB,CAAC;MAEY,yCAAyC,GAAa;IAC/D;QACI,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,8BAA8B,CAAC,CAAC;QACxD,UAAU,EAAE,oCAAoC;KACnD;;;AC7BL;MACa,QAAQ,GAAG,SAAS;MAEpB,2BAA2B,GAAoB;IACxD,OAAO,EAAE,kBAAkB;IAC3B,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACvD,UAAU,EAAE,QAAQ;;;ACXxB;;;;;;"}
@@ -79,6 +79,8 @@ const TUI_MOBILE_AWARE = new InjectionToken('A flag enabling mobile-specific beh
79
79
 
80
80
  const TUI_MOBILE_CALENDAR = new InjectionToken('A component for mobile data picker');
81
81
 
82
+ const TUI_MONTH_FORMATTER = new InjectionToken('A function to get localized formatted month');
83
+
82
84
  const TUI_TAG_STATUS = new InjectionToken('Status for tags inside InputTag component', {
83
85
  factory: () => "primary" /* Primary */,
84
86
  });
@@ -91,5 +93,5 @@ const TUI_VALIDATION_ERRORS = new InjectionToken('Validation errors', {
91
93
  * Generated bundle index. Do not edit.
92
94
  */
93
95
 
94
- export { TUI_CALENDAR_DATA_STREAM, TUI_CALENDAR_MONTHS, TUI_CANCEL_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS, TUI_COPY_TEXTS, TUI_COUNTRIES, TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_DATE_TEXTS, TUI_DATE_TIME_VALUE_TRANSFORMER, TUI_DATE_VALUE_TRANSFORMER, TUI_DEFAULT_ITEMS_HANDLERS, TUI_DIGITAL_INFORMATION_UNITS, TUI_DONE_WORD, TUI_FILE_TEXTS, TUI_FROM_TO_TEXTS, TUI_INPUT_FILE_TEXTS, TUI_ITEMS_HANDLERS, TUI_MOBILE_AWARE, TUI_MOBILE_CALENDAR, TUI_MORE_WORD, TUI_OTHER_DATE_TEXT, TUI_PAGINATION_TEXTS, TUI_PASSWORD_TEXTS, TUI_PLUS_MINUS_TEXTS, TUI_TAG_STATUS, TUI_TIME_TEXTS, TUI_VALIDATION_ERRORS, tuiItemsHandlersProvider };
96
+ export { TUI_CALENDAR_DATA_STREAM, TUI_CALENDAR_MONTHS, TUI_CANCEL_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS, TUI_COPY_TEXTS, TUI_COUNTRIES, TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_DATE_TEXTS, TUI_DATE_TIME_VALUE_TRANSFORMER, TUI_DATE_VALUE_TRANSFORMER, TUI_DEFAULT_ITEMS_HANDLERS, TUI_DIGITAL_INFORMATION_UNITS, TUI_DONE_WORD, TUI_FILE_TEXTS, TUI_FROM_TO_TEXTS, TUI_INPUT_FILE_TEXTS, TUI_ITEMS_HANDLERS, TUI_MOBILE_AWARE, TUI_MOBILE_CALENDAR, TUI_MONTH_FORMATTER, TUI_MORE_WORD, TUI_OTHER_DATE_TEXT, TUI_PAGINATION_TEXTS, TUI_PASSWORD_TEXTS, TUI_PLUS_MINUS_TEXTS, TUI_TAG_STATUS, TUI_TIME_TEXTS, TUI_VALIDATION_ERRORS, tuiItemsHandlersProvider };
95
97
  //# sourceMappingURL=taiga-ui-kit-tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-tokens.js","sources":["ng://@taiga-ui/kit/tokens/calendar-data-stream.ts","ng://@taiga-ui/kit/tokens/date-inputs-value-transformers.ts","ng://@taiga-ui/kit/tokens/i18n.ts","ng://@taiga-ui/kit/tokens/items-handlers.ts","ng://@taiga-ui/kit/tokens/mobile-aware.ts","ng://@taiga-ui/kit/tokens/mobile-calendar.ts","ng://@taiga-ui/kit/tokens/tag-status.ts","ng://@taiga-ui/kit/tokens/validation-errors.ts","ng://@taiga-ui/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiDay, TuiDayRange} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CALENDAR_DATA_STREAM = new InjectionToken<\n Observable<TuiDay | TuiDayRange | null>\n>('Stream that emits calendar data change');\n","import {InjectionToken} from '@angular/core';\nimport {TuiControlValueTransformer, TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk';\n\nexport const TUI_DATE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDay | null>\n>('Control value transformer of TuiDay to custom value format for InputDate* components');\n\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDayRange | null>\n>('Control value transformer for InputDateRange component');\n\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<[TuiDay | null, TuiTime | null]>\n>('Control value transformer for InputDateTime component');\n","import {InjectionToken} from '@angular/core';\nimport {TuiDateMode} from '@taiga-ui/cdk';\nimport {extractI18n, TuiCountryIsoCode} from '@taiga-ui/i18n';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CANCEL_WORD = new InjectionToken(`i18n 'cancel' word`, {\n factory: extractI18n('cancel'),\n});\n\nexport const TUI_DONE_WORD = new InjectionToken(`i18n 'done' word`, {\n factory: extractI18n('done'),\n});\n\nexport const TUI_MORE_WORD = new InjectionToken(`i18n 'more' word`, {\n factory: extractI18n('more'),\n});\n\nexport const TUI_OTHER_DATE_TEXT = new InjectionToken(`i18n 'Other date' text`, {\n factory: extractI18n('otherDate'),\n});\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = new InjectionToken(\n `choose day or range i18n texts`,\n {\n factory: extractI18n('mobileCalendarTexts'),\n },\n);\n\nexport const TUI_FROM_TO_TEXTS = new InjectionToken(`from and to i18n texts`, {\n factory: extractI18n('range'),\n});\n\nexport const TUI_PLUS_MINUS_TEXTS = new InjectionToken(`plus and minus i18n texts`, {\n factory: extractI18n('countTexts'),\n});\n\nexport const TUI_TIME_TEXTS = new InjectionToken(`time i18n texts`, {\n factory: extractI18n('time'),\n});\n\nexport const TUI_DATE_TEXTS = new InjectionToken<Observable<Record<TuiDateMode, string>>>(\n 'date format i18n texts',\n {\n factory: extractI18n('dateTexts'),\n },\n);\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = new InjectionToken(\n `short bytes, kilobytes and megabytes i18n texts`,\n {\n factory: extractI18n('digitalInformationUnits'),\n },\n);\n\nexport const TUI_COPY_TEXTS = new InjectionToken('copy i18n texts', {\n factory: extractI18n('copyTexts'),\n});\n\nexport const TUI_PASSWORD_TEXTS = new InjectionToken('password i18n texts', {\n factory: extractI18n('passwordTexts'),\n});\n\nexport const TUI_CALENDAR_MONTHS = new InjectionToken('short calendar months i18n', {\n factory: extractI18n('shortCalendarMonths'),\n});\n\nexport const TUI_FILE_TEXTS = new InjectionToken('file i18n texts', {\n factory: extractI18n('fileTexts'),\n});\n\nexport const TUI_PAGINATION_TEXTS = new InjectionToken('pagination i18n texts', {\n factory: extractI18n('paginationTexts'),\n});\n\nexport const TUI_INPUT_FILE_TEXTS = new InjectionToken('tui-input-file i18n texts', {\n factory: extractI18n('inputFileTexts'),\n});\n\nexport const TUI_COUNTRIES: InjectionToken<\n Observable<Record<TuiCountryIsoCode, string>>\n> = new InjectionToken('Localized countries names', {\n factory: extractI18n('countries'),\n});\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\n\nexport interface TuiItemsHandlers<T> {\n readonly stringify: TuiStringHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n}\n\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: TUI_DEFAULT_STRINGIFY,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: ALWAYS_FALSE_HANDLER,\n};\n\nexport const TUI_ITEMS_HANDLERS = new InjectionToken<TuiItemsHandlers<unknown>>(\n 'Default items handlers for components',\n {\n factory: () => TUI_DEFAULT_ITEMS_HANDLERS,\n },\n);\n\nexport const tuiItemsHandlersProvider: <T>(\n options: Partial<TuiItemsHandlers<T>>,\n) => ValueProvider = <T>(options: Partial<TuiItemsHandlers<T>>) => ({\n provide: TUI_ITEMS_HANDLERS,\n useValue: {...TUI_DEFAULT_ITEMS_HANDLERS, ...options},\n});\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_MOBILE_AWARE = new InjectionToken<boolean>(\n 'A flag enabling mobile-specific behavior for supporting components',\n {\n factory: () => false,\n },\n);\n","import {InjectionToken, Type} from '@angular/core';\n\nexport const TUI_MOBILE_CALENDAR = new InjectionToken<Type<any>>(\n 'A component for mobile data picker',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiStatus} from '@taiga-ui/kit/enums';\n\nexport const TUI_TAG_STATUS = new InjectionToken<TuiStatus>(\n 'Status for tags inside InputTag component',\n {\n factory: () => TuiStatus.Primary,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = new InjectionToken<\n Record<string, PolymorpheusContent | Observable<PolymorpheusContent>>\n>('Validation errors', {\n factory: () => ({}),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-tokens.js","sources":["ng://@taiga-ui/kit/tokens/calendar-data-stream.ts","ng://@taiga-ui/kit/tokens/date-inputs-value-transformers.ts","ng://@taiga-ui/kit/tokens/i18n.ts","ng://@taiga-ui/kit/tokens/items-handlers.ts","ng://@taiga-ui/kit/tokens/mobile-aware.ts","ng://@taiga-ui/kit/tokens/mobile-calendar.ts","ng://@taiga-ui/kit/tokens/month-formatter.ts","ng://@taiga-ui/kit/tokens/tag-status.ts","ng://@taiga-ui/kit/tokens/validation-errors.ts","ng://@taiga-ui/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiDay, TuiDayRange} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CALENDAR_DATA_STREAM = new InjectionToken<\n Observable<TuiDay | TuiDayRange | null>\n>('Stream that emits calendar data change');\n","import {InjectionToken} from '@angular/core';\nimport {TuiControlValueTransformer, TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk';\n\nexport const TUI_DATE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDay | null>\n>('Control value transformer of TuiDay to custom value format for InputDate* components');\n\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDayRange | null>\n>('Control value transformer for InputDateRange component');\n\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<[TuiDay | null, TuiTime | null]>\n>('Control value transformer for InputDateTime component');\n","import {InjectionToken} from '@angular/core';\nimport {TuiDateMode} from '@taiga-ui/cdk';\nimport {extractI18n, TuiCountryIsoCode} from '@taiga-ui/i18n';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CANCEL_WORD = new InjectionToken(`i18n 'cancel' word`, {\n factory: extractI18n('cancel'),\n});\n\nexport const TUI_DONE_WORD = new InjectionToken(`i18n 'done' word`, {\n factory: extractI18n('done'),\n});\n\nexport const TUI_MORE_WORD = new InjectionToken(`i18n 'more' word`, {\n factory: extractI18n('more'),\n});\n\nexport const TUI_OTHER_DATE_TEXT = new InjectionToken(`i18n 'Other date' text`, {\n factory: extractI18n('otherDate'),\n});\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = new InjectionToken(\n `choose day or range i18n texts`,\n {\n factory: extractI18n('mobileCalendarTexts'),\n },\n);\n\nexport const TUI_FROM_TO_TEXTS = new InjectionToken(`from and to i18n texts`, {\n factory: extractI18n('range'),\n});\n\nexport const TUI_PLUS_MINUS_TEXTS = new InjectionToken(`plus and minus i18n texts`, {\n factory: extractI18n('countTexts'),\n});\n\nexport const TUI_TIME_TEXTS = new InjectionToken(`time i18n texts`, {\n factory: extractI18n('time'),\n});\n\nexport const TUI_DATE_TEXTS = new InjectionToken<Observable<Record<TuiDateMode, string>>>(\n 'date format i18n texts',\n {\n factory: extractI18n('dateTexts'),\n },\n);\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = new InjectionToken(\n `short bytes, kilobytes and megabytes i18n texts`,\n {\n factory: extractI18n('digitalInformationUnits'),\n },\n);\n\nexport const TUI_COPY_TEXTS = new InjectionToken('copy i18n texts', {\n factory: extractI18n('copyTexts'),\n});\n\nexport const TUI_PASSWORD_TEXTS = new InjectionToken('password i18n texts', {\n factory: extractI18n('passwordTexts'),\n});\n\nexport const TUI_CALENDAR_MONTHS = new InjectionToken('short calendar months i18n', {\n factory: extractI18n('shortCalendarMonths'),\n});\n\nexport const TUI_FILE_TEXTS = new InjectionToken('file i18n texts', {\n factory: extractI18n('fileTexts'),\n});\n\nexport const TUI_PAGINATION_TEXTS = new InjectionToken('pagination i18n texts', {\n factory: extractI18n('paginationTexts'),\n});\n\nexport const TUI_INPUT_FILE_TEXTS = new InjectionToken('tui-input-file i18n texts', {\n factory: extractI18n('inputFileTexts'),\n});\n\nexport const TUI_COUNTRIES: InjectionToken<\n Observable<Record<TuiCountryIsoCode, string>>\n> = new InjectionToken('Localized countries names', {\n factory: extractI18n('countries'),\n});\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\n\nexport interface TuiItemsHandlers<T> {\n readonly stringify: TuiStringHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n}\n\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: TUI_DEFAULT_STRINGIFY,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: ALWAYS_FALSE_HANDLER,\n};\n\nexport const TUI_ITEMS_HANDLERS = new InjectionToken<TuiItemsHandlers<unknown>>(\n 'Default items handlers for components',\n {\n factory: () => TUI_DEFAULT_ITEMS_HANDLERS,\n },\n);\n\nexport const tuiItemsHandlersProvider: <T>(\n options: Partial<TuiItemsHandlers<T>>,\n) => ValueProvider = <T>(options: Partial<TuiItemsHandlers<T>>) => ({\n provide: TUI_ITEMS_HANDLERS,\n useValue: {...TUI_DEFAULT_ITEMS_HANDLERS, ...options},\n});\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_MOBILE_AWARE = new InjectionToken<boolean>(\n 'A flag enabling mobile-specific behavior for supporting components',\n {\n factory: () => false,\n },\n);\n","import {InjectionToken, Type} from '@angular/core';\n\nexport const TUI_MOBILE_CALENDAR = new InjectionToken<Type<any>>(\n 'A component for mobile data picker',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiHandler, TuiMonth} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_MONTH_FORMATTER = new InjectionToken<\n TuiHandler<TuiMonth | null, Observable<string>>\n>('A function to get localized formatted month');\n","import {InjectionToken} from '@angular/core';\nimport {TuiStatus} from '@taiga-ui/kit/enums';\n\nexport const TUI_TAG_STATUS = new InjectionToken<TuiStatus>(\n 'Status for tags inside InputTag component',\n {\n factory: () => TuiStatus.Primary,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = new InjectionToken<\n Record<string, PolymorpheusContent | Observable<PolymorpheusContent>>\n>('Validation errors', {\n factory: () => ({}),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -208,9 +208,9 @@ var TuiCalendarMonthComponent = /** @class */ (function () {
208
208
  TuiCalendarMonthComponent = __decorate([
209
209
  Component({
210
210
  selector: 'tui-calendar-month',
211
- template: "<tui-scrollbar *ngIf=\"isYearPickerShown; else monthSelect\" class=\"t-scrollbar\">\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button tuiLink [tuiFocusable]=\"false\" (click)=\"onYearClick()\">\n {{ year.formattedYear }}\n </button>\n </tui-primitive-spin-button>\n <div class=\"t-row\">\n <ng-container *ngFor=\"let month of months$ | async; let index = index\">\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"t-cell\"\n [class.t-cell_today]=\"isItemToday(item)\"\n [class.t-cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-tui-element-range]=\"getItemRange(item)\"\n [attr.data-tui-element-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ month }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n",
211
+ template: "<tui-scrollbar *ngIf=\"isYearPickerShown; else monthSelect\" class=\"t-scrollbar\">\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button tuiLink [tuiFocusable]=\"false\" (click)=\"onYearClick()\">\n {{ year.formattedYear }}\n </button>\n </tui-primitive-spin-button>\n <div class=\"t-row\">\n <ng-container *ngFor=\"let month of months$ | async; let index = index\">\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"t-cell\"\n [class.t-cell_today]=\"isItemToday(item)\"\n [class.t-cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ month }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n",
212
212
  changeDetection: ChangeDetectionStrategy.OnPush,
213
- styles: [":host{font:var(--tui-font-text-m)}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:after,.t-item:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.6875rem;text-align:center;outline:0;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:2px solid transparent;box-sizing:content-box}.t-cell:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%,0);content:'';bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-02)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-3.6875rem}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-tui-element-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item:after,.t-cell[data-tui-element-range]>.t-item:before{background-color:var(--tui-primary)}.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:before{background-color:var(--tui-primary-hover)}.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:before{background-color:var(--tui-primary-active)}.t-cell[data-tui-element-range=end]>.t-item:before{left:.25rem}.t-cell[data-tui-element-range=end]>.t-item:after{left:-2rem;right:100%;transform:translateX(1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-range=start]>.t-item:before{right:.25rem}.t-cell[data-tui-element-range=start]>.t-item:after{left:100%;right:-2rem;transform:translateX(-1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-state=disabled]{pointer-events:none}.t-cell[data-tui-element-state=disabled]>.t-item{opacity:.36}.t-cell[data-tui-element-state=hovered]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-tui-element-state=pressed]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-active)}:host{display:block;height:13.625rem;width:15.75rem;padding:1.125rem;box-sizing:content-box}.t-row{flex-wrap:wrap;margin-top:1.4375rem}.t-cell:nth-child(n+5){margin-top:1.75rem}.t-cell_interval:nth-child(4n):before{right:0}.t-scrollbar{height:inherit;width:inherit}"]
213
+ styles: [":host{font:var(--tui-font-text-m)}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:after,.t-item:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.6875rem;text-align:center;outline:0;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:2px solid transparent;box-sizing:content-box}.t-cell:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%,0);content:'';bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-02)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-3.6875rem}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-range]>.t-item:after,.t-cell[data-range]>.t-item:before{background-color:var(--tui-primary)}.t-cell[data-range][data-state=hovered]>.t-item:after,.t-cell[data-range][data-state=hovered]>.t-item:before{background-color:var(--tui-primary-hover)}.t-cell[data-range][data-state=pressed]>.t-item:after,.t-cell[data-range][data-state=pressed]>.t-item:before{background-color:var(--tui-primary-active)}.t-cell[data-range=end]>.t-item:before{left:.25rem}.t-cell[data-range=end]>.t-item:after{left:-2rem;right:100%;transform:translateX(1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-range=start]>.t-item:before{right:.25rem}.t-cell[data-range=start]>.t-item:after{left:100%;right:-2rem;transform:translateX(-1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-state=disabled]{pointer-events:none}.t-cell[data-state=disabled]>.t-item{opacity:.36}.t-cell[data-state=hovered]:hover:not([data-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-state=pressed]:hover:not([data-range])>.t-item{background-color:var(--tui-secondary-active)}:host{display:block;height:13.625rem;width:15.75rem;padding:1.125rem;box-sizing:content-box}.t-row{flex-wrap:wrap;margin-top:1.4375rem}.t-cell:nth-child(n+5){margin-top:1.75rem}.t-cell_interval:nth-child(4n):before{right:0}.t-scrollbar{height:inherit;width:inherit}"]
214
214
  }),
215
215
  __param(0, Inject(TUI_CALENDAR_MONTHS))
216
216
  ], TuiCalendarMonthComponent);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-calendar-month.js","sources":["ng://@taiga-ui/kit/components/calendar-month/calendar-month.component.ts","ng://@taiga-ui/kit/components/calendar-month/calendar-month.module.ts","ng://@taiga-ui/kit/components/calendar-month/taiga-ui-kit-components-calendar-month.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n tuiPure,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState, TuiWithOptionalMinMax} from '@taiga-ui/core';\nimport {TuiMonthContext} from '@taiga-ui/kit/interfaces';\nimport {TUI_CALENDAR_MONTHS} from '@taiga-ui/kit/tokens';\nimport {TuiBooleanHandlerWithContext} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\nconst TODAY = TuiDay.currentLocal();\n\n// @dynamic\n@Component({\n selector: 'tui-calendar-month',\n templateUrl: './calendar-month.template.html',\n styleUrls: ['./calendar-month.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarMonthComponent implements TuiWithOptionalMinMax<TuiMonth> {\n @Input()\n @tuiDefaultProp()\n value: TuiMonthRange | TuiMonth | null = null;\n\n @Input()\n @tuiDefaultProp()\n year: TuiYear = TODAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext> =\n ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n readonly monthClick = new EventEmitter<TuiMonth>();\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiMonth | null>();\n\n @Output()\n readonly yearChange = new EventEmitter<TuiYear>();\n\n isYearPickerShown = false;\n\n hoveredItem: TuiMonth | null = null;\n pressedItem: TuiMonth | null = null;\n\n constructor(\n @Inject(TUI_CALENDAR_MONTHS) readonly months$: Observable<readonly string[]>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiMonth || this.value.isSingleMonth)\n );\n }\n\n get previousYearDisabled(): boolean {\n return this.year.yearSameOrBefore(this.min);\n }\n\n get nextYearDisabled(): boolean {\n return this.year.yearSameOrAfter(this.max);\n }\n\n getItemState(item: TuiMonth): TuiInteractiveState | null {\n const {disabledItemHandlerWithMinMax, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandlerWithMinMax(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem !== null && pressedItem.monthSame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem !== null && hoveredItem.monthSame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiMonth): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiMonth) {\n return value.monthSame(item) ? TuiRangeState.Single : null;\n }\n\n const theFirstOfRange = value.from.monthSame(item) && !value.isSingleMonth;\n const hoveredItemAfterFrom =\n hoveredItem !== null &&\n hoveredItem.monthAfter(value.from) &&\n value.from.monthSame(item) &&\n value.isSingleMonth;\n const hoveredItemIsCandidatToBeFrom =\n hoveredItem !== null &&\n hoveredItem.monthSame(item) &&\n hoveredItem.monthBefore(value.from) &&\n value.isSingleMonth;\n\n if (theFirstOfRange || hoveredItemAfterFrom || hoveredItemIsCandidatToBeFrom) {\n return TuiRangeState.Start;\n }\n\n const theLastOfRange = value.to.monthSame(item) && !value.isSingleMonth;\n const hoveredItemBeforeTo =\n hoveredItem !== null &&\n value.to.monthSame(item) &&\n hoveredItem.monthBefore(value.to) &&\n value.isSingleMonth;\n const hoveredItemIsCandidatToBeTo =\n hoveredItem !== null &&\n hoveredItem.monthSame(item) &&\n hoveredItem.monthAfter(value.from) &&\n value.isSingleMonth;\n\n if (theLastOfRange || hoveredItemBeforeTo || hoveredItemIsCandidatToBeTo) {\n return TuiRangeState.End;\n }\n\n return value.isSingleMonth && value.from.monthSame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n getTuiMonth(monthNumber: number, yearNumber: number): TuiMonth {\n return new TuiMonth(yearNumber, monthNumber);\n }\n\n isItemToday(item: TuiMonth): boolean {\n return TODAY.monthSame(item);\n }\n\n isItemInsideRange(month: TuiMonth): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiMonth) {\n return false;\n }\n\n if (!value.isSingleMonth) {\n return value.from.monthSameOrBefore(month) && value.to.monthAfter(month);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiMonthRange.sort(value.from, hoveredItem);\n\n return range.from.monthSameOrBefore(month) && range.to.monthAfter(month);\n }\n\n onPickerYearClick(year: TuiYear) {\n this.isYearPickerShown = false;\n\n if (this.year.yearSame(year)) {\n return;\n }\n\n this.year = year;\n this.yearChange.emit(year);\n }\n\n onItemClick(month: TuiMonth) {\n if (this.disabledItemHandlerWithMinMax(month)) {\n return;\n }\n\n this.monthClick.emit(month);\n }\n\n onYearClick() {\n this.isYearPickerShown = true;\n }\n\n onNextYear() {\n this.year = this.year.append({year: 1});\n }\n\n onPreviousYear() {\n this.year = this.year.append({year: -1});\n }\n\n onItemHovered(hovered: boolean, item: TuiMonth) {\n this.updateHoveredItem(hovered ? item : null);\n }\n\n onItemPressed(pressed: boolean, item: TuiMonth) {\n this.updatePressedItem(pressed ? item : null);\n }\n\n @tuiPure\n private calculateDisabledItemHandlerWithMinMax(\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext>,\n value: TuiMonth | TuiMonthRange | null,\n min: TuiMonth,\n max: TuiMonth,\n ): TuiBooleanHandler<TuiMonth> {\n return item =>\n item.monthBefore(min) ||\n item.monthAfter(max) ||\n disabledItemHandler(item, {value});\n }\n\n private get disabledItemHandlerWithMinMax(): TuiBooleanHandler<TuiMonth> {\n return this.calculateDisabledItemHandlerWithMinMax(\n this.disabledItemHandler,\n this.value,\n this.min,\n this.max,\n );\n }\n\n private updateHoveredItem(month: TuiMonth | null) {\n if (nullableSame(this.hoveredItem, month, (a, b) => a.monthSame(b))) {\n return;\n }\n\n this.hoveredItem = month;\n this.hoveredItemChange.emit(month);\n }\n\n private updatePressedItem(item: TuiMonth | null) {\n this.pressedItem = item;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiLinkModule,\n TuiPrimitiveSpinButtonModule,\n TuiPrimitiveYearPickerModule,\n TuiScrollbarModule,\n} from '@taiga-ui/core';\n\nimport {TuiCalendarMonthComponent} from './calendar-month.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiPrimitiveYearPickerModule,\n TuiPrimitiveSpinButtonModule,\n TuiScrollbarModule,\n TuiLinkModule,\n TuiLetModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusableModule,\n ],\n declarations: [TuiCalendarMonthComponent],\n exports: [TuiCalendarMonthComponent],\n})\nexport class TuiCalendarMonthModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-calendar-month.js","sources":["ng://@taiga-ui/kit/components/calendar-month/calendar-month.component.ts","ng://@taiga-ui/kit/components/calendar-month/calendar-month.module.ts","ng://@taiga-ui/kit/components/calendar-month/taiga-ui-kit-components-calendar-month.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n tuiPure,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState, TuiWithOptionalMinMax} from '@taiga-ui/core';\nimport {TuiMonthContext} from '@taiga-ui/kit/interfaces';\nimport {TUI_CALENDAR_MONTHS} from '@taiga-ui/kit/tokens';\nimport {TuiBooleanHandlerWithContext} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\nconst TODAY = TuiDay.currentLocal();\n\n// @dynamic\n@Component({\n selector: 'tui-calendar-month',\n templateUrl: './calendar-month.template.html',\n styleUrls: ['./calendar-month.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarMonthComponent implements TuiWithOptionalMinMax<TuiMonth> {\n @Input()\n @tuiDefaultProp()\n value: TuiMonthRange | TuiMonth | null = null;\n\n @Input()\n @tuiDefaultProp()\n year: TuiYear = TODAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext> =\n ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n readonly monthClick = new EventEmitter<TuiMonth>();\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiMonth | null>();\n\n @Output()\n readonly yearChange = new EventEmitter<TuiYear>();\n\n isYearPickerShown = false;\n\n hoveredItem: TuiMonth | null = null;\n pressedItem: TuiMonth | null = null;\n\n constructor(\n @Inject(TUI_CALENDAR_MONTHS) readonly months$: Observable<readonly string[]>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiMonth || this.value.isSingleMonth)\n );\n }\n\n get previousYearDisabled(): boolean {\n return this.year.yearSameOrBefore(this.min);\n }\n\n get nextYearDisabled(): boolean {\n return this.year.yearSameOrAfter(this.max);\n }\n\n getItemState(item: TuiMonth): TuiInteractiveState | null {\n const {disabledItemHandlerWithMinMax, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandlerWithMinMax(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem !== null && pressedItem.monthSame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem !== null && hoveredItem.monthSame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiMonth): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiMonth) {\n return value.monthSame(item) ? TuiRangeState.Single : null;\n }\n\n const theFirstOfRange = value.from.monthSame(item) && !value.isSingleMonth;\n const hoveredItemAfterFrom =\n hoveredItem !== null &&\n hoveredItem.monthAfter(value.from) &&\n value.from.monthSame(item) &&\n value.isSingleMonth;\n const hoveredItemIsCandidatToBeFrom =\n hoveredItem !== null &&\n hoveredItem.monthSame(item) &&\n hoveredItem.monthBefore(value.from) &&\n value.isSingleMonth;\n\n if (theFirstOfRange || hoveredItemAfterFrom || hoveredItemIsCandidatToBeFrom) {\n return TuiRangeState.Start;\n }\n\n const theLastOfRange = value.to.monthSame(item) && !value.isSingleMonth;\n const hoveredItemBeforeTo =\n hoveredItem !== null &&\n value.to.monthSame(item) &&\n hoveredItem.monthBefore(value.to) &&\n value.isSingleMonth;\n const hoveredItemIsCandidatToBeTo =\n hoveredItem !== null &&\n hoveredItem.monthSame(item) &&\n hoveredItem.monthAfter(value.from) &&\n value.isSingleMonth;\n\n if (theLastOfRange || hoveredItemBeforeTo || hoveredItemIsCandidatToBeTo) {\n return TuiRangeState.End;\n }\n\n return value.isSingleMonth && value.from.monthSame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n getTuiMonth(monthNumber: number, yearNumber: number): TuiMonth {\n return new TuiMonth(yearNumber, monthNumber);\n }\n\n isItemToday(item: TuiMonth): boolean {\n return TODAY.monthSame(item);\n }\n\n isItemInsideRange(month: TuiMonth): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiMonth) {\n return false;\n }\n\n if (!value.isSingleMonth) {\n return value.from.monthSameOrBefore(month) && value.to.monthAfter(month);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiMonthRange.sort(value.from, hoveredItem);\n\n return range.from.monthSameOrBefore(month) && range.to.monthAfter(month);\n }\n\n onPickerYearClick(year: TuiYear) {\n this.isYearPickerShown = false;\n\n if (this.year.yearSame(year)) {\n return;\n }\n\n this.year = year;\n this.yearChange.emit(year);\n }\n\n onItemClick(month: TuiMonth) {\n if (this.disabledItemHandlerWithMinMax(month)) {\n return;\n }\n\n this.monthClick.emit(month);\n }\n\n onYearClick() {\n this.isYearPickerShown = true;\n }\n\n onNextYear() {\n this.year = this.year.append({year: 1});\n }\n\n onPreviousYear() {\n this.year = this.year.append({year: -1});\n }\n\n onItemHovered(hovered: boolean, item: TuiMonth) {\n this.updateHoveredItem(hovered ? item : null);\n }\n\n onItemPressed(pressed: boolean, item: TuiMonth) {\n this.updatePressedItem(pressed ? item : null);\n }\n\n @tuiPure\n private calculateDisabledItemHandlerWithMinMax(\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext>,\n value: TuiMonth | TuiMonthRange | null,\n min: TuiMonth,\n max: TuiMonth,\n ): TuiBooleanHandler<TuiMonth> {\n return item =>\n item.monthBefore(min) ||\n item.monthAfter(max) ||\n disabledItemHandler(item, {value});\n }\n\n private get disabledItemHandlerWithMinMax(): TuiBooleanHandler<TuiMonth> {\n return this.calculateDisabledItemHandlerWithMinMax(\n this.disabledItemHandler,\n this.value,\n this.min,\n this.max,\n );\n }\n\n private updateHoveredItem(month: TuiMonth | null) {\n if (nullableSame(this.hoveredItem, month, (a, b) => a.monthSame(b))) {\n return;\n }\n\n this.hoveredItem = month;\n this.hoveredItemChange.emit(month);\n }\n\n private updatePressedItem(item: TuiMonth | null) {\n this.pressedItem = item;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiLinkModule,\n TuiPrimitiveSpinButtonModule,\n TuiPrimitiveYearPickerModule,\n TuiScrollbarModule,\n} from '@taiga-ui/core';\n\nimport {TuiCalendarMonthComponent} from './calendar-month.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiPrimitiveYearPickerModule,\n TuiPrimitiveSpinButtonModule,\n TuiScrollbarModule,\n TuiLinkModule,\n TuiLetModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusableModule,\n ],\n declarations: [TuiCalendarMonthComponent],\n exports: [TuiCalendarMonthComponent],\n})\nexport class TuiCalendarMonthModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,19 +1,35 @@
1
- import { __extends, __decorate, __param } from 'tslib';
2
- import { Optional, Self, Inject, ChangeDetectorRef, ViewChild, Input, Component, forwardRef, ChangeDetectionStrategy, Directive, NgModule } from '@angular/core';
1
+ import { __extends, __decorate, __param, __spread } from 'tslib';
2
+ import { forwardRef, Optional, Self, Inject, ChangeDetectorRef, ViewChild, Input, Component, ChangeDetectionStrategy, Directive, NgModule } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonthRange, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiControl, AbstractTuiNullableControl, TuiPreventDefaultModule, TuiActiveZoneModule } from '@taiga-ui/cdk';
5
- import { sizeBigger, TUI_MONTHS, TuiTextfieldSizeDirective, TUI_TEXTFIELD_SIZE, TuiPrimitiveTextfieldComponent, TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost, TuiHostedDropdownModule, TuiPrimitiveTextfieldModule, TuiSvgModule, TuiTextfieldComponent } from '@taiga-ui/core';
6
- import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
7
- import { Observable } from 'rxjs';
4
+ import { TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiControl, TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonthRange, tuiDefaultProp, AbstractTuiNullableControl, TuiDestroyService, TuiPreventDefaultModule, TuiActiveZoneModule, TuiMapperPipeModule } from '@taiga-ui/cdk';
5
+ import { TuiMonthPipe, sizeBigger, TuiTextfieldSizeDirective, TUI_TEXTFIELD_SIZE, TuiPrimitiveTextfieldComponent, TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost, TuiHostedDropdownModule, TuiPrimitiveTextfieldModule, TuiSvgModule, TuiTextfieldComponent } from '@taiga-ui/core';
6
+ import { TUI_MONTH_FORMATTER } from '@taiga-ui/kit/tokens';
7
+ import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER, TUI_MONTH_FORMATTER_PROVIDER } from '@taiga-ui/kit/providers';
8
+ import { Subject, combineLatest, Observable } from 'rxjs';
9
+ import { distinctUntilChanged, switchMap, takeUntil } from 'rxjs/operators';
8
10
  import { CommonModule } from '@angular/common';
9
11
  import { TuiCalendarMonthModule } from '@taiga-ui/kit/components/calendar-month';
10
12
 
13
+ var TUI_INPUT_MONTH_RANGE_PROVIDERS = [
14
+ {
15
+ provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
16
+ useExisting: forwardRef(function () { return TuiInputMonthRangeComponent; }),
17
+ },
18
+ {
19
+ provide: AbstractTuiControl,
20
+ useExisting: forwardRef(function () { return TuiInputMonthRangeComponent; }),
21
+ },
22
+ LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
23
+ TUI_MONTH_FORMATTER_PROVIDER,
24
+ TuiMonthPipe,
25
+ ];
26
+
11
27
  // @dynamic
12
28
  var TuiInputMonthRangeComponent = /** @class */ (function (_super) {
13
29
  __extends(TuiInputMonthRangeComponent, _super);
14
- function TuiInputMonthRangeComponent(control, changeDetectorRef, months$, textfieldSize) {
30
+ function TuiInputMonthRangeComponent(control, changeDetectorRef, formatter, textfieldSize) {
15
31
  var _this = _super.call(this, control, changeDetectorRef) || this;
16
- _this.months$ = months$;
32
+ _this.formatter = formatter;
17
33
  _this.textfieldSize = textfieldSize;
18
34
  _this.min = TUI_FIRST_DAY;
19
35
  _this.max = TUI_LAST_DAY;
@@ -21,7 +37,6 @@ var TuiInputMonthRangeComponent = /** @class */ (function (_super) {
21
37
  _this.open = false;
22
38
  return _this;
23
39
  }
24
- TuiInputMonthRangeComponent_1 = TuiInputMonthRangeComponent;
25
40
  Object.defineProperty(TuiInputMonthRangeComponent.prototype, "nativeFocusableElement", {
26
41
  get: function () {
27
42
  return this.textfield ? this.textfield.nativeFocusableElement : null;
@@ -45,18 +60,16 @@ var TuiInputMonthRangeComponent = /** @class */ (function (_super) {
45
60
  enumerable: true,
46
61
  configurable: true
47
62
  });
48
- TuiInputMonthRangeComponent.prototype.computeValue = function (value, focused, months) {
49
- if (value === null) {
50
- return '';
51
- }
52
- var formattedValueTo = !value.isSingleMonth || !focused ? this.formatMonth(value.to, months) : '';
53
- return this.formatMonth(value.from, months) + " \u2014 " + formattedValueTo;
63
+ TuiInputMonthRangeComponent.prototype.computeValue = function (from, to) {
64
+ var formattedTo = from === to && this.focused ? '' : to;
65
+ return from + " \u2014 " + formattedTo;
54
66
  };
55
67
  TuiInputMonthRangeComponent.prototype.onValueChange = function (value) {
56
- if (value === '') {
57
- this.updateValue(null);
58
- this.onOpenChange(true);
68
+ if (value) {
69
+ return;
59
70
  }
71
+ this.updateValue(null);
72
+ this.onOpenChange(true);
60
73
  };
61
74
  TuiInputMonthRangeComponent.prototype.onMonthClick = function (month) {
62
75
  if (this.value === null || !this.value.isSingleMonth) {
@@ -85,18 +98,13 @@ var TuiInputMonthRangeComponent = /** @class */ (function (_super) {
85
98
  _super.prototype.setDisabledState.call(this);
86
99
  this.close();
87
100
  };
88
- TuiInputMonthRangeComponent.prototype.formatMonth = function (_a, months) {
89
- var month = _a.month, formattedYear = _a.formattedYear;
90
- return months[month] + " " + formattedYear;
91
- };
92
101
  TuiInputMonthRangeComponent.prototype.close = function () {
93
102
  this.open = false;
94
103
  };
95
- var TuiInputMonthRangeComponent_1;
96
104
  TuiInputMonthRangeComponent.ctorParameters = function () { return [
97
105
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
98
106
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
99
- { type: Observable, decorators: [{ type: Inject, args: [TUI_MONTHS,] }] },
107
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_MONTH_FORMATTER,] }] },
100
108
  { type: TuiTextfieldSizeDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_SIZE,] }] }
101
109
  ]; };
102
110
  __decorate([
@@ -114,21 +122,11 @@ var TuiInputMonthRangeComponent = /** @class */ (function (_super) {
114
122
  Input(),
115
123
  tuiDefaultProp()
116
124
  ], TuiInputMonthRangeComponent.prototype, "disabledItemHandler", void 0);
117
- TuiInputMonthRangeComponent = TuiInputMonthRangeComponent_1 = __decorate([
125
+ TuiInputMonthRangeComponent = __decorate([
118
126
  Component({
119
127
  selector: 'tui-input-month-range',
120
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"interactive\"\n [content]=\"dropdown\"\n [open]=\"open && interactive\"\n (openChange)=\"onOpenChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n *ngIf=\"months$ | async as months\"\n class=\"textfield\"\n [editable]=\"false\"\n [disabled]=\"computedDisabled\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"calendarIcon\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [invalid]=\"computedInvalid\"\n [value]=\"computeValue(value, focused, months)\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n >\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #dropdown>\n <tui-calendar-month\n tuiPreventDefault=\"mousedown\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [min]=\"min\"\n [max]=\"max\"\n [value]=\"value\"\n (monthClick)=\"onMonthClick($event)\"\n ></tui-calendar-month>\n </ng-template>\n</tui-hosted-dropdown>\n",
121
- providers: [
122
- {
123
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
124
- useExisting: forwardRef(function () { return TuiInputMonthRangeComponent_1; }),
125
- },
126
- {
127
- provide: AbstractTuiControl,
128
- useExisting: forwardRef(function () { return TuiInputMonthRangeComponent_1; }),
129
- },
130
- LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
131
- ],
128
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"interactive\"\n [content]=\"dropdown\"\n [open]=\"open && interactive\"\n (openChange)=\"onOpenChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n class=\"textfield\"\n [editable]=\"false\"\n [disabled]=\"computedDisabled\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"calendarIcon\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [invalid]=\"computedInvalid\"\n [value]=\"value ? computeValue(value.from | tuiMapper : formatter | async, value.to | tuiMapper : formatter | async) : ''\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n >\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #dropdown>\n <tui-calendar-month\n tuiPreventDefault=\"mousedown\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [min]=\"min\"\n [max]=\"max\"\n [value]=\"value\"\n (monthClick)=\"onMonthClick($event)\"\n ></tui-calendar-month>\n </ng-template>\n</tui-hosted-dropdown>\n",
129
+ providers: TUI_INPUT_MONTH_RANGE_PROVIDERS,
132
130
  changeDetection: ChangeDetectionStrategy.OnPush,
133
131
  styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.icon{position:relative;cursor:pointer}"]
134
132
  }),
@@ -136,7 +134,7 @@ var TuiInputMonthRangeComponent = /** @class */ (function (_super) {
136
134
  __param(0, Self()),
137
135
  __param(0, Inject(NgControl)),
138
136
  __param(1, Inject(ChangeDetectorRef)),
139
- __param(2, Inject(TUI_MONTHS)),
137
+ __param(2, Inject(TUI_MONTH_FORMATTER)),
140
138
  __param(3, Inject(TUI_TEXTFIELD_SIZE))
141
139
  ], TuiInputMonthRangeComponent);
142
140
  return TuiInputMonthRangeComponent;
@@ -144,8 +142,21 @@ var TuiInputMonthRangeComponent = /** @class */ (function (_super) {
144
142
 
145
143
  var TuiInputMonthRangeDirective = /** @class */ (function (_super) {
146
144
  __extends(TuiInputMonthRangeDirective, _super);
147
- function TuiInputMonthRangeDirective() {
148
- return _super !== null && _super.apply(this, arguments) || this;
145
+ function TuiInputMonthRangeDirective(host, formatter, destroy$) {
146
+ var _this = _super.call(this, host) || this;
147
+ _this.value$ = new Subject();
148
+ _this.localizedValue = ['', ''];
149
+ _this.value$
150
+ .pipe(distinctUntilChanged(), switchMap(function (value) {
151
+ return combineLatest([
152
+ formatter(value && value.from),
153
+ formatter(value && value.to),
154
+ ]);
155
+ }), takeUntil(destroy$))
156
+ .subscribe(function (localizedValue) {
157
+ _this.localizedValue = localizedValue;
158
+ });
159
+ return _this;
149
160
  }
150
161
  TuiInputMonthRangeDirective_1 = TuiInputMonthRangeDirective;
151
162
  Object.defineProperty(TuiInputMonthRangeDirective.prototype, "readOnly", {
@@ -156,18 +167,26 @@ var TuiInputMonthRangeDirective = /** @class */ (function (_super) {
156
167
  configurable: true
157
168
  });
158
169
  Object.defineProperty(TuiInputMonthRangeDirective.prototype, "value", {
159
- // TODO: Fix change detection
160
170
  get: function () {
161
171
  var _a;
162
- return ((_a = this.host.textfield) === null || _a === void 0 ? void 0 : _a.value) || '';
172
+ return this.localizedValue[0]
173
+ ? (_a = this.host).computeValue.apply(_a, __spread(this.localizedValue)) : '';
163
174
  },
164
175
  enumerable: true,
165
176
  configurable: true
166
177
  });
178
+ TuiInputMonthRangeDirective.prototype.ngDoCheck = function () {
179
+ this.value$.next(this.host.value);
180
+ };
167
181
  TuiInputMonthRangeDirective.prototype.onValueChange = function (value) {
168
182
  this.host.onValueChange(value);
169
183
  };
170
184
  var TuiInputMonthRangeDirective_1;
185
+ TuiInputMonthRangeDirective.ctorParameters = function () { return [
186
+ { type: TuiInputMonthRangeComponent, decorators: [{ type: Inject, args: [AbstractTuiControl,] }] },
187
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_MONTH_FORMATTER,] }] },
188
+ { type: Observable, decorators: [{ type: Self }, { type: Inject, args: [TuiDestroyService,] }] }
189
+ ]; };
171
190
  TuiInputMonthRangeDirective = TuiInputMonthRangeDirective_1 = __decorate([
172
191
  Directive({
173
192
  selector: 'tui-input-month-range',
@@ -176,8 +195,12 @@ var TuiInputMonthRangeDirective = /** @class */ (function (_super) {
176
195
  provide: TUI_TEXTFIELD_HOST,
177
196
  useExisting: forwardRef(function () { return TuiInputMonthRangeDirective_1; }),
178
197
  },
198
+ TuiDestroyService,
179
199
  ],
180
- })
200
+ }),
201
+ __param(0, Inject(AbstractTuiControl)),
202
+ __param(1, Inject(TUI_MONTH_FORMATTER)),
203
+ __param(2, Self()), __param(2, Inject(TuiDestroyService))
181
204
  ], TuiInputMonthRangeDirective);
182
205
  return TuiInputMonthRangeDirective;
183
206
  }(TuiAbstractTextfieldHost));
@@ -195,6 +218,7 @@ var TuiInputMonthRangeModule = /** @class */ (function () {
195
218
  TuiSvgModule,
196
219
  TuiPreventDefaultModule,
197
220
  TuiActiveZoneModule,
221
+ TuiMapperPipeModule,
198
222
  ],
199
223
  declarations: [TuiInputMonthRangeComponent, TuiInputMonthRangeDirective],
200
224
  exports: [
@@ -211,5 +235,5 @@ var TuiInputMonthRangeModule = /** @class */ (function () {
211
235
  * Generated bundle index. Do not edit.
212
236
  */
213
237
 
214
- export { TuiInputMonthRangeComponent, TuiInputMonthRangeDirective, TuiInputMonthRangeModule };
238
+ export { TUI_INPUT_MONTH_RANGE_PROVIDERS, TuiInputMonthRangeComponent, TuiInputMonthRangeDirective, TuiInputMonthRangeModule };
215
239
  //# sourceMappingURL=taiga-ui-kit-components-input-month-range.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-month-range.js","sources":["ng://@taiga-ui/kit/components/input-month-range/input-month-range.component.ts","ng://@taiga-ui/kit/components/input-month-range/input-month-range.directive.ts","ng://@taiga-ui/kit/components/input-month-range/input-month-range.module.ts","ng://@taiga-ui/kit/components/input-month-range/taiga-ui-kit-components-input-month-range.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n AbstractTuiNullableControl,\n ALWAYS_FALSE_HANDLER,\n TUI_FIRST_DAY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_LAST_DAY,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiMonth,\n TuiMonthRange,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_MONTHS,\n TUI_TEXTFIELD_SIZE,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldSizeDirective,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiMonthContext} from '@taiga-ui/kit/interfaces';\nimport {LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TuiBooleanHandlerWithContext} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-input-month-range',\n templateUrl: './input-month-range.template.html',\n styleUrls: ['./input-month-range.style.less'],\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputMonthRangeComponent),\n },\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiInputMonthRangeComponent),\n },\n LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiInputMonthRangeComponent\n extends AbstractTuiNullableControl<TuiMonthRange>\n implements TuiWithOptionalMinMax<TuiMonth>, TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext> =\n ALWAYS_FALSE_HANDLER;\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_MONTHS) readonly months$: Observable<readonly string[]>,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return !!this.textfield && this.textfield.focused;\n }\n\n get calendarIcon(): string {\n return sizeBigger(this.textfieldSize.size)\n ? 'tuiIconCalendarLarge'\n : 'tuiIconCalendar';\n }\n\n computeValue(\n value: TuiMonthRange | null,\n focused: boolean,\n months: readonly string[],\n ): string {\n if (value === null) {\n return '';\n }\n\n const formattedValueTo =\n !value.isSingleMonth || !focused ? this.formatMonth(value.to, months) : '';\n\n return `${this.formatMonth(value.from, months)} — ${formattedValueTo}`;\n }\n\n onValueChange(value: string) {\n if (value === '') {\n this.updateValue(null);\n this.onOpenChange(true);\n }\n }\n\n onMonthClick(month: TuiMonth) {\n if (this.value === null || !this.value.isSingleMonth) {\n this.writeValue(new TuiMonthRange(month, month));\n\n return;\n }\n\n this.updateValue(TuiMonthRange.sort(this.value.from, month));\n this.close();\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onOpenChange(open: boolean) {\n this.open = open;\n }\n\n onActiveZone(focused: boolean) {\n this.updateFocused(focused);\n\n if (focused) {\n return;\n }\n\n if (this.value && this.value.isSingleMonth) {\n this.updateValue(new TuiMonthRange(this.value.from, this.value.from));\n }\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.close();\n }\n\n private formatMonth(\n {month, formattedYear}: TuiMonth,\n months: readonly string[],\n ): string {\n return `${months[month]} ${formattedYear}`;\n }\n\n private close() {\n this.open = false;\n }\n}\n","import {Directive, forwardRef} from '@angular/core';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputMonthRangeComponent} from './input-month-range.component';\n\n@Directive({\n selector: 'tui-input-month-range',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiInputMonthRangeDirective),\n },\n ],\n})\nexport class TuiInputMonthRangeDirective extends TuiAbstractTextfieldHost<TuiInputMonthRangeComponent> {\n get readOnly(): boolean {\n return true;\n }\n\n // TODO: Fix change detection\n get value(): string {\n return this.host.textfield?.value || '';\n }\n\n onValueChange(value: string) {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiPreventDefaultModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/core';\nimport {TuiCalendarMonthModule} from '@taiga-ui/kit/components/calendar-month';\n\nimport {TuiInputMonthRangeComponent} from './input-month-range.component';\nimport {TuiInputMonthRangeDirective} from './input-month-range.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiCalendarMonthModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiPreventDefaultModule,\n TuiActiveZoneModule,\n ],\n declarations: [TuiInputMonthRangeComponent, TuiInputMonthRangeDirective],\n exports: [\n TuiInputMonthRangeComponent,\n TuiInputMonthRangeDirective,\n TuiTextfieldComponent,\n ],\n})\nexport class TuiInputMonthRangeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-month-range.js","sources":["ng://@taiga-ui/kit/components/input-month-range/input-month-range.providers.ts","ng://@taiga-ui/kit/components/input-month-range/input-month-range.component.ts","ng://@taiga-ui/kit/components/input-month-range/input-month-range.directive.ts","ng://@taiga-ui/kit/components/input-month-range/input-month-range.module.ts","ng://@taiga-ui/kit/components/input-month-range/taiga-ui-kit-components-input-month-range.ts"],"sourcesContent":["import {forwardRef, Provider} from '@angular/core';\nimport {AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {TuiMonthPipe} from '@taiga-ui/core';\nimport {\n LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,\n TUI_MONTH_FORMATTER_PROVIDER,\n} from '@taiga-ui/kit/providers';\n\nimport {TuiInputMonthRangeComponent} from './input-month-range.component';\n\nexport const TUI_INPUT_MONTH_RANGE_PROVIDERS: Provider[] = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputMonthRangeComponent),\n },\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiInputMonthRangeComponent),\n },\n LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,\n TUI_MONTH_FORMATTER_PROVIDER,\n TuiMonthPipe,\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n ALWAYS_FALSE_HANDLER,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiHandler,\n TuiMonth,\n TuiMonthRange,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_TEXTFIELD_SIZE,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldSizeDirective,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiMonthContext} from '@taiga-ui/kit/interfaces';\nimport {TUI_MONTH_FORMATTER} from '@taiga-ui/kit/tokens';\nimport {TuiBooleanHandlerWithContext} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\nimport {TUI_INPUT_MONTH_RANGE_PROVIDERS} from './input-month-range.providers';\n\n// @dynamic\n@Component({\n selector: 'tui-input-month-range',\n templateUrl: './input-month-range.template.html',\n styleUrls: ['./input-month-range.style.less'],\n providers: TUI_INPUT_MONTH_RANGE_PROVIDERS,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiInputMonthRangeComponent\n extends AbstractTuiNullableControl<TuiMonthRange>\n implements TuiWithOptionalMinMax<TuiMonth>, TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext> =\n ALWAYS_FALSE_HANDLER;\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_MONTH_FORMATTER)\n readonly formatter: TuiHandler<TuiMonth | null, Observable<string>>,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return !!this.textfield && this.textfield.focused;\n }\n\n get calendarIcon(): string {\n return sizeBigger(this.textfieldSize.size)\n ? 'tuiIconCalendarLarge'\n : 'tuiIconCalendar';\n }\n\n computeValue(from: string | null, to: string | null): string {\n const formattedTo = from === to && this.focused ? '' : to;\n\n return `${from} — ${formattedTo}`;\n }\n\n onValueChange(value: string) {\n if (value) {\n return;\n }\n\n this.updateValue(null);\n this.onOpenChange(true);\n }\n\n onMonthClick(month: TuiMonth) {\n if (this.value === null || !this.value.isSingleMonth) {\n this.writeValue(new TuiMonthRange(month, month));\n\n return;\n }\n\n this.updateValue(TuiMonthRange.sort(this.value.from, month));\n this.close();\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onOpenChange(open: boolean) {\n this.open = open;\n }\n\n onActiveZone(focused: boolean) {\n this.updateFocused(focused);\n\n if (focused) {\n return;\n }\n\n if (this.value && this.value.isSingleMonth) {\n this.updateValue(new TuiMonthRange(this.value.from, this.value.from));\n }\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.close();\n }\n\n private close() {\n this.open = false;\n }\n}\n","import {Directive, DoCheck, forwardRef, Inject, Self} from '@angular/core';\nimport {\n AbstractTuiControl,\n TuiDestroyService,\n TuiHandler,\n TuiMonth,\n TuiMonthRange,\n} from '@taiga-ui/cdk';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\nimport {TUI_MONTH_FORMATTER} from '@taiga-ui/kit/tokens';\nimport {combineLatest, Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged, switchMap, takeUntil} from 'rxjs/operators';\n\nimport {TuiInputMonthRangeComponent} from './input-month-range.component';\n\n@Directive({\n selector: 'tui-input-month-range',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiInputMonthRangeDirective),\n },\n TuiDestroyService,\n ],\n})\nexport class TuiInputMonthRangeDirective\n extends TuiAbstractTextfieldHost<TuiInputMonthRangeComponent>\n implements DoCheck\n{\n private readonly value$ = new Subject<TuiMonthRange | null>();\n\n private localizedValue: [string, string] = ['', ''];\n\n constructor(\n @Inject(AbstractTuiControl) host: TuiInputMonthRangeComponent,\n @Inject(TUI_MONTH_FORMATTER)\n formatter: TuiHandler<TuiMonth | null, Observable<string>>,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n ) {\n super(host);\n\n this.value$\n .pipe(\n distinctUntilChanged(),\n switchMap((value: TuiMonthRange | null) =>\n combineLatest([\n formatter(value && value.from),\n formatter(value && value.to),\n ]),\n ),\n takeUntil(destroy$),\n )\n .subscribe(localizedValue => {\n this.localizedValue = localizedValue;\n });\n }\n\n get readOnly(): boolean {\n return true;\n }\n\n get value(): string {\n return this.localizedValue[0]\n ? this.host.computeValue(...this.localizedValue)\n : '';\n }\n\n ngDoCheck() {\n this.value$.next(this.host.value);\n }\n\n onValueChange(value: string) {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiActiveZoneModule,\n TuiMapperPipeModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/core';\nimport {TuiCalendarMonthModule} from '@taiga-ui/kit/components/calendar-month';\n\nimport {TuiInputMonthRangeComponent} from './input-month-range.component';\nimport {TuiInputMonthRangeDirective} from './input-month-range.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiCalendarMonthModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiPreventDefaultModule,\n TuiActiveZoneModule,\n TuiMapperPipeModule,\n ],\n declarations: [TuiInputMonthRangeComponent, TuiInputMonthRangeDirective],\n exports: [\n TuiInputMonthRangeComponent,\n TuiInputMonthRangeDirective,\n TuiTextfieldComponent,\n ],\n})\nexport class TuiInputMonthRangeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;IAUa,+BAA+B,GAAe;IACvD;QACI,OAAO,EAAE,2BAA2B;QACpC,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,2BAA2B,GAAA,CAAC;KAC7D;IACD;QACI,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,2BAA2B,GAAA,CAAC;KAC7D;IACD,yCAAyC;IACzC,4BAA4B;IAC5B,YAAY;;;ACehB;;IASY,+CAAyC;IAqBjD,qCAII,OAAyB,EACE,iBAAoC,EAEtD,SAA0D,EAElD,aAAwC;QAT7D,YAWI,kBAAM,OAAO,EAAE,iBAAiB,CAAC,SACpC;QALY,eAAS,GAAT,SAAS,CAAiD;QAElD,mBAAa,GAAb,aAAa,CAA2B;QAtB7D,SAAG,GAAa,aAAa,CAAC;QAI9B,SAAG,GAAa,YAAY,CAAC;QAI7B,yBAAmB,GACf,oBAAoB,CAAC;QAEzB,UAAI,GAAG,KAAK,CAAC;;KAcZ;IAED,sBAAI,+DAAsB;aAA1B;YACI,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACxE;;;OAAA;IAED,sBAAI,gDAAO;aAAX;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SACrD;;;OAAA;IAED,sBAAI,qDAAY;aAAhB;YACI,OAAO,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;kBACpC,sBAAsB;kBACtB,iBAAiB,CAAC;SAC3B;;;OAAA;IAED,kDAAY,GAAZ,UAAa,IAAmB,EAAE,EAAiB;QAC/C,IAAM,WAAW,GAAG,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC;QAE1D,OAAU,IAAI,gBAAM,WAAa,CAAC;KACrC;IAED,mDAAa,GAAb,UAAc,KAAa;QACvB,IAAI,KAAK,EAAE;YACP,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,kDAAY,GAAZ,UAAa,KAAe;QACxB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAClD,IAAI,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAEjD,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAED,+CAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,kDAAY,GAAZ,UAAa,IAAa;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;IAED,kDAAY,GAAZ,UAAa,OAAgB;QACzB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5B,IAAI,OAAO,EAAE;YACT,OAAO;SACV;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YACxC,IAAI,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SACzE;KACJ;IAED,sDAAgB,GAAhB;QACI,iBAAM,gBAAgB,WAAE,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAEO,2CAAK,GAAb;QACI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;;gBA7EY,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;gBAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;gDACxB,MAAM,SAAC,mBAAmB;gBAGK,yBAAyB,uBADxD,MAAM,SAAC,kBAAkB;;IAzB9B;QADC,SAAS,CAAC,8BAA8B,CAAC;kEACkB;IAI5D;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;4DACa;IAI9B;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;4DACY;IAI7B;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;4EAEQ;IAlBhB,2BAA2B;QAPvC,SAAS,CAAC;YACP,QAAQ,EAAE,uBAAuB;YACjC,m1CAAgD;YAEhD,SAAS,EAAE,+BAA+B;YAC1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;;SAClD,CAAC;QAwBO,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,IAAI,EAAE,CAAA;QACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;QAEjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,mBAAmB,CAAC,CAAA;QAE3B,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;OA9BtB,2BAA2B,CAwGvC;IAAD,kCAAC;CAAA,CAvGW,0BAA0B;;;ICnB1B,+CAAqD;IAO7D,qCACgC,IAAiC,EAE7D,SAA0D,EACvB,QAA6B;QAJpE,YAMI,kBAAM,IAAI,CAAC,SAgBd;QA1BgB,YAAM,GAAG,IAAI,OAAO,EAAwB,CAAC;QAEtD,oBAAc,GAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAUhD,KAAI,CAAC,MAAM;aACN,IAAI,CACD,oBAAoB,EAAE,EACtB,SAAS,CAAC,UAAC,KAA2B;YAClC,OAAA,aAAa,CAAC;gBACV,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;gBAC9B,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC;aAC/B,CAAC;SAAA,CACL,EACD,SAAS,CAAC,QAAQ,CAAC,CACtB;aACA,SAAS,CAAC,UAAA,cAAc;YACrB,KAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SACxC,CAAC,CAAC;;KACV;oCA9BQ,2BAA2B;IAgCpC,sBAAI,iDAAQ;aAAZ;YACI,OAAO,IAAI,CAAC;SACf;;;OAAA;IAED,sBAAI,8CAAK;aAAT;;YACI,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;kBACvB,CAAA,KAAA,IAAI,CAAC,IAAI,EAAC,YAAY,oBAAI,IAAI,CAAC,cAAc,KAC7C,EAAE,CAAC;SACZ;;;OAAA;IAED,+CAAS,GAAT;QACI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,mDAAa,GAAb,UAAc,KAAa;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAClC;;;gBAvCqC,2BAA2B,uBAA5D,MAAM,SAAC,kBAAkB;gDACzB,MAAM,SAAC,mBAAmB;gBAEkB,UAAU,uBAAtD,IAAI,YAAI,MAAM,SAAC,iBAAiB;;IAZ5B,2BAA2B;QAVvC,SAAS,CAAC;YACP,QAAQ,EAAE,uBAAuB;YACjC,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,kBAAkB;oBAC3B,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,6BAA2B,GAAA,CAAC;iBAC7D;gBACD,iBAAiB;aACpB;SACJ,CAAC;QAUO,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAC1B,WAAA,MAAM,CAAC,mBAAmB,CAAC,CAAA;QAE3B,WAAA,IAAI,EAAE,CAAA,EAAE,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;OAZ7B,2BAA2B,CAiDvC;IAAD,kCAAC;CAAA,CAhDW,wBAAwB;;;ICUpC;KAAwC;IAA3B,wBAAwB;QAlBpC,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,sBAAsB;gBACtB,uBAAuB;gBACvB,2BAA2B;gBAC3B,YAAY;gBACZ,uBAAuB;gBACvB,mBAAmB;gBACnB,mBAAmB;aACtB;YACD,YAAY,EAAE,CAAC,2BAA2B,EAAE,2BAA2B,CAAC;YACxE,OAAO,EAAE;gBACL,2BAA2B;gBAC3B,2BAA2B;gBAC3B,qBAAqB;aACxB;SACJ,CAAC;OACW,wBAAwB,CAAG;IAAD,+BAAC;CAAxC;;ACpCA;;;;;;"}