@taiga-ui/kit 3.21.0 → 3.22.0-dev.main-a08b721

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 (52) hide show
  1. package/bundles/taiga-ui-kit-components-input-files.umd.js +14 -11
  2. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-input-tag.umd.js +8 -2
  4. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-multi-select.umd.js +260 -14
  6. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-select.umd.js +9 -25
  8. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-text-area.umd.js +1 -1
  10. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +25 -14
  12. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  13. package/components/input-files/input-files.component.d.ts +4 -3
  14. package/components/input-tag/input-tag.component.d.ts +2 -1
  15. package/components/multi-select/index.d.ts +4 -0
  16. package/components/multi-select/multi-select.component.d.ts +7 -3
  17. package/components/multi-select/multi-select.directive.d.ts +12 -0
  18. package/components/multi-select/multi-select.module.d.ts +13 -9
  19. package/components/multi-select/native-multi-select/native-multi-select-group.component.d.ts +8 -0
  20. package/components/multi-select/native-multi-select/native-multi-select.component.d.ts +7 -0
  21. package/components/multi-select/native-multi-select/native-multi-select.d.ts +18 -0
  22. package/components/select/native-select/native-select-group.component.d.ts +1 -1
  23. package/components/select/native-select/native-select.component.d.ts +1 -1
  24. package/esm2015/components/input-files/input-files.component.js +8 -5
  25. package/esm2015/components/input-files/max-size-rejection-error.pipe.js +2 -2
  26. package/esm2015/components/input-tag/input-tag.component.js +9 -3
  27. package/esm2015/components/multi-select/index.js +5 -1
  28. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +1 -1
  29. package/esm2015/components/multi-select/multi-select.component.js +19 -6
  30. package/esm2015/components/multi-select/multi-select.directive.js +28 -0
  31. package/esm2015/components/multi-select/multi-select.module.js +25 -3
  32. package/esm2015/components/multi-select/native-multi-select/native-multi-select-group.component.js +63 -0
  33. package/esm2015/components/multi-select/native-multi-select/native-multi-select.component.js +60 -0
  34. package/esm2015/components/multi-select/native-multi-select/native-multi-select.js +51 -0
  35. package/esm2015/components/select/native-select/native-select-group.component.js +6 -14
  36. package/esm2015/components/select/native-select/native-select.component.js +6 -14
  37. package/esm2015/components/select/select.component.js +2 -2
  38. package/esm2015/components/text-area/text-area.component.js +1 -1
  39. package/esm2015/utils/miscellaneous/create-time-periods.js +3 -3
  40. package/fesm2015/taiga-ui-kit-components-input-files.js +9 -6
  41. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  42. package/fesm2015/taiga-ui-kit-components-input-tag.js +8 -2
  43. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  44. package/fesm2015/taiga-ui-kit-components-multi-select.js +219 -12
  45. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  46. package/fesm2015/taiga-ui-kit-components-select.js +10 -26
  47. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  48. package/fesm2015/taiga-ui-kit-components-text-area.js +1 -1
  49. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  50. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +2 -2
  51. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  52. package/package.json +4 -4
@@ -1,23 +1,25 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, EventEmitter, ChangeDetectorRef, TemplateRef, Component, ChangeDetectionStrategy, Optional, Self, Inject, ContentChild, ViewChild, Input, HostBinding, Output, Pipe, ContentChildren, forwardRef, Directive, NgModule } from '@angular/core';
3
+ import { InjectionToken, Directive, ElementRef, ChangeDetectorRef, TemplateRef, Inject, ViewChild, HostBinding, EventEmitter, Component, ChangeDetectionStrategy, Optional, Self, ContentChild, Input, Output, Pipe, ContentChildren, forwardRef, NgModule } from '@angular/core';
4
4
  import * as i3 from '@taiga-ui/cdk';
5
- import { AbstractTuiMultipleControl, EMPTY_ARRAY, tuiIsString, tuiArrayToggle, tuiIsNativeFocused, tuiAsFocusableItemAccessor, tuiAsControl, tuiDefaultProp, tuiPure, EMPTY_QUERY, tuiQueryListChanges, tuiGetOriginalArrayFromQueryList, TUI_DEFAULT_IDENTITY_MATCHER, tuiIsPresent, tuiControlValue, EMPTY_FUNCTION, TuiPreventDefaultModule, TuiActiveZoneModule, TuiLetModule, TuiMapperPipeModule } from '@taiga-ui/cdk';
5
+ import { AbstractTuiControl, TuiIdService, AbstractTuiMultipleControl, EMPTY_ARRAY, tuiIsString, tuiArrayToggle, tuiIsNativeFocused, TUI_IS_MOBILE, tuiAsFocusableItemAccessor, tuiAsControl, tuiDefaultProp, tuiPure, EMPTY_QUERY, tuiQueryListChanges, tuiGetOriginalArrayFromQueryList, TUI_DEFAULT_IDENTITY_MATCHER, tuiIsPresent, tuiControlValue, EMPTY_FUNCTION, TuiPreventDefaultModule, TuiActiveZoneModule, TuiLetModule, TuiMapperPipeModule } from '@taiga-ui/cdk';
6
6
  import { tuiIsFlat } from '@taiga-ui/kit/utils';
7
7
  import * as i4 from '@angular/forms';
8
8
  import { NgControl, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
9
9
  import * as i1 from '@taiga-ui/core';
10
- import { TUI_TEXTFIELD_WATCHED_CONTROLLER, tuiAsDataListHost, TEXTFIELD_CONTROLLER_PROVIDER, TUI_DATA_LIST_ACCESSOR, TuiDataListDirective, TuiHostedDropdownComponent, TUI_DATA_LIST_HOST, TuiOptionComponent, tuiAsOptionContent, TuiWrapperModule, TuiSvgModule, TuiHostedDropdownModule, TuiLinkModule, TuiDataListModule, TuiTextfieldControllerModule } from '@taiga-ui/core';
10
+ import { AbstractTuiTextfieldHost, tuiAsTextfieldHost, TUI_TEXTFIELD_HOST, TuiDataListDirective, TUI_TEXTFIELD_WATCHED_CONTROLLER, tuiAsDataListHost, TEXTFIELD_CONTROLLER_PROVIDER, TUI_DATA_LIST_ACCESSOR, TuiHostedDropdownComponent, TUI_DATA_LIST_HOST, TuiOptionComponent, tuiAsOptionContent, tuiAsDataList, TuiWrapperModule, TuiSvgModule, TuiHostedDropdownModule, TuiLinkModule, TuiDataListModule, TuiTextfieldControllerModule } from '@taiga-ui/core';
11
11
  import { TuiStringifiableItem } from '@taiga-ui/kit/classes';
12
12
  import { TUI_ARROW_MODE, TuiArrowModule } from '@taiga-ui/kit/components/arrow';
13
13
  import * as i2 from '@taiga-ui/kit/components/input-tag';
14
14
  import { TuiInputTagComponent, TuiInputTagModule } from '@taiga-ui/kit/components/input-tag';
15
15
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
16
16
  import { TUI_ITEMS_HANDLERS, TUI_MULTI_SELECT_TEXTS } from '@taiga-ui/kit/tokens';
17
- import * as i3$1 from '@angular/common';
17
+ import * as i2$1 from '@angular/common';
18
18
  import { CommonModule } from '@angular/common';
19
19
  import * as i6 from '@tinkoff/ng-polymorpheus';
20
20
  import { PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
21
+ import * as i1$1 from '@taiga-ui/kit/components/data-list-wrapper';
22
+ import { TuiDataListWrapperModule } from '@taiga-ui/kit/components/data-list-wrapper';
21
23
  import { TuiMultiSelectOptionComponent, TuiMultiSelectOptionModule } from '@taiga-ui/kit/components/multi-select-option';
22
24
  import { combineLatest } from 'rxjs';
23
25
  import { map } from 'rxjs/operators';
@@ -37,13 +39,84 @@ const tuiMultiSelectOptionsProvider = (options) => ({
37
39
  useValue: Object.assign(Object.assign({}, TUI_MULTI_SELECT_DEFAULT_OPTIONS), options),
38
40
  });
39
41
 
42
+ class TuiMultiSelectDirective extends AbstractTuiTextfieldHost {
43
+ constructor() {
44
+ super(...arguments);
45
+ this.disableItemHandler = item => this.host.disabledItemHandler(item);
46
+ }
47
+ get readOnly() {
48
+ return true;
49
+ }
50
+ onValueChange(_) {
51
+ //
52
+ }
53
+ onSelectionChange(value) {
54
+ this.host.onValueChange(value);
55
+ }
56
+ }
57
+ TuiMultiSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMultiSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
58
+ TuiMultiSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiMultiSelectDirective, selector: "tui-multi-select", providers: [tuiAsTextfieldHost(TuiMultiSelectDirective)], usesInheritance: true, ngImport: i0 });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMultiSelectDirective, decorators: [{
60
+ type: Directive,
61
+ args: [{
62
+ selector: 'tui-multi-select',
63
+ providers: [tuiAsTextfieldHost(TuiMultiSelectDirective)],
64
+ }]
65
+ }] });
66
+
67
+ class AbstractTuiNativeMultiSelect {
68
+ constructor(host, control, elementRef, idService, cdr) {
69
+ this.host = host;
70
+ this.control = control;
71
+ this.elementRef = elementRef;
72
+ this.idService = idService;
73
+ this.cdr = cdr;
74
+ this.datalist = null;
75
+ this.selectedMapper = (option, value) => value.includes(option);
76
+ }
77
+ get id() {
78
+ return this.elementRef.nativeElement.id || this.idService.generate();
79
+ }
80
+ onValueChange() {
81
+ const { selectedOptions } = this.elementRef.nativeElement;
82
+ this.host.onSelectionChange(Array.from(selectedOptions).map(option => option.value));
83
+ }
84
+ }
85
+ AbstractTuiNativeMultiSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AbstractTuiNativeMultiSelect, deps: [{ token: TUI_TEXTFIELD_HOST }, { token: AbstractTuiControl }, { token: ElementRef }, { token: TuiIdService }, { token: ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
86
+ AbstractTuiNativeMultiSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: AbstractTuiNativeMultiSelect, host: { properties: { "id": "this.id" } }, viewQueries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AbstractTuiNativeMultiSelect, decorators: [{
88
+ type: Directive
89
+ }], ctorParameters: function () { return [{ type: TuiMultiSelectDirective, decorators: [{
90
+ type: Inject,
91
+ args: [TUI_TEXTFIELD_HOST]
92
+ }] }, { type: i3.AbstractTuiControl, decorators: [{
93
+ type: Inject,
94
+ args: [AbstractTuiControl]
95
+ }] }, { type: i0.ElementRef, decorators: [{
96
+ type: Inject,
97
+ args: [ElementRef]
98
+ }] }, { type: i3.TuiIdService, decorators: [{
99
+ type: Inject,
100
+ args: [TuiIdService]
101
+ }] }, { type: i0.ChangeDetectorRef, decorators: [{
102
+ type: Inject,
103
+ args: [ChangeDetectorRef]
104
+ }] }]; }, propDecorators: { datalist: [{
105
+ type: ViewChild,
106
+ args: [TuiDataListDirective, { read: TemplateRef, static: true }]
107
+ }], id: [{
108
+ type: HostBinding,
109
+ args: [`id`]
110
+ }] } });
111
+
40
112
  class TuiMultiSelectComponent extends AbstractTuiMultipleControl {
41
- constructor(control, changeDetectorRef, arrowMode, itemsHandlers, options, controller) {
113
+ constructor(control, changeDetectorRef, arrowMode, itemsHandlers, options, controller, isMobile) {
42
114
  super(control, changeDetectorRef);
43
115
  this.arrowMode = arrowMode;
44
116
  this.itemsHandlers = itemsHandlers;
45
117
  this.options = options;
46
118
  this.controller = controller;
119
+ this.isMobile = isMobile;
47
120
  this.stringify = this.itemsHandlers.stringify;
48
121
  this.identityMatcher = this.itemsHandlers.identityMatcher;
49
122
  this.expandable = this.options.expandable;
@@ -75,6 +148,9 @@ class TuiMultiSelectComponent extends AbstractTuiMultipleControl {
75
148
  var _a, _b;
76
149
  return !!((_a = this.input) === null || _a === void 0 ? void 0 : _a.focused) || !!((_b = this.hostedDropdown) === null || _b === void 0 ? void 0 : _b.focused);
77
150
  }
151
+ get nativeDropdownMode() {
152
+ return !!this.nativeSelect && this.isMobile;
153
+ }
78
154
  get computedValue() {
79
155
  return this.computedGroup ? EMPTY_ARRAY : this.value;
80
156
  }
@@ -128,8 +204,10 @@ class TuiMultiSelectComponent extends AbstractTuiMultipleControl {
128
204
  onInput(value) {
129
205
  this.updateValue(value.map(({ item }) => item));
130
206
  }
207
+ onValueChange(value) {
208
+ this.updateValue(value);
209
+ }
131
210
  onSearch(search) {
132
- this.open = true;
133
211
  this.updateSearch(search);
134
212
  }
135
213
  onActiveZone(active) {
@@ -147,13 +225,13 @@ class TuiMultiSelectComponent extends AbstractTuiMultipleControl {
147
225
  this.searchChange.emit(search);
148
226
  }
149
227
  }
150
- TuiMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMultiSelectComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_ARROW_MODE }, { token: TUI_ITEMS_HANDLERS }, { token: TUI_MULTI_SELECT_OPTIONS }, { token: TUI_TEXTFIELD_WATCHED_CONTROLLER }], target: i0.ɵɵFactoryTarget.Component });
228
+ TuiMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMultiSelectComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_ARROW_MODE }, { token: TUI_ITEMS_HANDLERS }, { token: TUI_MULTI_SELECT_OPTIONS }, { token: TUI_TEXTFIELD_WATCHED_CONTROLLER }, { token: TUI_IS_MOBILE }], target: i0.ɵɵFactoryTarget.Component });
151
229
  TuiMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMultiSelectComponent, selector: "tui-multi-select", inputs: { stringify: "stringify", identityMatcher: "identityMatcher", expandable: "expandable", search: "search", placeholder: "placeholder", editable: "editable", disabledItemHandler: "disabledItemHandler", valueContent: "valueContent", rows: "rows" }, outputs: { searchChange: "searchChange" }, host: { properties: { "class._editable": "this.editable", "attr.data-size": "this.size" } }, providers: [
152
230
  tuiAsFocusableItemAccessor(TuiMultiSelectComponent),
153
231
  tuiAsControl(TuiMultiSelectComponent),
154
232
  tuiAsDataListHost(TuiMultiSelectComponent),
155
233
  TEXTFIELD_CONTROLLER_PROVIDER,
156
- ], queries: [{ propertyName: "accessor", first: true, predicate: TUI_DATA_LIST_ACCESSOR, descendants: true }, { propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "hostedDropdown", first: true, predicate: TuiHostedDropdownComponent, descendants: true }, { propertyName: "input", first: true, predicate: TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n automation-id=\"tui-multi-select__input\"\n class=\"t-input\"\n [nativeId]=\"nativeId\"\n [tuiTextfieldIcon]=\"icon\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerWrapper\"\n [readOnly]=\"readOnly\"\n [inputHidden]=\"!editable\"\n [pseudoHover]=\"pseudoHover\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoInvalid]=\"computedInvalid\"\n [editable]=\"false\"\n [expandable]=\"expandable\"\n [search]=\"searchOrSpace\"\n [rows]=\"rows\"\n [ngModel]=\"computedValue | tuiMapper : valueMapper : stringify\"\n (ngModelChange)=\"onInput($event)\"\n (searchChange)=\"onSearch($event)\"\n (keydown.space)=\"onSpace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (click.prevent)=\"onClick(inputTag)\"\n >\n <ng-content></ng-content>\n </tui-input-tag>\n <div\n class=\"t-wrapper\"\n [class.t-wrapper_disabled]=\"disabled\"\n >\n <div\n *ngIf=\"computedGroup\"\n class=\"t-group\"\n [class.t-group_fullsize]=\"inputTag.labelOutside\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n\n <ng-template #icon>\n <div\n *ngIf=\"arrow\"\n tuiWrapper\n appearance=\"icon\"\n automation-id=\"tui-multi-select__arrow\"\n tuiPreventDefault=\"mousedown\"\n class=\"t-arrow\"\n >\n <ng-container *polymorpheusOutlet=\"arrow as text\">\n {{ text }}\n </ng-container>\n </div>\n </ng-template>\n </div>\n</tui-hosted-dropdown>\n", styles: [":host{position:relative;display:block;border-radius:var(--tui-radius-m)}:host._disabled{pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-input{border-radius:inherit}:host:not(._editable):not(._readonly) .t-input{cursor:pointer}.t-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none;justify-content:flex-end}.t-wrapper_disabled{opacity:var(--tui-disabled-opacity)}:host[data-size=s] .t-wrapper{height:var(--tui-height-s)}:host[data-size=m] .t-wrapper{height:var(--tui-height-m)}:host[data-size=l] .t-wrapper{height:var(--tui-height-l)}.t-group{display:flex;flex:1;align-items:center;padding:1.6875rem 0 .5625rem 1rem;overflow:hidden}.t-group_fullsize{padding-top:.0625rem;padding-bottom:0}:host[data-size=m] .t-group_fullsize.t-group_fullsize{padding-top:0}:host[data-size=m] .t-group{padding:1.1875rem 0 0 .75rem;font-size:.8125rem}.t-arrow{pointer-events:auto;cursor:pointer}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i2.TuiInputTagComponent, selector: "tui-input-tag", inputs: ["separator", "search", "editable", "tagValidator", "expandable", "rows", "inputHidden", "uniqueTags", "maxLength", "placeholder", "disabledItemHandler", "pseudoFocused"], outputs: ["searchChange"] }], directives: [{ type: i3.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i3.TuiPreventDefaultDirective, selector: "[tuiPreventDefault]", inputs: ["tuiPreventDefault"] }], pipes: { "tuiMapper": i3.TuiMapperPipe }, viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush });
234
+ ], queries: [{ propertyName: "accessor", first: true, predicate: TUI_DATA_LIST_ACCESSOR, descendants: true }, { propertyName: "nativeSelect", first: true, predicate: AbstractTuiNativeMultiSelect, descendants: true, static: true }, { propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "hostedDropdown", first: true, predicate: TuiHostedDropdownComponent, descendants: true }, { propertyName: "input", first: true, predicate: TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativeDropdownMode\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n automation-id=\"tui-multi-select__input\"\n class=\"t-input\"\n [nativeId]=\"nativeId\"\n [tuiTextfieldIcon]=\"icon\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerWrapper\"\n [readOnly]=\"readOnly\"\n [inputHidden]=\"!editable\"\n [pseudoHover]=\"pseudoHover\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoInvalid]=\"computedInvalid\"\n [editable]=\"false\"\n [expandable]=\"expandable\"\n [removable]=\"!nativeDropdownMode\"\n [search]=\"searchOrSpace\"\n [rows]=\"rows\"\n [ngModel]=\"computedValue | tuiMapper : valueMapper : stringify\"\n (ngModelChange)=\"onInput($event)\"\n (searchChange)=\"onSearch($event)\"\n (keydown.space)=\"onSpace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (click.prevent)=\"onClick(inputTag)\"\n >\n <ng-content></ng-content>\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n ></ng-content>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n ></ng-container>\n </tui-input-tag>\n\n <div\n class=\"t-wrapper\"\n [class.t-wrapper_disabled]=\"disabled\"\n >\n <div\n *ngIf=\"computedGroup\"\n class=\"t-group\"\n [class.t-group_fullsize]=\"inputTag.labelOutside\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n\n <ng-template #icon>\n <div\n *ngIf=\"arrow\"\n tuiWrapper\n appearance=\"icon\"\n automation-id=\"tui-multi-select__arrow\"\n tuiPreventDefault=\"mousedown\"\n class=\"t-arrow\"\n [class.t-arrow_native-dropdown]=\"nativeDropdownMode\"\n >\n <ng-container *polymorpheusOutlet=\"arrow as text\">\n {{ text }}\n </ng-container>\n </div>\n </ng-template>\n </div>\n</tui-hosted-dropdown>\n", styles: [":host{position:relative;display:block;border-radius:var(--tui-radius-m)}:host._disabled{pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-input{border-radius:inherit}:host:not(._editable):not(._readonly) .t-input{cursor:pointer}.t-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none;justify-content:flex-end}.t-wrapper_disabled{opacity:var(--tui-disabled-opacity)}:host[data-size=s] .t-wrapper{height:var(--tui-height-s)}:host[data-size=m] .t-wrapper{height:var(--tui-height-m)}:host[data-size=l] .t-wrapper{height:var(--tui-height-l)}.t-group{display:flex;flex:1;align-items:center;padding:1.6875rem 0 .5625rem 1rem;overflow:hidden}.t-group_fullsize{padding-top:.0625rem;padding-bottom:0}:host[data-size=m] .t-group_fullsize.t-group_fullsize{padding-top:0}:host[data-size=m] .t-group{padding:1.1875rem 0 0 .75rem;font-size:.8125rem}.t-arrow{pointer-events:auto;cursor:pointer}.t-arrow_native-dropdown{pointer-events:none}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i2.TuiInputTagComponent, selector: "tui-input-tag", inputs: ["separator", "search", "editable", "tagValidator", "expandable", "rows", "inputHidden", "uniqueTags", "maxLength", "placeholder", "removable", "disabledItemHandler", "pseudoFocused"], outputs: ["searchChange"] }], directives: [{ type: i3.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i3.TuiPreventDefaultDirective, selector: "[tuiPreventDefault]", inputs: ["tuiPreventDefault"] }], pipes: { "tuiMapper": i3.TuiMapperPipe }, viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush });
157
235
  __decorate([
158
236
  tuiDefaultProp()
159
237
  ], TuiMultiSelectComponent.prototype, "stringify", void 0);
@@ -218,9 +296,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
218
296
  }] }, { type: i1.TuiTextfieldController, decorators: [{
219
297
  type: Inject,
220
298
  args: [TUI_TEXTFIELD_WATCHED_CONTROLLER]
299
+ }] }, { type: undefined, decorators: [{
300
+ type: Inject,
301
+ args: [TUI_IS_MOBILE]
221
302
  }] }]; }, propDecorators: { accessor: [{
222
303
  type: ContentChild,
223
304
  args: [TUI_DATA_LIST_ACCESSOR]
305
+ }], nativeSelect: [{
306
+ type: ContentChild,
307
+ args: [AbstractTuiNativeMultiSelect, { static: true }]
224
308
  }], hostedDropdown: [{
225
309
  type: ViewChild,
226
310
  args: [TuiHostedDropdownComponent]
@@ -354,7 +438,7 @@ class TuiMultiSelectGroupComponent {
354
438
  }
355
439
  }
356
440
  TuiMultiSelectGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMultiSelectGroupComponent, deps: [{ token: TUI_MULTI_SELECT_TEXTS }, { token: TUI_DATA_LIST_HOST }, { token: NgControl }], target: i0.ɵɵFactoryTarget.Component });
357
- TuiMultiSelectGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMultiSelectGroupComponent, selector: "tui-opt-group[tuiMultiSelectGroup]", inputs: { label: "label" }, queries: [{ propertyName: "options", predicate: TuiOptionComponent }], ngImport: i0, template: "<span\n *tuiLet=\"value$ | async as value\"\n class=\"t-wrapper\"\n>\n <span class=\"t-label\">{{ label }}</span>\n <button\n *ngIf=\"label && !(empty$ | async)\"\n tuiLink\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"!!(disabled$ | async)\"\n (click)=\"onClick(value)\"\n >\n {{ (multiSelectTexts$ | async)?.[value ? 'none' : 'all'] }}\n </button>\n</span>\n<ng-content></ng-content>\n", styles: [":host:before{display:none}.t-wrapper{display:flex;align-items:flex-start}.t-label:not(:empty){flex:1;padding:.75rem 1rem .25rem}.t-button{margin:.75rem 1rem 0 auto;line-height:1rem}\n"], components: [{ type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i3.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
441
+ TuiMultiSelectGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMultiSelectGroupComponent, selector: "tui-opt-group[tuiMultiSelectGroup]", inputs: { label: "label" }, queries: [{ propertyName: "options", predicate: TuiOptionComponent }], ngImport: i0, template: "<span\n *tuiLet=\"value$ | async as value\"\n class=\"t-wrapper\"\n>\n <span class=\"t-label\">{{ label }}</span>\n <button\n *ngIf=\"label && !(empty$ | async)\"\n tuiLink\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"!!(disabled$ | async)\"\n (click)=\"onClick(value)\"\n >\n {{ (multiSelectTexts$ | async)?.[value ? 'none' : 'all'] }}\n </button>\n</span>\n<ng-content></ng-content>\n", styles: [":host:before{display:none}.t-wrapper{display:flex;align-items:flex-start}.t-label:not(:empty){flex:1;padding:.75rem 1rem .25rem}.t-button{margin:.75rem 1rem 0 auto}\n"], components: [{ type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i3.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
358
442
  __decorate([
359
443
  tuiDefaultProp()
360
444
  ], TuiMultiSelectGroupComponent.prototype, "label", void 0);
@@ -461,13 +545,121 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
461
545
  }]
462
546
  }] });
463
547
 
548
+ class TuiNativeMultiSelectComponent extends AbstractTuiNativeMultiSelect {
549
+ constructor() {
550
+ super(...arguments);
551
+ this.items = [];
552
+ }
553
+ }
554
+ TuiNativeMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiNativeMultiSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
555
+ TuiNativeMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiNativeMultiSelectComponent, selector: "select[multiple][tuiSelect]:not([labels])", inputs: { items: "items" }, host: { listeners: { "change": "onValueChange()", "click.stop.silent": "0", "mousedown.stop.silent": "0" }, properties: { "attr.aria-invalid": "host.invalid", "disabled": "host.disabled || control.readOnly", "tabIndex": "host.focusable ? 0 : -1" } }, providers: [
556
+ tuiAsDataList(TuiNativeMultiSelectComponent),
557
+ {
558
+ provide: TemplateRef,
559
+ deps: [TuiNativeMultiSelectComponent],
560
+ useFactory: ({ datalist }) => datalist,
561
+ },
562
+ {
563
+ provide: AbstractTuiNativeMultiSelect,
564
+ useExisting: TuiNativeMultiSelectComponent,
565
+ },
566
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\"></ng-container>\n\n<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [disabledItemHandler]=\"host.disableItemHandler\"\n></tui-data-list-wrapper>\n<option\n *ngFor=\"let option of items\"\n [selected]=\"option | tuiMapper : selectedMapper : host.value\"\n [value]=\"option\"\n [disabled]=\"host.disableItemHandler(option)\"\n>\n {{ option }}\n</option>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1$1.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "async": i2$1.AsyncPipe, "tuiMapper": i3.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiNativeMultiSelectComponent, decorators: [{
568
+ type: Component,
569
+ args: [{
570
+ selector: 'select[multiple][tuiSelect]:not([labels])',
571
+ templateUrl: './native-multi-select.template.html',
572
+ providers: [
573
+ tuiAsDataList(TuiNativeMultiSelectComponent),
574
+ {
575
+ provide: TemplateRef,
576
+ deps: [TuiNativeMultiSelectComponent],
577
+ useFactory: ({ datalist }) => datalist,
578
+ },
579
+ {
580
+ provide: AbstractTuiNativeMultiSelect,
581
+ useExisting: TuiNativeMultiSelectComponent,
582
+ },
583
+ ],
584
+ host: {
585
+ '[attr.aria-invalid]': 'host.invalid',
586
+ '[disabled]': 'host.disabled || control.readOnly',
587
+ '[tabIndex]': 'host.focusable ? 0 : -1',
588
+ '(change)': 'onValueChange()',
589
+ '(click.stop.silent)': '0',
590
+ '(mousedown.stop.silent)': '0',
591
+ },
592
+ styleUrls: ['./native-multi-select.style.less'],
593
+ changeDetection: ChangeDetectionStrategy.OnPush,
594
+ }]
595
+ }], propDecorators: { items: [{
596
+ type: Input
597
+ }] } });
598
+
599
+ class TuiNativeMultiSelectGroupComponent extends AbstractTuiNativeMultiSelect {
600
+ constructor() {
601
+ super(...arguments);
602
+ this.items = [];
603
+ this.labels = [];
604
+ }
605
+ }
606
+ TuiNativeMultiSelectGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiNativeMultiSelectGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
607
+ TuiNativeMultiSelectGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiNativeMultiSelectGroupComponent, selector: "select[multiple][tuiSelect][labels]", inputs: { items: "items", labels: "labels" }, host: { listeners: { "change": "onValueChange()", "click.stop.silent": "0", "mousedown.stop.silent": "0" }, properties: { "attr.aria-invalid": "host.invalid", "disabled": "host.disabled || control.readOnly", "tabIndex": "host.focusable ? 0 : -1" } }, providers: [
608
+ tuiAsDataList(TuiNativeMultiSelectGroupComponent),
609
+ {
610
+ provide: TemplateRef,
611
+ deps: [TuiNativeMultiSelectGroupComponent],
612
+ useFactory: ({ datalist }) => datalist,
613
+ },
614
+ {
615
+ provide: AbstractTuiNativeMultiSelect,
616
+ useExisting: TuiNativeMultiSelectGroupComponent,
617
+ },
618
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\"></ng-container>\n\n<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [labels]=\"labels\"\n [disabledItemHandler]=\"host.disableItemHandler\"\n></tui-data-list-wrapper>\n<optgroup\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n>\n <option\n *ngFor=\"let option of group\"\n [selected]=\"option | tuiMapper : selectedMapper : host.value\"\n [value]=\"option\"\n [disabled]=\"host.disableItemHandler(option)\"\n >\n {{ option }}\n </option>\n</optgroup>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1$1.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["items", "labels"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "async": i2$1.AsyncPipe, "tuiMapper": i3.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiNativeMultiSelectGroupComponent, decorators: [{
620
+ type: Component,
621
+ args: [{
622
+ selector: 'select[multiple][tuiSelect][labels]',
623
+ templateUrl: './native-multi-select-group.template.html',
624
+ providers: [
625
+ tuiAsDataList(TuiNativeMultiSelectGroupComponent),
626
+ {
627
+ provide: TemplateRef,
628
+ deps: [TuiNativeMultiSelectGroupComponent],
629
+ useFactory: ({ datalist }) => datalist,
630
+ },
631
+ {
632
+ provide: AbstractTuiNativeMultiSelect,
633
+ useExisting: TuiNativeMultiSelectGroupComponent,
634
+ },
635
+ ],
636
+ host: {
637
+ '[attr.aria-invalid]': 'host.invalid',
638
+ '[disabled]': 'host.disabled || control.readOnly',
639
+ '[tabIndex]': 'host.focusable ? 0 : -1',
640
+ '(change)': 'onValueChange()',
641
+ '(click.stop.silent)': '0',
642
+ '(mousedown.stop.silent)': '0',
643
+ },
644
+ styleUrls: ['./native-multi-select.style.less'],
645
+ changeDetection: ChangeDetectionStrategy.OnPush,
646
+ }]
647
+ }], propDecorators: { items: [{
648
+ type: Input
649
+ }], labels: [{
650
+ type: Input
651
+ }] } });
652
+
464
653
  class TuiMultiSelectModule {
465
654
  }
466
655
  TuiMultiSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
467
656
  TuiMultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMultiSelectModule, declarations: [TuiMultiSelectComponent,
468
657
  TuiMultiSelectGroupComponent,
469
658
  TuiMultiSelectGroupDirective,
470
- TuiHideSelectedPipe], imports: [CommonModule,
659
+ TuiHideSelectedPipe,
660
+ TuiNativeMultiSelectComponent,
661
+ TuiNativeMultiSelectGroupComponent,
662
+ TuiMultiSelectDirective], imports: [CommonModule,
471
663
  FormsModule,
472
664
  PolymorpheusModule,
473
665
  TuiWrapperModule,
@@ -480,12 +672,17 @@ TuiMultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ve
480
672
  TuiHostedDropdownModule,
481
673
  TuiInputTagModule,
482
674
  TuiMultiSelectOptionModule,
675
+ TuiDataListWrapperModule,
676
+ TuiMapperPipeModule,
483
677
  TuiLinkModule,
484
678
  TuiDataListModule,
485
679
  TuiTextfieldControllerModule], exports: [TuiMultiSelectComponent,
486
680
  TuiMultiSelectGroupComponent,
487
681
  TuiMultiSelectGroupDirective,
488
- TuiHideSelectedPipe] });
682
+ TuiHideSelectedPipe,
683
+ TuiMultiSelectDirective,
684
+ TuiNativeMultiSelectComponent,
685
+ TuiNativeMultiSelectGroupComponent] });
489
686
  TuiMultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMultiSelectModule, imports: [[
490
687
  CommonModule,
491
688
  FormsModule,
@@ -500,6 +697,8 @@ TuiMultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
500
697
  TuiHostedDropdownModule,
501
698
  TuiInputTagModule,
502
699
  TuiMultiSelectOptionModule,
700
+ TuiDataListWrapperModule,
701
+ TuiMapperPipeModule,
503
702
  TuiLinkModule,
504
703
  TuiDataListModule,
505
704
  TuiTextfieldControllerModule,
@@ -521,6 +720,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
521
720
  TuiHostedDropdownModule,
522
721
  TuiInputTagModule,
523
722
  TuiMultiSelectOptionModule,
723
+ TuiDataListWrapperModule,
724
+ TuiMapperPipeModule,
524
725
  TuiLinkModule,
525
726
  TuiDataListModule,
526
727
  TuiTextfieldControllerModule,
@@ -530,12 +731,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
530
731
  TuiMultiSelectGroupComponent,
531
732
  TuiMultiSelectGroupDirective,
532
733
  TuiHideSelectedPipe,
734
+ TuiNativeMultiSelectComponent,
735
+ TuiNativeMultiSelectGroupComponent,
736
+ TuiMultiSelectDirective,
533
737
  ],
534
738
  exports: [
535
739
  TuiMultiSelectComponent,
536
740
  TuiMultiSelectGroupComponent,
537
741
  TuiMultiSelectGroupDirective,
538
742
  TuiHideSelectedPipe,
743
+ TuiMultiSelectDirective,
744
+ TuiNativeMultiSelectComponent,
745
+ TuiNativeMultiSelectGroupComponent,
539
746
  ],
540
747
  }]
541
748
  }] });
@@ -544,5 +751,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
544
751
  * Generated bundle index. Do not edit.
545
752
  */
546
753
 
547
- export { TUI_MULTI_SELECT_DEFAULT_OPTIONS, TUI_MULTI_SELECT_OPTION, TUI_MULTI_SELECT_OPTIONS, TuiHideSelectedPipe, TuiMultiSelectComponent, TuiMultiSelectGroupComponent, TuiMultiSelectGroupDirective, TuiMultiSelectModule, tuiMultiSelectOptionsProvider };
754
+ export { AbstractTuiNativeMultiSelect, TUI_MULTI_SELECT_DEFAULT_OPTIONS, TUI_MULTI_SELECT_OPTION, TUI_MULTI_SELECT_OPTIONS, TuiHideSelectedPipe, TuiMultiSelectComponent, TuiMultiSelectDirective, TuiMultiSelectGroupComponent, TuiMultiSelectGroupDirective, TuiMultiSelectModule, TuiNativeMultiSelectComponent, TuiNativeMultiSelectGroupComponent, tuiMultiSelectOptionsProvider };
548
755
  //# sourceMappingURL=taiga-ui-kit-components-multi-select.js.map