@taiga-ui/legacy 4.52.0-canary.05c3268 → 4.52.0-canary.1acd1eb
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/components/dialog/dialog.component.d.ts +2 -2
- package/components/index.d.ts +0 -1
- package/components/input-date-time/input-date-time.component.d.ts +4 -3
- package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +1 -1
- package/components/pdf-viewer/pdf-viewer.component.d.ts +1 -1
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs +4 -5
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +3 -3
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +4 -4
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +2 -2
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +5 -5
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs +4 -5
- package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-select.mjs +4 -4
- package/fesm2022/taiga-ui-legacy-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components.mjs +0 -1
- package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs +1 -2
- package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs.map +1 -1
- package/package.json +1 -5
- package/utils/icons-path-factory.d.ts +1 -1
- package/components/combo-box/combo-box-strict.directive.d.ts +0 -12
- package/components/combo-box/combo-box.component.d.ts +0 -52
- package/components/combo-box/combo-box.directive.d.ts +0 -13
- package/components/combo-box/combo-box.module.d.ts +0 -20
- package/components/combo-box/index.d.ts +0 -4
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs +0 -299
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-components-textarea.mjs","sources":["../../../projects/legacy/components/textarea/textarea.component.ts","../../../projects/legacy/components/textarea/textarea.template.html","../../../projects/legacy/components/textarea/textarea.directive.ts","../../../projects/legacy/components/textarea/textarea.module.ts","../../../projects/legacy/components/textarea/taiga-ui-legacy-components-textarea.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {TuiHintOptionsDirective} from '@taiga-ui/core/directives/hint';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {AbstractTuiControl, tuiAsControl} from '@taiga-ui/legacy/classes';\nimport {\n TUI_ICON_START_PADDINGS,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n} from '@taiga-ui/legacy/directives';\nimport {\n tuiAsFocusableItemAccessor,\n type TuiFocusableElementAccessor,\n} from '@taiga-ui/legacy/tokens';\nimport {tuiGetBorder} from '@taiga-ui/legacy/utils';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport const DEFAULT_ROWS = 20;\nexport const LINE_HEIGHT_M = 20;\nexport const LINE_HEIGHT_L = 24;\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/textarea Textarea} (from @taiga-ui/kit) instead\n */\n@Component({\n standalone: false,\n selector: 'tui-textarea',\n templateUrl: './textarea.template.html',\n styleUrls: ['./textarea.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiTextareaComponent),\n tuiAsControl(TuiTextareaComponent),\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n host: {\n '[attr.data-size]': 'size',\n '[class._ios]': 'isIOS',\n '[class._expandable]': 'expandable',\n '[class._has-counter]': 'hasCounter',\n '[class._label-outside]': 'labelOutside',\n '[class._has-tooltip]': 'hasTooltip',\n '[class._has-value]': 'hasValue',\n '[style.--t-border-end.rem]': 'borderEnd',\n '[style.--t-border-start.rem]': 'borderStart',\n '(focusin)': 'onFocused(true)',\n '(focusout)': 'onFocused(false)',\n },\n})\nexport class TuiTextareaComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLTextAreaElement>;\n\n @ContentChild(TuiTextfieldComponent, {read: ElementRef})\n private readonly textfield?: ElementRef<HTMLTextAreaElement>;\n\n private readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n\n protected readonly isIOS = inject(TUI_IS_IOS);\n protected readonly controller = inject(TUI_TEXTFIELD_WATCHED_CONTROLLER);\n protected readonly hintOptions = inject(TuiHintOptionsDirective, {optional: true});\n\n @Input()\n public rows = DEFAULT_ROWS;\n\n @Input()\n public maxLength: number | null = null;\n\n @Input()\n public expandable = false;\n\n public get nativeFocusableElement(): HTMLTextAreaElement | null {\n if (this.computedDisabled) {\n return null;\n }\n\n return (\n this.textfield?.nativeElement || this.focusableElement?.nativeElement || null\n );\n }\n\n public get focused(): boolean {\n return tuiIsFocused(this.nativeFocusableElement);\n }\n\n public get computeMaxHeight(): number | null {\n return this.expandable ? this.rows * this.lineHeight : null;\n }\n\n public onValueChange(value: string): void {\n this.value = value;\n }\n\n protected get labelOutside(): boolean {\n return this.options.appearance() === 'table' || this.controller.labelOutside;\n }\n\n protected get size(): TuiSizeL | TuiSizeS {\n return this.controller.size;\n }\n\n protected get borderStart(): number {\n return this.iconLeftContent ? TUI_ICON_START_PADDINGS[this.size] : 0;\n }\n\n protected get borderEnd(): number {\n return tuiGetBorder(\n !!this.iconContent,\n this.hasCleaner,\n this.hasTooltip,\n this.hasCustomContent,\n this.size,\n );\n }\n\n protected get hasTooltip(): boolean {\n return (\n !!this.hintOptions?.content &&\n (this.controller.options.hintOnDisabled || !this.computedDisabled)\n );\n }\n\n protected get hasValue(): boolean {\n return this.value !== '';\n }\n\n protected get hasCounter(): boolean {\n return !!this.maxLength && this.interactive;\n }\n\n protected get appearance(): string {\n return this.options.appearance() === 'table'\n ? 'table'\n : this.controller.appearance;\n }\n\n protected get hasCleaner(): boolean {\n return this.controller.cleaner && this.hasValue && this.interactive;\n }\n\n protected get hasPlaceholder(): boolean {\n return this.placeholderRaisable || (!this.hasValue && !this.hasExampleText);\n }\n\n protected get hasCustomContent(): boolean {\n return !!this.controller.customContent;\n }\n\n protected get iconLeftContent(): PolymorpheusContent<\n TuiContext<TuiSizeL | TuiSizeS>\n > {\n return this.controller.iconStart;\n }\n\n protected get iconContent(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.icon;\n }\n\n protected get iconCleaner(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.options.iconCleaner;\n }\n\n protected get hasExampleText(): boolean {\n return (\n !!this.textfield?.nativeElement.placeholder &&\n this.focused &&\n !this.hasValue &&\n !this.readOnly\n );\n }\n\n protected get placeholderRaised(): boolean {\n return (\n this.placeholderRaisable &&\n ((this.computedFocused && !this.readOnly) || this.hasValue)\n );\n }\n\n protected get fittedContent(): string {\n return this.value.slice(0, this.maxLength || Infinity);\n }\n\n protected get extraContent(): string {\n return this.value.slice(this.maxLength || Infinity);\n }\n\n protected onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n protected onMouseDown(event: MouseEvent): void {\n if (event.target === this.nativeFocusableElement) {\n return;\n }\n\n event.preventDefault();\n\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus();\n }\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n private get lineHeight(): number {\n return this.controller.size === 'm' ? LINE_HEIGHT_M : LINE_HEIGHT_L;\n }\n\n private get placeholderRaisable(): boolean {\n return this.size !== 's' && !this.controller.labelOutside;\n }\n}\n","@if (hintOptions?.change$ | async) {}\n<div\n automation-id=\"tui-text-area__wrapper\"\n tuiWrapper\n class=\"t-outline\"\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n>\n @if (hasCounter) {\n <div\n automation-id=\"tui-text-area__counter\"\n class=\"t-counter\"\n >\n {{ value.length }}/{{ maxLength }}\n </div>\n }\n\n <label\n class=\"t-content\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-wrapper\">\n @if (hasPlaceholder) {\n <div\n automation-id=\"tui-text-area__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content />\n </div>\n }\n <tui-scrollbar\n automation-id=\"tui-text-area__scrollbar\"\n class=\"t-box\"\n [style.maxHeight.px]=\"computeMaxHeight\"\n >\n <div class=\"t-input-wrapper\">\n <div class=\"t-relative\">\n <div\n aria-hidden=\"true\"\n class=\"t-pseudo-content\"\n >\n <span [textContent]=\"fittedContent || nativeFocusableElement?.placeholder\"></span>\n <span\n class=\"t-pseudo-content__extra\"\n [textContent]=\"extraContent\"\n ></span>\n <span class=\"t-caret\"></span>\n </div>\n <textarea\n #focusableElement\n automation-id=\"tui-text-area__native\"\n class=\"t-input\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n [(ngModel)]=\"value\"\n ></textarea>\n <ng-content select=\"textarea\" />\n </div>\n </div>\n </tui-scrollbar>\n </div>\n <div class=\"t-icons\">\n @if (iconLeftContent) {\n <div class=\"t-icon t-icon_left t-textfield-icon\">\n <tui-icon\n *polymorpheusOutlet=\"iconLeftContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n @if (hasCustomContent) {\n <tui-icon\n *polymorpheusOutlet=\"controller.customContent as src\"\n [icon]=\"src\"\n />\n }\n @if (hasCleaner) {\n <tui-icon\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n class=\"t-cleaner\"\n [icon]=\"src.toString()\"\n (click.stop)=\"onValueChange('')\"\n />\n }\n @if (hasTooltip) {\n <tui-tooltip\n automation-id=\"tui-text-area__tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"id\"\n />\n }\n @if (iconContent) {\n <div class=\"t-icon t-textfield-icon\">\n <tui-icon\n *polymorpheusOutlet=\"iconContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n </div>\n </label>\n</div>\n","import {Directive} from '@angular/core';\nimport {AbstractTuiTextfieldHost} from '@taiga-ui/legacy/classes';\nimport {tuiAsTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {type TuiTextareaComponent} from './textarea.component';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/textarea Textarea} (from @taiga-ui/kit) instead\n */\n@Directive({\n standalone: false,\n selector: 'tui-textarea',\n providers: [tuiAsTextfieldHost(TuiTextareaDirective)],\n})\nexport class TuiTextareaDirective extends AbstractTuiTextfieldHost<TuiTextareaComponent> {\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TuiTooltipModule} from '@taiga-ui/legacy/components/tooltip';\nimport {TuiWrapperModule} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiTextareaComponent} from './textarea.component';\nimport {TuiTextareaDirective} from './textarea.directive';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/textarea Textarea} (from @taiga-ui/kit) instead\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiScrollbar,\n TuiTooltipModule,\n TuiWrapperModule,\n TuiPrimitiveTextfieldModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiIcon,\n TuiAppearance,\n ],\n declarations: [TuiTextareaComponent, TuiTextareaDirective],\n exports: [\n TuiTextareaComponent,\n TuiTextareaDirective,\n TuiTextfieldComponent,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n ],\n})\nexport class TuiTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components-textarea.mjs","sources":["../../../projects/legacy/components/textarea/textarea.component.ts","../../../projects/legacy/components/textarea/textarea.template.html","../../../projects/legacy/components/textarea/textarea.directive.ts","../../../projects/legacy/components/textarea/textarea.module.ts","../../../projects/legacy/components/textarea/taiga-ui-legacy-components-textarea.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {TuiHintOptionsDirective} from '@taiga-ui/core/directives/hint';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {AbstractTuiControl, tuiAsControl} from '@taiga-ui/legacy/classes';\nimport {\n TUI_ICON_START_PADDINGS,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n} from '@taiga-ui/legacy/directives';\nimport {\n tuiAsFocusableItemAccessor,\n type TuiFocusableElementAccessor,\n} from '@taiga-ui/legacy/tokens';\nimport {tuiGetBorder} from '@taiga-ui/legacy/utils';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport const DEFAULT_ROWS = 20;\nexport const LINE_HEIGHT_M = 20;\nexport const LINE_HEIGHT_L = 24;\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/textarea Textarea} (from @taiga-ui/kit) instead\n */\n@Component({\n standalone: false,\n selector: 'tui-textarea',\n templateUrl: './textarea.template.html',\n styleUrl: './textarea.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiTextareaComponent),\n tuiAsControl(TuiTextareaComponent),\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n host: {\n '[attr.data-size]': 'size',\n '[class._ios]': 'isIOS',\n '[class._expandable]': 'expandable',\n '[class._has-counter]': 'hasCounter',\n '[class._label-outside]': 'labelOutside',\n '[class._has-tooltip]': 'hasTooltip',\n '[class._has-value]': 'hasValue',\n '[style.--t-border-end.rem]': 'borderEnd',\n '[style.--t-border-start.rem]': 'borderStart',\n '(focusin)': 'onFocused(true)',\n '(focusout)': 'onFocused(false)',\n },\n})\nexport class TuiTextareaComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLTextAreaElement>;\n\n @ContentChild(TuiTextfieldComponent, {read: ElementRef})\n private readonly textfield?: ElementRef<HTMLTextAreaElement>;\n\n private readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n\n protected readonly isIOS = inject(TUI_IS_IOS);\n protected readonly controller = inject(TUI_TEXTFIELD_WATCHED_CONTROLLER);\n protected readonly hintOptions = inject(TuiHintOptionsDirective, {optional: true});\n\n @Input()\n public rows = DEFAULT_ROWS;\n\n @Input()\n public maxLength: number | null = null;\n\n @Input()\n public expandable = false;\n\n public get nativeFocusableElement(): HTMLTextAreaElement | null {\n if (this.computedDisabled) {\n return null;\n }\n\n return (\n this.textfield?.nativeElement || this.focusableElement?.nativeElement || null\n );\n }\n\n public get focused(): boolean {\n return tuiIsFocused(this.nativeFocusableElement);\n }\n\n public get computeMaxHeight(): number | null {\n return this.expandable ? this.rows * this.lineHeight : null;\n }\n\n public onValueChange(value: string): void {\n this.value = value;\n }\n\n protected get labelOutside(): boolean {\n return this.options.appearance() === 'table' || this.controller.labelOutside;\n }\n\n protected get size(): TuiSizeL | TuiSizeS {\n return this.controller.size;\n }\n\n protected get borderStart(): number {\n return this.iconLeftContent ? TUI_ICON_START_PADDINGS[this.size] : 0;\n }\n\n protected get borderEnd(): number {\n return tuiGetBorder(\n !!this.iconContent,\n this.hasCleaner,\n this.hasTooltip,\n this.hasCustomContent,\n this.size,\n );\n }\n\n protected get hasTooltip(): boolean {\n return (\n !!this.hintOptions?.content &&\n (this.controller.options.hintOnDisabled || !this.computedDisabled)\n );\n }\n\n protected get hasValue(): boolean {\n return this.value !== '';\n }\n\n protected get hasCounter(): boolean {\n return !!this.maxLength && this.interactive;\n }\n\n protected get appearance(): string {\n return this.options.appearance() === 'table'\n ? 'table'\n : this.controller.appearance;\n }\n\n protected get hasCleaner(): boolean {\n return this.controller.cleaner && this.hasValue && this.interactive;\n }\n\n protected get hasPlaceholder(): boolean {\n return this.placeholderRaisable || (!this.hasValue && !this.hasExampleText);\n }\n\n protected get hasCustomContent(): boolean {\n return !!this.controller.customContent;\n }\n\n protected get iconLeftContent(): PolymorpheusContent<\n TuiContext<TuiSizeL | TuiSizeS>\n > {\n return this.controller.iconStart;\n }\n\n protected get iconContent(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.icon;\n }\n\n protected get iconCleaner(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.options.iconCleaner;\n }\n\n protected get hasExampleText(): boolean {\n return (\n !!this.textfield?.nativeElement.placeholder &&\n this.focused &&\n !this.hasValue &&\n !this.readOnly\n );\n }\n\n protected get placeholderRaised(): boolean {\n return (\n this.placeholderRaisable &&\n ((this.computedFocused && !this.readOnly) || this.hasValue)\n );\n }\n\n protected get fittedContent(): string {\n return this.value.slice(0, this.maxLength || Infinity);\n }\n\n protected get extraContent(): string {\n return this.value.slice(this.maxLength || Infinity);\n }\n\n protected onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n protected onMouseDown(event: MouseEvent): void {\n if (event.target === this.nativeFocusableElement) {\n return;\n }\n\n event.preventDefault();\n\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus();\n }\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n private get lineHeight(): number {\n return this.controller.size === 'm' ? LINE_HEIGHT_M : LINE_HEIGHT_L;\n }\n\n private get placeholderRaisable(): boolean {\n return this.size !== 's' && !this.controller.labelOutside;\n }\n}\n","@if (hintOptions?.change$ | async) {}\n<div\n automation-id=\"tui-text-area__wrapper\"\n tuiWrapper\n class=\"t-outline\"\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n>\n @if (hasCounter) {\n <div\n automation-id=\"tui-text-area__counter\"\n class=\"t-counter\"\n >\n {{ value.length }}/{{ maxLength }}\n </div>\n }\n\n <label\n class=\"t-content\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-wrapper\">\n @if (hasPlaceholder) {\n <div\n automation-id=\"tui-text-area__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content />\n </div>\n }\n <tui-scrollbar\n automation-id=\"tui-text-area__scrollbar\"\n class=\"t-box\"\n [style.maxHeight.px]=\"computeMaxHeight\"\n >\n <div class=\"t-input-wrapper\">\n <div class=\"t-relative\">\n <div\n aria-hidden=\"true\"\n class=\"t-pseudo-content\"\n >\n <span [textContent]=\"fittedContent || nativeFocusableElement?.placeholder\"></span>\n <span\n class=\"t-pseudo-content__extra\"\n [textContent]=\"extraContent\"\n ></span>\n <span class=\"t-caret\"></span>\n </div>\n <textarea\n #focusableElement\n automation-id=\"tui-text-area__native\"\n class=\"t-input\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n [(ngModel)]=\"value\"\n ></textarea>\n <ng-content select=\"textarea\" />\n </div>\n </div>\n </tui-scrollbar>\n </div>\n <div class=\"t-icons\">\n @if (iconLeftContent) {\n <div class=\"t-icon t-icon_left t-textfield-icon\">\n <tui-icon\n *polymorpheusOutlet=\"iconLeftContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n @if (hasCustomContent) {\n <tui-icon\n *polymorpheusOutlet=\"controller.customContent as src\"\n [icon]=\"src\"\n />\n }\n @if (hasCleaner) {\n <tui-icon\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n class=\"t-cleaner\"\n [icon]=\"src.toString()\"\n (click.stop)=\"onValueChange('')\"\n />\n }\n @if (hasTooltip) {\n <tui-tooltip\n automation-id=\"tui-text-area__tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"id\"\n />\n }\n @if (iconContent) {\n <div class=\"t-icon t-textfield-icon\">\n <tui-icon\n *polymorpheusOutlet=\"iconContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n </div>\n </label>\n</div>\n","import {Directive} from '@angular/core';\nimport {AbstractTuiTextfieldHost} from '@taiga-ui/legacy/classes';\nimport {tuiAsTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {type TuiTextareaComponent} from './textarea.component';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/textarea Textarea} (from @taiga-ui/kit) instead\n */\n@Directive({\n standalone: false,\n selector: 'tui-textarea',\n providers: [tuiAsTextfieldHost(TuiTextareaDirective)],\n})\nexport class TuiTextareaDirective extends AbstractTuiTextfieldHost<TuiTextareaComponent> {\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TuiTooltipModule} from '@taiga-ui/legacy/components/tooltip';\nimport {TuiWrapperModule} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiTextareaComponent} from './textarea.component';\nimport {TuiTextareaDirective} from './textarea.directive';\n\n/**\n * TODO(v5): delete it\n * @deprecated use new version of {@link https://taiga-ui.dev/components/textarea Textarea} (from @taiga-ui/kit) instead\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiScrollbar,\n TuiTooltipModule,\n TuiWrapperModule,\n TuiPrimitiveTextfieldModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiIcon,\n TuiAppearance,\n ],\n declarations: [TuiTextareaComponent, TuiTextareaDirective],\n exports: [\n TuiTextareaComponent,\n TuiTextareaDirective,\n TuiTextfieldComponent,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n ],\n})\nexport class TuiTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from '@taiga-ui/legacy/components/arrow';
|
|
2
|
-
export * from '@taiga-ui/legacy/components/combo-box';
|
|
3
2
|
export * from '@taiga-ui/legacy/components/dialog';
|
|
4
3
|
export * from '@taiga-ui/legacy/components/input';
|
|
5
4
|
export * from '@taiga-ui/legacy/components/input-date-range';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-components.mjs","sources":["../../../projects/legacy/components/taiga-ui-legacy-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components.mjs","sources":["../../../projects/legacy/components/taiga-ui-legacy-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;AAEG"}
|
|
@@ -2,7 +2,6 @@ import { TuiValidationError } from '@taiga-ui/cdk/classes';
|
|
|
2
2
|
import { tuiIsHTMLElement, tuiIsInput } from '@taiga-ui/cdk/utils/dom';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { inject, INJECTOR, Input, Directive } from '@angular/core';
|
|
5
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
6
5
|
import { NG_VALIDATORS } from '@angular/forms';
|
|
7
6
|
import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
8
7
|
import { TUI_DEFAULT_ERROR_MESSAGE } from '@taiga-ui/core/tokens';
|
|
@@ -23,7 +22,7 @@ function tuiCreateUnfinishedValidator(nativeInputGetter, message) {
|
|
|
23
22
|
|
|
24
23
|
class TuiUnfinishedValidator {
|
|
25
24
|
constructor() {
|
|
26
|
-
this.default =
|
|
25
|
+
this.default = inject(TUI_DEFAULT_ERROR_MESSAGE);
|
|
27
26
|
this.injector = inject(INJECTOR);
|
|
28
27
|
this.tuiUnfinishedValidator = '';
|
|
29
28
|
this.validate = tuiCreateUnfinishedValidator(() => this.injector.get(TUI_FOCUSABLE_ITEM_ACCESSOR), () => this.tuiUnfinishedValidator || this.default());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-directives-unfinished-validator.mjs","sources":["../../../projects/legacy/directives/unfinished-validator/unfinished.validator.ts","../../../projects/legacy/directives/unfinished-validator/unfinished-validator.directive.ts","../../../projects/legacy/directives/unfinished-validator/taiga-ui-legacy-directives-unfinished-validator.ts"],"sourcesContent":["import {type AbstractControl, type ValidatorFn} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {tuiIsHTMLElement, tuiIsInput} from '@taiga-ui/cdk/utils/dom';\nimport {type TuiFocusableElementAccessor} from '@taiga-ui/legacy/tokens';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport function tuiCreateUnfinishedValidator(\n nativeInputGetter: () => TuiFocusableElementAccessor,\n message: PolymorpheusContent,\n): ValidatorFn {\n return ({\n value,\n }: AbstractControl): {unfinished: TuiValidationError | string} | null => {\n const nativeInput = nativeInputGetter();\n\n return value === null &&\n nativeInput &&\n tuiIsHTMLElement(nativeInput.nativeFocusableElement) &&\n tuiIsInput(nativeInput.nativeFocusableElement) &&\n nativeInput.nativeFocusableElement.value !== ''\n ? {unfinished: new TuiValidationError(message)}\n : null;\n };\n}\n","import {Directive, inject, INJECTOR, Input} from '@angular/core';\nimport {
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-directives-unfinished-validator.mjs","sources":["../../../projects/legacy/directives/unfinished-validator/unfinished.validator.ts","../../../projects/legacy/directives/unfinished-validator/unfinished-validator.directive.ts","../../../projects/legacy/directives/unfinished-validator/taiga-ui-legacy-directives-unfinished-validator.ts"],"sourcesContent":["import {type AbstractControl, type ValidatorFn} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {tuiIsHTMLElement, tuiIsInput} from '@taiga-ui/cdk/utils/dom';\nimport {type TuiFocusableElementAccessor} from '@taiga-ui/legacy/tokens';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport function tuiCreateUnfinishedValidator(\n nativeInputGetter: () => TuiFocusableElementAccessor,\n message: PolymorpheusContent,\n): ValidatorFn {\n return ({\n value,\n }: AbstractControl): {unfinished: TuiValidationError | string} | null => {\n const nativeInput = nativeInputGetter();\n\n return value === null &&\n nativeInput &&\n tuiIsHTMLElement(nativeInput.nativeFocusableElement) &&\n tuiIsInput(nativeInput.nativeFocusableElement) &&\n nativeInput.nativeFocusableElement.value !== ''\n ? {unfinished: new TuiValidationError(message)}\n : null;\n };\n}\n","import {Directive, inject, INJECTOR, Input} from '@angular/core';\nimport {NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DEFAULT_ERROR_MESSAGE} from '@taiga-ui/core/tokens';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/legacy/tokens';\n\nimport {tuiCreateUnfinishedValidator} from './unfinished.validator';\n\n@Directive({\n standalone: true,\n selector: '[tuiUnfinishedValidator]',\n providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)],\n})\nexport class TuiUnfinishedValidator implements Validator {\n private readonly default = inject(TUI_DEFAULT_ERROR_MESSAGE);\n private readonly injector = inject(INJECTOR);\n\n @Input()\n public tuiUnfinishedValidator = '';\n\n public readonly validate = tuiCreateUnfinishedValidator(\n () => this.injector.get(TUI_FOCUSABLE_ITEM_ACCESSOR),\n () => this.tuiUnfinishedValidator || this.default(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAMgB,SAAA,4BAA4B,CACxC,iBAAoD,EACpD,OAA4B,EAAA;AAE5B,IAAA,OAAO,CAAC,EACJ,KAAK,GACS,KAAsD;AACpE,QAAA,MAAM,WAAW,GAAG,iBAAiB,EAAE;QAEvC,OAAO,KAAK,KAAK,IAAI;YACjB,WAAW;AACX,YAAA,gBAAgB,CAAC,WAAW,CAAC,sBAAsB,CAAC;AACpD,YAAA,UAAU,CAAC,WAAW,CAAC,sBAAsB,CAAC;AAC9C,YAAA,WAAW,CAAC,sBAAsB,CAAC,KAAK,KAAK;cAC3C,EAAC,UAAU,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC;cAC5C,IAAI;AACd,KAAC;AACL;;MCVa,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;AAMqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC3C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAGrC,IAAsB,CAAA,sBAAA,GAAG,EAAE;QAElB,IAAQ,CAAA,QAAA,GAAG,4BAA4B,CACnD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,2BAA2B,CAAC,EACpD,MAAM,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,OAAO,EAAE,CACtD;AACJ;+GAXY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAFpB,CAAC,UAAU,CAAC,aAAa,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAE3D,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,0BAA0B;oBACpC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,EAA0B,sBAAA,EAAA,IAAI,CAAC,CAAC;AACvE,iBAAA;8BAMU,sBAAsB,EAAA,CAAA;sBAD5B;;;ACjBL;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/legacy",
|
|
3
|
-
"version": "4.52.0-canary.
|
|
3
|
+
"version": "4.52.0-canary.1acd1eb",
|
|
4
4
|
"description": "Legacy Taiga UI entities from the previous major release to simplify migration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legacy",
|
|
@@ -43,10 +43,6 @@
|
|
|
43
43
|
"types": "./components/arrow/index.d.ts",
|
|
44
44
|
"default": "./fesm2022/taiga-ui-legacy-components-arrow.mjs"
|
|
45
45
|
},
|
|
46
|
-
"./components/combo-box": {
|
|
47
|
-
"types": "./components/combo-box/index.d.ts",
|
|
48
|
-
"default": "./fesm2022/taiga-ui-legacy-components-combo-box.mjs"
|
|
49
|
-
},
|
|
50
46
|
"./components/dialog": {
|
|
51
47
|
"types": "./components/dialog/index.d.ts",
|
|
52
48
|
"default": "./fesm2022/taiga-ui-legacy-components-dialog.mjs"
|
|
@@ -2,7 +2,7 @@ import { type TuiStringHandler } from '@taiga-ui/cdk/types';
|
|
|
2
2
|
/**
|
|
3
3
|
* @deprecated: drop in v5.0
|
|
4
4
|
*/
|
|
5
|
-
export declare const TUI_CACHE_BUSTING_PAYLOAD: "?v=4.52.0-canary.
|
|
5
|
+
export declare const TUI_CACHE_BUSTING_PAYLOAD: "?v=4.52.0-canary.1acd1eb";
|
|
6
6
|
/**
|
|
7
7
|
* @deprecated: drop in v5.0
|
|
8
8
|
*/
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
/**
|
|
3
|
-
* TODO(v5): delete it
|
|
4
|
-
* @deprecated use new version of {@link https://taiga-ui.dev/components/combo-box TuiComboBox} (from @taiga-ui/kit) instead
|
|
5
|
-
*/
|
|
6
|
-
export declare class TuiComboBoxStrictDirective<T> {
|
|
7
|
-
private readonly comboBox;
|
|
8
|
-
strict: boolean;
|
|
9
|
-
protected onInput(): void;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiComboBoxStrictDirective<any>, never>;
|
|
11
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiComboBoxStrictDirective<any>, "tui-combo-box[strict]", never, { "strict": { "alias": "strict"; "required": false; }; }, {}, never, never, false, never>;
|
|
12
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { type TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
|
|
3
|
-
import { type TuiContext, type TuiStringMatcher } from '@taiga-ui/cdk/types';
|
|
4
|
-
import { type TuiDataListHost } from '@taiga-ui/core/components/data-list';
|
|
5
|
-
import { type TuiSizeL, type TuiSizeM, type TuiSizeS, type TuiValueContentContext } from '@taiga-ui/core/types';
|
|
6
|
-
import { type TuiItemsHandlers } from '@taiga-ui/kit/tokens';
|
|
7
|
-
import { AbstractTuiNullableControl } from '@taiga-ui/legacy/classes';
|
|
8
|
-
import { type TuiFocusableElementAccessor } from '@taiga-ui/legacy/tokens';
|
|
9
|
-
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@taiga-ui/core/directives/dropdown";
|
|
12
|
-
/**
|
|
13
|
-
* TODO(v5): delete it
|
|
14
|
-
* @deprecated use new version of {@link https://taiga-ui.dev/components/combo-box TuiComboBox} (from @taiga-ui/kit) instead
|
|
15
|
-
*/
|
|
16
|
-
export declare class TuiComboBoxComponent<T> extends AbstractTuiNullableControl<T> implements TuiFocusableElementAccessor, TuiDataListHost<T> {
|
|
17
|
-
private readonly accessor?;
|
|
18
|
-
private readonly dropdown?;
|
|
19
|
-
private readonly textfield?;
|
|
20
|
-
private readonly arrowMode;
|
|
21
|
-
private readonly itemsHandlers;
|
|
22
|
-
private readonly textfieldSize;
|
|
23
|
-
protected readonly datalist: PolymorpheusContent<TuiContext<TuiActiveZone>>;
|
|
24
|
-
stringify: TuiItemsHandlers<T>['stringify'];
|
|
25
|
-
strictMatcher: TuiStringMatcher<T> | null;
|
|
26
|
-
identityMatcher: TuiItemsHandlers<T>['identityMatcher'];
|
|
27
|
-
valueContent: PolymorpheusContent<TuiValueContentContext<T>>;
|
|
28
|
-
strict: boolean;
|
|
29
|
-
search: string | null;
|
|
30
|
-
readonly searchChange: EventEmitter<string | null>;
|
|
31
|
-
open: boolean;
|
|
32
|
-
get size(): TuiSizeL | TuiSizeS;
|
|
33
|
-
get nativeFocusableElement(): HTMLInputElement | null;
|
|
34
|
-
get focused(): boolean;
|
|
35
|
-
get nativeValue(): string;
|
|
36
|
-
checkOption(option: T): void;
|
|
37
|
-
handleOption(item: T): void;
|
|
38
|
-
onValueChange(value: string): void;
|
|
39
|
-
toggle(): void;
|
|
40
|
-
protected get arrow(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeM | TuiSizeS>>;
|
|
41
|
-
protected get showValueTemplate(): boolean;
|
|
42
|
-
protected get computedContent(): PolymorpheusContent<TuiValueContentContext<T>>;
|
|
43
|
-
protected onActiveZone(active: boolean): void;
|
|
44
|
-
protected onFieldKeyDownEnter(event: Event): void;
|
|
45
|
-
private isStrictMatch;
|
|
46
|
-
private close;
|
|
47
|
-
private updateSearch;
|
|
48
|
-
private setNativeValue;
|
|
49
|
-
private focusInput;
|
|
50
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiComboBoxComponent<any>, never>;
|
|
51
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TuiComboBoxComponent<any>, "tui-combo-box", never, { "stringify": { "alias": "stringify"; "required": false; }; "strictMatcher": { "alias": "strictMatcher"; "required": false; }; "identityMatcher": { "alias": "identityMatcher"; "required": false; }; "valueContent": { "alias": "valueContent"; "required": false; }; "strict": { "alias": "strict"; "required": false; }; "search": { "alias": "search"; "required": false; }; }, { "searchChange": "searchChange"; }, ["accessor", "datalist"], ["*", "input"], false, [{ directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }]>;
|
|
52
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AbstractTuiTextfieldHost } from '@taiga-ui/legacy/classes';
|
|
2
|
-
import { type TuiComboBoxComponent } from './combo-box.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* TODO(v5): delete it
|
|
6
|
-
* @deprecated use new version of {@link https://taiga-ui.dev/components/combo-box TuiComboBox} (from @taiga-ui/kit) instead
|
|
7
|
-
*/
|
|
8
|
-
export declare class TuiComboBoxDirective extends AbstractTuiTextfieldHost<TuiComboBoxComponent<unknown>> {
|
|
9
|
-
get value(): string;
|
|
10
|
-
onValueChange(value: string): void;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiComboBoxDirective, never>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiComboBoxDirective, "tui-combo-box", never, {}, {}, never, never, false, never>;
|
|
13
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./combo-box.component";
|
|
3
|
-
import * as i2 from "./combo-box-strict.directive";
|
|
4
|
-
import * as i3 from "./combo-box.directive";
|
|
5
|
-
import * as i4 from "@angular/common";
|
|
6
|
-
import * as i5 from "@taiga-ui/polymorpheus";
|
|
7
|
-
import * as i6 from "@taiga-ui/legacy/components/primitive-textfield";
|
|
8
|
-
import * as i7 from "@taiga-ui/legacy/components/select-option";
|
|
9
|
-
import * as i8 from "@taiga-ui/legacy/components/arrow";
|
|
10
|
-
import * as i9 from "@taiga-ui/legacy/directives";
|
|
11
|
-
import * as i10 from "@taiga-ui/core/directives/dropdown";
|
|
12
|
-
/**
|
|
13
|
-
* TODO(v5): delete it
|
|
14
|
-
* @deprecated use new version of {@link https://taiga-ui.dev/components/combo-box TuiComboBox} (from @taiga-ui/kit) instead
|
|
15
|
-
*/
|
|
16
|
-
export declare class TuiComboBoxModule {
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiComboBoxModule, never>;
|
|
18
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<TuiComboBoxModule, [typeof i1.TuiComboBoxComponent, typeof i2.TuiComboBoxStrictDirective, typeof i3.TuiComboBoxDirective], [typeof i4.CommonModule, typeof i5.PolymorpheusOutlet, typeof i5.PolymorpheusTemplate, typeof i6.TuiPrimitiveTextfieldModule, typeof i7.TuiSelectOptionModule, typeof i8.TuiArrowComponent, typeof i9.TuiWrapperModule, typeof i9.TuiTextfieldControllerModule, typeof i9.TuiLegacyDropdownOpenMonitorDirective, typeof i10.TuiDropdownOptionsDirective, typeof i10.TuiDropdownDriverDirective, typeof i10.TuiDropdownDirective, typeof i10.TuiDropdownComponent, typeof i10.TuiDropdownOpen, typeof i10.TuiDropdownOpenLegacy, typeof i10.TuiDropdownManual, typeof i10.TuiDropdownHover, typeof i10.TuiDropdownContent, typeof i10.TuiDropdownContext, typeof i10.TuiDropdownPosition, typeof i10.TuiDropdownPositionSided, typeof i10.TuiDropdownSelection], [typeof i1.TuiComboBoxComponent, typeof i2.TuiComboBoxStrictDirective, typeof i3.TuiComboBoxDirective, typeof i6.TuiTextfieldComponent, typeof i10.TuiDropdownOptionsDirective, typeof i10.TuiDropdownDriverDirective, typeof i10.TuiDropdownDirective, typeof i10.TuiDropdownComponent, typeof i10.TuiDropdownOpen, typeof i10.TuiDropdownOpenLegacy, typeof i10.TuiDropdownManual, typeof i10.TuiDropdownHover, typeof i10.TuiDropdownContent, typeof i10.TuiDropdownContext, typeof i10.TuiDropdownPosition, typeof i10.TuiDropdownPositionSided, typeof i10.TuiDropdownSelection]>;
|
|
19
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<TuiComboBoxModule>;
|
|
20
|
-
}
|
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, EventEmitter, TemplateRef, Output, Input, ContentChild, ViewChild, ChangeDetectionStrategy, Component, Directive, NgModule } from '@angular/core';
|
|
3
|
-
import { TUI_STRICT_MATCHER } from '@taiga-ui/cdk/constants';
|
|
4
|
-
import { tuiIsFocused } from '@taiga-ui/cdk/utils/focus';
|
|
5
|
-
import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
6
|
-
import { TUI_DATA_LIST_ACCESSOR, TuiDataListDirective, tuiAsDataListHost, tuiAsOptionContent } from '@taiga-ui/core/components/data-list';
|
|
7
|
-
import * as i1 from '@taiga-ui/core/directives/dropdown';
|
|
8
|
-
import { TuiDropdownOpen, TuiDropdownFixed, TuiDropdown } from '@taiga-ui/core/directives/dropdown';
|
|
9
|
-
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/kit/tokens';
|
|
10
|
-
import { AbstractTuiNullableControl, tuiAsControl, AbstractTuiTextfieldHost } from '@taiga-ui/legacy/classes';
|
|
11
|
-
import { TUI_ARROW_MODE, TuiArrowComponent } from '@taiga-ui/legacy/components/arrow';
|
|
12
|
-
import * as i3 from '@taiga-ui/legacy/components/primitive-textfield';
|
|
13
|
-
import { TuiPrimitiveTextfieldComponent, TuiTextfieldComponent, TuiPrimitiveTextfieldModule } from '@taiga-ui/legacy/components/primitive-textfield';
|
|
14
|
-
import { TUI_SELECT_OPTION, TuiSelectOptionModule } from '@taiga-ui/legacy/components/select-option';
|
|
15
|
-
import * as i4 from '@taiga-ui/legacy/directives';
|
|
16
|
-
import { TUI_TEXTFIELD_SIZE, TuiWrapperModule, TuiTextfieldControllerModule, TuiLegacyDropdownOpenMonitorDirective } from '@taiga-ui/legacy/directives';
|
|
17
|
-
import { tuiAsFocusableItemAccessor, tuiAsTextfieldHost } from '@taiga-ui/legacy/tokens';
|
|
18
|
-
import * as i2 from '@taiga-ui/polymorpheus';
|
|
19
|
-
import { PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
|
|
20
|
-
import { CommonModule } from '@angular/common';
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* TODO(v5): delete it
|
|
24
|
-
* @deprecated use new version of {@link https://taiga-ui.dev/components/combo-box TuiComboBox} (from @taiga-ui/kit) instead
|
|
25
|
-
*/
|
|
26
|
-
class TuiComboBoxComponent extends AbstractTuiNullableControl {
|
|
27
|
-
constructor() {
|
|
28
|
-
super(...arguments);
|
|
29
|
-
this.arrowMode = inject(TUI_ARROW_MODE);
|
|
30
|
-
this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
|
|
31
|
-
this.textfieldSize = inject(TUI_TEXTFIELD_SIZE);
|
|
32
|
-
this.stringify = this.itemsHandlers.stringify;
|
|
33
|
-
this.strictMatcher = TUI_STRICT_MATCHER;
|
|
34
|
-
this.identityMatcher = this.itemsHandlers.identityMatcher;
|
|
35
|
-
this.strict = true;
|
|
36
|
-
this.search = null;
|
|
37
|
-
this.searchChange = new EventEmitter();
|
|
38
|
-
this.open = false;
|
|
39
|
-
}
|
|
40
|
-
get size() {
|
|
41
|
-
return this.textfieldSize.size;
|
|
42
|
-
}
|
|
43
|
-
get nativeFocusableElement() {
|
|
44
|
-
return this.textfield?.nativeFocusableElement ?? null;
|
|
45
|
-
}
|
|
46
|
-
get focused() {
|
|
47
|
-
return (tuiIsFocused(this.nativeFocusableElement) || !!this.dropdown?.tuiDropdownOpen);
|
|
48
|
-
}
|
|
49
|
-
get nativeValue() {
|
|
50
|
-
return this.value === null ? this.search || '' : this.stringify(this.value);
|
|
51
|
-
}
|
|
52
|
-
checkOption(option) {
|
|
53
|
-
if (!this.isStrictMatch(option)) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
this.value = option;
|
|
57
|
-
this.updateSearch(null);
|
|
58
|
-
}
|
|
59
|
-
handleOption(item) {
|
|
60
|
-
this.focusInput();
|
|
61
|
-
this.close();
|
|
62
|
-
this.updateSearch(null);
|
|
63
|
-
this.value = item;
|
|
64
|
-
if (this.value) {
|
|
65
|
-
this.setNativeValue(this.stringify(item));
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
onValueChange(value) {
|
|
69
|
-
this.updateSearch(value);
|
|
70
|
-
const match = this.accessor
|
|
71
|
-
?.getOptions()
|
|
72
|
-
.find((item) => this.isStrictMatch(item));
|
|
73
|
-
if (match !== undefined) {
|
|
74
|
-
this.value = match;
|
|
75
|
-
this.updateSearch(null);
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
if (this.strict || this.search === '') {
|
|
79
|
-
this.value = null;
|
|
80
|
-
}
|
|
81
|
-
// Clearing sets the empty value, the dropdown should not be opened on clear.
|
|
82
|
-
if (this.search !== '') {
|
|
83
|
-
this.open = true;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
toggle() {
|
|
87
|
-
if (this.interactive) {
|
|
88
|
-
this.open = !this.open;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
get arrow() {
|
|
92
|
-
return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;
|
|
93
|
-
}
|
|
94
|
-
get showValueTemplate() {
|
|
95
|
-
return tuiIsPresent(this.value) && !this.focused;
|
|
96
|
-
}
|
|
97
|
-
get computedContent() {
|
|
98
|
-
return this.valueContent || this.nativeValue;
|
|
99
|
-
}
|
|
100
|
-
onActiveZone(active) {
|
|
101
|
-
this.updateFocused(active);
|
|
102
|
-
}
|
|
103
|
-
onFieldKeyDownEnter(event) {
|
|
104
|
-
if (this.open) {
|
|
105
|
-
event.preventDefault();
|
|
106
|
-
}
|
|
107
|
-
const options = this.accessor?.getOptions() || [];
|
|
108
|
-
if (options.length !== 1) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
this.value = options[0] ?? null;
|
|
112
|
-
this.updateSearch(null);
|
|
113
|
-
this.close();
|
|
114
|
-
}
|
|
115
|
-
isStrictMatch(item) {
|
|
116
|
-
return !!this.search && !!this.strictMatcher?.(item, this.search, this.stringify);
|
|
117
|
-
}
|
|
118
|
-
close() {
|
|
119
|
-
this.open = false;
|
|
120
|
-
}
|
|
121
|
-
updateSearch(search) {
|
|
122
|
-
if (this.search === search) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
this.search = search;
|
|
126
|
-
this.searchChange.emit(search);
|
|
127
|
-
}
|
|
128
|
-
setNativeValue(value) {
|
|
129
|
-
if (this.nativeFocusableElement) {
|
|
130
|
-
this.nativeFocusableElement.value = value;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
focusInput(preventScroll = false) {
|
|
134
|
-
if (this.nativeFocusableElement) {
|
|
135
|
-
this.nativeFocusableElement.focus({ preventScroll });
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiComboBoxComponent, isStandalone: false, selector: "tui-combo-box", inputs: { stringify: "stringify", strictMatcher: "strictMatcher", identityMatcher: "identityMatcher", valueContent: "valueContent", strict: "strict", search: "search" }, outputs: { searchChange: "searchChange" }, host: { properties: { "attr.data-size": "size" } }, providers: [
|
|
140
|
-
tuiAsFocusableItemAccessor(TuiComboBoxComponent),
|
|
141
|
-
tuiAsDataListHost(TuiComboBoxComponent),
|
|
142
|
-
tuiAsControl(TuiComboBoxComponent),
|
|
143
|
-
tuiAsOptionContent(TUI_SELECT_OPTION),
|
|
144
|
-
], queries: [{ propertyName: "accessor", first: true, predicate: TUI_DATA_LIST_ACCESSOR, descendants: true }, { propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: TuiDropdownOpen, descendants: true }, { propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownFixed }], ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !!datalist\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-combo-box__textfield\"\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [value]=\"nativeValue\"\n (click)=\"toggle()\"\n (keydown.enter)=\"onFieldKeyDownEnter($event)\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n @if (showValueTemplate) {\n <div\n automation-id=\"tui-combo-box__template\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <ng-container\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value!, active: computedFocused}\"\n >\n {{ text }}\n </ng-container>\n </div>\n }\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n tuiWrapper\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\" />\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;inline-size:100%;align-items:center}.t-icon{pointer-events:auto}\n"], dependencies: [{ kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i3.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "iconCleaner", "readOnly", "invalid", "disabled", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i3.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { kind: "directive", type: i4.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { kind: "directive", type: i4.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i4.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
145
|
-
}
|
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxComponent, decorators: [{
|
|
147
|
-
type: Component,
|
|
148
|
-
args: [{ standalone: false, selector: 'tui-combo-box', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
149
|
-
tuiAsFocusableItemAccessor(TuiComboBoxComponent),
|
|
150
|
-
tuiAsDataListHost(TuiComboBoxComponent),
|
|
151
|
-
tuiAsControl(TuiComboBoxComponent),
|
|
152
|
-
tuiAsOptionContent(TUI_SELECT_OPTION),
|
|
153
|
-
], hostDirectives: [TuiDropdownFixed], host: {
|
|
154
|
-
'[attr.data-size]': 'size',
|
|
155
|
-
}, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !!datalist\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-combo-box__textfield\"\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [value]=\"nativeValue\"\n (click)=\"toggle()\"\n (keydown.enter)=\"onFieldKeyDownEnter($event)\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n @if (showValueTemplate) {\n <div\n automation-id=\"tui-combo-box__template\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <ng-container\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value!, active: computedFocused}\"\n >\n {{ text }}\n </ng-container>\n </div>\n }\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n tuiWrapper\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\" />\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;inline-size:100%;align-items:center}.t-icon{pointer-events:auto}\n"] }]
|
|
156
|
-
}], propDecorators: { accessor: [{
|
|
157
|
-
type: ContentChild,
|
|
158
|
-
args: [TUI_DATA_LIST_ACCESSOR]
|
|
159
|
-
}], dropdown: [{
|
|
160
|
-
type: ViewChild,
|
|
161
|
-
args: [TuiDropdownOpen]
|
|
162
|
-
}], textfield: [{
|
|
163
|
-
type: ViewChild,
|
|
164
|
-
args: [TuiPrimitiveTextfieldComponent]
|
|
165
|
-
}], datalist: [{
|
|
166
|
-
type: ContentChild,
|
|
167
|
-
args: [TuiDataListDirective, { read: TemplateRef }]
|
|
168
|
-
}], stringify: [{
|
|
169
|
-
type: Input
|
|
170
|
-
}], strictMatcher: [{
|
|
171
|
-
type: Input
|
|
172
|
-
}], identityMatcher: [{
|
|
173
|
-
type: Input
|
|
174
|
-
}], valueContent: [{
|
|
175
|
-
type: Input
|
|
176
|
-
}], strict: [{
|
|
177
|
-
type: Input
|
|
178
|
-
}], search: [{
|
|
179
|
-
type: Input
|
|
180
|
-
}], searchChange: [{
|
|
181
|
-
type: Output
|
|
182
|
-
}] } });
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* TODO(v5): delete it
|
|
186
|
-
* @deprecated use new version of {@link https://taiga-ui.dev/components/combo-box TuiComboBox} (from @taiga-ui/kit) instead
|
|
187
|
-
*/
|
|
188
|
-
class TuiComboBoxDirective extends AbstractTuiTextfieldHost {
|
|
189
|
-
get value() {
|
|
190
|
-
return this.host.nativeValue;
|
|
191
|
-
}
|
|
192
|
-
onValueChange(value) {
|
|
193
|
-
this.host.onValueChange(value);
|
|
194
|
-
}
|
|
195
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
196
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiComboBoxDirective, isStandalone: false, selector: "tui-combo-box", providers: [tuiAsTextfieldHost(TuiComboBoxDirective)], usesInheritance: true, ngImport: i0 }); }
|
|
197
|
-
}
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxDirective, decorators: [{
|
|
199
|
-
type: Directive,
|
|
200
|
-
args: [{
|
|
201
|
-
standalone: false,
|
|
202
|
-
selector: 'tui-combo-box',
|
|
203
|
-
providers: [tuiAsTextfieldHost(TuiComboBoxDirective)],
|
|
204
|
-
}]
|
|
205
|
-
}] });
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* TODO(v5): delete it
|
|
209
|
-
* @deprecated use new version of {@link https://taiga-ui.dev/components/combo-box TuiComboBox} (from @taiga-ui/kit) instead
|
|
210
|
-
*/
|
|
211
|
-
class TuiComboBoxStrictDirective {
|
|
212
|
-
constructor() {
|
|
213
|
-
this.comboBox = inject((TuiComboBoxComponent));
|
|
214
|
-
this.strict = true;
|
|
215
|
-
}
|
|
216
|
-
onInput() {
|
|
217
|
-
if (!this.strict && this.comboBox.search) {
|
|
218
|
-
this.comboBox.value = this.comboBox.search;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxStrictDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
222
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiComboBoxStrictDirective, isStandalone: false, selector: "tui-combo-box[strict]", inputs: { strict: "strict" }, host: { listeners: { "input": "onInput()" } }, ngImport: i0 }); }
|
|
223
|
-
}
|
|
224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxStrictDirective, decorators: [{
|
|
225
|
-
type: Directive,
|
|
226
|
-
args: [{
|
|
227
|
-
standalone: false,
|
|
228
|
-
selector: 'tui-combo-box[strict]',
|
|
229
|
-
host: {
|
|
230
|
-
'(input)': 'onInput()',
|
|
231
|
-
},
|
|
232
|
-
}]
|
|
233
|
-
}], propDecorators: { strict: [{
|
|
234
|
-
type: Input
|
|
235
|
-
}] } });
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* TODO(v5): delete it
|
|
239
|
-
* @deprecated use new version of {@link https://taiga-ui.dev/components/combo-box TuiComboBox} (from @taiga-ui/kit) instead
|
|
240
|
-
*/
|
|
241
|
-
class TuiComboBoxModule {
|
|
242
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
243
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxModule, declarations: [TuiComboBoxComponent,
|
|
244
|
-
TuiComboBoxStrictDirective,
|
|
245
|
-
TuiComboBoxDirective], imports: [CommonModule,
|
|
246
|
-
PolymorpheusOutlet,
|
|
247
|
-
PolymorpheusTemplate,
|
|
248
|
-
TuiPrimitiveTextfieldModule,
|
|
249
|
-
TuiSelectOptionModule,
|
|
250
|
-
TuiArrowComponent,
|
|
251
|
-
TuiWrapperModule,
|
|
252
|
-
TuiTextfieldControllerModule,
|
|
253
|
-
TuiLegacyDropdownOpenMonitorDirective, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContent, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection], exports: [TuiComboBoxComponent,
|
|
254
|
-
TuiComboBoxStrictDirective,
|
|
255
|
-
TuiComboBoxDirective,
|
|
256
|
-
TuiTextfieldComponent, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContent, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection] }); }
|
|
257
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxModule, imports: [CommonModule,
|
|
258
|
-
TuiPrimitiveTextfieldModule,
|
|
259
|
-
TuiSelectOptionModule,
|
|
260
|
-
TuiArrowComponent,
|
|
261
|
-
TuiWrapperModule,
|
|
262
|
-
TuiTextfieldControllerModule, i1.TuiDropdownComponent] }); }
|
|
263
|
-
}
|
|
264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComboBoxModule, decorators: [{
|
|
265
|
-
type: NgModule,
|
|
266
|
-
args: [{
|
|
267
|
-
imports: [
|
|
268
|
-
CommonModule,
|
|
269
|
-
PolymorpheusOutlet,
|
|
270
|
-
PolymorpheusTemplate,
|
|
271
|
-
TuiPrimitiveTextfieldModule,
|
|
272
|
-
TuiSelectOptionModule,
|
|
273
|
-
TuiArrowComponent,
|
|
274
|
-
TuiWrapperModule,
|
|
275
|
-
TuiTextfieldControllerModule,
|
|
276
|
-
TuiLegacyDropdownOpenMonitorDirective,
|
|
277
|
-
...TuiDropdown,
|
|
278
|
-
],
|
|
279
|
-
declarations: [
|
|
280
|
-
TuiComboBoxComponent,
|
|
281
|
-
TuiComboBoxStrictDirective,
|
|
282
|
-
TuiComboBoxDirective,
|
|
283
|
-
],
|
|
284
|
-
exports: [
|
|
285
|
-
TuiComboBoxComponent,
|
|
286
|
-
TuiComboBoxStrictDirective,
|
|
287
|
-
TuiComboBoxDirective,
|
|
288
|
-
TuiTextfieldComponent,
|
|
289
|
-
...TuiDropdown,
|
|
290
|
-
],
|
|
291
|
-
}]
|
|
292
|
-
}] });
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Generated bundle index. Do not edit.
|
|
296
|
-
*/
|
|
297
|
-
|
|
298
|
-
export { TuiComboBoxComponent, TuiComboBoxDirective, TuiComboBoxModule, TuiComboBoxStrictDirective };
|
|
299
|
-
//# sourceMappingURL=taiga-ui-legacy-components-combo-box.mjs.map
|