@taiga-ui/legacy 4.52.0-canary.2c75afa → 4.52.0-canary.2d877cf

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 (225) hide show
  1. package/README.md +1 -1
  2. package/components/dialog/dialog.service.d.ts +1 -1
  3. package/components/dialog/dialog.tokens.d.ts +1 -3
  4. package/components/index.d.ts +0 -17
  5. package/components/mobile-dialog/mobile-dialog.options.d.ts +1 -3
  6. package/components/mobile-dialog/mobile-dialog.service.d.ts +1 -1
  7. package/components/pdf-viewer/pdf-viewer.options.d.ts +1 -3
  8. package/components/pdf-viewer/pdf-viewer.service.d.ts +1 -1
  9. package/fesm2022/taiga-ui-legacy-components-dialog.mjs +14 -19
  10. package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -1
  11. package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs +11 -16
  12. package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs.map +1 -1
  13. package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs +13 -18
  14. package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs.map +1 -1
  15. package/fesm2022/taiga-ui-legacy-components.mjs +0 -17
  16. package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
  17. package/fesm2022/taiga-ui-legacy.mjs +0 -4
  18. package/fesm2022/taiga-ui-legacy.mjs.map +1 -1
  19. package/index.d.ts +0 -4
  20. package/package.json +12 -114
  21. package/classes/abstract-native-select.d.ts +0 -22
  22. package/classes/abstract-textfield-host.d.ts +0 -19
  23. package/classes/control.d.ts +0 -60
  24. package/classes/controller.d.ts +0 -9
  25. package/classes/index.d.ts +0 -9
  26. package/classes/interactive.d.ts +0 -34
  27. package/classes/multiple-control.d.ts +0 -11
  28. package/classes/named-day.d.ts +0 -11
  29. package/classes/nullable-control.d.ts +0 -10
  30. package/classes/stringifiable-item.d.ts +0 -11
  31. package/components/arrow/arrow.component.d.ts +0 -17
  32. package/components/arrow/arrow.options.d.ts +0 -19
  33. package/components/arrow/arrow.providers.d.ts +0 -23
  34. package/components/arrow/index.d.ts +0 -3
  35. package/components/input/index.d.ts +0 -3
  36. package/components/input/input.component.d.ts +0 -32
  37. package/components/input/input.directive.d.ts +0 -12
  38. package/components/input/input.module.d.ts +0 -16
  39. package/components/input-date-range/index.d.ts +0 -3
  40. package/components/input-date-range/input-date-range.component.d.ts +0 -66
  41. package/components/input-date-range/input-date-range.directive.d.ts +0 -16
  42. package/components/input-date-range/input-date-range.module.d.ts +0 -21
  43. package/components/input-date-time/index.d.ts +0 -3
  44. package/components/input-date-time/input-date-time.component.d.ts +0 -87
  45. package/components/input-date-time/input-date-time.directive.d.ts +0 -17
  46. package/components/input-date-time/input-date-time.module.d.ts +0 -23
  47. package/components/input-date-time/native-date-time/native-date-time.directive.d.ts +0 -13
  48. package/components/input-month-range/index.d.ts +0 -3
  49. package/components/input-month-range/input-month-range.component.d.ts +0 -38
  50. package/components/input-month-range/input-month-range.directive.d.ts +0 -23
  51. package/components/input-month-range/input-month-range.module.d.ts +0 -18
  52. package/components/input-number/index.d.ts +0 -4
  53. package/components/input-number/input-number.component.d.ts +0 -62
  54. package/components/input-number/input-number.directive.d.ts +0 -16
  55. package/components/input-number/input-number.module.d.ts +0 -18
  56. package/components/input-number/input-number.options.d.ts +0 -29
  57. package/components/input-range/index.d.ts +0 -2
  58. package/components/input-range/input-range.component.d.ts +0 -56
  59. package/components/input-range/input-range.module.d.ts +0 -19
  60. package/components/input-slider/index.d.ts +0 -2
  61. package/components/input-slider/input-slider.component.d.ts +0 -42
  62. package/components/input-slider/input-slider.module.d.ts +0 -18
  63. package/components/input-tag/index.d.ts +0 -3
  64. package/components/input-tag/input-tag.component.d.ts +0 -103
  65. package/components/input-tag/input-tag.module.d.ts +0 -22
  66. package/components/input-tag/input-tag.options.d.ts +0 -27
  67. package/components/multi-select/hide-selected.pipe.d.ts +0 -11
  68. package/components/multi-select/index.d.ts +0 -10
  69. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +0 -23
  70. package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +0 -8
  71. package/components/multi-select/multi-select.component.d.ts +0 -71
  72. package/components/multi-select/multi-select.directive.d.ts +0 -14
  73. package/components/multi-select/multi-select.module.d.ts +0 -30
  74. package/components/multi-select/multi-select.options.d.ts +0 -14
  75. package/components/multi-select/native-multi-select/native-multi-select-group.component.d.ts +0 -9
  76. package/components/multi-select/native-multi-select/native-multi-select.component.d.ts +0 -8
  77. package/components/multi-select/native-multi-select/native-multi-select.d.ts +0 -11
  78. package/components/multi-select-option/index.d.ts +0 -2
  79. package/components/multi-select-option/multi-select-option.component.d.ts +0 -9
  80. package/components/multi-select-option/multi-select-option.module.d.ts +0 -9
  81. package/components/primitive-textfield/index.d.ts +0 -7
  82. package/components/primitive-textfield/primitive-textfield-options.d.ts +0 -21
  83. package/components/primitive-textfield/primitive-textfield-types.d.ts +0 -11
  84. package/components/primitive-textfield/primitive-textfield.component.d.ts +0 -73
  85. package/components/primitive-textfield/primitive-textfield.directive.d.ts +0 -14
  86. package/components/primitive-textfield/primitive-textfield.module.d.ts +0 -21
  87. package/components/primitive-textfield/textfield/textfield.component.d.ts +0 -13
  88. package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +0 -22
  89. package/components/select/index.d.ts +0 -6
  90. package/components/select/native-select/native-select-group.component.d.ts +0 -17
  91. package/components/select/native-select/native-select.component.d.ts +0 -16
  92. package/components/select/select.component.d.ts +0 -45
  93. package/components/select/select.directive.d.ts +0 -16
  94. package/components/select/select.module.d.ts +0 -24
  95. package/components/select/select.options.d.ts +0 -25
  96. package/components/select-option/index.d.ts +0 -2
  97. package/components/select-option/select-option.component.d.ts +0 -27
  98. package/components/select-option/select-option.module.d.ts +0 -10
  99. package/components/tag/index.d.ts +0 -3
  100. package/components/tag/tag.component.d.ts +0 -44
  101. package/components/tag/tag.module.d.ts +0 -16
  102. package/components/tag/tag.options.d.ts +0 -27
  103. package/components/textarea/index.d.ts +0 -3
  104. package/components/textarea/textarea.component.d.ts +0 -54
  105. package/components/textarea/textarea.directive.d.ts +0 -12
  106. package/components/textarea/textarea.module.d.ts +0 -21
  107. package/components/tooltip/index.d.ts +0 -2
  108. package/components/tooltip/tooltip.component.d.ts +0 -12
  109. package/components/tooltip/tooltip.module.d.ts +0 -13
  110. package/directives/index.d.ts +0 -5
  111. package/directives/legacy-dropdown-open-monitor/index.d.ts +0 -1
  112. package/directives/legacy-dropdown-open-monitor/legacy-dropdown-open-monitor.d.ts +0 -11
  113. package/directives/textfield-controller/index.d.ts +0 -14
  114. package/directives/textfield-controller/textfield-appearance.directive.d.ts +0 -9
  115. package/directives/textfield-controller/textfield-cleaner.directive.d.ts +0 -9
  116. package/directives/textfield-controller/textfield-controller.module.d.ts +0 -17
  117. package/directives/textfield-controller/textfield-controller.provider.d.ts +0 -4
  118. package/directives/textfield-controller/textfield-custom-content.directive.d.ts +0 -10
  119. package/directives/textfield-controller/textfield-filler.directive.d.ts +0 -9
  120. package/directives/textfield-controller/textfield-icon-left.directive.d.ts +0 -12
  121. package/directives/textfield-controller/textfield-icon.directive.d.ts +0 -12
  122. package/directives/textfield-controller/textfield-label-outside.directive.d.ts +0 -9
  123. package/directives/textfield-controller/textfield-postfix.directive.d.ts +0 -9
  124. package/directives/textfield-controller/textfield-prefix.directive.d.ts +0 -9
  125. package/directives/textfield-controller/textfield-size.directive.d.ts +0 -10
  126. package/directives/textfield-controller/textfield.controller.d.ts +0 -41
  127. package/directives/textfield-controller/textfield.options.d.ts +0 -19
  128. package/directives/unfinished-validator/index.d.ts +0 -2
  129. package/directives/unfinished-validator/unfinished-validator.directive.d.ts +0 -10
  130. package/directives/unfinished-validator/unfinished.validator.d.ts +0 -4
  131. package/directives/value-accessor/index.d.ts +0 -3
  132. package/directives/value-accessor/value-accessor.directive.d.ts +0 -5
  133. package/directives/value-accessor/value-accessor.module.d.ts +0 -7
  134. package/directives/value-accessor/value-accessor.provider.d.ts +0 -2
  135. package/directives/wrapper/README.md +0 -19
  136. package/directives/wrapper/index.d.ts +0 -2
  137. package/directives/wrapper/wrapper.directive.d.ts +0 -22
  138. package/directives/wrapper/wrapper.module.d.ts +0 -10
  139. package/fesm2022/taiga-ui-legacy-classes.mjs +0 -413
  140. package/fesm2022/taiga-ui-legacy-classes.mjs.map +0 -1
  141. package/fesm2022/taiga-ui-legacy-components-arrow.mjs +0 -85
  142. package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +0 -1
  143. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +0 -346
  144. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +0 -1
  145. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +0 -459
  146. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +0 -1
  147. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +0 -221
  148. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +0 -1
  149. package/fesm2022/taiga-ui-legacy-components-input-number.mjs +0 -383
  150. package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +0 -1
  151. package/fesm2022/taiga-ui-legacy-components-input-range.mjs +0 -261
  152. package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +0 -1
  153. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +0 -199
  154. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +0 -1
  155. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +0 -524
  156. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +0 -1
  157. package/fesm2022/taiga-ui-legacy-components-input.mjs +0 -156
  158. package/fesm2022/taiga-ui-legacy-components-input.mjs.map +0 -1
  159. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +0 -47
  160. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +0 -1
  161. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +0 -686
  162. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +0 -1
  163. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +0 -454
  164. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +0 -1
  165. package/fesm2022/taiga-ui-legacy-components-select-option.mjs +0 -88
  166. package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +0 -1
  167. package/fesm2022/taiga-ui-legacy-components-select.mjs +0 -353
  168. package/fesm2022/taiga-ui-legacy-components-select.mjs.map +0 -1
  169. package/fesm2022/taiga-ui-legacy-components-tag.mjs +0 -225
  170. package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +0 -1
  171. package/fesm2022/taiga-ui-legacy-components-textarea.mjs +0 -262
  172. package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +0 -1
  173. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +0 -53
  174. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +0 -1
  175. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs +0 -49
  176. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs.map +0 -1
  177. package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs +0 -401
  178. package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs.map +0 -1
  179. package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs +0 -48
  180. package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs.map +0 -1
  181. package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs +0 -44
  182. package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs.map +0 -1
  183. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs +0 -99
  184. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs.map +0 -1
  185. package/fesm2022/taiga-ui-legacy-directives.mjs +0 -10
  186. package/fesm2022/taiga-ui-legacy-directives.mjs.map +0 -1
  187. package/fesm2022/taiga-ui-legacy-tokens.mjs +0 -384
  188. package/fesm2022/taiga-ui-legacy-tokens.mjs.map +0 -1
  189. package/fesm2022/taiga-ui-legacy-utils.mjs +0 -262
  190. package/fesm2022/taiga-ui-legacy-utils.mjs.map +0 -1
  191. package/styles/mixins/mixins.less +0 -239
  192. package/styles/mixins/mixins.scss +0 -224
  193. package/styles/mixins/textfield.less +0 -324
  194. package/styles/mixins/textfield.scss +0 -308
  195. package/styles/taiga-ui-local.less +0 -3
  196. package/styles/taiga-ui-local.scss +0 -3
  197. package/tokens/countries-masks.d.ts +0 -9
  198. package/tokens/focusable-item-accessor.d.ts +0 -25
  199. package/tokens/fonts-ready.d.ts +0 -6
  200. package/tokens/icons.d.ts +0 -6
  201. package/tokens/index.d.ts +0 -14
  202. package/tokens/is-apple.d.ts +0 -6
  203. package/tokens/is-chromium.d.ts +0 -6
  204. package/tokens/is-firefox.d.ts +0 -6
  205. package/tokens/is-stackblitz.d.ts +0 -5
  206. package/tokens/month-formatter.d.ts +0 -10
  207. package/tokens/sanitizer.d.ts +0 -6
  208. package/tokens/textfield-appearance.d.ts +0 -7
  209. package/tokens/textfield-host.d.ts +0 -23
  210. package/tokens/touch-supported.d.ts +0 -5
  211. package/tokens/value-accessor.d.ts +0 -7
  212. package/utils/capitalize-first-letter.d.ts +0 -4
  213. package/utils/date-mode-maskito-adapter.d.ts +0 -6
  214. package/utils/format-phone.d.ts +0 -30
  215. package/utils/get-border.d.ts +0 -5
  216. package/utils/get-max-allowed-phone-length.d.ts +0 -24
  217. package/utils/get-safe-area-size.d.ts +0 -7
  218. package/utils/icons-path-factory.d.ts +0 -13
  219. package/utils/index.d.ts +0 -13
  220. package/utils/is-presumed-html-string.d.ts +0 -4
  221. package/utils/iso-to-country-code.d.ts +0 -13
  222. package/utils/not-kz-region.d.ts +0 -20
  223. package/utils/process-icon.d.ts +0 -4
  224. package/utils/specific-dropdown-controllers.d.ts +0 -4
  225. package/utils/status.d.ts +0 -4
@@ -1,459 +0,0 @@
1
- import { __decorate } from 'tslib';
2
- import * as i0 from '@angular/core';
3
- import { Directive, inject, signal, Input, ViewChild, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
4
- import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
- import { maskitoDateTimeOptionsGenerator, maskitoSelectionChangeHandler } from '@maskito/kit';
6
- import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
7
- import { TuiDay, TuiTime, TuiMonth, DATE_FILLER_LENGTH, tuiDateClamp } from '@taiga-ui/cdk/date-time';
8
- import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
9
- import { tuiClamp } from '@taiga-ui/cdk/utils/math';
10
- import { changeDateSeparator, tuiNullableSame, tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
11
- import { TUI_DATE_FORMAT } from '@taiga-ui/core/tokens';
12
- import { TUI_INPUT_DATE_OPTIONS, TUI_TIME_TEXTS, TUI_DATE_TEXTS, TUI_DATE_TIME_VALUE_TRANSFORMER, tuiDateStreamWithTransformer } from '@taiga-ui/kit/tokens';
13
- import { AbstractTuiTextfieldHost, AbstractTuiControl, tuiAsControl } from '@taiga-ui/legacy/classes';
14
- import * as i7 from '@taiga-ui/legacy/components/primitive-textfield';
15
- import { TuiPrimitiveTextfieldComponent, TuiTextfieldComponent, TuiPrimitiveTextfieldModule } from '@taiga-ui/legacy/components/primitive-textfield';
16
- import * as i6 from '@taiga-ui/legacy/directives';
17
- import { TUI_TEXTFIELD_SIZE, TuiLegacyDropdownOpenMonitorDirective, TuiTextfieldControllerModule, TuiValueAccessorModule } from '@taiga-ui/legacy/directives';
18
- import { tuiAsTextfieldHost, tuiAsFocusableItemAccessor } from '@taiga-ui/legacy/tokens';
19
- import { TUI_DATE_MODE_MASKITO_ADAPTER } from '@taiga-ui/legacy/utils';
20
- import { BehaviorSubject, combineLatest, map, timer } from 'rxjs';
21
- import * as i1 from '@maskito/angular';
22
- import { MaskitoDirective } from '@maskito/angular';
23
- import * as i2 from '@taiga-ui/polymorpheus';
24
- import { PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
25
- import * as i3 from '@taiga-ui/core/directives/appearance';
26
- import { TuiAppearance } from '@taiga-ui/core/directives/appearance';
27
- import * as i4 from '@taiga-ui/core/components/calendar';
28
- import { TuiCalendar } from '@taiga-ui/core/components/calendar';
29
- import * as i5 from '@taiga-ui/core/components/icon';
30
- import { TuiIcon } from '@taiga-ui/core/components/icon';
31
- import * as i1$1 from '@taiga-ui/core/directives/dropdown';
32
- import { TuiDropdown } from '@taiga-ui/core/directives/dropdown';
33
- import * as i10 from '@angular/common';
34
- import { CommonModule } from '@angular/common';
35
- import { TuiLink } from '@taiga-ui/core/components/link';
36
-
37
- /**
38
- * TODO(v5): delete it
39
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-date-time TuiInputDateTime} (from @taiga-ui/kit) instead
40
- */
41
- class TuiInputDateTimeDirective extends AbstractTuiTextfieldHost {
42
- get value() {
43
- return this.host.computedValue;
44
- }
45
- get rawValue() {
46
- return this.host.value ?? null;
47
- }
48
- onValueChange(value) {
49
- this.host.onValueChange(value);
50
- }
51
- writeValue(value) {
52
- this.host.writeValue(value);
53
- }
54
- process(input) {
55
- input.inputMode = this.host.timeMode.includes('AA') ? 'text' : 'numeric';
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
58
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputDateTimeDirective, isStandalone: false, selector: "tui-input-date-time", providers: [tuiAsTextfieldHost(TuiInputDateTimeDirective)], usesInheritance: true, ngImport: i0 }); }
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeDirective, decorators: [{
61
- type: Directive,
62
- args: [{
63
- standalone: false,
64
- selector: 'tui-input-date-time',
65
- providers: [tuiAsTextfieldHost(TuiInputDateTimeDirective)],
66
- }]
67
- }] });
68
-
69
- /**
70
- * TODO(v5): delete it
71
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-date-time#mobile TuiInputDateTime} (from @taiga-ui/kit) instead
72
- */
73
- class TuiNativeDateTimeDirective {
74
- constructor() {
75
- this.host = inject(TuiInputDateTimeDirective);
76
- }
77
- get value() {
78
- if (!this.host.rawValue?.[0] || !this.host.rawValue?.[1]) {
79
- return '';
80
- }
81
- return `${this.host.rawValue[0]?.toString('YMD', '-')}T${this.host.rawValue[1]?.toString('HH:MM')}`;
82
- }
83
- onChange(value) {
84
- if (!value) {
85
- this.host.writeValue(null);
86
- return;
87
- }
88
- const date = new Date(value);
89
- const day = TuiDay.fromLocalNativeDate(date);
90
- const time = TuiTime.fromLocalNativeDate(date);
91
- this.host.writeValue([day, time]);
92
- }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNativeDateTimeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
94
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiNativeDateTimeDirective, isStandalone: false, selector: "input[tuiDateTime]", host: { attributes: { "type": "datetime-local" }, listeners: { "change.stop": "onChange($event.target.value)", "input.stop": "onChange($event.target.value)", "click.stop.zoneless": "0", "mousedown.stop.zoneless": "0" }, properties: { "tabIndex": "-1", "value": "value" } }, ngImport: i0 }); }
95
- }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNativeDateTimeDirective, decorators: [{
97
- type: Directive,
98
- args: [{
99
- standalone: false,
100
- selector: 'input[tuiDateTime]',
101
- host: {
102
- type: 'datetime-local',
103
- '[tabIndex]': '-1',
104
- '[value]': 'value',
105
- '(change.stop)': 'onChange($event.target.value)',
106
- '(input.stop)': 'onChange($event.target.value)',
107
- '(click.stop.zoneless)': '0',
108
- '(mousedown.stop.zoneless)': '0',
109
- },
110
- }]
111
- }] });
112
-
113
- const DATE_TIME_SEPARATOR = ', ';
114
- /**
115
- * TODO(v5): delete it
116
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-date-time TuiInputDateTime} (from @taiga-ui/kit) instead
117
- */
118
- class TuiInputDateTimeComponent extends AbstractTuiControl {
119
- constructor() {
120
- super(...arguments);
121
- this.options = inject(TUI_INPUT_DATE_OPTIONS);
122
- this.textfieldSize = inject(TUI_TEXTFIELD_SIZE);
123
- this.month = null;
124
- this.timeMode$ = new BehaviorSubject('HH:MM');
125
- this.nativeValue = signal('');
126
- this.timeTexts$ = toObservable(inject(TUI_TIME_TEXTS));
127
- this.dateTexts$ = toObservable(inject(TUI_DATE_TEXTS));
128
- this.valueTransformer = inject(TUI_DATE_TIME_VALUE_TRANSFORMER, { optional: true });
129
- this.filler$ = combineLatest([
130
- this.dateTexts$.pipe(map((dateTexts) => changeDateSeparator(dateTexts[this.dateFormat().mode], this.dateFormat().separator))),
131
- this.timeTexts$,
132
- this.timeMode$,
133
- ]).pipe(map(([dateFiller, timeTexts, timeMode]) => this.getDateTimeString(dateFiller, timeTexts[timeMode])));
134
- this.dateFormat = inject(TUI_DATE_FORMAT);
135
- this.isMobile = inject(TUI_IS_MOBILE);
136
- this.min = this.options.min;
137
- this.max = this.options.max;
138
- this.disabledItemHandler = TUI_FALSE_HANDLER;
139
- this.defaultActiveYearMonth = TuiMonth.currentLocal();
140
- this.open = false;
141
- }
142
- set timeMode(value) {
143
- this.timeMode$.next(value);
144
- }
145
- get timeMode() {
146
- return this.timeMode$.value;
147
- }
148
- get nativeFocusableElement() {
149
- return this.textfield?.nativeFocusableElement ?? null;
150
- }
151
- get focused() {
152
- return !!this.textfield?.focused;
153
- }
154
- get computedValue() {
155
- const { value, nativeValue, timeMode } = this;
156
- const [date, time] = value ?? [null, null];
157
- const hasTimeInputChars = nativeValue().length > DATE_FILLER_LENGTH;
158
- if (!date || (!time && hasTimeInputChars)) {
159
- return nativeValue();
160
- }
161
- return this.getDateTimeString(date, time, timeMode);
162
- }
163
- setDisabledState() {
164
- super.setDisabledState();
165
- this.open = false;
166
- }
167
- writeValue(value) {
168
- const transformed = this.valueTransformer
169
- ? this.valueTransformer.fromControlValue(value)
170
- : value;
171
- if (this.value === null && transformed === this.value) {
172
- return;
173
- }
174
- if (transformed?.[0]) {
175
- super.writeValue(value);
176
- }
177
- else {
178
- super.writeValue(null);
179
- }
180
- this.nativeValue.set(this.value && (this.value[0] || this.value[1]) ? this.computedValue : '');
181
- }
182
- onValueChange(value) {
183
- this.nativeValue.set(value);
184
- if (this.control) {
185
- this.control.updateValueAndValidity({ emitEvent: false });
186
- }
187
- if (!value) {
188
- this.onOpenChange(true);
189
- }
190
- if (value.length < DATE_FILLER_LENGTH) {
191
- this.value = null;
192
- return;
193
- }
194
- const [date = '', time] = value.split(DATE_TIME_SEPARATOR);
195
- const parsedDate = TuiDay.normalizeParse(date, this.dateFormat().mode);
196
- const parsedTime = time && time.length === this.timeMode.length
197
- ? TuiTime.fromString(time)
198
- : null;
199
- this.open = false;
200
- this.value = time && !parsedTime ? null : [parsedDate, parsedTime];
201
- }
202
- get size() {
203
- return this.textfieldSize.size;
204
- }
205
- get computedMin() {
206
- return this.toTuiDay(this.min, this.options.min);
207
- }
208
- get computedMax() {
209
- return this.toTuiDay(this.max, this.options.max);
210
- }
211
- get fillerLength() {
212
- return DATE_FILLER_LENGTH + DATE_TIME_SEPARATOR.length + this.timeMode.length;
213
- }
214
- get maskOptions() {
215
- return this.calculateMask(this.computedMin, this.computedMax, this.timeMode, this.dateFormat().mode, this.dateFormat().separator);
216
- }
217
- get calendarIcon() {
218
- return this.options.icon;
219
- }
220
- get showNativePicker() {
221
- return this.nativePicker && this.timeMode === 'HH:MM';
222
- }
223
- get calendarValue() {
224
- return this.value?.[0] ?? null;
225
- }
226
- get calendarMinDay() {
227
- const min = this.computedMin;
228
- return Array.isArray(min) ? min[0] : min;
229
- }
230
- get calendarMaxDay() {
231
- const max = this.computedMax;
232
- return Array.isArray(max) ? max[0] : max;
233
- }
234
- get computedActiveYearMonth() {
235
- const { computedMin, computedMax } = this;
236
- return (this.month ||
237
- this.value?.[0] ||
238
- tuiDateClamp(this.defaultActiveYearMonth, Array.isArray(computedMin) ? computedMin[0] : computedMin, Array.isArray(computedMax) ? computedMax[0] : computedMax));
239
- }
240
- onClick() {
241
- this.open = !this.open;
242
- }
243
- onDayClick(day) {
244
- const modifiedTime = (this.value?.[1] && this.clampTime(this.value?.[1], day)) ?? null;
245
- const newCaretIndex = DATE_FILLER_LENGTH + DATE_TIME_SEPARATOR.length;
246
- this.value = [day, modifiedTime];
247
- this.nativeValue.update((x) => this.getDateTimeString(day, x.split(DATE_TIME_SEPARATOR)[1] || ''));
248
- setTimeout(() => this.nativeFocusableElement?.setSelectionRange(newCaretIndex, newCaretIndex));
249
- this.open = false;
250
- }
251
- onMonthChange(month) {
252
- this.month = month;
253
- }
254
- onOpenChange(open) {
255
- this.open = open;
256
- }
257
- onFocused(focused) {
258
- this.updateFocused(focused);
259
- if (focused) {
260
- return;
261
- }
262
- timer(0)
263
- .pipe(takeUntilDestroyed(this.destroyRef))
264
- .subscribe(() => {
265
- this.nativeValue.update((x) => this.trimTrailingSeparator(x));
266
- });
267
- if (this.nativeValue().length === this.fillerLength ||
268
- this.timeMode === 'HH:MM') {
269
- return;
270
- }
271
- const [date = '', time] = this.nativeValue().split(DATE_TIME_SEPARATOR);
272
- if (!time) {
273
- return;
274
- }
275
- const parsedTime = TuiTime.fromString(time);
276
- const parsedDate = TuiDay.normalizeParse(date, this.dateFormat().mode);
277
- this.value = !parsedDate || !parsedTime ? null : [parsedDate, parsedTime];
278
- }
279
- getFallbackValue() {
280
- return null;
281
- }
282
- valueIdenticalComparator(oldValue, newValue) {
283
- return (tuiNullableSame(oldValue?.[0] ?? null, newValue?.[0] ?? null, (a, b) => a.daySame(b)) &&
284
- tuiNullableSame(oldValue?.[1] ?? null, newValue?.[1] ?? null, (a, b) => String(a) === String(b)));
285
- }
286
- get nativePicker() {
287
- return this.options.nativePicker && this.isMobile;
288
- }
289
- calculateMask(min, max, timeMode, dateFormat, dateSeparator) {
290
- const options = maskitoDateTimeOptionsGenerator({
291
- timeMode,
292
- dateSeparator,
293
- dateMode: TUI_DATE_MODE_MASKITO_ADAPTER[dateFormat],
294
- min: this.toNativeDate(min),
295
- max: this.toNativeDate(max),
296
- });
297
- const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {
298
- element.inputMode =
299
- element.selectionStart >=
300
- DATE_FILLER_LENGTH + DATE_TIME_SEPARATOR.length + timeMode.indexOf(' AA')
301
- ? 'text'
302
- : 'numeric';
303
- });
304
- return {
305
- ...options,
306
- plugins: options.plugins.concat(timeMode.includes('AA') ? inputModeSwitchPlugin : []),
307
- };
308
- }
309
- getDateTimeString(date, time, timeMode = 'HH:MM') {
310
- const dateString = date instanceof TuiDay
311
- ? date.toString(this.dateFormat().mode, this.dateFormat().separator)
312
- : date;
313
- const timeString = time instanceof TuiTime ? time.toString(timeMode) : time || '';
314
- return timeString
315
- ? `${dateString}${DATE_TIME_SEPARATOR}${timeString}`
316
- : dateString;
317
- }
318
- clampTime(time, day) {
319
- const { computedMin, computedMax } = this;
320
- const ms = time.toAbsoluteMilliseconds();
321
- const min = Array.isArray(computedMin) && day.daySame(this.calendarMinDay)
322
- ? computedMin[1].toAbsoluteMilliseconds()
323
- : -Infinity;
324
- const max = Array.isArray(computedMax) && day.daySame(this.calendarMaxDay)
325
- ? computedMax[1].toAbsoluteMilliseconds()
326
- : Infinity;
327
- return TuiTime.fromAbsoluteMilliseconds(tuiClamp(ms, min, max));
328
- }
329
- trimTrailingSeparator(value) {
330
- return value.replace(new RegExp(`(\\${this.dateFormat().separator}|${DATE_TIME_SEPARATOR}|\\.)$`), '');
331
- }
332
- toNativeDate(value) {
333
- if (!Array.isArray(value)) {
334
- return value.toLocalNativeDate();
335
- }
336
- const [{ year, month, day }, { hours, minutes, seconds, ms }] = value;
337
- return new Date(year, month, day, hours, minutes, seconds, ms);
338
- }
339
- toTuiDay(value, fallback) {
340
- if (!value) {
341
- return fallback;
342
- }
343
- if (!Array.isArray(value)) {
344
- return value;
345
- }
346
- const [tuiDay, tuiTime] = value;
347
- if (!tuiDay) {
348
- return fallback;
349
- }
350
- if (!tuiTime) {
351
- return tuiDay;
352
- }
353
- return value;
354
- }
355
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
356
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiInputDateTimeComponent, isStandalone: false, selector: "tui-input-date-time", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", defaultActiveYearMonth: "defaultActiveYearMonth", timeMode: "timeMode" }, host: { listeners: { "click": "onClick()" }, properties: { "attr.data-size": "size" } }, providers: [
357
- tuiAsFocusableItemAccessor(TuiInputDateTimeComponent),
358
- tuiAsControl(TuiInputDateTimeComponent),
359
- tuiDateStreamWithTransformer(TUI_DATE_TIME_VALUE_TRANSFORMER),
360
- ], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive && !showNativePicker\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-input-date-time__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (focusedChange)=\"onFocused($event)\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n />\n @if (showNativePicker) {\n <input\n tuiDateTime\n class=\"t-native-input\"\n />\n }\n </ng-template>\n\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"type\"\n >\n <tui-calendar\n automation-id=\"tui-input-date-time__calendar\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [max]=\"calendarMaxDay\"\n [min]=\"calendarMinDay\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"calendarValue\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.prevent.zoneless)=\"(0)\"\n />\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small:before{font-size:1rem}.t-button{display:flex;block-size:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-border-normal)}.t-native-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], dependencies: [{ kind: "directive", type: i1.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"], outputs: ["maskitoChange", "maskitoElementChange"] }, { kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i2.PolymorpheusTemplate, selector: "ng-template[polymorpheus]", inputs: ["polymorpheus"], exportAs: ["polymorpheus"] }, { kind: "directive", type: i3.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "component", type: i4.TuiCalendar, selector: "tui-calendar", inputs: ["month", "disabledItemHandler", "min", "max", "minViewedMonth", "maxViewedMonth", "hoveredItem", "showAdjacent", "markerHandler", "value", "initialView"], outputs: ["dayClick", "monthChange", "hoveredItemChange"] }, { kind: "component", type: i5.TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "directive", type: i6.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "component", type: i7.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "iconCleaner", "readOnly", "invalid", "disabled", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i7.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { kind: "directive", type: i6.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i6.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { kind: "directive", type: i6.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { kind: "directive", type: i1$1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1$1.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }, { kind: "directive", type: TuiNativeDateTimeDirective, selector: "input[tuiDateTime]" }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
361
- }
362
- __decorate([
363
- tuiPure
364
- ], TuiInputDateTimeComponent.prototype, "calculateMask", null);
365
- __decorate([
366
- tuiPure
367
- ], TuiInputDateTimeComponent.prototype, "getDateTimeString", null);
368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeComponent, decorators: [{
369
- type: Component,
370
- args: [{ standalone: false, selector: 'tui-input-date-time', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
371
- tuiAsFocusableItemAccessor(TuiInputDateTimeComponent),
372
- tuiAsControl(TuiInputDateTimeComponent),
373
- tuiDateStreamWithTransformer(TUI_DATE_TIME_VALUE_TRANSFORMER),
374
- ], host: {
375
- '[attr.data-size]': 'size',
376
- '(click)': 'onClick()',
377
- }, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive && !showNativePicker\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-input-date-time__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (focusedChange)=\"onFocused($event)\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n />\n @if (showNativePicker) {\n <input\n tuiDateTime\n class=\"t-native-input\"\n />\n }\n </ng-template>\n\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"type\"\n >\n <tui-calendar\n automation-id=\"tui-input-date-time__calendar\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [max]=\"calendarMaxDay\"\n [min]=\"calendarMinDay\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"calendarValue\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.prevent.zoneless)=\"(0)\"\n />\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small:before{font-size:1rem}.t-button{display:flex;block-size:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-border-normal)}.t-native-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"] }]
378
- }], propDecorators: { textfield: [{
379
- type: ViewChild,
380
- args: [TuiPrimitiveTextfieldComponent]
381
- }], min: [{
382
- type: Input
383
- }], max: [{
384
- type: Input
385
- }], disabledItemHandler: [{
386
- type: Input
387
- }], defaultActiveYearMonth: [{
388
- type: Input
389
- }], timeMode: [{
390
- type: Input
391
- }], calculateMask: [], getDateTimeString: [] } });
392
-
393
- /**
394
- * TODO(v5): delete it
395
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-date-time TuiInputDateTime} (from @taiga-ui/kit) instead
396
- */
397
- class TuiInputDateTimeModule {
398
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
399
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeModule, declarations: [TuiInputDateTimeComponent,
400
- TuiInputDateTimeDirective,
401
- TuiNativeDateTimeDirective], imports: [CommonModule,
402
- MaskitoDirective,
403
- PolymorpheusOutlet,
404
- PolymorpheusTemplate,
405
- TuiAppearance,
406
- TuiCalendar,
407
- TuiIcon,
408
- TuiLegacyDropdownOpenMonitorDirective,
409
- TuiLink,
410
- TuiPrimitiveTextfieldModule,
411
- TuiTextfieldControllerModule,
412
- TuiValueAccessorModule, i1$1.TuiDropdownOptionsDirective, i1$1.TuiDropdownDriverDirective, i1$1.TuiDropdownDirective, i1$1.TuiDropdownComponent, i1$1.TuiDropdownOpen, i1$1.TuiDropdownOpenLegacy, i1$1.TuiDropdownManual, i1$1.TuiDropdownHover, i1$1.TuiDropdownContent, i1$1.TuiDropdownContext, i1$1.TuiDropdownPosition, i1$1.TuiDropdownPositionSided, i1$1.TuiDropdownSelection], exports: [TuiInputDateTimeComponent,
413
- TuiInputDateTimeDirective,
414
- TuiTextfieldComponent, i1$1.TuiDropdownOptionsDirective, i1$1.TuiDropdownDriverDirective, i1$1.TuiDropdownDirective, i1$1.TuiDropdownComponent, i1$1.TuiDropdownOpen, i1$1.TuiDropdownOpenLegacy, i1$1.TuiDropdownManual, i1$1.TuiDropdownHover, i1$1.TuiDropdownContent, i1$1.TuiDropdownContext, i1$1.TuiDropdownPosition, i1$1.TuiDropdownPositionSided, i1$1.TuiDropdownSelection] }); }
415
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeModule, imports: [CommonModule,
416
- TuiCalendar,
417
- TuiIcon,
418
- TuiPrimitiveTextfieldModule,
419
- TuiTextfieldControllerModule,
420
- TuiValueAccessorModule, i1$1.TuiDropdownComponent] }); }
421
- }
422
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeModule, decorators: [{
423
- type: NgModule,
424
- args: [{
425
- imports: [
426
- CommonModule,
427
- MaskitoDirective,
428
- PolymorpheusOutlet,
429
- PolymorpheusTemplate,
430
- TuiAppearance,
431
- TuiCalendar,
432
- TuiIcon,
433
- TuiLegacyDropdownOpenMonitorDirective,
434
- TuiLink,
435
- TuiPrimitiveTextfieldModule,
436
- TuiTextfieldControllerModule,
437
- TuiValueAccessorModule,
438
- ...TuiDropdown,
439
- ],
440
- declarations: [
441
- TuiInputDateTimeComponent,
442
- TuiInputDateTimeDirective,
443
- TuiNativeDateTimeDirective,
444
- ],
445
- exports: [
446
- TuiInputDateTimeComponent,
447
- TuiInputDateTimeDirective,
448
- TuiTextfieldComponent,
449
- ...TuiDropdown,
450
- ],
451
- }]
452
- }] });
453
-
454
- /**
455
- * Generated bundle index. Do not edit.
456
- */
457
-
458
- export { TuiInputDateTimeComponent, TuiInputDateTimeDirective, TuiInputDateTimeModule };
459
- //# sourceMappingURL=taiga-ui-legacy-components-input-date-time.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-legacy-components-input-date-time.mjs","sources":["../../../projects/legacy/components/input-date-time/input-date-time.directive.ts","../../../projects/legacy/components/input-date-time/native-date-time/native-date-time.directive.ts","../../../projects/legacy/components/input-date-time/input-date-time.component.ts","../../../projects/legacy/components/input-date-time/input-date-time.template.html","../../../projects/legacy/components/input-date-time/input-date-time.module.ts","../../../projects/legacy/components/input-date-time/taiga-ui-legacy-components-input-date-time.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {type TuiDay, type TuiTime} from '@taiga-ui/cdk/date-time';\nimport {AbstractTuiTextfieldHost} from '@taiga-ui/legacy/classes';\nimport {tuiAsTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {type TuiInputDateTimeComponent} from './input-date-time.component';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-date-time TuiInputDateTime} (from @taiga-ui/kit) instead\n */\n@Directive({\n standalone: false,\n selector: 'tui-input-date-time',\n providers: [tuiAsTextfieldHost(TuiInputDateTimeDirective)],\n})\nexport class TuiInputDateTimeDirective extends AbstractTuiTextfieldHost<TuiInputDateTimeComponent> {\n public override get value(): string {\n return this.host.computedValue;\n }\n\n public get rawValue(): [TuiDay, TuiTime | null] | null {\n return this.host.value ?? null;\n }\n\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n public writeValue(value: [TuiDay, TuiTime | null] | null): void {\n this.host.writeValue(value);\n }\n\n public override process(input: HTMLInputElement): void {\n input.inputMode = this.host.timeMode.includes('AA') ? 'text' : 'numeric';\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport {TuiDay, TuiTime} from '@taiga-ui/cdk/date-time';\n\nimport {TuiInputDateTimeDirective} from '../input-date-time.directive';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-date-time#mobile TuiInputDateTime} (from @taiga-ui/kit) instead\n */\n@Directive({\n standalone: false,\n selector: 'input[tuiDateTime]',\n host: {\n type: 'datetime-local',\n '[tabIndex]': '-1',\n '[value]': 'value',\n '(change.stop)': 'onChange($event.target.value)',\n '(input.stop)': 'onChange($event.target.value)',\n '(click.stop.zoneless)': '0',\n '(mousedown.stop.zoneless)': '0',\n },\n})\nexport class TuiNativeDateTimeDirective {\n protected readonly host = inject(TuiInputDateTimeDirective);\n\n protected get value(): string {\n if (!this.host.rawValue?.[0] || !this.host.rawValue?.[1]) {\n return '';\n }\n\n return `${this.host.rawValue[0]?.toString(\n 'YMD',\n '-',\n )}T${this.host.rawValue[1]?.toString('HH:MM')}`;\n }\n\n protected onChange(value: string): void {\n if (!value) {\n this.host.writeValue(null);\n\n return;\n }\n\n const date = new Date(value);\n const day = TuiDay.fromLocalNativeDate(date);\n const time = TuiTime.fromLocalNativeDate(date);\n\n this.host.writeValue([day, time]);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {type MaskitoOptions} from '@maskito/core';\nimport {\n maskitoDateTimeOptionsGenerator,\n maskitoSelectionChangeHandler,\n type MaskitoTimeMode,\n} from '@maskito/kit';\nimport {type TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {\n DATE_FILLER_LENGTH,\n tuiDateClamp,\n type TuiDateMode,\n TuiDay,\n TuiMonth,\n TuiTime,\n} from '@taiga-ui/cdk/date-time';\nimport {type TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {type TuiBooleanHandler, type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {\n changeDateSeparator,\n tuiNullableSame,\n tuiPure,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {\n TUI_DATE_TEXTS,\n TUI_DATE_TIME_VALUE_TRANSFORMER,\n TUI_INPUT_DATE_OPTIONS,\n TUI_TIME_TEXTS,\n tuiDateStreamWithTransformer,\n type TuiInputDateOptions,\n} from '@taiga-ui/kit/tokens';\nimport {AbstractTuiControl, tuiAsControl} from '@taiga-ui/legacy/classes';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TUI_TEXTFIELD_SIZE} from '@taiga-ui/legacy/directives';\nimport {\n tuiAsFocusableItemAccessor,\n type TuiFocusableElementAccessor,\n} from '@taiga-ui/legacy/tokens';\nimport {TUI_DATE_MODE_MASKITO_ADAPTER} from '@taiga-ui/legacy/utils';\nimport {BehaviorSubject, combineLatest, map, type Observable, timer} from 'rxjs';\n\nconst DATE_TIME_SEPARATOR = ', ';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-date-time TuiInputDateTime} (from @taiga-ui/kit) instead\n */\n@Component({\n standalone: false,\n selector: 'tui-input-date-time',\n templateUrl: './input-date-time.template.html',\n styleUrl: './input-date-time.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputDateTimeComponent),\n tuiAsControl(TuiInputDateTimeComponent),\n tuiDateStreamWithTransformer(TUI_DATE_TIME_VALUE_TRANSFORMER),\n ],\n host: {\n '[attr.data-size]': 'size',\n '(click)': 'onClick()',\n },\n})\nexport class TuiInputDateTimeComponent\n extends AbstractTuiControl<[TuiDay, TuiTime | null] | null>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly options = inject(TUI_INPUT_DATE_OPTIONS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n\n private month: TuiMonth | null = null;\n private readonly timeMode$ = new BehaviorSubject<MaskitoTimeMode>('HH:MM');\n private readonly nativeValue = signal('');\n\n protected readonly timeTexts$ = toObservable(inject(TUI_TIME_TEXTS));\n protected readonly dateTexts$ = toObservable(inject(TUI_DATE_TEXTS));\n protected override readonly valueTransformer: TuiValueTransformer<\n [TuiDay, TuiTime | null]\n > | null = inject(TUI_DATE_TIME_VALUE_TRANSFORMER, {optional: true});\n\n protected readonly type!: TuiContext<TuiActiveZone>;\n\n protected readonly filler$: Observable<string> = combineLatest([\n this.dateTexts$.pipe(\n map((dateTexts) =>\n changeDateSeparator(\n dateTexts[this.dateFormat().mode],\n this.dateFormat().separator,\n ),\n ),\n ),\n this.timeTexts$,\n this.timeMode$,\n ]).pipe(\n map(([dateFiller, timeTexts, timeMode]) =>\n this.getDateTimeString(dateFiller, timeTexts[timeMode]),\n ),\n );\n\n protected dateFormat = inject(TUI_DATE_FORMAT);\n protected readonly isMobile = inject(TUI_IS_MOBILE);\n\n @Input()\n public min: TuiDay | [TuiDay | null, TuiTime | null] | null = this.options.min;\n\n @Input()\n public max: TuiDay | [TuiDay | null, TuiTime | null] | null = this.options.max;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> = TUI_FALSE_HANDLER;\n\n @Input()\n public defaultActiveYearMonth = TuiMonth.currentLocal();\n\n public open = false;\n\n @Input()\n public set timeMode(value: MaskitoTimeMode) {\n this.timeMode$.next(value);\n }\n\n public get timeMode(): MaskitoTimeMode {\n return this.timeMode$.value;\n }\n\n public get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield?.nativeFocusableElement ?? null;\n }\n\n public get focused(): boolean {\n return !!this.textfield?.focused;\n }\n\n public get computedValue(): string {\n const {value, nativeValue, timeMode} = this;\n const [date, time] = value ?? [null, null];\n const hasTimeInputChars = nativeValue().length > DATE_FILLER_LENGTH;\n\n if (!date || (!time && hasTimeInputChars)) {\n return nativeValue();\n }\n\n return this.getDateTimeString(date, time, timeMode);\n }\n\n public override setDisabledState(): void {\n super.setDisabledState();\n this.open = false;\n }\n\n public override writeValue(value: [TuiDay, TuiTime | null] | null): void {\n const transformed = this.valueTransformer\n ? this.valueTransformer.fromControlValue(value)\n : value;\n\n if (this.value === null && transformed === this.value) {\n return;\n }\n\n if (transformed?.[0]) {\n super.writeValue(value);\n } else {\n super.writeValue(null);\n }\n\n this.nativeValue.set(\n this.value && (this.value[0] || this.value[1]) ? this.computedValue : '',\n );\n }\n\n public onValueChange(value: string): void {\n this.nativeValue.set(value);\n\n if (this.control) {\n this.control.updateValueAndValidity({emitEvent: false});\n }\n\n if (!value) {\n this.onOpenChange(true);\n }\n\n if (value.length < DATE_FILLER_LENGTH) {\n this.value = null;\n\n return;\n }\n\n const [date = '', time] = value.split(DATE_TIME_SEPARATOR);\n const parsedDate = TuiDay.normalizeParse(date, this.dateFormat().mode);\n const parsedTime =\n time && time.length === this.timeMode.length\n ? TuiTime.fromString(time)\n : null;\n\n this.open = false;\n this.value = time && !parsedTime ? null : [parsedDate, parsedTime];\n }\n\n protected get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n protected get computedMin(): TuiDay | [TuiDay, TuiTime] {\n return this.toTuiDay(this.min, this.options.min);\n }\n\n protected get computedMax(): TuiDay | [TuiDay, TuiTime] {\n return this.toTuiDay(this.max, this.options.max);\n }\n\n protected get fillerLength(): number {\n return DATE_FILLER_LENGTH + DATE_TIME_SEPARATOR.length + this.timeMode.length;\n }\n\n protected get maskOptions(): MaskitoOptions {\n return this.calculateMask(\n this.computedMin,\n this.computedMax,\n this.timeMode,\n this.dateFormat().mode,\n this.dateFormat().separator,\n );\n }\n\n protected get calendarIcon(): TuiInputDateOptions['icon'] {\n return this.options.icon;\n }\n\n protected get showNativePicker(): boolean {\n return this.nativePicker && this.timeMode === 'HH:MM';\n }\n\n protected get calendarValue(): TuiDay | null {\n return this.value?.[0] ?? null;\n }\n\n protected get calendarMinDay(): TuiDay {\n const min = this.computedMin;\n\n return Array.isArray(min) ? min[0] : min;\n }\n\n protected get calendarMaxDay(): TuiDay {\n const max = this.computedMax;\n\n return Array.isArray(max) ? max[0] : max;\n }\n\n protected get computedActiveYearMonth(): TuiMonth {\n const {computedMin, computedMax} = this;\n\n return (\n this.month ||\n this.value?.[0] ||\n tuiDateClamp(\n this.defaultActiveYearMonth,\n Array.isArray(computedMin) ? computedMin[0] : computedMin,\n Array.isArray(computedMax) ? computedMax[0] : computedMax,\n )\n );\n }\n\n protected onClick(): void {\n this.open = !this.open;\n }\n\n protected onDayClick(day: TuiDay): void {\n const modifiedTime =\n (this.value?.[1] && this.clampTime(this.value?.[1], day)) ?? null;\n const newCaretIndex = DATE_FILLER_LENGTH + DATE_TIME_SEPARATOR.length;\n\n this.value = [day, modifiedTime];\n this.nativeValue.update((x) =>\n this.getDateTimeString(day, x.split(DATE_TIME_SEPARATOR)[1] || ''),\n );\n setTimeout(() =>\n this.nativeFocusableElement?.setSelectionRange(newCaretIndex, newCaretIndex),\n );\n this.open = false;\n }\n\n protected onMonthChange(month: TuiMonth): void {\n this.month = month;\n }\n\n protected onOpenChange(open: boolean): void {\n this.open = open;\n }\n\n protected onFocused(focused: boolean): void {\n this.updateFocused(focused);\n\n if (focused) {\n return;\n }\n\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.nativeValue.update((x) => this.trimTrailingSeparator(x));\n });\n\n if (\n this.nativeValue().length === this.fillerLength ||\n this.timeMode === 'HH:MM'\n ) {\n return;\n }\n\n const [date = '', time] = this.nativeValue().split(DATE_TIME_SEPARATOR);\n\n if (!time) {\n return;\n }\n\n const parsedTime = TuiTime.fromString(time);\n const parsedDate = TuiDay.normalizeParse(date, this.dateFormat().mode);\n\n this.value = !parsedDate || !parsedTime ? null : [parsedDate, parsedTime];\n }\n\n protected getFallbackValue(): [TuiDay, TuiTime | null] | null {\n return null;\n }\n\n protected override valueIdenticalComparator(\n oldValue: [TuiDay, TuiTime | null] | null,\n newValue: [TuiDay, TuiTime | null] | null,\n ): boolean {\n return (\n tuiNullableSame(oldValue?.[0] ?? null, newValue?.[0] ?? null, (a, b) =>\n a.daySame(b),\n ) &&\n tuiNullableSame(\n oldValue?.[1] ?? null,\n newValue?.[1] ?? null,\n (a, b) => String(a) === String(b),\n )\n );\n }\n\n private get nativePicker(): boolean {\n return this.options.nativePicker && this.isMobile;\n }\n\n @tuiPure\n private calculateMask(\n min: TuiDay | [TuiDay, TuiTime],\n max: TuiDay | [TuiDay, TuiTime],\n timeMode: MaskitoTimeMode,\n dateFormat: TuiDateMode,\n dateSeparator: string,\n ): MaskitoOptions {\n const options = maskitoDateTimeOptionsGenerator({\n timeMode,\n dateSeparator,\n dateMode: TUI_DATE_MODE_MASKITO_ADAPTER[dateFormat],\n min: this.toNativeDate(min),\n max: this.toNativeDate(max),\n });\n const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {\n element.inputMode =\n element.selectionStart! >=\n DATE_FILLER_LENGTH + DATE_TIME_SEPARATOR.length + timeMode.indexOf(' AA')\n ? 'text'\n : 'numeric';\n });\n\n return {\n ...options,\n plugins: options.plugins.concat(\n timeMode.includes('AA') ? inputModeSwitchPlugin : [],\n ),\n };\n }\n\n @tuiPure\n private getDateTimeString(\n date: TuiDay | string,\n time: TuiTime | string | null,\n timeMode: MaskitoTimeMode = 'HH:MM',\n ): string {\n const dateString =\n date instanceof TuiDay\n ? date.toString(this.dateFormat().mode, this.dateFormat().separator)\n : date;\n const timeString = time instanceof TuiTime ? time.toString(timeMode) : time || '';\n\n return timeString\n ? `${dateString}${DATE_TIME_SEPARATOR}${timeString}`\n : dateString;\n }\n\n private clampTime(time: TuiTime, day: TuiDay): TuiTime {\n const {computedMin, computedMax} = this;\n\n const ms = time.toAbsoluteMilliseconds();\n const min =\n Array.isArray(computedMin) && day.daySame(this.calendarMinDay)\n ? computedMin[1].toAbsoluteMilliseconds()\n : -Infinity;\n const max =\n Array.isArray(computedMax) && day.daySame(this.calendarMaxDay)\n ? computedMax[1].toAbsoluteMilliseconds()\n : Infinity;\n\n return TuiTime.fromAbsoluteMilliseconds(tuiClamp(ms, min, max));\n }\n\n private trimTrailingSeparator(value: string): string {\n return value.replace(\n new RegExp(`(\\\\${this.dateFormat().separator}|${DATE_TIME_SEPARATOR}|\\\\.)$`),\n '',\n );\n }\n\n private toNativeDate(value: TuiDay | [TuiDay, TuiTime]): Date {\n if (!Array.isArray(value)) {\n return value.toLocalNativeDate();\n }\n\n const [{year, month, day}, {hours, minutes, seconds, ms}] = value;\n\n return new Date(year, month, day, hours, minutes, seconds, ms);\n }\n\n private toTuiDay(\n value: TuiDay | [TuiDay | null, TuiTime | null] | null,\n fallback: TuiDay,\n ): TuiDay | [TuiDay, TuiTime] {\n if (!value) {\n return fallback;\n }\n\n if (!Array.isArray(value)) {\n return value;\n }\n\n const [tuiDay, tuiTime] = value;\n\n if (!tuiDay) {\n return fallback;\n }\n\n if (!tuiTime) {\n return tuiDay;\n }\n\n return value as [TuiDay, TuiTime];\n }\n}\n","<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive && !showNativePicker\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-input-date-time__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (focusedChange)=\"onFocused($event)\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n />\n @if (showNativePicker) {\n <input\n tuiDateTime\n class=\"t-native-input\"\n />\n }\n </ng-template>\n\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"type\"\n >\n <tui-calendar\n automation-id=\"tui-input-date-time__calendar\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [max]=\"calendarMaxDay\"\n [min]=\"calendarMinDay\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"calendarValue\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.prevent.zoneless)=\"(0)\"\n />\n </ng-template>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TuiLegacyDropdownOpenMonitorDirective,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputDateTimeComponent} from './input-date-time.component';\nimport {TuiInputDateTimeDirective} from './input-date-time.directive';\nimport {TuiNativeDateTimeDirective} from './native-date-time/native-date-time.directive';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-date-time TuiInputDateTime} (from @taiga-ui/kit) instead\n */\n@NgModule({\n imports: [\n CommonModule,\n MaskitoDirective,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiAppearance,\n TuiCalendar,\n TuiIcon,\n TuiLegacyDropdownOpenMonitorDirective,\n TuiLink,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n ...TuiDropdown,\n ],\n declarations: [\n TuiInputDateTimeComponent,\n TuiInputDateTimeDirective,\n TuiNativeDateTimeDirective,\n ],\n exports: [\n TuiInputDateTimeComponent,\n TuiInputDateTimeDirective,\n TuiTextfieldComponent,\n ...TuiDropdown,\n ],\n})\nexport class TuiInputDateTimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i8","i9.TuiNativeDateTimeDirective","i1"],"mappings":"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"}