@taiga-ui/kit 3.24.0 → 3.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/bundles/taiga-ui-kit-components-input-count.umd.js +8 -1
  2. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-input-files.umd.js +5 -5
  4. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +14 -5
  6. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-input-time.umd.js +214 -44
  8. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +1 -1
  10. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-directives-mask.umd.js +12 -4
  12. package/bundles/taiga-ui-kit-directives-mask.umd.js.map +1 -1
  13. package/components/input-count/input-count.component.d.ts +5 -0
  14. package/components/input-files/input-files.directive.d.ts +3 -3
  15. package/components/input-phone-international/index.d.ts +1 -0
  16. package/components/input-phone-international/utils/not-kz-region.d.ts +1 -0
  17. package/components/input-time/index.d.ts +1 -0
  18. package/components/input-time/input-time-options.d.ts +1 -0
  19. package/components/input-time/input-time.component.d.ts +10 -3
  20. package/components/input-time/input-time.directive.d.ts +13 -0
  21. package/components/input-time/input-time.module.d.ts +8 -5
  22. package/components/input-time/native-time/native-time.component.d.ts +14 -0
  23. package/esm2015/components/input-count/input-count.component.js +9 -2
  24. package/esm2015/components/input-files/input-files.component.js +4 -4
  25. package/esm2015/components/input-files/input-files.directive.js +4 -4
  26. package/esm2015/components/input-phone-international/index.js +2 -1
  27. package/esm2015/components/input-phone-international/input-phone-international.component.js +7 -3
  28. package/esm2015/components/input-phone-international/tokens/countries-masks.js +4 -4
  29. package/esm2015/components/input-phone-international/utils/not-kz-region.js +5 -0
  30. package/esm2015/components/input-time/index.js +2 -1
  31. package/esm2015/components/input-time/input-time-options.js +2 -1
  32. package/esm2015/components/input-time/input-time.component.js +39 -12
  33. package/esm2015/components/input-time/input-time.directive.js +33 -0
  34. package/esm2015/components/input-time/input-time.module.js +18 -6
  35. package/esm2015/components/input-time/native-time/native-time.component.js +79 -0
  36. package/esm2015/components/marker-icon/marker-icon.component.js +1 -1
  37. package/esm2015/directives/mask/legacy-mask.js +10 -1
  38. package/fesm2015/taiga-ui-kit-components-input-count.js +8 -1
  39. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  40. package/fesm2015/taiga-ui-kit-components-input-files.js +6 -6
  41. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  42. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +14 -6
  43. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  44. package/fesm2015/taiga-ui-kit-components-input-time.js +159 -18
  45. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  46. package/fesm2015/taiga-ui-kit-components-marker-icon.js +1 -1
  47. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  48. package/fesm2015/taiga-ui-kit-directives-mask.js +9 -0
  49. package/fesm2015/taiga-ui-kit-directives-mask.js.map +1 -1
  50. package/package.json +4 -4
@@ -1,22 +1,25 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, ChangeDetectorRef, Component, ChangeDetectionStrategy, Optional, Self, Inject, ViewChild, Input, HostListener, NgModule } from '@angular/core';
4
- import * as i4 from '@angular/forms';
3
+ import { InjectionToken, Component, ChangeDetectionStrategy, Inject, ChangeDetectorRef, Optional, Self, ViewChild, Input, HostListener, Directive, NgModule } from '@angular/core';
4
+ import * as i6 from '@angular/forms';
5
5
  import { NgControl } from '@angular/forms';
6
- import { AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, tuiIsNativeFocused, TuiTime, TUI_STRICT_MATCHER, tuiIsElement, tuiIsInput, tuiAsFocusableItemAccessor, tuiAsControl, tuiDefaultProp, tuiPure } from '@taiga-ui/cdk';
6
+ import * as i2 from '@taiga-ui/cdk';
7
+ import { TuiIdService, AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, tuiIsNativeFocused, TuiTime, TUI_STRICT_MATCHER, tuiIsElement, tuiIsInput, TUI_IS_MOBILE, TUI_IS_IOS, tuiAsFocusableItemAccessor, tuiAsControl, tuiDefaultProp, tuiPure } from '@taiga-ui/cdk';
7
8
  import * as i1 from '@taiga-ui/core';
8
- import { tuiAsDataListHost, tuiAsOptionContent, TuiPrimitiveTextfieldComponent, TuiDataListModule, TuiHostedDropdownModule, TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule } from '@taiga-ui/core';
9
+ import { TUI_TEXTFIELD_HOST, TUI_TEXTFIELD_SIZE, tuiAsDataListHost, tuiAsOptionContent, TuiPrimitiveTextfieldComponent, AbstractTuiTextfieldHost, tuiAsTextfieldHost, TuiDataListModule, TuiWrapperModule, TuiHostedDropdownModule, TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule, TuiSvgModule } from '@taiga-ui/core';
9
10
  import { TUI_SELECT_OPTION, TuiSelectOptionModule } from '@taiga-ui/kit/components/select-option';
10
11
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
11
12
  import { TUI_TIME_TEXTS } from '@taiga-ui/kit/tokens';
12
13
  import { tuiCreateTimeMask, tuiCreateAutoCorrectedTimePipe } from '@taiga-ui/kit/utils/mask';
13
14
  import { map } from 'rxjs/operators';
14
15
  import { MAX_TIME_VALUES } from '@taiga-ui/kit/constants';
15
- import * as i2 from '@taiga-ui/kit/directives';
16
- import { TextMaskModule, TuiValueAccessorModule } from '@taiga-ui/kit/directives';
17
- import * as i3 from '@angular/common';
16
+ import * as i4 from '@angular/common';
18
17
  import { CommonModule } from '@angular/common';
19
- import * as i5 from 'rxjs';
18
+ import * as i3 from '@taiga-ui/kit/directives';
19
+ import { TextMaskModule, TuiValueAccessorModule } from '@taiga-ui/kit/directives';
20
+ import * as i5 from '@tinkoff/ng-polymorpheus';
21
+ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
22
+ import * as i7 from 'rxjs';
20
23
 
21
24
  const TUI_INPUT_TIME_DEFAULT_OPTIONS = {
22
25
  icon: ({ $implicit }) => ($implicit === `s` ? `tuiIconClock` : `tuiIconClockLarge`),
@@ -24,6 +27,7 @@ const TUI_INPUT_TIME_DEFAULT_OPTIONS = {
24
27
  postfix: ``,
25
28
  maxValues: MAX_TIME_VALUES,
26
29
  itemSize: `m`,
30
+ nativePicker: false,
27
31
  };
28
32
  /**
29
33
  * Default parameters for InputTime component
@@ -36,11 +40,87 @@ const tuiInputTimeOptionsProvider = (options) => ({
36
40
  useValue: Object.assign(Object.assign({}, TUI_INPUT_TIME_DEFAULT_OPTIONS), options),
37
41
  });
38
42
 
43
+ class TuiNativeTimeComponent {
44
+ constructor(host, idService) {
45
+ this.host = host;
46
+ this.autoIdString = idService.generate();
47
+ }
48
+ get items() {
49
+ return this.host.items.map(item => item.toString(this.host.mode));
50
+ }
51
+ get value() {
52
+ return this.host.value.length === this.host.mode.length ? this.host.value : '';
53
+ }
54
+ get step() {
55
+ switch (this.host.mode) {
56
+ case 'HH:MM:SS':
57
+ return 1;
58
+ case 'HH:MM:SS.MSS':
59
+ return 0.001;
60
+ default:
61
+ return 60;
62
+ }
63
+ }
64
+ onChange(value) {
65
+ this.host.onValueChange(value);
66
+ }
67
+ }
68
+ TuiNativeTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiNativeTimeComponent, deps: [{ token: TUI_TEXTFIELD_HOST }, { token: TuiIdService }], target: i0.ɵɵFactoryTarget.Component });
69
+ TuiNativeTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiNativeTimeComponent, selector: "input[tuiTime]", host: { attributes: { "type": "time" }, listeners: { "change.stop": "onChange($event.target.value)", "click.stop.silent": "0", "mousedown.stop.silent": "0" }, properties: { "attr.list": "autoIdString", "tabIndex": "-1", "value": "value", "step": "step" } }, ngImport: i0, template: `
70
+ <datalist
71
+ *ngIf="items.length"
72
+ [id]="autoIdString"
73
+ >
74
+ <option
75
+ *ngFor="let item of items"
76
+ value="{{ item }}"
77
+ ></option>
78
+ </datalist>
79
+ `, isInline: true, styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiNativeTimeComponent, decorators: [{
81
+ type: Component,
82
+ args: [{
83
+ selector: 'input[tuiTime]',
84
+ template: `
85
+ <datalist
86
+ *ngIf="items.length"
87
+ [id]="autoIdString"
88
+ >
89
+ <option
90
+ *ngFor="let item of items"
91
+ value="{{ item }}"
92
+ ></option>
93
+ </datalist>
94
+ `,
95
+ host: {
96
+ type: 'time',
97
+ '[attr.list]': 'autoIdString',
98
+ '[tabIndex]': '-1',
99
+ '[value]': 'value',
100
+ '[step]': 'step',
101
+ '(change.stop)': 'onChange($event.target.value)',
102
+ '(click.stop.silent)': '0',
103
+ '(mousedown.stop.silent)': '0',
104
+ },
105
+ styleUrls: ['./native-time.style.less'],
106
+ changeDetection: ChangeDetectionStrategy.OnPush,
107
+ }]
108
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
109
+ type: Inject,
110
+ args: [TUI_TEXTFIELD_HOST]
111
+ }] }, { type: i2.TuiIdService, decorators: [{
112
+ type: Inject,
113
+ args: [TuiIdService]
114
+ }] }]; } });
115
+
39
116
  class TuiInputTimeComponent extends AbstractTuiNullableControl {
40
- constructor(control, cdr, timeTexts$, options) {
117
+ constructor(control, cdr, timeTexts$, options, isMobile, textfieldSize, isIos) {
41
118
  super(control, cdr);
42
119
  this.timeTexts$ = timeTexts$;
43
120
  this.options = options;
121
+ this.isMobile = isMobile;
122
+ this.textfieldSize = textfieldSize;
123
+ this.isIos = isIos;
44
124
  this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
45
125
  this.items = [];
46
126
  this.itemSize = this.options.itemSize;
@@ -62,6 +142,16 @@ class TuiInputTimeComponent extends AbstractTuiNullableControl {
62
142
  get filtered() {
63
143
  return this.filter(this.items, this.mode, this.computedSearch);
64
144
  }
145
+ get showNativePicker() {
146
+ return (this.nativePicker &&
147
+ (!this.isIos || (this.mode === 'HH:MM' && !this.items.length)));
148
+ }
149
+ get nativeDatalist() {
150
+ return this.nativePicker && !this.isIos;
151
+ }
152
+ get size() {
153
+ return this.textfieldSize.size;
154
+ }
65
155
  get textMaskOptions() {
66
156
  return this.calculateMask(this.mode);
67
157
  }
@@ -153,6 +243,9 @@ class TuiInputTimeComponent extends AbstractTuiNullableControl {
153
243
  super.writeValue(value);
154
244
  this.nativeValue = value ? this.computedValue : '';
155
245
  }
246
+ get nativePicker() {
247
+ return !!this.options.nativePicker && this.isMobile;
248
+ }
156
249
  calculateMask(mode) {
157
250
  return {
158
251
  mask: tuiCreateTimeMask(mode, this.options.maxValues),
@@ -213,13 +306,13 @@ class TuiInputTimeComponent extends AbstractTuiNullableControl {
213
306
  }
214
307
  }
215
308
  }
216
- TuiInputTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTimeComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_TIME_TEXTS }, { token: TUI_INPUT_TIME_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
309
+ TuiInputTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTimeComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_TIME_TEXTS }, { token: TUI_INPUT_TIME_OPTIONS }, { token: TUI_IS_MOBILE }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_IS_IOS }], target: i0.ɵɵFactoryTarget.Component });
217
310
  TuiInputTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputTimeComponent, selector: "tui-input-time", inputs: { disabledItemHandler: "disabledItemHandler", items: "items", itemSize: "itemSize", strict: "strict", mode: "mode", postfix: "postfix" }, host: { listeners: { "click": "onClick()" } }, providers: [
218
311
  tuiAsFocusableItemAccessor(TuiInputTimeComponent),
219
312
  tuiAsControl(TuiInputTimeComponent),
220
313
  tuiAsDataListHost(TuiInputTimeComponent),
221
314
  tuiAsOptionContent(TUI_SELECT_OPTION),
222
- ], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-wrapper\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdownContent\"\n [open]=\"canOpen && open\"\n (openChange)=\"onOpen($event)\"\n (focusedChange)=\"onFocused($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [tuiTextfieldFiller]=\"(getFiller$(mode) | async) || ''\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"textMaskOptions\"\n [tuiTextfieldIcon]=\"icon\"\n [value]=\"computedValue\"\n [postfix]=\"postfix\"\n (valueChange)=\"onValueChange($event)\"\n (keydown.arrowUp)=\"onArrowUp($event)\"\n (keydown.arrowDown)=\"onArrowDown($event)\"\n >\n <ng-content></ng-content>\n <input\n tuiTextfield\n inputmode=\"numeric\"\n />\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n<ng-template #dropdownContent>\n <tui-data-list\n automation-id=\"tui-input-time__dropdown\"\n [size]=\"itemSize\"\n >\n <button\n *ngFor=\"let item of filtered\"\n tuiOption\n automation-id=\"tui-input-time__item\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n >\n {{ item }}\n </button>\n </tui-data-list>\n</ng-template>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host._disabled{pointer-events:none}.t-wrapper{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i1.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }], directives: [{ type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i2.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { type: i1.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { type: i2.MaskedInputDirective, selector: "[textMask]", inputs: ["textMask"], exportAs: ["textMask"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe }, viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush });
315
+ ], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-wrapper\"\n [canOpen]=\"canOpen && !nativeDatalist\"\n [content]=\"dropdownContent\"\n [open]=\"canOpen && open\"\n (openChange)=\"onOpen($event)\"\n (focusedChange)=\"onFocused($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [tuiTextfieldFiller]=\"(getFiller$(mode) | async) || ''\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"textMaskOptions\"\n [tuiTextfieldIcon]=\"iconContent\"\n [value]=\"computedValue\"\n [postfix]=\"postfix\"\n (valueChange)=\"onValueChange($event)\"\n (keydown.arrowUp)=\"onArrowUp($event)\"\n (keydown.arrowDown)=\"onArrowDown($event)\"\n >\n <ng-content></ng-content>\n <input\n tuiTextfield\n inputmode=\"numeric\"\n />\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n<ng-template #dropdownContent>\n <tui-data-list\n automation-id=\"tui-input-time__dropdown\"\n [size]=\"itemSize\"\n >\n <button\n *ngFor=\"let item of filtered\"\n tuiOption\n automation-id=\"tui-input-time__item\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n >\n {{ item }}\n </button>\n </tui-data-list>\n</ng-template>\n\n<ng-template #iconContent>\n <tui-svg\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiWrapper\n appearance=\"icon\"\n [src]=\"src\"\n ></tui-svg>\n <input\n *ngIf=\"showNativePicker\"\n tuiTime\n />\n</ng-template>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host._disabled{pointer-events:none}.t-wrapper{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i1.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: TuiNativeTimeComponent, selector: "input[tuiTime]" }], directives: [{ type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i3.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { type: i1.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { type: i3.MaskedInputDirective, selector: "[textMask]", inputs: ["textMask"], exportAs: ["textMask"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe }, viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush });
223
316
  __decorate([
224
317
  tuiDefaultProp()
225
318
  ], TuiInputTimeComponent.prototype, "disabledItemHandler", void 0);
@@ -262,7 +355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
262
355
  ],
263
356
  viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],
264
357
  }]
265
- }], ctorParameters: function () { return [{ type: i4.NgControl, decorators: [{
358
+ }], ctorParameters: function () { return [{ type: i6.NgControl, decorators: [{
266
359
  type: Optional
267
360
  }, {
268
361
  type: Self
@@ -272,12 +365,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
272
365
  }] }, { type: i0.ChangeDetectorRef, decorators: [{
273
366
  type: Inject,
274
367
  args: [ChangeDetectorRef]
275
- }] }, { type: i5.Observable, decorators: [{
368
+ }] }, { type: i7.Observable, decorators: [{
276
369
  type: Inject,
277
370
  args: [TUI_TIME_TEXTS]
278
371
  }] }, { type: undefined, decorators: [{
279
372
  type: Inject,
280
373
  args: [TUI_INPUT_TIME_OPTIONS]
374
+ }] }, { type: undefined, decorators: [{
375
+ type: Inject,
376
+ args: [TUI_IS_MOBILE]
377
+ }] }, { type: i1.TuiTextfieldSizeDirective, decorators: [{
378
+ type: Inject,
379
+ args: [TUI_TEXTFIELD_SIZE]
380
+ }] }, { type: undefined, decorators: [{
381
+ type: Inject,
382
+ args: [TUI_IS_IOS]
281
383
  }] }]; }, propDecorators: { textfield: [{
282
384
  type: ViewChild,
283
385
  args: [TuiPrimitiveTextfieldComponent]
@@ -298,26 +400,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
298
400
  args: ['click']
299
401
  }], calculateMask: [], filter: [] } });
300
402
 
403
+ class TuiInputTimeDirective extends AbstractTuiTextfieldHost {
404
+ get value() {
405
+ return this.host.computedValue;
406
+ }
407
+ get mode() {
408
+ return this.host.mode;
409
+ }
410
+ get items() {
411
+ return this.host.items;
412
+ }
413
+ onValueChange(value) {
414
+ if (!value) {
415
+ this.host.nativeValue = '';
416
+ }
417
+ this.host.onValueChange(value);
418
+ }
419
+ process(input) {
420
+ input.inputMode = 'numeric';
421
+ }
422
+ }
423
+ TuiInputTimeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTimeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
424
+ TuiInputTimeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputTimeDirective, selector: "tui-input-time", providers: [tuiAsTextfieldHost(TuiInputTimeDirective)], usesInheritance: true, ngImport: i0 });
425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTimeDirective, decorators: [{
426
+ type: Directive,
427
+ args: [{
428
+ selector: 'tui-input-time',
429
+ providers: [tuiAsTextfieldHost(TuiInputTimeDirective)],
430
+ }]
431
+ }] });
432
+
301
433
  class TuiInputTimeModule {
302
434
  }
303
435
  TuiInputTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
304
- TuiInputTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTimeModule, declarations: [TuiInputTimeComponent], imports: [CommonModule,
436
+ TuiInputTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTimeModule, declarations: [TuiInputTimeComponent, TuiNativeTimeComponent, TuiInputTimeDirective], imports: [CommonModule,
305
437
  TextMaskModule,
306
438
  TuiSelectOptionModule,
307
439
  TuiDataListModule,
440
+ TuiWrapperModule,
308
441
  TuiHostedDropdownModule,
309
442
  TuiPrimitiveTextfieldModule,
310
443
  TuiValueAccessorModule,
311
- TuiTextfieldControllerModule], exports: [TuiInputTimeComponent] });
444
+ TuiTextfieldControllerModule,
445
+ TuiSvgModule,
446
+ PolymorpheusModule], exports: [TuiInputTimeComponent, TuiInputTimeDirective] });
312
447
  TuiInputTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTimeModule, imports: [[
313
448
  CommonModule,
314
449
  TextMaskModule,
315
450
  TuiSelectOptionModule,
316
451
  TuiDataListModule,
452
+ TuiWrapperModule,
317
453
  TuiHostedDropdownModule,
318
454
  TuiPrimitiveTextfieldModule,
319
455
  TuiValueAccessorModule,
320
456
  TuiTextfieldControllerModule,
457
+ TuiSvgModule,
458
+ PolymorpheusModule,
321
459
  ]] });
322
460
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTimeModule, decorators: [{
323
461
  type: NgModule,
@@ -327,13 +465,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
327
465
  TextMaskModule,
328
466
  TuiSelectOptionModule,
329
467
  TuiDataListModule,
468
+ TuiWrapperModule,
330
469
  TuiHostedDropdownModule,
331
470
  TuiPrimitiveTextfieldModule,
332
471
  TuiValueAccessorModule,
333
472
  TuiTextfieldControllerModule,
473
+ TuiSvgModule,
474
+ PolymorpheusModule,
334
475
  ],
335
- declarations: [TuiInputTimeComponent],
336
- exports: [TuiInputTimeComponent],
476
+ declarations: [TuiInputTimeComponent, TuiNativeTimeComponent, TuiInputTimeDirective],
477
+ exports: [TuiInputTimeComponent, TuiInputTimeDirective],
337
478
  }]
338
479
  }] });
339
480
 
@@ -341,5 +482,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
341
482
  * Generated bundle index. Do not edit.
342
483
  */
343
484
 
344
- export { TUI_INPUT_TIME_DEFAULT_OPTIONS, TUI_INPUT_TIME_OPTIONS, TuiInputTimeComponent, TuiInputTimeModule, tuiInputTimeOptionsProvider };
485
+ export { TUI_INPUT_TIME_DEFAULT_OPTIONS, TUI_INPUT_TIME_OPTIONS, TuiInputTimeComponent, TuiInputTimeDirective, TuiInputTimeModule, tuiInputTimeOptionsProvider };
345
486
  //# sourceMappingURL=taiga-ui-kit-components-input-time.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-time.js","sources":["../../../projects/kit/components/input-time/input-time-options.ts","../../../projects/kit/components/input-time/input-time.component.ts","../../../projects/kit/components/input-time/input-time.template.html","../../../projects/kit/components/input-time/input-time.module.ts","../../../projects/kit/components/input-time/taiga-ui-kit-components-input-time.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiContextWithImplicit, TuiTimeMode} from '@taiga-ui/cdk';\nimport {TuiSizeL, TuiSizeS} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiInputTimeOptions {\n readonly icon: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeS>>;\n readonly mode: TuiTimeMode;\n readonly postfix: string;\n readonly maxValues: Record<TuiTimeFormatParts, number>;\n readonly itemSize: TuiSizeL | TuiSizeS;\n}\n\nexport const TUI_INPUT_TIME_DEFAULT_OPTIONS: TuiInputTimeOptions = {\n icon: ({$implicit}) => ($implicit === `s` ? `tuiIconClock` : `tuiIconClockLarge`),\n mode: `HH:MM`,\n postfix: ``,\n maxValues: MAX_TIME_VALUES,\n itemSize: `m`,\n};\n\n/**\n * Default parameters for InputTime component\n */\nexport const TUI_INPUT_TIME_OPTIONS = new InjectionToken<TuiInputTimeOptions>(\n `[TUI_INPUT_TIME_OPTIONS]`,\n {\n factory: () => TUI_INPUT_TIME_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiInputTimeOptionsProvider: (\n options: Partial<TuiInputTimeOptions>,\n) => ValueProvider = (options: Partial<TuiInputTimeOptions>) => ({\n provide: TUI_INPUT_TIME_OPTIONS,\n useValue: {...TUI_INPUT_TIME_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n ALWAYS_FALSE_HANDLER,\n TUI_STRICT_MATCHER,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiBooleanHandler,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiIsElement,\n tuiIsInput,\n tuiIsNativeFocused,\n tuiPure,\n TuiTime,\n TuiTimeLike,\n TuiTimeMode,\n} from '@taiga-ui/cdk';\nimport {\n tuiAsDataListHost,\n tuiAsOptionContent,\n TuiDataListHost,\n TuiPrimitiveTextfieldComponent,\n TuiTextMaskOptions,\n} from '@taiga-ui/core';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_TIME_TEXTS} from '@taiga-ui/kit/tokens';\nimport {\n tuiCreateAutoCorrectedTimePipe,\n tuiCreateTimeMask,\n} from '@taiga-ui/kit/utils/mask';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_INPUT_TIME_OPTIONS, TuiInputTimeOptions} from './input-time-options';\n\n@Component({\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 viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],\n})\nexport class TuiInputTimeComponent\n extends AbstractTuiNullableControl<TuiTime>\n implements TuiFocusableElementAccessor, TuiDataListHost<TuiTime>\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiTime> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n items: readonly TuiTime[] = [];\n\n @Input()\n @tuiDefaultProp()\n itemSize: TuiInputTimeOptions['itemSize'] = this.options.itemSize;\n\n @Input()\n @tuiDefaultProp()\n strict = false;\n\n @Input()\n @tuiDefaultProp()\n mode: TuiInputTimeOptions['mode'] = this.options.mode;\n\n /** @deprecated use `tuiTextfieldPostfix` from {@link TuiTextfieldControllerModule} instead */\n @Input()\n @tuiDefaultProp()\n postfix: TuiInputTimeOptions['postfix'] = this.options.postfix;\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(TUI_TIME_TEXTS)\n private readonly timeTexts$: Observable<Record<TuiTimeMode, string>>,\n @Inject(TUI_INPUT_TIME_OPTIONS)\n private readonly options: TuiInputTimeOptions,\n ) {\n super(control, cdr);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get canOpen(): boolean {\n return this.interactive && !!this.filtered.length;\n }\n\n get filtered(): readonly TuiTime[] {\n return this.filter(this.items, this.mode, this.computedSearch);\n }\n\n get textMaskOptions(): TuiTextMaskOptions {\n return this.calculateMask(this.mode);\n }\n\n get computedValue(): string {\n return this.value ? this.value.toString(this.mode) : this.nativeValue;\n }\n\n get computedSearch(): string {\n return this.computedValue.length !== this.mode.length ? this.computedValue : '';\n }\n\n 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 get icon(): TuiInputTimeOptions['icon'] {\n return this.options.icon;\n }\n\n get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n set nativeValue(value: string) {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n this.nativeFocusableElement.value = value;\n }\n\n @tuiPure\n getFiller$(mode: TuiTimeMode): Observable<string> {\n return this.timeTexts$.pipe(map(texts => texts[mode]));\n }\n\n @HostListener('click')\n onClick(): void {\n this.open = !this.open;\n }\n\n onValueChange(value: string): void {\n this.open = !!this.items.length;\n\n if (this.control) {\n this.control.updateValueAndValidity({emitEvent: false});\n }\n\n const match = this.getMatch(value);\n\n if (match !== undefined) {\n this.value = match;\n\n return;\n }\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 onFocused(focused: boolean): void {\n this.updateFocused(focused);\n\n if (\n focused ||\n this.value !== null ||\n this.nativeValue === '' ||\n this.mode === 'HH:MM'\n ) {\n return;\n }\n\n this.value = TuiTime.fromString(this.nativeValue);\n\n setTimeout(() => {\n if (this.nativeValue.endsWith('.') || this.nativeValue.endsWith(':')) {\n this.nativeValue = this.nativeValue.slice(0, -1);\n }\n });\n }\n\n onArrowUp(event: Event): void {\n if (this.items.length) {\n return;\n }\n\n this.processArrow(event, 1);\n }\n\n onArrowDown(event: Event): void {\n if (this.items.length) {\n return;\n }\n\n this.processArrow(event, -1);\n }\n\n handleOption(item: TuiTime): void {\n this.focusInput();\n this.value = item;\n }\n\n onOpen(open: boolean): void {\n this.open = open;\n }\n\n override writeValue(value: TuiTime | null): void {\n super.writeValue(value);\n this.nativeValue = value ? this.computedValue : '';\n }\n\n @tuiPure\n private calculateMask(mode: TuiTimeMode): TuiTextMaskOptions {\n return {\n mask: tuiCreateTimeMask(mode, this.options.maxValues),\n pipe: tuiCreateAutoCorrectedTimePipe(mode, this.options.maxValues),\n guide: false,\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 return this.items.reduce((previous, current) =>\n Math.abs(current.toAbsoluteMilliseconds() - value.toAbsoluteMilliseconds()) <\n Math.abs(previous.toAbsoluteMilliseconds() - value.toAbsoluteMilliseconds())\n ? current\n : previous,\n );\n }\n\n private getMatch(value: string): TuiTime | undefined {\n return this.items.find(item => TUI_STRICT_MATCHER(item, value));\n }\n\n private close(): void {\n this.open = false;\n }\n\n private processArrow(event: Event, shift: -1 | 1): void {\n const {target} = event;\n\n if (this.readOnly || !tuiIsElement(target) || !tuiIsInput(target)) {\n return;\n }\n\n const selectionStart = target.selectionStart || 0;\n\n this.shiftTime(this.calculateShift(selectionStart, shift));\n\n target.setSelectionRange(selectionStart, selectionStart);\n event.preventDefault();\n }\n\n private calculateShift(selectionStart: number, shift: number): TuiTimeLike {\n if (selectionStart <= 2) {\n return {hours: shift};\n }\n\n if (selectionStart <= 5) {\n return {minutes: shift};\n }\n\n if (selectionStart <= 8) {\n return {seconds: shift};\n }\n\n return {ms: shift};\n }\n\n private shiftTime(shift: TuiTimeLike): void {\n if (this.value === null) {\n return;\n }\n\n const increasedTime = this.value.shift(shift);\n\n // Manual update so we can set caret position properly\n this.nativeValue = increasedTime.toString(this.mode);\n this.value = increasedTime;\n }\n\n private focusInput(preventScroll: boolean = false): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus({preventScroll});\n this.close();\n }\n }\n}\n","<tui-hosted-dropdown\n class=\"t-wrapper\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdownContent\"\n [open]=\"canOpen && open\"\n (openChange)=\"onOpen($event)\"\n (focusedChange)=\"onFocused($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [tuiTextfieldFiller]=\"(getFiller$(mode) | async) || ''\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"textMaskOptions\"\n [tuiTextfieldIcon]=\"icon\"\n [value]=\"computedValue\"\n [postfix]=\"postfix\"\n (valueChange)=\"onValueChange($event)\"\n (keydown.arrowUp)=\"onArrowUp($event)\"\n (keydown.arrowDown)=\"onArrowDown($event)\"\n >\n <ng-content></ng-content>\n <input\n tuiTextfield\n inputmode=\"numeric\"\n />\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n<ng-template #dropdownContent>\n <tui-data-list\n automation-id=\"tui-input-time__dropdown\"\n [size]=\"itemSize\"\n >\n <button\n *ngFor=\"let item of filtered\"\n tuiOption\n automation-id=\"tui-input-time__item\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n >\n {{ item }}\n </button>\n </tui-data-list>\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiDataListModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {TextMaskModule, TuiValueAccessorModule} from '@taiga-ui/kit/directives';\n\nimport {TuiInputTimeComponent} from './input-time.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n TuiSelectOptionModule,\n TuiDataListModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiValueAccessorModule,\n TuiTextfieldControllerModule,\n ],\n declarations: [TuiInputTimeComponent],\n exports: [TuiInputTimeComponent],\n})\nexport class TuiInputTimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-time.js","sources":["../../../projects/kit/components/input-time/input-time-options.ts","../../../projects/kit/components/input-time/native-time/native-time.component.ts","../../../projects/kit/components/input-time/input-time.component.ts","../../../projects/kit/components/input-time/input-time.template.html","../../../projects/kit/components/input-time/input-time.directive.ts","../../../projects/kit/components/input-time/input-time.module.ts","../../../projects/kit/components/input-time/taiga-ui-kit-components-input-time.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiContextWithImplicit, TuiTimeMode} from '@taiga-ui/cdk';\nimport {TuiSizeL, TuiSizeS} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiInputTimeOptions {\n readonly icon: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeS>>;\n readonly mode: TuiTimeMode;\n readonly postfix: string;\n readonly maxValues: Record<TuiTimeFormatParts, number>;\n readonly itemSize: TuiSizeL | TuiSizeS;\n readonly nativePicker?: boolean;\n}\n\nexport const TUI_INPUT_TIME_DEFAULT_OPTIONS: TuiInputTimeOptions = {\n icon: ({$implicit}) => ($implicit === `s` ? `tuiIconClock` : `tuiIconClockLarge`),\n mode: `HH:MM`,\n postfix: ``,\n maxValues: MAX_TIME_VALUES,\n itemSize: `m`,\n nativePicker: false,\n};\n\n/**\n * Default parameters for InputTime component\n */\nexport const TUI_INPUT_TIME_OPTIONS = new InjectionToken<TuiInputTimeOptions>(\n `[TUI_INPUT_TIME_OPTIONS]`,\n {\n factory: () => TUI_INPUT_TIME_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiInputTimeOptionsProvider: (\n options: Partial<TuiInputTimeOptions>,\n) => ValueProvider = (options: Partial<TuiInputTimeOptions>) => ({\n provide: TUI_INPUT_TIME_OPTIONS,\n useValue: {...TUI_INPUT_TIME_DEFAULT_OPTIONS, ...options},\n});\n","import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {TuiIdService} from '@taiga-ui/cdk';\nimport {TUI_TEXTFIELD_HOST} from '@taiga-ui/core';\n\nimport type {TuiInputTimeDirective} from '../input-time.directive';\n\n@Component({\n selector: 'input[tuiTime]',\n template: `\n <datalist\n *ngIf=\"items.length\"\n [id]=\"autoIdString\"\n >\n <option\n *ngFor=\"let item of items\"\n value=\"{{ item }}\"\n ></option>\n </datalist>\n `,\n host: {\n type: 'time',\n '[attr.list]': 'autoIdString',\n '[tabIndex]': '-1',\n '[value]': 'value',\n '[step]': 'step',\n '(change.stop)': 'onChange($event.target.value)',\n '(click.stop.silent)': '0',\n '(mousedown.stop.silent)': '0',\n },\n styleUrls: ['./native-time.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiNativeTimeComponent {\n autoIdString: string;\n constructor(\n @Inject(TUI_TEXTFIELD_HOST) readonly host: TuiInputTimeDirective,\n @Inject(TuiIdService) idService: TuiIdService,\n ) {\n this.autoIdString = idService.generate();\n }\n\n get items(): string[] {\n return this.host.items.map(item => item.toString(this.host.mode));\n }\n\n get value(): string {\n return this.host.value.length === this.host.mode.length ? this.host.value : '';\n }\n\n 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 onChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n ALWAYS_FALSE_HANDLER,\n TUI_IS_IOS,\n TUI_IS_MOBILE,\n TUI_STRICT_MATCHER,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiBooleanHandler,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiIsElement,\n tuiIsInput,\n tuiIsNativeFocused,\n tuiPure,\n TuiTime,\n TuiTimeLike,\n TuiTimeMode,\n} from '@taiga-ui/cdk';\nimport {\n TUI_TEXTFIELD_SIZE,\n tuiAsDataListHost,\n tuiAsOptionContent,\n TuiDataListHost,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeS,\n TuiTextfieldSizeDirective,\n TuiTextMaskOptions,\n} from '@taiga-ui/core';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_TIME_TEXTS} from '@taiga-ui/kit/tokens';\nimport {\n tuiCreateAutoCorrectedTimePipe,\n tuiCreateTimeMask,\n} from '@taiga-ui/kit/utils/mask';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_INPUT_TIME_OPTIONS, TuiInputTimeOptions} from './input-time-options';\n\n@Component({\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 viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],\n})\nexport class TuiInputTimeComponent\n extends AbstractTuiNullableControl<TuiTime>\n implements TuiFocusableElementAccessor, TuiDataListHost<TuiTime>\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiTime> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n items: readonly TuiTime[] = [];\n\n @Input()\n @tuiDefaultProp()\n itemSize: TuiInputTimeOptions['itemSize'] = this.options.itemSize;\n\n @Input()\n @tuiDefaultProp()\n strict = false;\n\n @Input()\n @tuiDefaultProp()\n mode: TuiInputTimeOptions['mode'] = this.options.mode;\n\n /** @deprecated use `tuiTextfieldPostfix` from {@link TuiTextfieldControllerModule} instead */\n @Input()\n @tuiDefaultProp()\n postfix: TuiInputTimeOptions['postfix'] = this.options.postfix;\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(TUI_TIME_TEXTS)\n private readonly timeTexts$: Observable<Record<TuiTimeMode, string>>,\n @Inject(TUI_INPUT_TIME_OPTIONS)\n private readonly options: TuiInputTimeOptions,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_IS_IOS) private readonly isIos: boolean,\n ) {\n super(control, cdr);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get canOpen(): boolean {\n return this.interactive && !!this.filtered.length;\n }\n\n get filtered(): readonly TuiTime[] {\n return this.filter(this.items, this.mode, this.computedSearch);\n }\n\n get showNativePicker(): boolean {\n return (\n this.nativePicker &&\n (!this.isIos || (this.mode === 'HH:MM' && !this.items.length))\n );\n }\n\n get nativeDatalist(): boolean {\n return this.nativePicker && !this.isIos;\n }\n\n get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n get textMaskOptions(): TuiTextMaskOptions {\n return this.calculateMask(this.mode);\n }\n\n get computedValue(): string {\n return this.value ? this.value.toString(this.mode) : this.nativeValue;\n }\n\n get computedSearch(): string {\n return this.computedValue.length !== this.mode.length ? this.computedValue : '';\n }\n\n 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 get icon(): TuiInputTimeOptions['icon'] {\n return this.options.icon;\n }\n\n get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n set nativeValue(value: string) {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n this.nativeFocusableElement.value = value;\n }\n\n @tuiPure\n getFiller$(mode: TuiTimeMode): Observable<string> {\n return this.timeTexts$.pipe(map(texts => texts[mode]));\n }\n\n @HostListener('click')\n onClick(): void {\n this.open = !this.open;\n }\n\n onValueChange(value: string): void {\n this.open = !!this.items.length;\n\n if (this.control) {\n this.control.updateValueAndValidity({emitEvent: false});\n }\n\n const match = this.getMatch(value);\n\n if (match !== undefined) {\n this.value = match;\n\n return;\n }\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 onFocused(focused: boolean): void {\n this.updateFocused(focused);\n\n if (\n focused ||\n this.value !== null ||\n this.nativeValue === '' ||\n this.mode === 'HH:MM'\n ) {\n return;\n }\n\n this.value = TuiTime.fromString(this.nativeValue);\n\n setTimeout(() => {\n if (this.nativeValue.endsWith('.') || this.nativeValue.endsWith(':')) {\n this.nativeValue = this.nativeValue.slice(0, -1);\n }\n });\n }\n\n onArrowUp(event: Event): void {\n if (this.items.length) {\n return;\n }\n\n this.processArrow(event, 1);\n }\n\n onArrowDown(event: Event): void {\n if (this.items.length) {\n return;\n }\n\n this.processArrow(event, -1);\n }\n\n handleOption(item: TuiTime): void {\n this.focusInput();\n this.value = item;\n }\n\n onOpen(open: boolean): void {\n this.open = open;\n }\n\n override writeValue(value: TuiTime | null): void {\n super.writeValue(value);\n this.nativeValue = value ? this.computedValue : '';\n }\n\n private get nativePicker(): boolean {\n return !!this.options.nativePicker && this.isMobile;\n }\n\n @tuiPure\n private calculateMask(mode: TuiTimeMode): TuiTextMaskOptions {\n return {\n mask: tuiCreateTimeMask(mode, this.options.maxValues),\n pipe: tuiCreateAutoCorrectedTimePipe(mode, this.options.maxValues),\n guide: false,\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 return this.items.reduce((previous, current) =>\n Math.abs(current.toAbsoluteMilliseconds() - value.toAbsoluteMilliseconds()) <\n Math.abs(previous.toAbsoluteMilliseconds() - value.toAbsoluteMilliseconds())\n ? current\n : previous,\n );\n }\n\n private getMatch(value: string): TuiTime | undefined {\n return this.items.find(item => TUI_STRICT_MATCHER(item, value));\n }\n\n private close(): void {\n this.open = false;\n }\n\n private processArrow(event: Event, shift: -1 | 1): void {\n const {target} = event;\n\n if (this.readOnly || !tuiIsElement(target) || !tuiIsInput(target)) {\n return;\n }\n\n const selectionStart = target.selectionStart || 0;\n\n this.shiftTime(this.calculateShift(selectionStart, shift));\n\n target.setSelectionRange(selectionStart, selectionStart);\n event.preventDefault();\n }\n\n private calculateShift(selectionStart: number, shift: number): TuiTimeLike {\n if (selectionStart <= 2) {\n return {hours: shift};\n }\n\n if (selectionStart <= 5) {\n return {minutes: shift};\n }\n\n if (selectionStart <= 8) {\n return {seconds: shift};\n }\n\n return {ms: shift};\n }\n\n private shiftTime(shift: TuiTimeLike): void {\n if (this.value === null) {\n return;\n }\n\n const increasedTime = this.value.shift(shift);\n\n // Manual update so we can set caret position properly\n this.nativeValue = increasedTime.toString(this.mode);\n this.value = increasedTime;\n }\n\n private focusInput(preventScroll: boolean = false): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus({preventScroll});\n this.close();\n }\n }\n}\n","<tui-hosted-dropdown\n class=\"t-wrapper\"\n [canOpen]=\"canOpen && !nativeDatalist\"\n [content]=\"dropdownContent\"\n [open]=\"canOpen && open\"\n (openChange)=\"onOpen($event)\"\n (focusedChange)=\"onFocused($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [tuiTextfieldFiller]=\"(getFiller$(mode) | async) || ''\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"textMaskOptions\"\n [tuiTextfieldIcon]=\"iconContent\"\n [value]=\"computedValue\"\n [postfix]=\"postfix\"\n (valueChange)=\"onValueChange($event)\"\n (keydown.arrowUp)=\"onArrowUp($event)\"\n (keydown.arrowDown)=\"onArrowDown($event)\"\n >\n <ng-content></ng-content>\n <input\n tuiTextfield\n inputmode=\"numeric\"\n />\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n<ng-template #dropdownContent>\n <tui-data-list\n automation-id=\"tui-input-time__dropdown\"\n [size]=\"itemSize\"\n >\n <button\n *ngFor=\"let item of filtered\"\n tuiOption\n automation-id=\"tui-input-time__item\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n >\n {{ item }}\n </button>\n </tui-data-list>\n</ng-template>\n\n<ng-template #iconContent>\n <tui-svg\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiWrapper\n appearance=\"icon\"\n [src]=\"src\"\n ></tui-svg>\n <input\n *ngIf=\"showNativePicker\"\n tuiTime\n />\n</ng-template>\n","import {Directive} from '@angular/core';\nimport {TuiTime, TuiTimeMode} from '@taiga-ui/cdk';\nimport {AbstractTuiTextfieldHost, tuiAsTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputTimeComponent} from './input-time.component';\n\n@Directive({\n selector: 'tui-input-time',\n providers: [tuiAsTextfieldHost(TuiInputTimeDirective)],\n})\nexport class TuiInputTimeDirective extends AbstractTuiTextfieldHost<TuiInputTimeComponent> {\n override get value(): string {\n return this.host.computedValue;\n }\n\n get mode(): TuiTimeMode {\n return this.host.mode;\n }\n\n get items(): readonly TuiTime[] {\n return this.host.items;\n }\n\n onValueChange(value: string): void {\n if (!value) {\n this.host.nativeValue = '';\n }\n\n this.host.onValueChange(value);\n }\n\n override process(input: HTMLInputElement): void {\n input.inputMode = 'numeric';\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiDataListModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiTextfieldControllerModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {TextMaskModule, TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputTimeComponent} from './input-time.component';\nimport {TuiInputTimeDirective} from './input-time.directive';\nimport {TuiNativeTimeComponent} from './native-time/native-time.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n TuiSelectOptionModule,\n TuiDataListModule,\n TuiWrapperModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiValueAccessorModule,\n TuiTextfieldControllerModule,\n TuiSvgModule,\n PolymorpheusModule,\n ],\n declarations: [TuiInputTimeComponent, TuiNativeTimeComponent, TuiInputTimeDirective],\n exports: [TuiInputTimeComponent, TuiInputTimeDirective],\n})\nexport class TuiInputTimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TuiNativeTimeComponent"],"mappings":"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"}
@@ -16,7 +16,7 @@ class TuiMarkerIconComponent {
16
16
  }
17
17
  }
18
18
  TuiMarkerIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMarkerIconComponent, deps: [{ token: TUI_MODE }], target: i0.ɵɵFactoryTarget.Component });
19
- TuiMarkerIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMarkerIconComponent, selector: "tui-marker-icon, a[tuiMarkerIcon], button[tuiMarkerIcon]", inputs: { mode: "mode", size: "size", src: "src" }, host: { listeners: { "$.data-mode.attr": "mode$" }, properties: { "attr.data-marker-mode": "this.mode", "attr.data-size": "this.size" } }, providers: [TuiDestroyService, MODE_PROVIDER], ngImport: i0, template: "<tui-svg\n class=\"t-icon\"\n [src]=\"src\"\n></tui-svg>\n", styles: [":host{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:100%;color:var(--tui-text-03);background-color:var(--tui-base-02);background-size:cover!important;transition-property:color,background-color}:host[data-size=xs]{width:2rem;height:2rem}:host[data-size=s]{width:3rem;height:3rem}:host[data-size=m]{width:4rem;height:4rem}:host[data-size=l]{width:6rem;height:6rem}:host[data-size=xl]{width:8rem;height:8rem}:host[new][data-size=xxs]{width:1.5rem;height:1.5rem}:host[new][data-size=xxs] .t-icon{transform:scale(.58)}:host[new][data-size=xs]{width:2rem;height:2rem}:host[new][data-size=xs] .t-icon{transform:scale(.83)}:host[new][data-size=s]{width:2.5rem;height:2.5rem}:host[new][data-size=s] .t-icon{transform:scale(1)}:host[new][data-size=m]{width:3rem;height:3rem}:host[new][data-size=m] .t-icon{transform:scale(1.17)}:host[new][data-size=l]{width:4rem;height:4rem}:host[new][data-size=l] .t-icon{transform:scale(1.67)}:host[new][data-size=xl]{width:6rem;height:6rem}:host[new][data-size=xl] .t-icon{transform:scale(2.33)}:host[new][data-size=xxl]{width:8rem;height:8rem}:host[new][data-size=xxl] .t-icon{transform:scale(3.33)}:host[data-mode=onDark]:not([data-marker-mode]){color:var(--tui-base-01);background-color:var(--tui-clear-inverse)}:host[data-marker-mode=primary]{color:var(--tui-primary-text);background-color:var(--tui-primary)}:host[data-marker-mode=white]{color:var(--tui-text-03);background-color:var(--tui-base-01)}:host[data-marker-mode=warning]{color:var(--tui-warning-fill);background-color:var(--tui-warning-bg)}:host[data-marker-mode=secondary]{color:var(--tui-base-01);background-color:var(--tui-info-fill)}:host[data-marker-mode=error]{color:var(--tui-error-fill);background-color:var(--tui-error-bg)}:host[data-marker-mode=success]{color:var(--tui-success-fill);background-color:var(--tui-success-bg)}:host[data-marker-mode=link]{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;color:var(--tui-link);background-color:var(--tui-secondary)}a:host[data-marker-mode=link],button:host[data-marker-mode=link]{cursor:pointer}a:host[data-marker-mode=link]:hover,button:host[data-marker-mode=link]:hover{color:var(--tui-link-hover);background-color:var(--tui-secondary-hover)}a:host[data-marker-mode=link]:active,button:host[data-marker-mode=link]:active{color:var(--tui-link-hover);background-color:var(--tui-secondary-active)}.t-icon{width:3rem;height:3rem}:host[data-size=xs] .t-icon{transform:scale(.667)}:host[data-size=s] .t-icon{transform:scale(1.167)}:host[data-size=m] .t-icon{transform:scale(1.667)}:host[data-size=l] .t-icon{transform:scale(2.333)}:host[data-size=xl] .t-icon{transform:scale(3.333)}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
+ TuiMarkerIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMarkerIconComponent, selector: "tui-marker-icon, a[tuiMarkerIcon], button[tuiMarkerIcon]", inputs: { mode: "mode", size: "size", src: "src" }, host: { listeners: { "$.data-mode.attr": "mode$" }, properties: { "attr.data-marker-mode": "this.mode", "attr.data-size": "this.size" } }, providers: [TuiDestroyService, MODE_PROVIDER], ngImport: i0, template: "<tui-svg\n class=\"t-icon\"\n [src]=\"src\"\n></tui-svg>\n", styles: [":host{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:100%;color:var(--tui-text-03);background-color:var(--tui-base-02);background-size:cover!important;transition-property:color,background-color}:host[data-size=xs]{width:2rem;height:2rem}:host[data-size=s]{width:3rem;height:3rem}:host[data-size=m]{width:4rem;height:4rem}:host[data-size=l]{width:6rem;height:6rem}:host[data-size=xl]{width:8rem;height:8rem}:host[new][data-size=xxs]{width:1.5rem;height:1.5rem}:host[new][data-size=xxs] .t-icon{transform:scale(.58)}:host[new][data-size=xs]{width:2rem;height:2rem}:host[new][data-size=xs] .t-icon{transform:scale(.83)}:host[new][data-size=s]{width:2.5rem;height:2.5rem}:host[new][data-size=s] .t-icon{transform:scale(1)}:host[new][data-size=m]{width:3rem;height:3rem}:host[new][data-size=m] .t-icon{transform:scale(1)}:host[new][data-size=l]{width:4rem;height:4rem}:host[new][data-size=l] .t-icon{transform:scale(1.33)}:host[new][data-size=xl]{width:6rem;height:6rem}:host[new][data-size=xl] .t-icon{transform:scale(2.33)}:host[new][data-size=xxl]{width:8rem;height:8rem}:host[new][data-size=xxl] .t-icon{transform:scale(3.33)}:host[data-mode=onDark]:not([data-marker-mode]){color:var(--tui-base-01);background-color:var(--tui-clear-inverse)}:host[data-marker-mode=primary]{color:var(--tui-primary-text);background-color:var(--tui-primary)}:host[data-marker-mode=white]{color:var(--tui-text-03);background-color:var(--tui-base-01)}:host[data-marker-mode=warning]{color:var(--tui-warning-fill);background-color:var(--tui-warning-bg)}:host[data-marker-mode=secondary]{color:var(--tui-base-01);background-color:var(--tui-info-fill)}:host[data-marker-mode=error]{color:var(--tui-error-fill);background-color:var(--tui-error-bg)}:host[data-marker-mode=success]{color:var(--tui-success-fill);background-color:var(--tui-success-bg)}:host[data-marker-mode=link]{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;color:var(--tui-link);background-color:var(--tui-secondary)}a:host[data-marker-mode=link],button:host[data-marker-mode=link]{cursor:pointer}a:host[data-marker-mode=link]:hover,button:host[data-marker-mode=link]:hover{color:var(--tui-link-hover);background-color:var(--tui-secondary-hover)}a:host[data-marker-mode=link]:active,button:host[data-marker-mode=link]:active{color:var(--tui-link-hover);background-color:var(--tui-secondary-active)}.t-icon{width:1.5rem;height:1.5rem}:host[data-size=xs] .t-icon{transform:scale(1)}:host[data-size=s] .t-icon{transform:scale(1)}:host[data-size=m] .t-icon{transform:scale(1.33)}:host[data-size=l] .t-icon{transform:scale(2)}:host[data-size=xl] .t-icon{transform:scale(2.67)}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
20
  __decorate([
21
21
  tuiDefaultProp()
22
22
  ], TuiMarkerIconComponent.prototype, "mode", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-marker-icon.js","sources":["../../../projects/kit/components/marker-icon/marker-icon.component.ts","../../../projects/kit/components/marker-icon/marker-icon.template.html","../../../projects/kit/components/marker-icon/marker-icon.module.ts","../../../projects/kit/components/marker-icon/taiga-ui-kit-components-marker-icon.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport {tuiDefaultProp, TuiDestroyService} from '@taiga-ui/cdk';\nimport {\n MODE_PROVIDER,\n TUI_MODE,\n TuiBrightness,\n TuiSizeXXL,\n TuiSizeXXS,\n} from '@taiga-ui/core';\nimport {TuiMarkerIconMode} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-marker-icon, a[tuiMarkerIcon], button[tuiMarkerIcon]',\n templateUrl: './marker-icon.template.html',\n styleUrls: ['./marker-icon.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService, MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiMarkerIconComponent {\n @Input()\n @HostBinding('attr.data-marker-mode')\n @tuiDefaultProp()\n mode: TuiMarkerIconMode | null = null;\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeXXL | TuiSizeXXS = 'm';\n\n @Input()\n @tuiDefaultProp()\n src = '';\n\n constructor(@Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>) {}\n}\n","<tui-svg\n class=\"t-icon\"\n [src]=\"src\"\n></tui-svg>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiMarkerIconComponent} from './marker-icon.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiMarkerIconComponent],\n exports: [TuiMarkerIconComponent],\n})\nexport class TuiMarkerIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-marker-icon.js","sources":["../../../projects/kit/components/marker-icon/marker-icon.component.ts","../../../projects/kit/components/marker-icon/marker-icon.template.html","../../../projects/kit/components/marker-icon/marker-icon.module.ts","../../../projects/kit/components/marker-icon/taiga-ui-kit-components-marker-icon.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport {tuiDefaultProp, TuiDestroyService} from '@taiga-ui/cdk';\nimport {\n MODE_PROVIDER,\n TUI_MODE,\n TuiBrightness,\n TuiSizeXXL,\n TuiSizeXXS,\n} from '@taiga-ui/core';\nimport {TuiMarkerIconMode} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-marker-icon, a[tuiMarkerIcon], button[tuiMarkerIcon]',\n templateUrl: './marker-icon.template.html',\n styleUrls: ['./marker-icon.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService, MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiMarkerIconComponent {\n @Input()\n @HostBinding('attr.data-marker-mode')\n @tuiDefaultProp()\n mode: TuiMarkerIconMode | null = null;\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeXXL | TuiSizeXXS = 'm';\n\n @Input()\n @tuiDefaultProp()\n src = '';\n\n constructor(@Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>) {}\n}\n","<tui-svg\n class=\"t-icon\"\n [src]=\"src\"\n></tui-svg>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiMarkerIconComponent} from './marker-icon.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiMarkerIconComponent],\n exports: [TuiMarkerIconComponent],\n})\nexport class TuiMarkerIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { forwardRef, Directive, Optional, Inject, Input, NgModule } from '@angular/core';
3
3
  import { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { ɵgetDOM } from '@angular/platform-browser';
5
+ import { TUI_LEGACY_MASK } from '@taiga-ui/core';
5
6
  import { createTextMaskInputElement } from 'text-mask-core';
6
7
 
7
8
  /* eslint-disable */
@@ -105,6 +106,10 @@ MaskedInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", v
105
106
  useExisting: forwardRef(() => MaskedInputDirective),
106
107
  multi: true,
107
108
  },
109
+ {
110
+ provide: TUI_LEGACY_MASK,
111
+ useExisting: forwardRef(() => MaskedInputDirective),
112
+ },
108
113
  ], exportAs: ["textMask"], usesOnChanges: true, ngImport: i0 });
109
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MaskedInputDirective, decorators: [{
110
115
  type: Directive,
@@ -123,6 +128,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
123
128
  useExisting: forwardRef(() => MaskedInputDirective),
124
129
  multi: true,
125
130
  },
131
+ {
132
+ provide: TUI_LEGACY_MASK,
133
+ useExisting: forwardRef(() => MaskedInputDirective),
134
+ },
126
135
  ],
127
136
  }]
128
137
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-mask.js","sources":["../../../projects/kit/directives/mask/legacy-mask.ts","../../../projects/kit/directives/mask/taiga-ui-kit-directives-mask.ts"],"sourcesContent":["/* eslint-disable */\n/**\n * Copied from\n * {@link https://github.com/text-mask/text-mask/blob/master/angular2/src/angular2TextMask.ts angular2-text-mask}\n * ___\n * \"angular2-text-mask\" is a legacy not-maintained library. It is published using legacy View Engine distribution.\n * Stackblitz fails to run \"View Engine\"-libraries in Ivy application.\n * See {@link https://github.com/Tinkoff/taiga-ui/issues/2541#issuecomment-1235516443 this comment}.\n */\nimport {\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgModule,\n OnChanges,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport {\n COMPOSITION_BUFFER_MODE,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport {ɵgetDOM as getDOM} from '@angular/platform-browser';\nimport {TuiTextMaskOptions} from '@taiga-ui/core';\nimport {createTextMaskInputElement} from 'text-mask-core';\n\n/**\n * We must check whether the agent is Android because composition events\n * behave differently between iOS and Android.\n */\nfunction _isAndroid(): boolean {\n const userAgent = getDOM() ? getDOM().getUserAgent() : '';\n return /android (\\d+)/.test(userAgent.toLowerCase());\n}\n\n/**\n * @internal\n * @deprecated\n * Don't use it! It can be deleted at any time (even in minor releases).\n * Use {@link https://github.com/text-mask/text-mask/tree/master/angular2 angular2-text-mask} instead.\n */\n@Directive({\n host: {\n '(input)': '_handleInput($event.target.value)',\n '(blur)': 'onTouched()',\n '(compositionstart)': '_compositionStart()',\n '(compositionend)': '_compositionEnd($event.target.value)',\n },\n selector: '[textMask]',\n exportAs: 'textMask',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MaskedInputDirective),\n multi: true,\n },\n ],\n})\nexport class MaskedInputDirective implements ControlValueAccessor, OnChanges {\n @Input('textMask') textMaskConfig: TuiTextMaskOptions = {\n mask: [],\n guide: true,\n placeholderChar: '_',\n pipe: undefined,\n keepCharPositions: false,\n };\n\n onChange = (_: any) => {};\n onTouched = () => {};\n\n private textMaskInputElement: any;\n private inputElement!: HTMLInputElement;\n\n /** Whether the user is creating a composition string (IME events). */\n private _composing = false;\n\n constructor(\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n @Optional() @Inject(COMPOSITION_BUFFER_MODE) private _compositionMode: boolean,\n ) {\n if (this._compositionMode == null) {\n this._compositionMode = !_isAndroid();\n }\n }\n\n ngOnChanges() {\n this._setupMask(true);\n if (this.textMaskInputElement !== undefined) {\n this.textMaskInputElement.update(this.inputElement.value);\n }\n }\n\n writeValue(value: any) {\n this._setupMask();\n\n // set the initial value for cases where the mask is disabled\n const normalizedValue = value == null ? '' : value;\n this._renderer.setProperty(this.inputElement, 'value', normalizedValue);\n\n if (this.textMaskInputElement !== undefined) {\n this.textMaskInputElement.update(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._renderer.setProperty(\n this._elementRef.nativeElement,\n 'disabled',\n isDisabled,\n );\n }\n\n _handleInput(value: any) {\n if (!this._compositionMode || (this._compositionMode && !this._composing)) {\n this._setupMask();\n\n if (this.textMaskInputElement !== undefined) {\n this.textMaskInputElement.update(value);\n\n // get the updated value\n value = this.inputElement.value;\n this.onChange(value);\n }\n }\n }\n\n _setupMask(create = false) {\n if (!this.inputElement) {\n if (this._elementRef.nativeElement.tagName.toUpperCase() === 'INPUT') {\n // `textMask` directive is used directly on an input element\n this.inputElement = this._elementRef.nativeElement;\n } else {\n // `textMask` directive is used on an abstracted input element, `md-input-container`, etc\n this.inputElement =\n this._elementRef.nativeElement.getElementsByTagName('INPUT')[0];\n }\n }\n\n if (this.inputElement && create) {\n this.textMaskInputElement = createTextMaskInputElement(\n Object.assign({inputElement: this.inputElement}, this.textMaskConfig),\n );\n }\n }\n\n _compositionStart(): void {\n this._composing = true;\n }\n\n _compositionEnd(value: any): void {\n this._composing = false;\n this._compositionMode && this._handleInput(value);\n }\n}\n\n/**\n * @internal\n * @deprecated\n * Don't use it! It can be deleted at any time (even in minor releases).\n * Use {@link https://github.com/text-mask/text-mask/tree/master/angular2 angular2-text-mask} instead.\n */\n@NgModule({\n declarations: [MaskedInputDirective],\n exports: [MaskedInputDirective],\n})\nexport class TextMaskModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getDOM"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-mask.js","sources":["../../../projects/kit/directives/mask/legacy-mask.ts","../../../projects/kit/directives/mask/taiga-ui-kit-directives-mask.ts"],"sourcesContent":["/* eslint-disable */\n/**\n * Copied from\n * {@link https://github.com/text-mask/text-mask/blob/master/angular2/src/angular2TextMask.ts angular2-text-mask}\n * ___\n * \"angular2-text-mask\" is a legacy not-maintained library. It is published using legacy View Engine distribution.\n * Stackblitz fails to run \"View Engine\"-libraries in Ivy application.\n * See {@link https://github.com/Tinkoff/taiga-ui/issues/2541#issuecomment-1235516443 this comment}.\n */\nimport {\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgModule,\n OnChanges,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport {\n COMPOSITION_BUFFER_MODE,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport {ɵgetDOM as getDOM} from '@angular/platform-browser';\nimport {TUI_LEGACY_MASK, TuiTextMaskOptions} from '@taiga-ui/core';\nimport {createTextMaskInputElement} from 'text-mask-core';\n\n/**\n * We must check whether the agent is Android because composition events\n * behave differently between iOS and Android.\n */\nfunction _isAndroid(): boolean {\n const userAgent = getDOM() ? getDOM().getUserAgent() : '';\n return /android (\\d+)/.test(userAgent.toLowerCase());\n}\n\n/**\n * @internal\n * @deprecated\n * Don't use it! It can be deleted at any time (even in minor releases).\n * Use {@link https://github.com/text-mask/text-mask/tree/master/angular2 angular2-text-mask} instead.\n */\n@Directive({\n host: {\n '(input)': '_handleInput($event.target.value)',\n '(blur)': 'onTouched()',\n '(compositionstart)': '_compositionStart()',\n '(compositionend)': '_compositionEnd($event.target.value)',\n },\n selector: '[textMask]',\n exportAs: 'textMask',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MaskedInputDirective),\n multi: true,\n },\n {\n provide: TUI_LEGACY_MASK,\n useExisting: forwardRef(() => MaskedInputDirective),\n },\n ],\n})\nexport class MaskedInputDirective implements ControlValueAccessor, OnChanges {\n @Input('textMask') textMaskConfig: TuiTextMaskOptions = {\n mask: [],\n guide: true,\n placeholderChar: '_',\n pipe: undefined,\n keepCharPositions: false,\n };\n\n onChange = (_: any) => {};\n onTouched = () => {};\n\n private textMaskInputElement: any;\n private inputElement!: HTMLInputElement;\n\n /** Whether the user is creating a composition string (IME events). */\n private _composing = false;\n\n constructor(\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n @Optional() @Inject(COMPOSITION_BUFFER_MODE) private _compositionMode: boolean,\n ) {\n if (this._compositionMode == null) {\n this._compositionMode = !_isAndroid();\n }\n }\n\n ngOnChanges() {\n this._setupMask(true);\n if (this.textMaskInputElement !== undefined) {\n this.textMaskInputElement.update(this.inputElement.value);\n }\n }\n\n writeValue(value: any) {\n this._setupMask();\n\n // set the initial value for cases where the mask is disabled\n const normalizedValue = value == null ? '' : value;\n this._renderer.setProperty(this.inputElement, 'value', normalizedValue);\n\n if (this.textMaskInputElement !== undefined) {\n this.textMaskInputElement.update(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._renderer.setProperty(\n this._elementRef.nativeElement,\n 'disabled',\n isDisabled,\n );\n }\n\n _handleInput(value: any) {\n if (!this._compositionMode || (this._compositionMode && !this._composing)) {\n this._setupMask();\n\n if (this.textMaskInputElement !== undefined) {\n this.textMaskInputElement.update(value);\n\n // get the updated value\n value = this.inputElement.value;\n this.onChange(value);\n }\n }\n }\n\n _setupMask(create = false) {\n if (!this.inputElement) {\n if (this._elementRef.nativeElement.tagName.toUpperCase() === 'INPUT') {\n // `textMask` directive is used directly on an input element\n this.inputElement = this._elementRef.nativeElement;\n } else {\n // `textMask` directive is used on an abstracted input element, `md-input-container`, etc\n this.inputElement =\n this._elementRef.nativeElement.getElementsByTagName('INPUT')[0];\n }\n }\n\n if (this.inputElement && create) {\n this.textMaskInputElement = createTextMaskInputElement(\n Object.assign({inputElement: this.inputElement}, this.textMaskConfig),\n );\n }\n }\n\n _compositionStart(): void {\n this._composing = true;\n }\n\n _compositionEnd(value: any): void {\n this._composing = false;\n this._compositionMode && this._handleInput(value);\n }\n}\n\n/**\n * @internal\n * @deprecated\n * Don't use it! It can be deleted at any time (even in minor releases).\n * Use {@link https://github.com/text-mask/text-mask/tree/master/angular2 angular2-text-mask} instead.\n */\n@NgModule({\n declarations: [MaskedInputDirective],\n exports: [MaskedInputDirective],\n})\nexport class TextMaskModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getDOM"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/kit",
3
- "version": "3.24.0",
3
+ "version": "3.25.0",
4
4
  "description": "Taiga UI Angular main components kit",
5
5
  "keywords": [
6
6
  "angular",
@@ -25,9 +25,9 @@
25
25
  "@ng-web-apis/common": ">=2.0.0",
26
26
  "@ng-web-apis/mutation-observer": ">=2.0.0",
27
27
  "@ng-web-apis/resize-observer": ">=2.0.0",
28
- "@taiga-ui/cdk": ">=3.24.0",
29
- "@taiga-ui/core": ">=3.24.0",
30
- "@taiga-ui/i18n": ">=3.24.0",
28
+ "@taiga-ui/cdk": ">=3.25.0",
29
+ "@taiga-ui/core": ">=3.25.0",
30
+ "@taiga-ui/i18n": ">=3.25.0",
31
31
  "@tinkoff/ng-polymorpheus": ">=4.0.0",
32
32
  "rxjs": ">=6.0.0"
33
33
  },