@taiga-ui/legacy 4.52.0-canary.1ea42f6 → 4.52.0-canary.24b31eb

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 (68) hide show
  1. package/components/dialog/dialog.component.d.ts +20 -0
  2. package/components/dialog/dialog.directive.d.ts +7 -0
  3. package/components/dialog/dialog.factory.d.ts +16 -0
  4. package/components/dialog/dialog.interfaces.d.ts +31 -0
  5. package/components/dialog/dialog.service.d.ts +7 -0
  6. package/components/dialog/dialog.tokens.d.ts +8 -0
  7. package/components/dialog/index.d.ts +6 -0
  8. package/components/index.d.ts +1 -5
  9. package/fesm2022/taiga-ui-legacy-components-dialog.mjs +130 -0
  10. package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -0
  11. package/fesm2022/taiga-ui-legacy-components.mjs +1 -5
  12. package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
  13. package/fesm2022/taiga-ui-legacy.mjs +0 -1
  14. package/fesm2022/taiga-ui-legacy.mjs.map +1 -1
  15. package/index.d.ts +0 -1
  16. package/package.json +32 -52
  17. package/utils/icons-path-factory.d.ts +1 -1
  18. package/components/color-selector/color-edit/color-edit.component.d.ts +0 -18
  19. package/components/color-selector/color-edit/color-edit.module.d.ts +0 -21
  20. package/components/color-selector/color-picker/color-picker.component.d.ts +0 -22
  21. package/components/color-selector/color-picker/color-picker.module.d.ts +0 -14
  22. package/components/color-selector/color-selector.component.d.ts +0 -47
  23. package/components/color-selector/color-selector.module.d.ts +0 -23
  24. package/components/color-selector/color-selector.options.d.ts +0 -25
  25. package/components/color-selector/flat-picker/flat-picker.component.d.ts +0 -12
  26. package/components/color-selector/flat-picker/flat-picker.module.d.ts +0 -12
  27. package/components/color-selector/index.d.ts +0 -16
  28. package/components/color-selector/linear-multi-picker/linear-multi-picker.component.d.ts +0 -17
  29. package/components/color-selector/linear-multi-picker/linear-multi-picker.module.d.ts +0 -12
  30. package/components/color-selector/linear-picker/linear-picker.component.d.ts +0 -10
  31. package/components/color-selector/linear-picker/linear-picker.module.d.ts +0 -12
  32. package/components/color-selector/palette/palette.component.d.ts +0 -10
  33. package/components/color-selector/palette/palette.module.d.ts +0 -13
  34. package/components/color-selector/services/picker.service.d.ts +0 -15
  35. package/components/input-color/index.d.ts +0 -2
  36. package/components/input-color/input-color.component.d.ts +0 -30
  37. package/components/input-color/input-color.module.d.ts +0 -17
  38. package/components/input-date/index.d.ts +0 -3
  39. package/components/input-date/input-date.component.d.ts +0 -62
  40. package/components/input-date/input-date.directive.d.ts +0 -19
  41. package/components/input-date/input-date.module.d.ts +0 -24
  42. package/components/input-date/native-date/native-date.component.d.ts +0 -15
  43. package/components/input-time/index.d.ts +0 -4
  44. package/components/input-time/input-time.component.d.ts +0 -62
  45. package/components/input-time/input-time.directive.d.ts +0 -17
  46. package/components/input-time/input-time.module.d.ts +0 -23
  47. package/components/input-time/input-time.options.d.ts +0 -42
  48. package/components/input-time/native-time/native-time.component.d.ts +0 -12
  49. package/components/svg/content-processor.d.ts +0 -19
  50. package/components/svg/deprecated-icons.d.ts +0 -5
  51. package/components/svg/index.d.ts +0 -5
  52. package/components/svg/svg-options.d.ts +0 -50
  53. package/components/svg/svg.component.d.ts +0 -50
  54. package/components/svg/svg.service.d.ts +0 -21
  55. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs +0 -726
  56. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs.map +0 -1
  57. package/fesm2022/taiga-ui-legacy-components-input-color.mjs +0 -127
  58. package/fesm2022/taiga-ui-legacy-components-input-color.mjs.map +0 -1
  59. package/fesm2022/taiga-ui-legacy-components-input-date.mjs +0 -372
  60. package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +0 -1
  61. package/fesm2022/taiga-ui-legacy-components-input-time.mjs +0 -430
  62. package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +0 -1
  63. package/fesm2022/taiga-ui-legacy-components-svg.mjs +0 -387
  64. package/fesm2022/taiga-ui-legacy-components-svg.mjs.map +0 -1
  65. package/fesm2022/taiga-ui-legacy-services.mjs +0 -42
  66. package/fesm2022/taiga-ui-legacy-services.mjs.map +0 -1
  67. package/services/index.d.ts +0 -1
  68. package/services/static-request.service.d.ts +0 -11
@@ -1,430 +0,0 @@
1
- import { __decorate } from 'tslib';
2
- import * as i0 from '@angular/core';
3
- import { InjectionToken, Directive, inject, ChangeDetectionStrategy, Component, Input, ViewChild, NgModule } from '@angular/core';
4
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
- import { maskitoTimeOptionsGenerator, maskitoSelectionChangeHandler } from '@maskito/kit';
6
- import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
7
- import { TuiTime } from '@taiga-ui/cdk/date-time';
8
- import { TUI_IS_MOBILE, TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
9
- import { tuiIsFocused } from '@taiga-ui/cdk/utils/focus';
10
- import { tuiProvideOptions, tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
11
- import * as i2$1 from '@taiga-ui/core/components/data-list';
12
- import { tuiAsDataListHost, tuiAsOptionContent, TuiDataList } from '@taiga-ui/core/components/data-list';
13
- import * as i1 from '@taiga-ui/core/directives/dropdown';
14
- import { TuiDropdownFixed, TuiDropdown } from '@taiga-ui/core/directives/dropdown';
15
- import { TUI_TIME_TEXTS, TUI_TIME_VALUE_TRANSFORMER } from '@taiga-ui/kit/tokens';
16
- import { AbstractTuiTextfieldHost, AbstractTuiNullableControl, tuiAsControl } from '@taiga-ui/legacy/classes';
17
- import * as i3 from '@taiga-ui/legacy/components/primitive-textfield';
18
- import { TuiPrimitiveTextfieldComponent, TuiPrimitiveTextfieldModule } from '@taiga-ui/legacy/components/primitive-textfield';
19
- import { TUI_SELECT_OPTION, TuiSelectOptionModule } from '@taiga-ui/legacy/components/select-option';
20
- import * as i4 from '@taiga-ui/legacy/directives';
21
- import { TUI_TEXTFIELD_SIZE, TuiValueAccessorModule, TuiTextfieldControllerModule, TuiLegacyDropdownOpenMonitorDirective } from '@taiga-ui/legacy/directives';
22
- import { tuiAsTextfieldHost, tuiAsFocusableItemAccessor } from '@taiga-ui/legacy/tokens';
23
- import { map, timer } from 'rxjs';
24
- import * as i2 from '@maskito/angular';
25
- import { MaskitoDirective } from '@maskito/angular';
26
- import * as i5 from '@taiga-ui/polymorpheus';
27
- import { PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
28
- import * as i6 from '@taiga-ui/core/components/icon';
29
- import { TuiIcon } from '@taiga-ui/core/components/icon';
30
- import * as i7 from '@taiga-ui/core/directives/appearance';
31
- import { TuiAppearance } from '@taiga-ui/core/directives/appearance';
32
- import { tuiInjectId } from '@taiga-ui/cdk/services';
33
- import * as i10 from '@angular/common';
34
- import { CommonModule } from '@angular/common';
35
-
36
- /**
37
- * TODO(v5): delete it
38
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead
39
- */
40
- const MAX_TIME_VALUES = {
41
- HH: 23,
42
- MM: 59,
43
- SS: 59,
44
- MS: 999,
45
- };
46
- /**
47
- * TODO(v5): delete it
48
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead
49
- */
50
- const TUI_INPUT_TIME_DEFAULT_OPTIONS = {
51
- icon: () => '@tui.clock',
52
- mode: 'HH:MM',
53
- maxValues: MAX_TIME_VALUES, // TODO(v5): use empty object
54
- itemSize: 'm',
55
- nativePicker: false,
56
- };
57
- /**
58
- * TODO(v5): delete it
59
- * Default parameters for InputTime component
60
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead
61
- */
62
- const TUI_INPUT_TIME_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_INPUT_TIME_OPTIONS' : '', {
63
- factory: () => TUI_INPUT_TIME_DEFAULT_OPTIONS,
64
- });
65
- /**
66
- * TODO(v5): delete it
67
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead
68
- */
69
- function tuiInputTimeOptionsProvider(options) {
70
- return tuiProvideOptions(TUI_INPUT_TIME_OPTIONS, options, TUI_INPUT_TIME_DEFAULT_OPTIONS);
71
- }
72
-
73
- /**
74
- * TODO(v5): delete it
75
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time TuiInputTime} (from @taiga-ui/kit) instead
76
- */
77
- class TuiInputTimeDirective extends AbstractTuiTextfieldHost {
78
- get value() {
79
- return this.host.computedValue;
80
- }
81
- get mode() {
82
- return this.host.mode;
83
- }
84
- get items() {
85
- return this.host.items;
86
- }
87
- onValueChange(value) {
88
- if (!value) {
89
- this.host.nativeValue = '';
90
- }
91
- this.host.onValueChange(value);
92
- }
93
- process(input) {
94
- input.inputMode = this.host.inputMode;
95
- }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTimeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
97
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputTimeDirective, isStandalone: false, selector: "tui-input-time", providers: [tuiAsTextfieldHost(TuiInputTimeDirective)], usesInheritance: true, ngImport: i0 }); }
98
- }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTimeDirective, decorators: [{
100
- type: Directive,
101
- args: [{
102
- standalone: false,
103
- selector: 'tui-input-time',
104
- providers: [tuiAsTextfieldHost(TuiInputTimeDirective)],
105
- }]
106
- }] });
107
-
108
- class TuiNativeTimeComponent {
109
- constructor() {
110
- this.host = inject(TuiInputTimeDirective);
111
- this.autoId = tuiInjectId();
112
- }
113
- get items() {
114
- return this.host.items.map((item) => item.toString(this.host.mode));
115
- }
116
- get value() {
117
- return this.host.value.length === this.host.mode.length ? this.host.value : '';
118
- }
119
- get step() {
120
- switch (this.host.mode) {
121
- case 'HH:MM:SS':
122
- return 1;
123
- case 'HH:MM:SS.MSS':
124
- return 0.001;
125
- default:
126
- return 60;
127
- }
128
- }
129
- onChange(value) {
130
- this.host.onValueChange(value);
131
- }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNativeTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
133
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiNativeTimeComponent, isStandalone: false, selector: "input[tuiTime]", host: { attributes: { "type": "time" }, listeners: { "change.stop": "onChange($event.target.value)", "click.stop.zoneless": "0", "mousedown.stop.zoneless": "0" }, properties: { "attr.list": "autoId", "tabIndex": "-1", "value": "value", "step": "step" } }, ngImport: i0, template: `
134
- @if (items.length) {
135
- <datalist [id]="autoId">
136
- @for (item of items; track item) {
137
- <option [value]="item"></option>
138
- }
139
- </datalist>
140
- }
141
- `, isInline: true, styles: [":host{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
142
- }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNativeTimeComponent, decorators: [{
144
- type: Component,
145
- args: [{ standalone: false, selector: 'input[tuiTime]', template: `
146
- @if (items.length) {
147
- <datalist [id]="autoId">
148
- @for (item of items; track item) {
149
- <option [value]="item"></option>
150
- }
151
- </datalist>
152
- }
153
- `, changeDetection: ChangeDetectionStrategy.OnPush, host: {
154
- type: 'time',
155
- '[attr.list]': 'autoId',
156
- '[tabIndex]': '-1',
157
- '[value]': 'value',
158
- '[step]': 'step',
159
- '(change.stop)': 'onChange($event.target.value)',
160
- '(click.stop.zoneless)': '0',
161
- '(mousedown.stop.zoneless)': '0',
162
- }, styles: [":host{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"] }]
163
- }] });
164
-
165
- /**
166
- * TODO(v5): delete it
167
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time TuiInputTime} (from @taiga-ui/kit) instead
168
- */
169
- class TuiInputTimeComponent extends AbstractTuiNullableControl {
170
- constructor() {
171
- super(...arguments);
172
- this.timeTexts$ = inject(TUI_TIME_TEXTS);
173
- this.options = inject(TUI_INPUT_TIME_OPTIONS);
174
- this.isMobile = inject(TUI_IS_MOBILE);
175
- this.isIOS = inject(TUI_IS_IOS);
176
- this.textfieldSize = inject(TUI_TEXTFIELD_SIZE);
177
- this.valueTransformer = inject(TUI_TIME_VALUE_TRANSFORMER, { optional: true });
178
- this.open = false;
179
- this.disabledItemHandler = TUI_FALSE_HANDLER;
180
- this.items = [];
181
- this.itemsHidden = false;
182
- this.itemSize = this.options.itemSize;
183
- this.strict = false;
184
- this.mode = this.options.mode;
185
- this.identityMatcher = (controlValue, dropdownValue) => controlValue instanceof TuiTime &&
186
- controlValue.valueOf() === dropdownValue.valueOf();
187
- }
188
- get size() {
189
- return this.textfieldSize.size;
190
- }
191
- get inputMode() {
192
- return this.mode.includes('AA') ? 'text' : 'numeric';
193
- }
194
- get nativeFocusableElement() {
195
- return this.textfield?.nativeFocusableElement ?? null;
196
- }
197
- get focused() {
198
- return tuiIsFocused(this.nativeFocusableElement);
199
- }
200
- get computedValue() {
201
- return this.value ? this.value.toString(this.mode) : this.nativeValue;
202
- }
203
- get nativeValue() {
204
- return this.nativeFocusableElement?.value || '';
205
- }
206
- set nativeValue(value) {
207
- if (!this.nativeFocusableElement) {
208
- return;
209
- }
210
- this.nativeFocusableElement.value = value;
211
- }
212
- checkOption(option) {
213
- if (option.valueOf() === this.value?.valueOf()) {
214
- this.value = option;
215
- }
216
- }
217
- handleOption(item) {
218
- this.focusInput();
219
- this.value = item;
220
- }
221
- writeValue(value) {
222
- super.writeValue(value);
223
- this.nativeValue = this.value ? this.computedValue : '';
224
- }
225
- onValueChange(value) {
226
- this.open = !!this.items.length;
227
- this.control?.updateValueAndValidity({ emitEvent: false });
228
- if (value.length !== this.mode.length) {
229
- this.value = null;
230
- return;
231
- }
232
- const time = TuiTime.fromString(value);
233
- this.value = this.strict ? this.findNearestTimeFromItems(time) : time;
234
- }
235
- get canOpen() {
236
- return this.interactive && !!this.filtered.length && !this.itemsHidden;
237
- }
238
- get filtered() {
239
- return this.filter(this.items, this.mode, this.computedSearch);
240
- }
241
- get showNativePicker() {
242
- return (this.nativePicker &&
243
- (!this.isIOS || (this.mode === 'HH:MM' && !this.items.length)));
244
- }
245
- get nativeDatalist() {
246
- return this.nativePicker && !this.isIOS;
247
- }
248
- get maskOptions() {
249
- return this.calculateMask(this.mode, this.readOnly);
250
- }
251
- get computedSearch() {
252
- return this.computedValue.length !== this.mode.length ? this.computedValue : '';
253
- }
254
- get innerPseudoFocused() {
255
- if (this.pseudoFocus === false) {
256
- return false;
257
- }
258
- if ((this.open && this.canOpen) || this.computedFocused) {
259
- return true;
260
- }
261
- return null;
262
- }
263
- get icon() {
264
- return this.options.icon;
265
- }
266
- getFiller$(mode) {
267
- return this.timeTexts$.pipe(map((texts) => texts[mode]));
268
- }
269
- onFocused(focused) {
270
- this.updateFocused(focused);
271
- if (focused || this.value !== null || this.nativeValue === '') {
272
- return;
273
- }
274
- this.value = TuiTime.fromString(this.nativeValue);
275
- timer(0)
276
- .pipe(takeUntilDestroyed(this.destroyRef))
277
- .subscribe(() => {
278
- if (this.nativeValue.endsWith('.') || this.nativeValue.endsWith(':')) {
279
- this.nativeValue = this.nativeValue.slice(0, -1);
280
- }
281
- });
282
- }
283
- onOpen(open) {
284
- this.open = open;
285
- }
286
- get nativePicker() {
287
- return !!this.options.nativePicker && this.isMobile;
288
- }
289
- calculateMask(mode, readOnly) {
290
- const { HH, MM, SS, MS } = this.options.maxValues;
291
- const options = maskitoTimeOptionsGenerator({
292
- mode,
293
- step: readOnly || this.items.length > 0 ? 0 : 1,
294
- // TODO(v5): timeSegmentMaxValues: this.options.timeSegmentMaxValues
295
- timeSegmentMaxValues: {
296
- hours: mode.includes('AA') ? 12 : HH,
297
- minutes: MM,
298
- seconds: SS,
299
- milliseconds: MS,
300
- },
301
- });
302
- const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {
303
- element.inputMode =
304
- element.selectionStart >= mode.indexOf(' AA') ? 'text' : 'numeric';
305
- });
306
- return {
307
- ...options,
308
- plugins: options.plugins.concat(mode.includes('AA') ? inputModeSwitchPlugin : []),
309
- };
310
- }
311
- filter(items, mode, search) {
312
- return items.filter((item) => item.toString(mode).includes(search));
313
- }
314
- findNearestTimeFromItems(value) {
315
- // eslint-disable-next-line no-restricted-syntax
316
- return this.items.reduce((previous, current) => Math.abs(current.valueOf() - value.valueOf()) <
317
- Math.abs(previous.valueOf() - value.valueOf())
318
- ? current
319
- : previous);
320
- }
321
- focusInput(preventScroll = false) {
322
- if (this.nativeFocusableElement) {
323
- this.nativeFocusableElement.focus({ preventScroll });
324
- this.open = false;
325
- }
326
- }
327
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
328
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiInputTimeComponent, isStandalone: false, selector: "tui-input-time", inputs: { disabledItemHandler: "disabledItemHandler", items: "items", itemsHidden: "itemsHidden", itemSize: "itemSize", strict: "strict", mode: "mode" }, host: { listeners: { "click": "open = !open" }, properties: { "attr.data-size": "size" } }, providers: [
329
- tuiAsFocusableItemAccessor(TuiInputTimeComponent),
330
- tuiAsControl(TuiInputTimeComponent),
331
- tuiAsDataListHost(TuiInputTimeComponent),
332
- tuiAsOptionContent(TUI_SELECT_OPTION),
333
- ], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownFixed }], ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-wrapper\"\n [tuiDropdown]=\"dropdownContent\"\n [tuiDropdownEnabled]=\"canOpen && !nativeDatalist\"\n [tuiDropdownOpen]=\"canOpen && open\"\n (tuiActiveZoneChange)=\"onFocused($event)\"\n (tuiDropdownOpenChange)=\"onOpen($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"(getFiller$(mode) | async) || ''\"\n [tuiTextfieldIcon]=\"icon && iconContent\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <input\n tuiTextfieldLegacy\n [attr.inputmode]=\"inputMode\"\n />\n </tui-primitive-textfield>\n</div>\n<ng-template #dropdownContent>\n <tui-data-list\n automation-id=\"tui-input-time__dropdown\"\n [size]=\"itemSize\"\n >\n @for (item of filtered; track item) {\n <button\n automation-id=\"tui-input-time__item\"\n tuiOption\n type=\"button\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n >\n {{ item }}\n </button>\n }\n </tui-data-list>\n</ng-template>\n\n<ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [icon]=\"src.toString()\"\n />\n @if (showNativePicker) {\n <input tuiTime />\n }\n</ng-template>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host._disabled,:host :host-context(*:disabled){pointer-events:none}.t-wrapper{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon_small:before{font-size:1rem}\n"], dependencies: [{ kind: "directive", type: i2.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i3.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "iconCleaner", "readOnly", "invalid", "disabled", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i3.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { kind: "component", type: i3.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "directive", type: i4.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { kind: "directive", type: i4.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i4.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { kind: "directive", type: i5.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i4.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "component", type: i6.TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "directive", type: i7.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }, { kind: "component", type: i2$1.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "component", type: i2$1.TuiOption, selector: "button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])", inputs: ["disabled", "value"] }, { kind: "component", type: TuiNativeTimeComponent, selector: "input[tuiTime]" }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
334
- }
335
- __decorate([
336
- tuiPure
337
- ], TuiInputTimeComponent.prototype, "getFiller$", null);
338
- __decorate([
339
- tuiPure
340
- ], TuiInputTimeComponent.prototype, "calculateMask", null);
341
- __decorate([
342
- tuiPure
343
- ], TuiInputTimeComponent.prototype, "filter", null);
344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTimeComponent, decorators: [{
345
- type: Component,
346
- args: [{ standalone: false, selector: 'tui-input-time', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
347
- tuiAsFocusableItemAccessor(TuiInputTimeComponent),
348
- tuiAsControl(TuiInputTimeComponent),
349
- tuiAsDataListHost(TuiInputTimeComponent),
350
- tuiAsOptionContent(TUI_SELECT_OPTION),
351
- ], hostDirectives: [TuiDropdownFixed], host: {
352
- '(click)': 'open = !open',
353
- '[attr.data-size]': 'size',
354
- }, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-wrapper\"\n [tuiDropdown]=\"dropdownContent\"\n [tuiDropdownEnabled]=\"canOpen && !nativeDatalist\"\n [tuiDropdownOpen]=\"canOpen && open\"\n (tuiActiveZoneChange)=\"onFocused($event)\"\n (tuiDropdownOpenChange)=\"onOpen($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"(getFiller$(mode) | async) || ''\"\n [tuiTextfieldIcon]=\"icon && iconContent\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <input\n tuiTextfieldLegacy\n [attr.inputmode]=\"inputMode\"\n />\n </tui-primitive-textfield>\n</div>\n<ng-template #dropdownContent>\n <tui-data-list\n automation-id=\"tui-input-time__dropdown\"\n [size]=\"itemSize\"\n >\n @for (item of filtered; track item) {\n <button\n automation-id=\"tui-input-time__item\"\n tuiOption\n type=\"button\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n >\n {{ item }}\n </button>\n }\n </tui-data-list>\n</ng-template>\n\n<ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [icon]=\"src.toString()\"\n />\n @if (showNativePicker) {\n <input tuiTime />\n }\n</ng-template>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host._disabled,:host :host-context(*:disabled){pointer-events:none}.t-wrapper{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon_small:before{font-size:1rem}\n"] }]
355
- }], propDecorators: { textfield: [{
356
- type: ViewChild,
357
- args: [TuiPrimitiveTextfieldComponent]
358
- }], disabledItemHandler: [{
359
- type: Input
360
- }], items: [{
361
- type: Input
362
- }], itemsHidden: [{
363
- type: Input
364
- }], itemSize: [{
365
- type: Input
366
- }], strict: [{
367
- type: Input
368
- }], mode: [{
369
- type: Input
370
- }], getFiller$: [], calculateMask: [], filter: [] } });
371
-
372
- /**
373
- * TODO(v5): delete it
374
- * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time TuiInputTime} (from @taiga-ui/kit) instead
375
- */
376
- class TuiInputTimeModule {
377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
378
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTimeModule, declarations: [TuiInputTimeComponent, TuiNativeTimeComponent, TuiInputTimeDirective], imports: [CommonModule,
379
- MaskitoDirective,
380
- TuiSelectOptionModule,
381
- TuiPrimitiveTextfieldModule,
382
- TuiValueAccessorModule,
383
- TuiTextfieldControllerModule,
384
- PolymorpheusOutlet,
385
- PolymorpheusTemplate,
386
- TuiLegacyDropdownOpenMonitorDirective,
387
- TuiIcon,
388
- TuiAppearance, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownPortal, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection, i2$1.TuiDataListComponent, i2$1.TuiDataListDirective, i2$1.TuiOption, i2$1.TuiOptionNew, i2$1.TuiOptionWithValue, i2$1.TuiOptGroup], exports: [TuiInputTimeComponent,
389
- TuiInputTimeDirective, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownPortal, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection, i2$1.TuiDataListComponent, i2$1.TuiDataListDirective, i2$1.TuiOption, i2$1.TuiOptionNew, i2$1.TuiOptionWithValue, i2$1.TuiOptGroup] }); }
390
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTimeModule, imports: [CommonModule,
391
- TuiSelectOptionModule,
392
- TuiPrimitiveTextfieldModule,
393
- TuiValueAccessorModule,
394
- TuiTextfieldControllerModule,
395
- TuiIcon, i1.TuiDropdownComponent, i2$1.TuiDataListComponent, i2$1.TuiOption] }); }
396
- }
397
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTimeModule, decorators: [{
398
- type: NgModule,
399
- args: [{
400
- imports: [
401
- CommonModule,
402
- MaskitoDirective,
403
- TuiSelectOptionModule,
404
- TuiPrimitiveTextfieldModule,
405
- TuiValueAccessorModule,
406
- TuiTextfieldControllerModule,
407
- PolymorpheusOutlet,
408
- PolymorpheusTemplate,
409
- TuiLegacyDropdownOpenMonitorDirective,
410
- TuiIcon,
411
- TuiAppearance,
412
- ...TuiDropdown,
413
- ...TuiDataList,
414
- ],
415
- declarations: [TuiInputTimeComponent, TuiNativeTimeComponent, TuiInputTimeDirective],
416
- exports: [
417
- TuiInputTimeComponent,
418
- TuiInputTimeDirective,
419
- ...TuiDropdown,
420
- ...TuiDataList,
421
- ],
422
- }]
423
- }] });
424
-
425
- /**
426
- * Generated bundle index. Do not edit.
427
- */
428
-
429
- export { MAX_TIME_VALUES, TUI_INPUT_TIME_DEFAULT_OPTIONS, TUI_INPUT_TIME_OPTIONS, TuiInputTimeComponent, TuiInputTimeDirective, TuiInputTimeModule, tuiInputTimeOptionsProvider };
430
- //# sourceMappingURL=taiga-ui-legacy-components-input-time.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-legacy-components-input-time.mjs","sources":["../../../projects/legacy/components/input-time/input-time.options.ts","../../../projects/legacy/components/input-time/input-time.directive.ts","../../../projects/legacy/components/input-time/native-time/native-time.component.ts","../../../projects/legacy/components/input-time/input-time.component.ts","../../../projects/legacy/components/input-time/input-time.template.html","../../../projects/legacy/components/input-time/input-time.module.ts","../../../projects/legacy/components/input-time/taiga-ui-legacy-components-input-time.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiTimeMode} from '@taiga-ui/cdk/date-time';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead\n */\nexport interface TuiInputTimeOptions {\n readonly icon: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>>;\n readonly itemSize: TuiSizeL | TuiSizeS;\n // TODO(v5): timeSegmentMaxValues: Partial<MaskitoTimeSegments<number>>\n readonly maxValues: Record<TuiTimeFormatParts, number>;\n readonly mode: TuiTimeMode;\n readonly nativePicker?: boolean;\n}\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead\n */\nexport type TuiTimeFormatParts = 'HH' | 'MM' | 'MS' | 'SS';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead\n */\nexport const MAX_TIME_VALUES: Record<TuiTimeFormatParts, number> = {\n HH: 23,\n MM: 59,\n SS: 59,\n MS: 999,\n};\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead\n */\nexport const TUI_INPUT_TIME_DEFAULT_OPTIONS: TuiInputTimeOptions = {\n icon: () => '@tui.clock',\n mode: 'HH:MM',\n maxValues: MAX_TIME_VALUES, // TODO(v5): use empty object\n itemSize: 'm',\n nativePicker: false,\n};\n\n/**\n * TODO(v5): delete it\n * Default parameters for InputTime component\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead\n */\nexport const TUI_INPUT_TIME_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_INPUT_TIME_OPTIONS' : '',\n {\n factory: () => TUI_INPUT_TIME_DEFAULT_OPTIONS,\n },\n);\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time#options TuiInputTime} (from @taiga-ui/kit) instead\n */\nexport function tuiInputTimeOptionsProvider(\n options: Partial<TuiInputTimeOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_TIME_OPTIONS,\n options,\n TUI_INPUT_TIME_DEFAULT_OPTIONS,\n );\n}\n","import {Directive} from '@angular/core';\nimport {type TuiTime, type TuiTimeMode} from '@taiga-ui/cdk/date-time';\nimport {AbstractTuiTextfieldHost} from '@taiga-ui/legacy/classes';\nimport {tuiAsTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {type TuiInputTimeComponent} from './input-time.component';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time TuiInputTime} (from @taiga-ui/kit) instead\n */\n@Directive({\n standalone: false,\n selector: 'tui-input-time',\n providers: [tuiAsTextfieldHost(TuiInputTimeDirective)],\n})\nexport class TuiInputTimeDirective extends AbstractTuiTextfieldHost<TuiInputTimeComponent> {\n public override get value(): string {\n return this.host.computedValue;\n }\n\n public get mode(): TuiTimeMode {\n return this.host.mode;\n }\n\n public get items(): readonly TuiTime[] {\n return this.host.items;\n }\n\n public onValueChange(value: string): void {\n if (!value) {\n this.host.nativeValue = '';\n }\n\n this.host.onValueChange(value);\n }\n\n public override process(input: HTMLInputElement): void {\n input.inputMode = this.host.inputMode;\n }\n}\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\n\nimport {TuiInputTimeDirective} from '../input-time.directive';\n\n@Component({\n standalone: false,\n selector: 'input[tuiTime]',\n template: `\n @if (items.length) {\n <datalist [id]=\"autoId\">\n @for (item of items; track item) {\n <option [value]=\"item\"></option>\n }\n </datalist>\n }\n `,\n styleUrls: ['./native-time.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n type: 'time',\n '[attr.list]': 'autoId',\n '[tabIndex]': '-1',\n '[value]': 'value',\n '[step]': 'step',\n '(change.stop)': 'onChange($event.target.value)',\n '(click.stop.zoneless)': '0',\n '(mousedown.stop.zoneless)': '0',\n },\n})\nexport class TuiNativeTimeComponent {\n protected readonly host = inject(TuiInputTimeDirective);\n\n protected readonly autoId = tuiInjectId();\n\n protected get items(): string[] {\n return this.host.items.map((item) => item.toString(this.host.mode));\n }\n\n protected get value(): string {\n return this.host.value.length === this.host.mode.length ? this.host.value : '';\n }\n\n protected get step(): number {\n switch (this.host.mode) {\n case 'HH:MM:SS':\n return 1;\n case 'HH:MM:SS.MSS':\n return 0.001;\n default:\n return 60;\n }\n }\n\n protected onChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {type MaskitoOptions} from '@maskito/core';\nimport {maskitoSelectionChangeHandler, maskitoTimeOptionsGenerator} from '@maskito/kit';\nimport {type TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiTime, type TuiTimeMode} from '@taiga-ui/cdk/date-time';\nimport {TUI_IS_IOS, TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {type TuiBooleanHandler, type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\nimport {tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListHost,\n tuiAsOptionContent,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiDropdownFixed} from '@taiga-ui/core/directives/dropdown';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {TUI_TIME_TEXTS, TUI_TIME_VALUE_TRANSFORMER} from '@taiga-ui/kit/tokens';\nimport {AbstractTuiNullableControl, tuiAsControl} from '@taiga-ui/legacy/classes';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/legacy/components/select-option';\nimport {TUI_TEXTFIELD_SIZE} from '@taiga-ui/legacy/directives';\nimport {\n tuiAsFocusableItemAccessor,\n type TuiFocusableElementAccessor,\n} from '@taiga-ui/legacy/tokens';\nimport {map, type Observable, timer} from 'rxjs';\n\nimport {TUI_INPUT_TIME_OPTIONS, type TuiInputTimeOptions} from './input-time.options';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time TuiInputTime} (from @taiga-ui/kit) instead\n */\n@Component({\n standalone: false,\n selector: 'tui-input-time',\n templateUrl: './input-time.template.html',\n styleUrls: ['./input-time.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputTimeComponent),\n tuiAsControl(TuiInputTimeComponent),\n tuiAsDataListHost(TuiInputTimeComponent),\n tuiAsOptionContent(TUI_SELECT_OPTION),\n ],\n hostDirectives: [TuiDropdownFixed],\n host: {\n '(click)': 'open = !open',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiInputTimeComponent\n extends AbstractTuiNullableControl<TuiTime>\n implements TuiFocusableElementAccessor, TuiDataListHost<TuiTime>\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly timeTexts$ = inject(TUI_TIME_TEXTS);\n private readonly options = inject(TUI_INPUT_TIME_OPTIONS);\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly isIOS: boolean = inject(TUI_IS_IOS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n\n protected override readonly valueTransformer: TuiValueTransformer<TuiTime | null> | null =\n inject(TUI_TIME_VALUE_TRANSFORMER, {optional: true});\n\n protected open = false;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiTime> = TUI_FALSE_HANDLER;\n\n @Input()\n public items: readonly TuiTime[] = [];\n\n @Input()\n public itemsHidden = false;\n\n @Input()\n public itemSize: TuiInputTimeOptions['itemSize'] = this.options.itemSize;\n\n @Input()\n public strict = false;\n\n @Input()\n public mode: TuiInputTimeOptions['mode'] = this.options.mode;\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n public get inputMode(): string {\n return this.mode.includes('AA') ? 'text' : 'numeric';\n }\n\n public get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield?.nativeFocusableElement ?? null;\n }\n\n public get focused(): boolean {\n return tuiIsFocused(this.nativeFocusableElement);\n }\n\n public get computedValue(): string {\n return this.value ? this.value.toString(this.mode) : this.nativeValue;\n }\n\n public get nativeValue(): string {\n return this.nativeFocusableElement?.value || '';\n }\n\n public set nativeValue(value: string) {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n this.nativeFocusableElement.value = value;\n }\n\n public readonly identityMatcher: TuiIdentityMatcher<TuiTime> = (\n controlValue: TuiTime,\n dropdownValue: TuiTime,\n ) =>\n controlValue instanceof TuiTime &&\n controlValue.valueOf() === dropdownValue.valueOf();\n\n public checkOption(option: TuiTime): void {\n if (option.valueOf() === this.value?.valueOf()) {\n this.value = option;\n }\n }\n\n public handleOption(item: TuiTime): void {\n this.focusInput();\n this.value = item;\n }\n\n public override writeValue(value: TuiTime | null): void {\n super.writeValue(value);\n this.nativeValue = this.value ? this.computedValue : '';\n }\n\n public onValueChange(value: string): void {\n this.open = !!this.items.length;\n\n this.control?.updateValueAndValidity({emitEvent: false});\n\n if (value.length !== this.mode.length) {\n this.value = null;\n\n return;\n }\n\n const time = TuiTime.fromString(value);\n\n this.value = this.strict ? this.findNearestTimeFromItems(time) : time;\n }\n\n protected get canOpen(): boolean {\n return this.interactive && !!this.filtered.length && !this.itemsHidden;\n }\n\n protected get filtered(): readonly TuiTime[] {\n return this.filter(this.items, this.mode, this.computedSearch);\n }\n\n protected get showNativePicker(): boolean {\n return (\n this.nativePicker &&\n (!this.isIOS || (this.mode === 'HH:MM' && !this.items.length))\n );\n }\n\n protected get nativeDatalist(): boolean {\n return this.nativePicker && !this.isIOS;\n }\n\n protected get maskOptions(): MaskitoOptions {\n return this.calculateMask(this.mode, this.readOnly);\n }\n\n protected get computedSearch(): string {\n return this.computedValue.length !== this.mode.length ? this.computedValue : '';\n }\n\n protected get innerPseudoFocused(): boolean | null {\n if (this.pseudoFocus === false) {\n return false;\n }\n\n if ((this.open && this.canOpen) || this.computedFocused) {\n return true;\n }\n\n return null;\n }\n\n protected get icon(): TuiInputTimeOptions['icon'] {\n return this.options.icon;\n }\n\n @tuiPure\n protected getFiller$(mode: TuiTimeMode): Observable<string> {\n return this.timeTexts$.pipe(map((texts) => texts[mode]));\n }\n\n protected onFocused(focused: boolean): void {\n this.updateFocused(focused);\n\n if (focused || this.value !== null || this.nativeValue === '') {\n return;\n }\n\n this.value = TuiTime.fromString(this.nativeValue);\n\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.nativeValue.endsWith('.') || this.nativeValue.endsWith(':')) {\n this.nativeValue = this.nativeValue.slice(0, -1);\n }\n });\n }\n\n protected onOpen(open: boolean): void {\n this.open = open;\n }\n\n private get nativePicker(): boolean {\n return !!this.options.nativePicker && this.isMobile;\n }\n\n @tuiPure\n private calculateMask(mode: TuiTimeMode, readOnly: boolean): MaskitoOptions {\n const {HH, MM, SS, MS} = this.options.maxValues;\n\n const options = maskitoTimeOptionsGenerator({\n mode,\n step: readOnly || this.items.length > 0 ? 0 : 1,\n // TODO(v5): timeSegmentMaxValues: this.options.timeSegmentMaxValues\n timeSegmentMaxValues: {\n hours: mode.includes('AA') ? 12 : HH,\n minutes: MM,\n seconds: SS,\n milliseconds: MS,\n },\n });\n const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {\n element.inputMode =\n element.selectionStart! >= mode.indexOf(' AA') ? 'text' : 'numeric';\n });\n\n return {\n ...options,\n plugins: options.plugins.concat(\n mode.includes('AA') ? inputModeSwitchPlugin : [],\n ),\n };\n }\n\n @tuiPure\n private filter(\n items: readonly TuiTime[],\n mode: TuiTimeMode,\n search: string,\n ): readonly TuiTime[] {\n return items.filter((item) => item.toString(mode).includes(search));\n }\n\n private findNearestTimeFromItems(value: TuiTime): TuiTime | null {\n // eslint-disable-next-line no-restricted-syntax\n return this.items.reduce((previous, current) =>\n Math.abs(current.valueOf() - value.valueOf()) <\n Math.abs(previous.valueOf() - value.valueOf())\n ? current\n : previous,\n );\n }\n\n private focusInput(preventScroll = false): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus({preventScroll});\n this.open = false;\n }\n }\n}\n","<div\n tuiDropdownOpenMonitor\n class=\"t-wrapper\"\n [tuiDropdown]=\"dropdownContent\"\n [tuiDropdownEnabled]=\"canOpen && !nativeDatalist\"\n [tuiDropdownOpen]=\"canOpen && open\"\n (tuiActiveZoneChange)=\"onFocused($event)\"\n (tuiDropdownOpenChange)=\"onOpen($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"(getFiller$(mode) | async) || ''\"\n [tuiTextfieldIcon]=\"icon && iconContent\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <input\n tuiTextfieldLegacy\n [attr.inputmode]=\"inputMode\"\n />\n </tui-primitive-textfield>\n</div>\n<ng-template #dropdownContent>\n <tui-data-list\n automation-id=\"tui-input-time__dropdown\"\n [size]=\"itemSize\"\n >\n @for (item of filtered; track item) {\n <button\n automation-id=\"tui-input-time__item\"\n tuiOption\n type=\"button\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n >\n {{ item }}\n </button>\n }\n </tui-data-list>\n</ng-template>\n\n<ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [icon]=\"src.toString()\"\n />\n @if (showNativePicker) {\n <input tuiTime />\n }\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TuiPrimitiveTextfieldModule} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TuiSelectOptionModule} from '@taiga-ui/legacy/components/select-option';\nimport {\n TuiLegacyDropdownOpenMonitorDirective,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputTimeComponent} from './input-time.component';\nimport {TuiInputTimeDirective} from './input-time.directive';\nimport {TuiNativeTimeComponent} from './native-time/native-time.component';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-time TuiInputTime} (from @taiga-ui/kit) instead\n */\n@NgModule({\n imports: [\n CommonModule,\n MaskitoDirective,\n TuiSelectOptionModule,\n TuiPrimitiveTextfieldModule,\n TuiValueAccessorModule,\n TuiTextfieldControllerModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiLegacyDropdownOpenMonitorDirective,\n TuiIcon,\n TuiAppearance,\n ...TuiDropdown,\n ...TuiDataList,\n ],\n declarations: [TuiInputTimeComponent, TuiNativeTimeComponent, TuiInputTimeDirective],\n exports: [\n TuiInputTimeComponent,\n TuiInputTimeDirective,\n ...TuiDropdown,\n ...TuiDataList,\n ],\n})\nexport class TuiInputTimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i8","i9.TuiNativeTimeComponent","i2"],"mappings":"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"}