@taiga-ui/legacy 4.9.0 → 4.11.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.
- package/classes/control.d.ts +1 -1
- package/components/combo-box/combo-box.component.d.ts +2 -1
- package/components/input-phone/input-phone.component.d.ts +2 -1
- package/components/input-phone-international/input-phone-international.component.d.ts +2 -1
- package/components/input-tag/input-tag.component.d.ts +2 -1
- package/components/input-time/input-time.component.d.ts +2 -1
- package/components/multi-select/multi-select.component.d.ts +6 -1
- package/components/select/select.component.d.ts +2 -1
- package/esm2022/classes/control.mjs +5 -5
- package/esm2022/components/arrow/arrow.component.mjs +3 -4
- package/esm2022/components/color-selector/color-edit/color-edit.component.mjs +3 -5
- package/esm2022/components/color-selector/color-picker/color-picker.component.mjs +3 -5
- package/esm2022/components/color-selector/color-selector.component.mjs +3 -5
- package/esm2022/components/color-selector/flat-picker/flat-picker.component.mjs +3 -5
- package/esm2022/components/color-selector/linear-multi-picker/linear-multi-picker.component.mjs +2 -3
- package/esm2022/components/color-selector/linear-picker/linear-picker.component.mjs +3 -5
- package/esm2022/components/color-selector/palette/palette.component.mjs +3 -5
- package/esm2022/components/combo-box/combo-box.component.mjs +11 -13
- package/esm2022/components/input/input.component.mjs +6 -8
- package/esm2022/components/input-color/input-color.component.mjs +3 -4
- package/esm2022/components/input-copy/input-copy.component.mjs +4 -5
- package/esm2022/components/input-date/input-date.component.mjs +4 -5
- package/esm2022/components/input-date-multi/input-date-multi.component.mjs +4 -5
- package/esm2022/components/input-date-range/input-date-range.component.mjs +4 -5
- package/esm2022/components/input-date-time/input-date-time.component.mjs +4 -5
- package/esm2022/components/input-date-time/input-date-time.directive.mjs +2 -2
- package/esm2022/components/input-month/input-month.component.mjs +4 -5
- package/esm2022/components/input-month-range/input-month-range.component.mjs +4 -5
- package/esm2022/components/input-number/input-number.component.mjs +4 -5
- package/esm2022/components/input-password/input-password.component.mjs +4 -5
- package/esm2022/components/input-phone/input-phone.component.mjs +10 -12
- package/esm2022/components/input-phone-international/input-phone-international.component.mjs +11 -12
- package/esm2022/components/input-range/input-range.component.mjs +4 -5
- package/esm2022/components/input-slider/input-slider.component.mjs +4 -5
- package/esm2022/components/input-tag/input-tag.component.mjs +22 -20
- package/esm2022/components/input-time/input-time.component.mjs +14 -15
- package/esm2022/components/input-time/native-time/native-time.component.mjs +2 -3
- package/esm2022/components/input-year/input-year.component.mjs +4 -5
- package/esm2022/components/multi-select/multi-select-group/multi-select-group.component.mjs +2 -3
- package/esm2022/components/multi-select/multi-select.component.mjs +42 -15
- package/esm2022/components/multi-select/native-multi-select/native-multi-select-group.component.mjs +2 -3
- package/esm2022/components/multi-select/native-multi-select/native-multi-select.component.mjs +2 -3
- package/esm2022/components/multi-select-option/multi-select-option.component.mjs +3 -5
- package/esm2022/components/primitive-textfield/primitive-textfield.component.mjs +4 -5
- package/esm2022/components/primitive-textfield/textfield/textfield.component.mjs +2 -3
- package/esm2022/components/primitive-textfield/value-decoration/value-decoration.component.mjs +2 -3
- package/esm2022/components/select/native-select/native-select-group.component.mjs +2 -3
- package/esm2022/components/select/native-select/native-select.component.mjs +2 -3
- package/esm2022/components/select/select.component.mjs +11 -13
- package/esm2022/components/select-option/select-option.component.mjs +3 -5
- package/esm2022/components/sheet/components/sheet/sheet.component.mjs +2 -3
- package/esm2022/components/sheet/components/sheet-bar/sheet-bar.component.mjs +3 -5
- package/esm2022/components/sheet/components/sheet-heading/sheet-heading.component.mjs +3 -5
- package/esm2022/components/sheet/components/sheets-host/sheets-host.component.mjs +3 -5
- package/esm2022/components/svg/svg.component.mjs +3 -5
- package/esm2022/components/table-bar/table-bar.component.mjs +2 -3
- package/esm2022/components/table-bar/table-bars-host.component.mjs +3 -5
- package/esm2022/components/tag/tag.component.mjs +4 -5
- package/esm2022/components/textarea/textarea.component.mjs +4 -5
- package/esm2022/components/tooltip/tooltip.component.mjs +3 -4
- package/esm2022/tokens/is-apple.mjs +3 -3
- package/esm2022/utils/is-apple.mjs +3 -6
- package/fesm2022/taiga-ui-legacy-classes.mjs +4 -4
- package/fesm2022/taiga-ui-legacy-classes.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs +2 -3
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-color-selector.mjs +13 -26
- package/fesm2022/taiga-ui-legacy-components-color-selector.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs +13 -15
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-color.mjs +2 -3
- package/fesm2022/taiga-ui-legacy-components-input-color.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-copy.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-copy.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +4 -5
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-month.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-password.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-password.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs +10 -11
- package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs +12 -14
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +23 -21
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs +18 -21
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-year.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-year.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input.mjs +5 -7
- package/fesm2022/taiga-ui-legacy-components-input.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +2 -4
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +51 -27
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +5 -8
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs +2 -4
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-select.mjs +10 -14
- package/fesm2022/taiga-ui-legacy-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-sheet.mjs +7 -14
- package/fesm2022/taiga-ui-legacy-components-sheet.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-svg.mjs +2 -4
- package/fesm2022/taiga-ui-legacy-components-svg.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-table-bar.mjs +3 -6
- package/fesm2022/taiga-ui-legacy-components-table-bar.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-tag.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +2 -3
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-tokens.mjs +2 -2
- package/fesm2022/taiga-ui-legacy-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-utils.mjs +2 -5
- package/fesm2022/taiga-ui-legacy-utils.mjs.map +1 -1
- package/package.json +25 -25
- package/styles/mixins/textfield.less +5 -1
- package/utils/icons-path-factory.d.ts +1 -1
- package/utils/is-apple.d.ts +2 -1
|
@@ -18,13 +18,11 @@ class TuiMultiSelectOptionComponent extends TuiSelectOptionComponent {
|
|
|
18
18
|
this.value.some((item) => this.matcher(item, value)));
|
|
19
19
|
}
|
|
20
20
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectOptionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectOptionComponent, selector: "tui-multi-select-option",
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectOptionComponent, selector: "tui-multi-select-option", usesInheritance: true, ngImport: i0, template: "<input\n tuiCheckbox\n type=\"checkbox\"\n class=\"t-checkbox\"\n [checked]=\"selected$ | async\"\n [size]=\"size\"\n/>\n<ng-container [ngTemplateOutlet]=\"context.$implicit\" />\n", styles: ["@keyframes retrigger{0%{left:1px}to{left:2px}}:host{display:flex;flex:1;align-items:center;animation:retrigger 1s;overflow:hidden}.t-checkbox{margin-right:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TuiCheckbox, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: ["size"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22
22
|
}
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectOptionComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
|
-
args: [{ standalone: false, selector: 'tui-multi-select-option', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
26
|
-
ngSkipHydration: 'true',
|
|
27
|
-
}, template: "<input\n tuiCheckbox\n type=\"checkbox\"\n class=\"t-checkbox\"\n [checked]=\"selected$ | async\"\n [size]=\"size\"\n/>\n<ng-container [ngTemplateOutlet]=\"context.$implicit\" />\n", styles: ["@keyframes retrigger{0%{left:1px}to{left:2px}}:host{display:flex;flex:1;align-items:center;animation:retrigger 1s;overflow:hidden}.t-checkbox{margin-right:.75rem}\n"] }]
|
|
25
|
+
args: [{ standalone: false, selector: 'tui-multi-select-option', changeDetection: ChangeDetectionStrategy.OnPush, template: "<input\n tuiCheckbox\n type=\"checkbox\"\n class=\"t-checkbox\"\n [checked]=\"selected$ | async\"\n [size]=\"size\"\n/>\n<ng-container [ngTemplateOutlet]=\"context.$implicit\" />\n", styles: ["@keyframes retrigger{0%{left:1px}to{left:2px}}:host{display:flex;flex:1;align-items:center;animation:retrigger 1s;overflow:hidden}.t-checkbox{margin-right:.75rem}\n"] }]
|
|
28
26
|
}] });
|
|
29
27
|
|
|
30
28
|
class TuiMultiSelectOptionModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-components-multi-select-option.mjs","sources":["../../../projects/legacy/components/multi-select-option/multi-select-option.component.ts","../../../projects/legacy/components/multi-select-option/multi-select-option.template.html","../../../projects/legacy/components/multi-select-option/multi-select-option.module.ts","../../../projects/legacy/components/multi-select-option/taiga-ui-legacy-components-multi-select-option.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\nimport {TuiSelectOptionComponent} from '@taiga-ui/legacy/components/select-option';\n\n@Component({\n standalone: false,\n selector: 'tui-multi-select-option',\n templateUrl: './multi-select-option.template.html',\n styleUrls: ['./multi-select-option.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components-multi-select-option.mjs","sources":["../../../projects/legacy/components/multi-select-option/multi-select-option.component.ts","../../../projects/legacy/components/multi-select-option/multi-select-option.template.html","../../../projects/legacy/components/multi-select-option/multi-select-option.module.ts","../../../projects/legacy/components/multi-select-option/taiga-ui-legacy-components-multi-select-option.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\nimport {TuiSelectOptionComponent} from '@taiga-ui/legacy/components/select-option';\n\n@Component({\n standalone: false,\n selector: 'tui-multi-select-option',\n templateUrl: './multi-select-option.template.html',\n styleUrls: ['./multi-select-option.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMultiSelectOptionComponent<\n T extends any[],\n> extends TuiSelectOptionComponent<T> {\n protected get size(): TuiSizeS {\n return this.dataList?.size === 'l' ? 'm' : 's';\n }\n\n protected override get selected(): boolean {\n const {value} = this.option;\n\n return (\n tuiIsPresent(value) &&\n tuiIsPresent(this.value) &&\n this.value.some((item) => this.matcher(item, value))\n );\n }\n}\n","<input\n tuiCheckbox\n type=\"checkbox\"\n class=\"t-checkbox\"\n [checked]=\"selected$ | async\"\n [size]=\"size\"\n/>\n<ng-container [ngTemplateOutlet]=\"context.$implicit\" />\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiCheckbox} from '@taiga-ui/kit/components/checkbox';\n\nimport {TuiMultiSelectOptionComponent} from './multi-select-option.component';\n\n@NgModule({\n imports: [CommonModule, TuiCheckbox],\n declarations: [TuiMultiSelectOptionComponent],\n exports: [TuiMultiSelectOptionComponent],\n})\nexport class TuiMultiSelectOptionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAKA,MAOa,6BAEX,SAAQ,wBAA2B,CAAA;AACjC,IAAA,IAAc,IAAI,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KAClD;AAED,IAAA,IAAuB,QAAQ,GAAA;AAC3B,QAAA,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AAE5B,QAAA,QACI,YAAY,CAAC,KAAK,CAAC;AACnB,YAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EACtD;KACL;+GAfQ,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,sFCZ1C,qMAQA,EAAA,MAAA,EAAA,CAAA,sKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDIa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,EACP,QAAA,EAAA,yBAAyB,EAGlB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qMAAA,EAAA,MAAA,EAAA,CAAA,sKAAA,CAAA,EAAA,CAAA;;;AEJnD,MAKa,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,iBAHpB,6BAA6B,CAAA,EAAA,OAAA,EAAA,CADlC,YAAY,EAAE,WAAW,aAEzB,6BAA6B,CAAA,EAAA,CAAA,CAAA,EAAA;gHAE9B,0BAA0B,EAAA,OAAA,EAAA,CAJzB,YAAY,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;oBACpC,YAAY,EAAE,CAAC,6BAA6B,CAAC;oBAC7C,OAAO,EAAE,CAAC,6BAA6B,CAAC;AAC3C,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
|
|
@@ -5,33 +5,33 @@ import { tuiCreateToken, tuiProvideOptions, tuiIsString, tuiArrayToggle, tuiPure
|
|
|
5
5
|
import { tuiIsFlat } from '@taiga-ui/kit/utils';
|
|
6
6
|
import { TUI_TRUE_HANDLER, EMPTY_ARRAY, EMPTY_QUERY, TUI_DEFAULT_IDENTITY_MATCHER, EMPTY_FUNCTION } from '@taiga-ui/cdk/constants';
|
|
7
7
|
import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
|
|
8
|
+
import { tuiGetClipboardDataText } from '@taiga-ui/cdk/utils/dom';
|
|
8
9
|
import { tuiIsNativeFocused } from '@taiga-ui/cdk/utils/focus';
|
|
9
10
|
import * as i2$2 from '@taiga-ui/core/components/data-list';
|
|
10
11
|
import { tuiAsDataListHost, TUI_DATA_LIST_ACCESSOR, TuiDataListDirective, TUI_DATA_LIST_HOST, TuiOption, tuiAsOptionContent, tuiAsDataList, TuiDataList } from '@taiga-ui/core/components/data-list';
|
|
11
|
-
import * as i1
|
|
12
|
-
import { TuiDropdownOpen, TuiDropdown } from '@taiga-ui/core/directives/dropdown';
|
|
12
|
+
import * as i1 from '@taiga-ui/core/directives/dropdown';
|
|
13
|
+
import { TuiDropdownOpen, TuiDropdownFixed, TuiDropdown } from '@taiga-ui/core/directives/dropdown';
|
|
13
14
|
import { TUI_ITEMS_HANDLERS, TUI_MULTI_SELECT_TEXTS } from '@taiga-ui/kit/tokens';
|
|
14
15
|
import { AbstractTuiNativeSelect, AbstractTuiMultipleControl, TuiStringifiableItem, tuiAsControl, AbstractTuiTextfieldHost } from '@taiga-ui/legacy/classes';
|
|
15
16
|
import { TUI_ARROW_MODE, TuiArrowComponent } from '@taiga-ui/legacy/components/arrow';
|
|
16
|
-
import * as
|
|
17
|
-
import { TuiInputTagComponent, TuiInputTagModule } from '@taiga-ui/legacy/components/input-tag';
|
|
18
|
-
import * as
|
|
17
|
+
import * as i6 from '@taiga-ui/legacy/components/input-tag';
|
|
18
|
+
import { TUI_INPUT_TAG_OPTIONS, TuiInputTagComponent, TuiInputTagModule } from '@taiga-ui/legacy/components/input-tag';
|
|
19
|
+
import * as i5 from '@taiga-ui/legacy/directives';
|
|
19
20
|
import { TUI_TEXTFIELD_WATCHED_CONTROLLER, TEXTFIELD_CONTROLLER_PROVIDER, TuiWrapperModule, TuiTextfieldControllerModule, TuiLegacyDropdownOpenMonitorDirective } from '@taiga-ui/legacy/directives';
|
|
20
21
|
import { tuiAsFocusableItemAccessor, tuiAsTextfieldHost } from '@taiga-ui/legacy/tokens';
|
|
21
|
-
import
|
|
22
|
-
import * as i1 from '@angular/common';
|
|
22
|
+
import * as i1$1 from '@angular/common';
|
|
23
23
|
import { CommonModule } from '@angular/common';
|
|
24
24
|
import * as i2 from '@angular/forms';
|
|
25
25
|
import { NgControl, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
26
|
-
import * as
|
|
26
|
+
import * as i4 from '@taiga-ui/polymorpheus';
|
|
27
27
|
import { PolymorpheusComponent, PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
|
|
28
|
-
import * as i6 from '@taiga-ui/cdk/pipes/mapper';
|
|
28
|
+
import * as i6$1 from '@taiga-ui/cdk/pipes/mapper';
|
|
29
29
|
import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
|
|
30
30
|
import * as i2$1 from '@taiga-ui/cdk/directives/let';
|
|
31
31
|
import { TuiLet } from '@taiga-ui/cdk/directives/let';
|
|
32
|
-
import * as i3
|
|
32
|
+
import * as i3 from '@taiga-ui/core/components/link';
|
|
33
33
|
import { TuiLink } from '@taiga-ui/core/components/link';
|
|
34
|
-
import * as i3$
|
|
34
|
+
import * as i3$1 from '@taiga-ui/kit/components/data-list-wrapper';
|
|
35
35
|
import { TuiDataListWrapper } from '@taiga-ui/kit/components/data-list-wrapper';
|
|
36
36
|
import * as i7 from '@taiga-ui/kit/pipes/stringify-content';
|
|
37
37
|
import { TuiStringifyContentPipe } from '@taiga-ui/kit/pipes/stringify-content';
|
|
@@ -73,6 +73,7 @@ class TuiMultiSelectComponent extends AbstractTuiMultipleControl {
|
|
|
73
73
|
this.arrowMode = inject(TUI_ARROW_MODE);
|
|
74
74
|
this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
|
|
75
75
|
this.options = inject(TUI_MULTI_SELECT_OPTIONS);
|
|
76
|
+
this.inputTagOptions = inject(TUI_INPUT_TAG_OPTIONS);
|
|
76
77
|
this.open = false;
|
|
77
78
|
this.controller = inject(TUI_TEXTFIELD_WATCHED_CONTROLLER);
|
|
78
79
|
this.isMobile = inject(TUI_IS_MOBILE);
|
|
@@ -164,6 +165,26 @@ class TuiMultiSelectComponent extends AbstractTuiMultipleControl {
|
|
|
164
165
|
this.value = options[0] ? tuiArrayToggle(value, options[0]) : value;
|
|
165
166
|
this.updateSearch(null);
|
|
166
167
|
}
|
|
168
|
+
onKeyDown(event) {
|
|
169
|
+
if (event.key === this.inputTagOptions.separator) {
|
|
170
|
+
this.onEnter(event);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
onPaste(event) {
|
|
174
|
+
const pasted = tuiGetClipboardDataText(event);
|
|
175
|
+
const tags = pasted
|
|
176
|
+
.split(this.inputTagOptions.separator)
|
|
177
|
+
.map((tag) => tag.trim());
|
|
178
|
+
const options = this.accessor?.getOptions() ?? [];
|
|
179
|
+
const separator = tuiIsString(this.inputTagOptions.separator)
|
|
180
|
+
? this.inputTagOptions.separator
|
|
181
|
+
: ',';
|
|
182
|
+
const matches = options?.filter((option) => tags.includes(this.stringify(option))) ?? [];
|
|
183
|
+
const matchingStrings = matches.map((v) => String(v));
|
|
184
|
+
const invalid = tags.filter((value) => !matchingStrings.includes(value));
|
|
185
|
+
this.value = this.filterValue([...this.value, ...matches]);
|
|
186
|
+
this.updateSearch(invalid.length ? invalid.join(separator) : null);
|
|
187
|
+
}
|
|
167
188
|
onClick({ nativeFocusableElement }) {
|
|
168
189
|
if (this.interactive &&
|
|
169
190
|
nativeFocusableElement &&
|
|
@@ -177,6 +198,13 @@ class TuiMultiSelectComponent extends AbstractTuiMultipleControl {
|
|
|
177
198
|
onActiveZone(active) {
|
|
178
199
|
this.updateFocused(active);
|
|
179
200
|
}
|
|
201
|
+
filterValue(value) {
|
|
202
|
+
const seen = new Set();
|
|
203
|
+
return value
|
|
204
|
+
.reverse()
|
|
205
|
+
.filter((item) => item && !seen.has(item) && seen.add(item))
|
|
206
|
+
.reverse();
|
|
207
|
+
}
|
|
180
208
|
updateSearch(search) {
|
|
181
209
|
if (this.search === search) {
|
|
182
210
|
return;
|
|
@@ -185,12 +213,12 @@ class TuiMultiSelectComponent extends AbstractTuiMultipleControl {
|
|
|
185
213
|
this.searchChange.emit(search);
|
|
186
214
|
}
|
|
187
215
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
188
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectComponent, selector: "tui-multi-select", inputs: { stringify: "stringify", identityMatcher: "identityMatcher", search: "search", placeholder: "placeholder", editable: "editable", disabledItemHandler: "disabledItemHandler", valueContent: "valueContent", tagValidator: "tagValidator", rows: "rows", autoColor: "autoColor" }, outputs: { searchChange: "searchChange" }, host: {
|
|
216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectComponent, selector: "tui-multi-select", inputs: { stringify: "stringify", identityMatcher: "identityMatcher", search: "search", placeholder: "placeholder", editable: "editable", disabledItemHandler: "disabledItemHandler", valueContent: "valueContent", tagValidator: "tagValidator", rows: "rows", autoColor: "autoColor" }, outputs: { searchChange: "searchChange" }, host: { properties: { "attr.data-size": "size", "class._editable": "editable", "class._expandable": "rows > 1" } }, providers: [
|
|
189
217
|
tuiAsFocusableItemAccessor(TuiMultiSelectComponent),
|
|
190
218
|
tuiAsControl(TuiMultiSelectComponent),
|
|
191
219
|
tuiAsDataListHost(TuiMultiSelectComponent),
|
|
192
220
|
TEXTFIELD_CONTROLLER_PROVIDER,
|
|
193
|
-
], 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: "dropdown", first: true, predicate: TuiDropdownOpen, descendants: true }, { propertyName: "input", first: true, predicate: TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !nativeDropdownMode\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n automation-id=\"tui-multi-select__input\"\n class=\"t-input\"\n [autoColor]=\"autoColor\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"false\"\n [inputHidden]=\"!editable\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"computedValue | tuiMapper: valueMapper : stringify\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoOpen]=\"open\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [search]=\"searchOrSpace\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n (click.prevent)=\"onClick(inputTag)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.space)=\"onSpace($event)\"\n (ngModelChange)=\"onInput($event)\"\n (searchChange)=\"onSearch($event)\"\n >\n <ng-content />\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n />\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n />\n\n <div\n *ngIf=\"computedGroup\"\n ngProjectAs=\"tuiContent\"\n class=\"t-content\"\n [class.t-content_fullsize]=\"inputTag.labelOutside\"\n >\n <span\n *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </span>\n </div>\n </tui-input-tag>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n automation-id=\"tui-multi-select__arrow\"\n tuiWrapper\n class=\"t-arrow\"\n [class.t-arrow_native-dropdown]=\"nativeDropdownMode\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n <ng-container *polymorpheusOutlet=\"arrow as text\">\n {{ text }}\n </ng-container>\n </div>\n </ng-template>\n</div>\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-content{display:flex;align-items:center;pointer-events:none;box-sizing:border-box}.t-primitive{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-arrow{pointer-events:auto;cursor:pointer}.t-arrow_native-dropdown{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type:
|
|
221
|
+
], 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: "dropdown", first: true, predicate: TuiDropdownOpen, descendants: true }, { propertyName: "input", first: true, predicate: TuiInputTagComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownFixed }], ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !nativeDropdownMode\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n automation-id=\"tui-multi-select__input\"\n class=\"t-input\"\n [autoColor]=\"autoColor\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"false\"\n [inputHidden]=\"!editable\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"computedValue | tuiMapper: valueMapper : stringify\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoOpen]=\"open\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [search]=\"searchOrSpace\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n (click.prevent)=\"onClick(inputTag)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.space)=\"onSpace($event)\"\n (keydown)=\"onKeyDown($event)\"\n (ngModelChange)=\"onInput($event)\"\n (paste.capture.stop.prevent)=\"onPaste($event)\"\n (searchChange)=\"onSearch($event)\"\n >\n <ng-content />\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n />\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n />\n\n <div\n *ngIf=\"computedGroup\"\n ngProjectAs=\"tuiContent\"\n class=\"t-content\"\n [class.t-content_fullsize]=\"inputTag.labelOutside\"\n >\n <span\n *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </span>\n </div>\n </tui-input-tag>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n automation-id=\"tui-multi-select__arrow\"\n tuiWrapper\n class=\"t-arrow\"\n [class.t-arrow_native-dropdown]=\"nativeDropdownMode\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n <ng-container *polymorpheusOutlet=\"arrow as text\">\n {{ text }}\n </ng-container>\n </div>\n </ng-template>\n</div>\n", styles: [":host{position:relative;display:block;border-radius:var(--tui-radius-m)}:host._disabled,:host :host-context(*: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-content{display:flex;align-items:center;pointer-events:none;box-sizing:border-box}.t-primitive{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-arrow{pointer-events:auto;cursor:pointer}.t-arrow_native-dropdown{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i5.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { kind: "component", type: i6.TuiInputTagComponent, selector: "tui-input-tag", inputs: ["separator", "search", "editable", "tagValidator", "rows", "inputHidden", "uniqueTags", "autoColor", "maxLength", "placeholder", "removable", "pseudoOpen", "disabledItemHandler", "pseudoFocused"], outputs: ["searchChange"] }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }, { kind: "directive", type: i5.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i5.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "pipe", type: i6$1.TuiMapperPipe, name: "tuiMapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
194
222
|
}
|
|
195
223
|
__decorate([
|
|
196
224
|
tuiPure
|
|
@@ -202,12 +230,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
202
230
|
tuiAsControl(TuiMultiSelectComponent),
|
|
203
231
|
tuiAsDataListHost(TuiMultiSelectComponent),
|
|
204
232
|
TEXTFIELD_CONTROLLER_PROVIDER,
|
|
205
|
-
],
|
|
206
|
-
ngSkipHydration: 'true',
|
|
233
|
+
], hostDirectives: [TuiDropdownFixed], host: {
|
|
207
234
|
'[attr.data-size]': 'size',
|
|
208
235
|
'[class._editable]': 'editable',
|
|
209
236
|
'[class._expandable]': 'rows > 1',
|
|
210
|
-
}, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !nativeDropdownMode\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n automation-id=\"tui-multi-select__input\"\n class=\"t-input\"\n [autoColor]=\"autoColor\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"false\"\n [inputHidden]=\"!editable\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"computedValue | tuiMapper: valueMapper : stringify\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoOpen]=\"open\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [search]=\"searchOrSpace\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n (click.prevent)=\"onClick(inputTag)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.space)=\"onSpace($event)\"\n (ngModelChange)=\"onInput($event)\"\n (searchChange)=\"onSearch($event)\"\n >\n <ng-content />\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n />\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n />\n\n <div\n *ngIf=\"computedGroup\"\n ngProjectAs=\"tuiContent\"\n class=\"t-content\"\n [class.t-content_fullsize]=\"inputTag.labelOutside\"\n >\n <span\n *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </span>\n </div>\n </tui-input-tag>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n automation-id=\"tui-multi-select__arrow\"\n tuiWrapper\n class=\"t-arrow\"\n [class.t-arrow_native-dropdown]=\"nativeDropdownMode\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n <ng-container *polymorpheusOutlet=\"arrow as text\">\n {{ text }}\n </ng-container>\n </div>\n </ng-template>\n</div>\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-content{display:flex;align-items:center;pointer-events:none;box-sizing:border-box}.t-primitive{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-arrow{pointer-events:auto;cursor:pointer}.t-arrow_native-dropdown{pointer-events:none}\n"] }]
|
|
237
|
+
}, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !nativeDropdownMode\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n automation-id=\"tui-multi-select__input\"\n class=\"t-input\"\n [autoColor]=\"autoColor\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"false\"\n [inputHidden]=\"!editable\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"computedValue | tuiMapper: valueMapper : stringify\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoOpen]=\"open\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [search]=\"searchOrSpace\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n (click.prevent)=\"onClick(inputTag)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.space)=\"onSpace($event)\"\n (keydown)=\"onKeyDown($event)\"\n (ngModelChange)=\"onInput($event)\"\n (paste.capture.stop.prevent)=\"onPaste($event)\"\n (searchChange)=\"onSearch($event)\"\n >\n <ng-content />\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n />\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n />\n\n <div\n *ngIf=\"computedGroup\"\n ngProjectAs=\"tuiContent\"\n class=\"t-content\"\n [class.t-content_fullsize]=\"inputTag.labelOutside\"\n >\n <span\n *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </span>\n </div>\n </tui-input-tag>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n automation-id=\"tui-multi-select__arrow\"\n tuiWrapper\n class=\"t-arrow\"\n [class.t-arrow_native-dropdown]=\"nativeDropdownMode\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n <ng-container *polymorpheusOutlet=\"arrow as text\">\n {{ text }}\n </ng-container>\n </div>\n </ng-template>\n</div>\n", styles: [":host{position:relative;display:block;border-radius:var(--tui-radius-m)}:host._disabled,:host :host-context(*: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-content{display:flex;align-items:center;pointer-events:none;box-sizing:border-box}.t-primitive{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-arrow{pointer-events:auto;cursor:pointer}.t-arrow_native-dropdown{pointer-events:none}\n"] }]
|
|
211
238
|
}], propDecorators: { accessor: [{
|
|
212
239
|
type: ContentChild,
|
|
213
240
|
args: [TUI_DATA_LIST_ACCESSOR]
|
|
@@ -363,7 +390,7 @@ class TuiMultiSelectGroupComponent {
|
|
|
363
390
|
return items.map(({ value }) => value).filter(tuiIsPresent);
|
|
364
391
|
}
|
|
365
392
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
366
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectGroupComponent, selector: "tui-opt-group[tuiMultiSelectGroup]", inputs: { label: "label" }, host: {
|
|
393
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectGroupComponent, selector: "tui-opt-group[tuiMultiSelectGroup]", inputs: { label: "label" }, host: { properties: { "class._label": "label" } }, queries: [{ propertyName: "options", predicate: TuiOption }], 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 />\n", styles: [":host._label:before{display:none}:host:not(:first-of-type) .t-label:not(:empty){padding-top:1.25rem}:host:not(:first-of-type) .t-button{margin-top:1.25rem}.t-wrapper{display:flex;align-items:flex-start}.t-label:not(:empty){flex:1;padding:.75rem 1rem .25rem .625rem}.t-button{margin:.75rem 1rem 0 auto}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: i3.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
367
394
|
}
|
|
368
395
|
__decorate([
|
|
369
396
|
tuiPure
|
|
@@ -386,7 +413,6 @@ __decorate([
|
|
|
386
413
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectGroupComponent, decorators: [{
|
|
387
414
|
type: Component,
|
|
388
415
|
args: [{ standalone: false, selector: 'tui-opt-group[tuiMultiSelectGroup]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
389
|
-
ngSkipHydration: 'true',
|
|
390
416
|
'[class._label]': 'label',
|
|
391
417
|
}, 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 />\n", styles: [":host._label:before{display:none}:host:not(:first-of-type) .t-label:not(:empty){padding-top:1.25rem}:host:not(:first-of-type) .t-button{margin-top:1.25rem}.t-wrapper{display:flex;align-items:flex-start}.t-label:not(:empty){flex:1;padding:.75rem 1rem .25rem .625rem}.t-button{margin:.75rem 1rem 0 auto}\n"] }]
|
|
392
418
|
}], propDecorators: { options: [{
|
|
@@ -463,7 +489,7 @@ class TuiNativeMultiSelectComponent extends AbstractTuiNativeMultiSelect {
|
|
|
463
489
|
this.host.onSelectionChange(value);
|
|
464
490
|
}
|
|
465
491
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNativeMultiSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
466
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiNativeMultiSelectComponent, selector: "select[multiple][tuiSelect]:not([labels])", inputs: { items: "items" }, host: {
|
|
492
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiNativeMultiSelectComponent, selector: "select[multiple][tuiSelect]:not([labels])", inputs: { items: "items" }, host: { listeners: { "change": "onValueChange($event.target.selectedOptions)", "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: [
|
|
467
493
|
tuiAsDataList(TuiNativeMultiSelectComponent),
|
|
468
494
|
tuiProvide(AbstractTuiNativeMultiSelect, TuiNativeMultiSelectComponent),
|
|
469
495
|
{
|
|
@@ -471,7 +497,7 @@ class TuiNativeMultiSelectComponent extends AbstractTuiNativeMultiSelect {
|
|
|
471
497
|
deps: [TuiNativeMultiSelectComponent],
|
|
472
498
|
useFactory: ({ datalist }) => datalist,
|
|
473
499
|
},
|
|
474
|
-
], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\" />\n\n<tui-data-list-wrapper\n *tuiDataList\n tuiMultiSelectGroup\n [disabledItemHandler]=\"disabledItemHandler || host.disableItemHandler\"\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"items\"\n/>\n<option\n *ngFor=\"let option of items\"\n [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : host.disableItemHandler(option)\"\n [selected]=\"option | tuiMapper: selectedMapper : control.value\"\n [value]=\"stringify(option)\"\n>\n {{ stringify(option) }}\n</option>\n", styles: [":host{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i3$
|
|
500
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\" />\n\n<tui-data-list-wrapper\n *tuiDataList\n tuiMultiSelectGroup\n [disabledItemHandler]=\"disabledItemHandler || host.disableItemHandler\"\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"items\"\n/>\n<option\n *ngFor=\"let option of items\"\n [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : host.disableItemHandler(option)\"\n [selected]=\"option | tuiMapper: selectedMapper : control.value\"\n [value]=\"stringify(option)\"\n>\n {{ stringify(option) }}\n</option>\n", styles: [":host{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i3$1.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "directive", type: TuiMultiSelectGroupDirective, selector: "[tuiMultiSelectGroup]" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.TuiMapperPipe, name: "tuiMapper" }, { kind: "pipe", type: i7.TuiStringifyContentPipe, name: "tuiStringifyContent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
475
501
|
}
|
|
476
502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNativeMultiSelectComponent, decorators: [{
|
|
477
503
|
type: Component,
|
|
@@ -484,7 +510,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
484
510
|
useFactory: ({ datalist }) => datalist,
|
|
485
511
|
},
|
|
486
512
|
], host: {
|
|
487
|
-
ngSkipHydration: 'true',
|
|
488
513
|
'[attr.aria-invalid]': 'host.invalid',
|
|
489
514
|
'[disabled]': 'host.disabled || control.readOnly',
|
|
490
515
|
'[tabIndex]': 'host.focusable ? 0 : -1',
|
|
@@ -509,7 +534,7 @@ class TuiNativeMultiSelectGroupComponent extends AbstractTuiNativeMultiSelect {
|
|
|
509
534
|
this.host.onSelectionChange(value);
|
|
510
535
|
}
|
|
511
536
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNativeMultiSelectGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
512
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiNativeMultiSelectGroupComponent, selector: "select[multiple][tuiSelect][labels]", inputs: { items: "items", labels: "labels" }, host: {
|
|
537
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiNativeMultiSelectGroupComponent, selector: "select[multiple][tuiSelect][labels]", inputs: { items: "items", labels: "labels" }, host: { listeners: { "change": "onValueChange($event.target.selectedOptions)", "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: [
|
|
513
538
|
tuiAsDataList(TuiNativeMultiSelectGroupComponent),
|
|
514
539
|
tuiProvide(AbstractTuiNativeMultiSelect, TuiNativeMultiSelectGroupComponent),
|
|
515
540
|
{
|
|
@@ -517,7 +542,7 @@ class TuiNativeMultiSelectGroupComponent extends AbstractTuiNativeMultiSelect {
|
|
|
517
542
|
deps: [TuiNativeMultiSelectGroupComponent],
|
|
518
543
|
useFactory: ({ datalist }) => datalist,
|
|
519
544
|
},
|
|
520
|
-
], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\" />\n\n<tui-data-list-wrapper\n *tuiDataList\n tuiMultiSelectGroup\n [disabledItemHandler]=\"disabledItemHandler || host.disableItemHandler\"\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"items\"\n [labels]=\"labels\"\n/>\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 [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : host.disableItemHandler(option)\"\n [selected]=\"option | tuiMapper: selectedMapper : control.value\"\n [value]=\"stringify(option)\"\n >\n {{ stringify(option) }}\n </option>\n</optgroup>\n", styles: [":host{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i3$
|
|
545
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control.control?.valueChanges | async\" />\n\n<tui-data-list-wrapper\n *tuiDataList\n tuiMultiSelectGroup\n [disabledItemHandler]=\"disabledItemHandler || host.disableItemHandler\"\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"items\"\n [labels]=\"labels\"\n/>\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 [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : host.disableItemHandler(option)\"\n [selected]=\"option | tuiMapper: selectedMapper : control.value\"\n [value]=\"stringify(option)\"\n >\n {{ stringify(option) }}\n </option>\n</optgroup>\n", styles: [":host{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i3$1.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["labels"] }, { kind: "directive", type: TuiMultiSelectGroupDirective, selector: "[tuiMultiSelectGroup]" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.TuiMapperPipe, name: "tuiMapper" }, { kind: "pipe", type: i7.TuiStringifyContentPipe, name: "tuiStringifyContent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
521
546
|
}
|
|
522
547
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNativeMultiSelectGroupComponent, decorators: [{
|
|
523
548
|
type: Component,
|
|
@@ -530,7 +555,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
530
555
|
useFactory: ({ datalist }) => datalist,
|
|
531
556
|
},
|
|
532
557
|
], host: {
|
|
533
|
-
ngSkipHydration: 'true',
|
|
534
558
|
'[attr.aria-invalid]': 'host.invalid',
|
|
535
559
|
'[disabled]': 'host.disabled || control.readOnly',
|
|
536
560
|
'[tabIndex]': 'host.focusable ? 0 : -1',
|
|
@@ -566,20 +590,20 @@ class TuiMultiSelectModule {
|
|
|
566
590
|
TuiLink,
|
|
567
591
|
TuiTextfieldControllerModule,
|
|
568
592
|
TuiStringifyContentPipe,
|
|
569
|
-
TuiLegacyDropdownOpenMonitorDirective, i1
|
|
593
|
+
TuiLegacyDropdownOpenMonitorDirective, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownPortal, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection, i2$2.TuiDataListComponent, i2$2.TuiDataListDirective, i2$2.TuiOption, i2$2.TuiOptGroup, i3$1.TuiDataListWrapperComponent, i3$1.TuiDataListGroupWrapperComponent, i2$2.TuiDataListDirective], exports: [TuiMultiSelectComponent,
|
|
570
594
|
TuiMultiSelectGroupComponent,
|
|
571
595
|
TuiMultiSelectGroupDirective,
|
|
572
596
|
TuiHideSelectedPipe,
|
|
573
597
|
TuiMultiSelectDirective,
|
|
574
598
|
TuiNativeMultiSelectComponent,
|
|
575
|
-
TuiNativeMultiSelectGroupComponent, i1
|
|
599
|
+
TuiNativeMultiSelectGroupComponent, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownPortal, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection, i2$2.TuiDataListComponent, i2$2.TuiDataListDirective, i2$2.TuiOption, i2$2.TuiOptGroup, i3$1.TuiDataListWrapperComponent, i3$1.TuiDataListGroupWrapperComponent, i2$2.TuiDataListDirective] }); }
|
|
576
600
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectModule, imports: [CommonModule,
|
|
577
601
|
FormsModule,
|
|
578
602
|
TuiWrapperModule,
|
|
579
603
|
TuiArrowComponent,
|
|
580
604
|
TuiInputTagModule,
|
|
581
605
|
TuiMultiSelectOptionModule,
|
|
582
|
-
TuiTextfieldControllerModule, i1
|
|
606
|
+
TuiTextfieldControllerModule, i1.TuiDropdownComponent, i2$2.TuiDataListComponent, i2$2.TuiOption, i3$1.TuiDataListWrapperComponent, i3$1.TuiDataListGroupWrapperComponent] }); }
|
|
583
607
|
}
|
|
584
608
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectModule, decorators: [{
|
|
585
609
|
type: NgModule,
|