@taiga-ui/core 5.0.0-canary.b049509 → 5.0.0-canary.b9c0378
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/textfield/textfield-multi/textfield-item.component.d.ts +1 -0
- package/components/textfield/textfield-multi/textfield-multi.component.d.ts +2 -0
- package/fesm2022/taiga-ui-core-classes.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-button.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-calendar.mjs +23 -33
- package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-cell.mjs +7 -7
- package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-data-list.mjs +17 -17
- package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-error.mjs +10 -12
- package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-expand.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-icon.mjs +8 -12
- package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-input.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-label.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-link.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-loader.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-notification.mjs +17 -19
- package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-root.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs +24 -30
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-spin-button.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-textfield.mjs +36 -27
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-title.mjs +6 -6
- package/fesm2022/taiga-ui-core-directives-appearance.mjs +12 -16
- package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-button-x.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-date-format.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-group.mjs +6 -6
- package/fesm2022/taiga-ui-core-directives-icons.mjs +9 -9
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +12 -18
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-number-format.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-format-number.mjs +3 -3
- package/fesm2022/taiga-ui-core-portals-alert.mjs +9 -9
- package/fesm2022/taiga-ui-core-portals-dialog.mjs +13 -15
- package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-dropdown.mjs +57 -69
- package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-hint.mjs +40 -48
- package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-modal.mjs +6 -6
- package/fesm2022/taiga-ui-core-portals-popup.mjs +11 -15
- package/fesm2022/taiga-ui-core-portals-popup.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-services.mjs +7 -9
- package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-tokens.mjs +16 -32
- package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
- package/package.json +38 -38
- package/styles/components/appearance.less +1 -0
- package/styles/components/notification.less +1 -1
- package/styles/mixins/slider.less +12 -15
- package/styles/mixins/slider.scss +12 -17
- package/styles/theme/appearance/action.less +0 -14
- package/styles/theme/appearance/floating.less +5 -0
- package/tokens/i18n.d.ts +4 -0
- package/tokens/index.d.ts +0 -1
- package/tokens/theme.d.ts +0 -2
|
@@ -25,6 +25,7 @@ import { TuiWithItemsHandlers, TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directi
|
|
|
25
25
|
import { TUI_CLEAR_WORD, TUI_AUXILIARY } from '@taiga-ui/core/tokens';
|
|
26
26
|
import { PolymorpheusOutlet, injectContext, PolymorpheusComponent } from '@taiga-ui/polymorpheus';
|
|
27
27
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
28
|
+
import { WA_WINDOW } from '@ng-web-apis/common';
|
|
28
29
|
import { TuiControl } from '@taiga-ui/cdk/classes';
|
|
29
30
|
import { tuiZonefree } from '@taiga-ui/cdk/observables';
|
|
30
31
|
import { TuiScrollControls, TUI_SCROLL_REF } from '@taiga-ui/core/components/scrollbar';
|
|
@@ -64,10 +65,10 @@ class TuiTextfieldOptionsDirective {
|
|
|
64
65
|
alias: 'tuiTextfieldCleaner',
|
|
65
66
|
});
|
|
66
67
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
68
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
69
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.18", type: TuiTextfieldOptionsDirective, isStandalone: true, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: { appearance: { classPropertyName: "appearance", publicName: "tuiTextfieldAppearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "tuiTextfieldSize", isSignal: true, isRequired: false, transformFunction: null }, cleaner: { classPropertyName: "cleaner", publicName: "tuiTextfieldCleaner", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)], ngImport: i0 }); }
|
|
69
70
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldOptionsDirective, decorators: [{
|
|
71
72
|
type: Directive,
|
|
72
73
|
args: [{
|
|
73
74
|
selector: '[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]',
|
|
@@ -91,10 +92,10 @@ class TuiSelectLike {
|
|
|
91
92
|
event.preventDefault();
|
|
92
93
|
this.el.focus();
|
|
93
94
|
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
95
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiSelectLike, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
96
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: TuiSelectLike, isStandalone: true, selector: "[tuiSelectLike]", host: { attributes: { "tuiSelectLike": "", "inputmode": "none", "spellcheck": "false", "autocomplete": "off" }, listeners: { "beforeinput": "options.cleaner() && $event.inputType.includes(\"delete\") || $event.preventDefault()", "input.capture": "$event.inputType?.includes(\"delete\") && clear()", "mousedown": "prevent($event)" } }, ngImport: i0 }); }
|
|
96
97
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiSelectLike, decorators: [{
|
|
98
99
|
type: Directive,
|
|
99
100
|
args: [{
|
|
100
101
|
selector: '[tuiSelectLike]',
|
|
@@ -183,13 +184,13 @@ class TuiTextfieldComponent {
|
|
|
183
184
|
});
|
|
184
185
|
}
|
|
185
186
|
}
|
|
186
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
187
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
187
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiTextfieldComponent, isStandalone: true, selector: "tui-textfield:not([multi])", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, filler: { classPropertyName: "filler", publicName: "filler", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "animationstart": "0", "animationcancel": "0", "click.self.prevent": "0", "pointerdown.self.prevent": "onIconClick()", "scroll.capture.zoneless": "onScroll($event.target)", "tuiActiveZoneChange": "!$event && control()?.valueAccessor?.onTouched?.()" }, properties: { "attr.data-size": "options.size()", "class._with-label": "hasLabel", "class._with-template": "content() && control()?.value != null", "class._disabled": "input()?.nativeElement?.disabled" }, classAttribute: "tui-interactive" }, providers: [
|
|
188
189
|
tuiButtonOptionsProvider({ size: 'xs', appearance: 'icon' }),
|
|
189
190
|
tuiAsDataListHost(TuiTextfieldComponent),
|
|
190
191
|
], queries: [{ propertyName: "label", first: true, predicate: i0.forwardRef(() => TuiLabel), descendants: true, read: ElementRef, isSignal: true }, { propertyName: "accessor", first: true, predicate: TUI_TEXTFIELD_ACCESSOR, descendants: true, isSignal: true }, { propertyName: "control", first: true, predicate: NgControl, descendants: true, isSignal: true }, { propertyName: "auxiliaries", predicate: TUI_AUXILIARY, descendants: true, isSignal: true }, { propertyName: "input", first: true, predicate: TUI_TEXTFIELD_ACCESSOR, descendants: true, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "ghost", first: true, predicate: ["ghost"], descendants: true, isSignal: true }, { propertyName: "vcr", first: true, predicate: ["vcr"], descendants: true, read: ViewContainerRef, isSignal: true }], hostDirectives: [{ directive: i1.TuiAppearance }, { directive: i2.TuiDropdownDirective }, { directive: i2.TuiDropdownFixed }, { directive: i2.TuiWithDropdownOpen }, { directive: i3.TuiWithIcons }, { directive: i4.TuiWithItemsHandlers }, { directive: i5.TuiWithOptionContent }], ngImport: i0, template: "@if (control()?.control?.valueChanges | async) {}\n<ng-content select=\"input\" />\n<ng-content select=\"select\" />\n<ng-content select=\"textarea\" />\n<ng-content select=\"label\" />\n<span\n class=\"t-content\"\n (pointerdown)=\"input()?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <ng-container #vcr />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue(null)\"\n >\n {{ clear() }}\n </button>\n }\n <ng-content select=\"tui-icon\" />\n</span>\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n@if (showFiller()) {\n <input\n #ghost\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n />\n}\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);--t-label-y: -.75rem;--t-label-font: var(--tui-font-body-s);--t-end: 0rem;--t-start: 0rem;position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;min-block-size:var(--t-height);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-ui-m);line-height:1.25rem;box-sizing:border-box;gap:0 .25rem;isolation:isolate}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[tuiAppearance]{outline:none}tui-textfield[tuiAppearance][data-appearance=\"\"]{color:var(--tui-text-tertiary)}@media (hover: hover) and (pointer: fine){tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){color:var(--tui-text-secondary)}}tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly])[data-state=hover]{color:var(--tui-text-secondary)}tui-textfield[data-icon-start]{--t-start: 2.25rem}tui-textfield[data-icon-end]{--t-end: 2.25rem}tui-textfield[tuiIcons]:before{z-index:1;block-size:var(--t-height);margin-inline-end:.5rem;pointer-events:none}tui-textfield[tuiIcons]:after{position:relative;block-size:var(--t-height);cursor:pointer;border-inline:var(--t-padding) solid transparent;margin:0 calc(-1 * var(--t-padding))}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield [tuiLabel],tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=s][data-icon-start]{--t-start: 1.25rem}tui-textfield[data-size=s][data-icon-end]{--t-end: 1.25rem}tui-textfield[data-size=s]:before{margin-inline:-.125rem .5rem;font-size:1rem}tui-textfield[data-size=s]:after{margin-inline-start:calc(.625rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding));font-size:1rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.375rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);--t-label-font: var(--tui-font-body-xs);--t-label-y: -.5625rem;border-radius:var(--tui-radius-m);font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=m][data-icon-start]{--t-start: 1.75rem}tui-textfield[data-size=m][data-icon-end]{--t-end: 1.75rem}tui-textfield[data-size=m]:before{margin-inline:-.125rem .125rem}tui-textfield[data-size=m]:after{margin-inline-start:calc(.25rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield[data-size=l]{--t-label: -.7rem}tui-textfield:is(._disabled,[data-state=disabled]){pointer-events:none;opacity:var(--tui-disabled-opacity)}tui-textfield:is(._disabled,[data-state=disabled]) [tuiAppearance]:is(._disabled,:disabled,[data-state=disabled]){opacity:1}tui-textfield:is(._disabled,[data-state=disabled]) tui-icon{display:none}tui-textfield._with-label>.t-template,tui-textfield._with-label .t-filler,tui-textfield._with-label [tuiInput]{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template._empty,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]._empty{color:transparent}tui-textfield>.t-template,tui-textfield .t-filler,tui-textfield [tuiInput]{position:absolute;inset-block-start:0;inset-inline:0;inline-size:auto;block-size:100%;-webkit-appearance:none;appearance:none;background:none;font:inherit;resize:none;outline:none;color:var(--tui-text-primary);box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-start, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-end, 0rem) + var(--t-side, 0rem) + var(--t-padding))}tui-textfield>.t-template:is(input,textarea):read-only~.t-filler,tui-textfield .t-filler:is(input,textarea):read-only~.t-filler,tui-textfield [tuiInput]:is(input,textarea):read-only~.t-filler{display:none}tui-textfield>.t-template:disabled,tui-textfield .t-filler:disabled,tui-textfield [tuiInput]:disabled{animation:tuiPresent 1s infinite;opacity:1}tui-textfield>.t-template[inputmode=none],tui-textfield .t-filler[inputmode=none],tui-textfield [tuiInput][inputmode=none]{caret-color:transparent}tui-textfield>.t-template{display:flex;block-size:100%;align-items:center}tui-textfield._with-template [tuiInput]:first-of-type{color:transparent!important}tui-textfield [tuiInput]:-webkit-autofill [tuiLabel],tui-textfield [tuiInput][chrome-autofilled] [tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown) [tuiLabel],tui-textfield[multi][multi]:not(._empty) [tuiLabel],tui-textfield [tuiInput]:-webkit-autofill:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput][chrome-autofilled]:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown):not(tui-textfield)~[tuiLabel],tui-textfield[multi][multi]:not(._empty):not(tui-textfield)~[tuiLabel]{font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;-webkit-user-select:none;user-select:none;line-height:var(--t-height);transition-duration:inherit}tui-textfield [tuiLabel],tui-textfield [tuiInput]::placeholder,tui-textfield [tuiInput]._empty{color:var(--tui-text-secondary)}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a,tui-textfield tui-icon{pointer-events:auto}tui-textfield>.t-content{z-index:1;display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield:is([data-mode~=readonly],[data-state=disabled],._empty) [tuiButtonX],tui-textfield [tuiInput]._empty~.t-content [tuiButtonX],tui-textfield [tuiInput]:disabled~.t-content [tuiButtonX]{display:none}tui-textfield .t-filler{pointer-events:none!important;color:var(--tui-text-tertiary)}tui-textfield [tuiFluidTypography]{font-weight:700}tui-textfield [tuiSelectLike]:not(:read-only){cursor:pointer}tui-textfield:has(input[type=tel]){direction:ltr}tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled) [tuiInput]:not(._empty)~[tuiLabel],tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled)[multi]:not(._empty) [tuiLabel]{color:var(--tui-text-negative)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButtonX, selector: "[tuiButtonX]" }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["waResizeBox"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
191
192
|
}
|
|
192
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldComponent, decorators: [{
|
|
193
194
|
type: Component,
|
|
194
195
|
args: [{ selector: 'tui-textfield:not([multi])', imports: [AsyncPipe, PolymorpheusOutlet, TuiButtonX, WaResizeObserver], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
195
196
|
tuiButtonOptionsProvider({ size: 'xs', appearance: 'icon' }),
|
|
@@ -230,15 +231,18 @@ class TuiTextfieldItemComponent {
|
|
|
230
231
|
this.content = computed(() => this.textfield.item() ??
|
|
231
232
|
this.handlers.stringify()(this.context.$implicit.item));
|
|
232
233
|
}
|
|
233
|
-
|
|
234
|
-
|
|
234
|
+
prevent(e) {
|
|
235
|
+
this.textfield.focused() && e.preventDefault();
|
|
236
|
+
}
|
|
237
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: TuiTextfieldItemComponent, isStandalone: true, selector: "tui-textfield-item", host: { listeners: { "pointerdown.self": "prevent($event)", "keydown.arrowLeft.prevent": "el.previousElementSibling?.firstChild?.focus()", "keydown.arrowRight.prevent": "el.nextElementSibling?.firstChild?.focus()" }, properties: { "class._string": "!textfield.item()", "class._disabled": "handlers.disabledItemHandler()(context.$implicit.item)" } }, ngImport: i0, template: '<ng-container *polymorpheusOutlet="content() as text; context: context">{{ text }}</ng-container>', isInline: true, styles: [":host{max-inline-size:100%;flex-shrink:0;white-space:nowrap;text-overflow:ellipsis;color:var(--tui-text-primary)}:host._string{overflow:hidden}:host._string._disabled{opacity:var(--tui-disabled-opacity)}:host._string:after{content:\",\\a0\"}:host:last-of-type{max-inline-size:80%}:host-context(tui-textfield:not([data-focus=\"true\"])):last-of-type:after{display:none}:host-context(tui-textfield:has([tuiSelectLike])):last-of-type:after,:host-context(tui-textfield[data-mode~=\"readonly\"]):last-of-type:after{content:\"\\a0\"}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
235
239
|
}
|
|
236
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldItemComponent, decorators: [{
|
|
237
241
|
type: Component,
|
|
238
242
|
args: [{ selector: 'tui-textfield-item', imports: [PolymorpheusOutlet], template: '<ng-container *polymorpheusOutlet="content() as text; context: context">{{ text }}</ng-container>', changeDetection: ChangeDetectionStrategy.Default, host: {
|
|
239
243
|
'[class._string]': '!textfield.item()',
|
|
240
244
|
'[class._disabled]': 'handlers.disabledItemHandler()(context.$implicit.item)',
|
|
241
|
-
'(pointerdown.self
|
|
245
|
+
'(pointerdown.self)': 'prevent($event)',
|
|
242
246
|
'(keydown.arrowLeft.prevent)': 'el.previousElementSibling?.firstChild?.focus()',
|
|
243
247
|
'(keydown.arrowRight.prevent)': 'el.nextElementSibling?.firstChild?.focus()',
|
|
244
248
|
}, styles: [":host{max-inline-size:100%;flex-shrink:0;white-space:nowrap;text-overflow:ellipsis;color:var(--tui-text-primary)}:host._string{overflow:hidden}:host._string._disabled{opacity:var(--tui-disabled-opacity)}:host._string:after{content:\",\\a0\"}:host:last-of-type{max-inline-size:80%}:host-context(tui-textfield:not([data-focus=\"true\"])):last-of-type:after{display:none}:host-context(tui-textfield:has([tuiSelectLike])):last-of-type:after,:host-context(tui-textfield[data-mode~=\"readonly\"]):last-of-type:after{content:\"\\a0\"}\n"] }]
|
|
@@ -249,6 +253,7 @@ class TuiTextfieldMultiComponent extends TuiTextfieldComponent {
|
|
|
249
253
|
constructor() {
|
|
250
254
|
super(...arguments);
|
|
251
255
|
this.height = signal(null);
|
|
256
|
+
this.win = inject(WA_WINDOW);
|
|
252
257
|
this.handlers = inject(TUI_ITEMS_HANDLERS);
|
|
253
258
|
this.component = TUI_TEXTFIELD_ITEM;
|
|
254
259
|
this.sub = fromEvent(this.el, 'scroll')
|
|
@@ -285,6 +290,12 @@ class TuiTextfieldMultiComponent extends TuiTextfieldComponent {
|
|
|
285
290
|
event.preventDefault();
|
|
286
291
|
event.currentTarget.previousElementSibling?.firstElementChild?.focus();
|
|
287
292
|
}
|
|
293
|
+
focusInput() {
|
|
294
|
+
const selection = this.win.getSelection();
|
|
295
|
+
if (!selection?.rangeCount || selection.getRangeAt(0)?.collapsed) {
|
|
296
|
+
this.input()?.nativeElement.focus();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
288
299
|
onClick(target) {
|
|
289
300
|
if (target === this.el ||
|
|
290
301
|
!this.cva()?.interactive() ||
|
|
@@ -301,15 +312,15 @@ class TuiTextfieldMultiComponent extends TuiTextfieldComponent {
|
|
|
301
312
|
// Empty catch block - silently ignore showPicker errors
|
|
302
313
|
}
|
|
303
314
|
}
|
|
304
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
305
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
315
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldMultiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
316
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiTextfieldMultiComponent, isStandalone: true, selector: "tui-textfield[multi]", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click.prevent": "onClick($event.target)", "tuiActiveZoneChange": "!$event && el.scrollTo({left: 0})" }, properties: { "attr.data-state": "control()?.disabled ? \"disabled\" : null", "class._empty": "!control()?.value?.length", "style.--t-item-height.px": "height()", "style.--t-rows": "rows()" } }, providers: [
|
|
306
317
|
tuiButtonOptionsProvider({ size: 'xs', appearance: 'icon' }),
|
|
307
318
|
tuiAsDataListHost(TuiTextfieldMultiComponent),
|
|
308
319
|
tuiProvide(TuiTextfieldComponent, TuiTextfieldMultiComponent),
|
|
309
320
|
tuiProvide(TUI_SCROLL_REF, ElementRef),
|
|
310
|
-
], queries: [{ propertyName: "cva", first: true, predicate: TuiControl, descendants: true, isSignal: true }, { propertyName: "item", first: true, predicate: TuiItem, descendants: true, read: TemplateRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (control()?.control?.valueChanges | async) {}\n@if (rows() > 1) {\n <tui-scroll-controls class=\"t-scrollbar\" />\n}\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows() === 1\"\n (click)=\"input()?.nativeElement?.focus()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n @for (item of control()?.value; track item) {\n <ng-template\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index: $index}}\"\n />\n }\n <span\n class=\"t-input\"\n (keydown.arrowLeft)=\"onLeft($event)\"\n >\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <span class=\"t-ghost\">{{ placeholder }}</span>\n <input\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [class.t-filler_hidden]=\"!showFiller()\"\n [value]=\"computedFiller()\"\n />\n </span>\n</div>\n\n<span\n class=\"t-content\"\n (click.stop)=\"input()?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue([])\"\n >\n {{ clear() }}\n </button>\n }\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);--t-label-y: -.75rem;--t-label-font: var(--tui-font-body-s);--t-end: 0rem;--t-start: 0rem;position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;min-block-size:var(--t-height);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-ui-m);line-height:1.25rem;box-sizing:border-box;gap:0 .25rem;isolation:isolate}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[tuiAppearance]{outline:none}tui-textfield[tuiAppearance][data-appearance=\"\"]{color:var(--tui-text-tertiary)}@media (hover: hover) and (pointer: fine){tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){color:var(--tui-text-secondary)}}tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly])[data-state=hover]{color:var(--tui-text-secondary)}tui-textfield[data-icon-start]{--t-start: 2.25rem}tui-textfield[data-icon-end]{--t-end: 2.25rem}tui-textfield[tuiIcons]:before{z-index:1;block-size:var(--t-height);margin-inline-end:.5rem;pointer-events:none}tui-textfield[tuiIcons]:after{position:relative;block-size:var(--t-height);cursor:pointer;border-inline:var(--t-padding) solid transparent;margin:0 calc(-1 * var(--t-padding))}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield [tuiLabel],tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=s][data-icon-start]{--t-start: 1.25rem}tui-textfield[data-size=s][data-icon-end]{--t-end: 1.25rem}tui-textfield[data-size=s]:before{margin-inline:-.125rem .5rem;font-size:1rem}tui-textfield[data-size=s]:after{margin-inline-start:calc(.625rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding));font-size:1rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.375rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);--t-label-font: var(--tui-font-body-xs);--t-label-y: -.5625rem;border-radius:var(--tui-radius-m);font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=m][data-icon-start]{--t-start: 1.75rem}tui-textfield[data-size=m][data-icon-end]{--t-end: 1.75rem}tui-textfield[data-size=m]:before{margin-inline:-.125rem .125rem}tui-textfield[data-size=m]:after{margin-inline-start:calc(.25rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield[data-size=l]{--t-label: -.7rem}tui-textfield:is(._disabled,[data-state=disabled]){pointer-events:none;opacity:var(--tui-disabled-opacity)}tui-textfield:is(._disabled,[data-state=disabled]) [tuiAppearance]:is(._disabled,:disabled,[data-state=disabled]){opacity:1}tui-textfield:is(._disabled,[data-state=disabled]) tui-icon{display:none}tui-textfield._with-label>.t-template,tui-textfield._with-label .t-filler,tui-textfield._with-label [tuiInput]{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template._empty,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]._empty{color:transparent}tui-textfield>.t-template,tui-textfield .t-filler,tui-textfield [tuiInput]{position:absolute;inset-block-start:0;inset-inline:0;inline-size:auto;block-size:100%;-webkit-appearance:none;appearance:none;background:none;font:inherit;resize:none;outline:none;color:var(--tui-text-primary);box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-start, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-end, 0rem) + var(--t-side, 0rem) + var(--t-padding))}tui-textfield>.t-template:is(input,textarea):read-only~.t-filler,tui-textfield .t-filler:is(input,textarea):read-only~.t-filler,tui-textfield [tuiInput]:is(input,textarea):read-only~.t-filler{display:none}tui-textfield>.t-template:disabled,tui-textfield .t-filler:disabled,tui-textfield [tuiInput]:disabled{animation:tuiPresent 1s infinite;opacity:1}tui-textfield>.t-template[inputmode=none],tui-textfield .t-filler[inputmode=none],tui-textfield [tuiInput][inputmode=none]{caret-color:transparent}tui-textfield>.t-template{display:flex;block-size:100%;align-items:center}tui-textfield._with-template [tuiInput]:first-of-type{color:transparent!important}tui-textfield [tuiInput]:-webkit-autofill [tuiLabel],tui-textfield [tuiInput][chrome-autofilled] [tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown) [tuiLabel],tui-textfield[multi][multi]:not(._empty) [tuiLabel],tui-textfield [tuiInput]:-webkit-autofill:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput][chrome-autofilled]:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown):not(tui-textfield)~[tuiLabel],tui-textfield[multi][multi]:not(._empty):not(tui-textfield)~[tuiLabel]{font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;-webkit-user-select:none;user-select:none;line-height:var(--t-height);transition-duration:inherit}tui-textfield [tuiLabel],tui-textfield [tuiInput]::placeholder,tui-textfield [tuiInput]._empty{color:var(--tui-text-secondary)}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a,tui-textfield tui-icon{pointer-events:auto}tui-textfield>.t-content{z-index:1;display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield:is([data-mode~=readonly],[data-state=disabled],._empty) [tuiButtonX],tui-textfield [tuiInput]._empty~.t-content [tuiButtonX],tui-textfield [tuiInput]:disabled~.t-content [tuiButtonX]{display:none}tui-textfield .t-filler{pointer-events:none!important;color:var(--tui-text-tertiary)}tui-textfield [tuiFluidTypography]{font-weight:700}tui-textfield [tuiSelectLike]:not(:read-only){cursor:pointer}tui-textfield:has(input[type=tel]){direction:ltr}tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled) [tuiInput]:not(._empty)~[tuiLabel],tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled)[multi]:not(._empty) [tuiLabel]{color:var(--tui-text-negative)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield[multi][multi]{flex-wrap:nowrap;overflow:scroll;align-items:stretch;cursor:text;gap:0;max-block-size:calc(var(--t-vertical) * 2 + var(--t-item-height) * var(--t-rows));overscroll-behavior:none;scroll-behavior:var(--tui-scroll-behavior)}tui-textfield[multi][multi]:before,tui-textfield[multi][multi]:after{position:sticky;inset-block-start:0;inset-inline-start:0;block-size:var(--t-height)}tui-textfield[multi][multi][tuiChevron]:after{inset-block-start:.375rem;block-size:calc(var(--t-height) - .75rem)}tui-textfield[multi][multi]>.t-scrollbar{transform:translate(calc(var(--t-padding) * var(--tui-inline)));margin-inline-start:calc(-1 * var(--t-start));margin-inline-end:calc(1px - 100% + var(--t-start))}tui-textfield[multi][multi]>.t-scrollbar .t-bar_horizontal{display:none}tui-textfield[multi][multi]>.t-items{position:sticky;display:flex;inset-inline-start:var(--t-start);min-inline-size:0;max-block-size:var(--t-height);min-block-size:fit-content;flex:1;align-items:center;flex-wrap:wrap;padding:var(--t-vertical) 0;transition-duration:inherit;box-sizing:border-box}tui-textfield[multi][multi]>.t-items:after{content:\"\";min-inline-size:1px;min-block-size:1px}tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 0 0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem));flex-wrap:nowrap}[dir=rtl] tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem) 0 0)}tui-textfield[multi][multi]>.t-items_horizontal>.t-input{padding-inline-end:calc(var(--t-side, 0rem) + var(--t-end) + var(--t-padding))}tui-textfield[multi][multi]>.t-items:not(tui-textfield[multi][multi]>.t-items_horizontal){--t-scroll: 0}tui-textfield[multi][multi]>.t-items>label[tuiLabel]{position:absolute;inset-block-start:0;inline-size:100%}tui-textfield[multi][multi]>.t-items>.t-input{position:relative;display:flex;align-items:center;flex:1;block-size:1.25em;max-block-size:1.25rem;max-inline-size:100%;pointer-events:none;transform:translate(var(--t-scroll))}tui-textfield[multi][multi]>.t-items>.t-input .t-filler,tui-textfield[multi][multi]>.t-items>.t-input [tuiInput]{block-size:100%;padding:0;pointer-events:auto}tui-textfield[multi][multi]>.t-items>.t-input .t-ghost{visibility:hidden;white-space:pre;text-overflow:clip;padding-inline-end:.125rem;min-block-size:var(--t-item-height, 1em)}tui-textfield[multi][multi]>.t-items>.t-input .t-filler_hidden{display:none}tui-textfield[multi][multi]>.t-content{position:sticky;inset-block-start:0;inset-inline-start:calc(100% - var(--t-side, 0rem) - var(--t-end) + var(--t-padding) - var(--t-offset));margin:0;gap:.25rem}tui-textfield[multi][multi]>.t-items input:not(:focus)::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items input::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items label~.t-input input::placeholder{opacity:0}tui-textfield[multi][multi]._empty>.t-items input::placeholder,tui-textfield[multi][multi][data-focus=true]:not([data-mode~=readonly]):not(:focus-within)>.t-items input::placeholder{opacity:1}tui-textfield[multi][multi][data-state=disabled],tui-textfield[multi][multi][data-mode~=readonly]{pointer-events:none}tui-textfield[multi][multi][data-state=disabled] select,tui-textfield[multi][multi][data-mode~=readonly] select{display:none}tui-textfield[multi][multi][data-size=l]{--t-vertical: .625rem;--t-offset: calc(1rem - var(--t-end) / 4.5)}tui-textfield[multi][multi][data-size=l]:before{margin-inline-end:.75rem}tui-textfield[multi][multi][data-size=l]:after{inset-inline-start:calc(100% - var(--t-end) - .375rem + .25 * (1em - 1rem));margin-inline-start:-.75rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=l]._with-label{--t-vertical: 1.125rem}tui-textfield[multi][multi][data-size=l]._with-label>.t-items{padding:1.75rem 0 .5rem}tui-textfield[multi][multi][data-size=m]{--t-vertical: .5rem;--t-offset: calc(.75rem + var(--t-end) / 14)}tui-textfield[multi][multi][data-size=m]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=m]:after{inset-inline-start:calc(100% - var(--t-end) - .25rem);border-width:.625rem;margin-inline-start:-.125rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=m]._with-label{--t-vertical: .875rem}tui-textfield[multi][multi][data-size=m]._with-label>.t-items{padding:1.375rem 0 .375rem}tui-textfield[multi][multi][data-size=m]>.t-content{transform:translate(.125rem)}tui-textfield[multi][multi][data-size=s]{--t-vertical: .125rem;--t-offset: calc(.625rem + var(--t-end) / 10)}tui-textfield[multi][multi][data-size=s]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=s]:after{inset-inline-start:calc(100% - var(--t-end) - .125rem);border-width:.5rem;margin-inline-end:calc(-1 * var(--t-padding))}tui-textfield[multi][multi][data-size=s]>.t-content{gap:0;transform:translate(calc(.375rem - var(--t-end) / 10))}tui-textfield[multi][multi] tui-textfield-item{transform:translate(var(--t-scroll))}tui-textfield[multi][multi] input::placeholder{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}tui-textfield[multi][multi] select{opacity:0;pointer-events:none!important}tui-textfield[multi][multi]._empty>.t-items select~.t-filler{display:block}tui-textfield[multi][multi]._empty:not([data-focus=true])>.t-items select~.t-filler{color:var(--tui-text-secondary)}tui-textfield[multi][multi]:has([tuiSelectLike]){cursor:pointer}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButtonX, selector: "[tuiButtonX]" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["waResizeBox"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
321
|
+
], queries: [{ propertyName: "cva", first: true, predicate: TuiControl, descendants: true, isSignal: true }, { propertyName: "item", first: true, predicate: TuiItem, descendants: true, read: TemplateRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (control()?.control?.valueChanges | async) {}\n@if (rows() > 1) {\n <tui-scroll-controls class=\"t-scrollbar\" />\n}\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows() === 1\"\n (click)=\"focusInput()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n @for (item of control()?.value; track item) {\n <ng-template\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index: $index}}\"\n />\n }\n <span\n class=\"t-input\"\n (keydown.arrowLeft)=\"onLeft($event)\"\n >\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <span class=\"t-ghost\">{{ placeholder }}</span>\n <input\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [class.t-filler_hidden]=\"!showFiller()\"\n [value]=\"computedFiller()\"\n />\n </span>\n</div>\n\n<span\n class=\"t-content\"\n (click.stop)=\"input()?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue([])\"\n >\n {{ clear() }}\n </button>\n }\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);--t-label-y: -.75rem;--t-label-font: var(--tui-font-body-s);--t-end: 0rem;--t-start: 0rem;position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;min-block-size:var(--t-height);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-ui-m);line-height:1.25rem;box-sizing:border-box;gap:0 .25rem;isolation:isolate}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[tuiAppearance]{outline:none}tui-textfield[tuiAppearance][data-appearance=\"\"]{color:var(--tui-text-tertiary)}@media (hover: hover) and (pointer: fine){tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){color:var(--tui-text-secondary)}}tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly])[data-state=hover]{color:var(--tui-text-secondary)}tui-textfield[data-icon-start]{--t-start: 2.25rem}tui-textfield[data-icon-end]{--t-end: 2.25rem}tui-textfield[tuiIcons]:before{z-index:1;block-size:var(--t-height);margin-inline-end:.5rem;pointer-events:none}tui-textfield[tuiIcons]:after{position:relative;block-size:var(--t-height);cursor:pointer;border-inline:var(--t-padding) solid transparent;margin:0 calc(-1 * var(--t-padding))}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield [tuiLabel],tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=s][data-icon-start]{--t-start: 1.25rem}tui-textfield[data-size=s][data-icon-end]{--t-end: 1.25rem}tui-textfield[data-size=s]:before{margin-inline:-.125rem .5rem;font-size:1rem}tui-textfield[data-size=s]:after{margin-inline-start:calc(.625rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding));font-size:1rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.375rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);--t-label-font: var(--tui-font-body-xs);--t-label-y: -.5625rem;border-radius:var(--tui-radius-m);font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=m][data-icon-start]{--t-start: 1.75rem}tui-textfield[data-size=m][data-icon-end]{--t-end: 1.75rem}tui-textfield[data-size=m]:before{margin-inline:-.125rem .125rem}tui-textfield[data-size=m]:after{margin-inline-start:calc(.25rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield[data-size=l]{--t-label: -.7rem}tui-textfield:is(._disabled,[data-state=disabled]){pointer-events:none;opacity:var(--tui-disabled-opacity)}tui-textfield:is(._disabled,[data-state=disabled]) [tuiAppearance]:is(._disabled,:disabled,[data-state=disabled]){opacity:1}tui-textfield:is(._disabled,[data-state=disabled]) tui-icon{display:none}tui-textfield._with-label>.t-template,tui-textfield._with-label .t-filler,tui-textfield._with-label [tuiInput]{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template._empty,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]._empty{color:transparent}tui-textfield>.t-template,tui-textfield .t-filler,tui-textfield [tuiInput]{position:absolute;inset-block-start:0;inset-inline:0;inline-size:auto;block-size:100%;-webkit-appearance:none;appearance:none;background:none;font:inherit;resize:none;outline:none;color:var(--tui-text-primary);box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-start, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-end, 0rem) + var(--t-side, 0rem) + var(--t-padding))}tui-textfield>.t-template:is(input,textarea):read-only~.t-filler,tui-textfield .t-filler:is(input,textarea):read-only~.t-filler,tui-textfield [tuiInput]:is(input,textarea):read-only~.t-filler{display:none}tui-textfield>.t-template:disabled,tui-textfield .t-filler:disabled,tui-textfield [tuiInput]:disabled{animation:tuiPresent 1s infinite;opacity:1}tui-textfield>.t-template[inputmode=none],tui-textfield .t-filler[inputmode=none],tui-textfield [tuiInput][inputmode=none]{caret-color:transparent}tui-textfield>.t-template{display:flex;block-size:100%;align-items:center}tui-textfield._with-template [tuiInput]:first-of-type{color:transparent!important}tui-textfield [tuiInput]:-webkit-autofill [tuiLabel],tui-textfield [tuiInput][chrome-autofilled] [tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown) [tuiLabel],tui-textfield[multi][multi]:not(._empty) [tuiLabel],tui-textfield [tuiInput]:-webkit-autofill:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput][chrome-autofilled]:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown):not(tui-textfield)~[tuiLabel],tui-textfield[multi][multi]:not(._empty):not(tui-textfield)~[tuiLabel]{font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;-webkit-user-select:none;user-select:none;line-height:var(--t-height);transition-duration:inherit}tui-textfield [tuiLabel],tui-textfield [tuiInput]::placeholder,tui-textfield [tuiInput]._empty{color:var(--tui-text-secondary)}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a,tui-textfield tui-icon{pointer-events:auto}tui-textfield>.t-content{z-index:1;display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield:is([data-mode~=readonly],[data-state=disabled],._empty) [tuiButtonX],tui-textfield [tuiInput]._empty~.t-content [tuiButtonX],tui-textfield [tuiInput]:disabled~.t-content [tuiButtonX]{display:none}tui-textfield .t-filler{pointer-events:none!important;color:var(--tui-text-tertiary)}tui-textfield [tuiFluidTypography]{font-weight:700}tui-textfield [tuiSelectLike]:not(:read-only){cursor:pointer}tui-textfield:has(input[type=tel]){direction:ltr}tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled) [tuiInput]:not(._empty)~[tuiLabel],tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled)[multi]:not(._empty) [tuiLabel]{color:var(--tui-text-negative)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield[multi][multi]{flex-wrap:nowrap;overflow:scroll;align-items:stretch;cursor:text;gap:0;max-block-size:calc(var(--t-vertical) * 2 + var(--t-item-height) * var(--t-rows));overscroll-behavior-x:none;scroll-behavior:var(--tui-scroll-behavior)}tui-textfield[multi][multi]:before,tui-textfield[multi][multi]:after{position:sticky;inset-block-start:0;inset-inline-start:0;block-size:var(--t-height)}tui-textfield[multi][multi][tuiChevron]:after{inset-block-start:.375rem;block-size:calc(var(--t-height) - .75rem)}tui-textfield[multi][multi]>.t-scrollbar{transform:translate(calc(var(--t-padding) * var(--tui-inline)));margin-inline-start:calc(-1 * var(--t-start));margin-inline-end:calc(1px - 100% + var(--t-start))}tui-textfield[multi][multi]>.t-scrollbar .t-bar_horizontal{display:none}tui-textfield[multi][multi]>.t-items{position:sticky;display:flex;inset-inline-start:var(--t-start);min-inline-size:0;max-block-size:var(--t-height);min-block-size:fit-content;flex:1;align-items:center;flex-wrap:wrap;padding:var(--t-vertical) 0;transition-duration:inherit;box-sizing:border-box}tui-textfield[multi][multi]>.t-items:after{content:\"\";min-inline-size:1px;min-block-size:1px}tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 0 0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem));flex-wrap:nowrap}[dir=rtl] tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem) 0 0)}tui-textfield[multi][multi]>.t-items_horizontal>.t-input{padding-inline-end:calc(var(--t-side, 0rem) + var(--t-end) + var(--t-padding))}tui-textfield[multi][multi]>.t-items:not(tui-textfield[multi][multi]>.t-items_horizontal){--t-scroll: 0}tui-textfield[multi][multi]>.t-items>label[tuiLabel]{position:absolute;inset-block-start:0;inline-size:100%}tui-textfield[multi][multi]>.t-items>.t-input{position:relative;display:flex;align-items:center;flex:1;block-size:1.25em;max-block-size:1.25rem;max-inline-size:100%;pointer-events:none;transform:translate(var(--t-scroll))}tui-textfield[multi][multi]>.t-items>.t-input .t-filler,tui-textfield[multi][multi]>.t-items>.t-input [tuiInput]{block-size:100%;padding:0;pointer-events:auto}tui-textfield[multi][multi]>.t-items>.t-input .t-ghost{visibility:hidden;white-space:pre;text-overflow:clip;padding-inline-end:.125rem;min-block-size:var(--t-item-height, 1em)}tui-textfield[multi][multi]>.t-items>.t-input .t-filler_hidden{display:none}tui-textfield[multi][multi]>.t-content{position:sticky;inset-block-start:0;inset-inline-start:calc(100% - var(--t-side, 0rem) - var(--t-end) + var(--t-padding) - var(--t-offset));margin:0;gap:.25rem}tui-textfield[multi][multi]>.t-items input:not(:focus)::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items input::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items label~.t-input input::placeholder{opacity:0}tui-textfield[multi][multi]._empty>.t-items input::placeholder,tui-textfield[multi][multi][data-focus=true]:not([data-mode~=readonly]):not(:focus-within)>.t-items input::placeholder{opacity:1}tui-textfield[multi][multi][data-state=disabled],tui-textfield[multi][multi][data-mode~=readonly]{pointer-events:none}tui-textfield[multi][multi][data-state=disabled] select,tui-textfield[multi][multi][data-mode~=readonly] select{display:none}tui-textfield[multi][multi][data-size=l]{--t-vertical: .625rem;--t-offset: calc(1rem - var(--t-end) / 4.5)}tui-textfield[multi][multi][data-size=l]:before{margin-inline-end:.75rem}tui-textfield[multi][multi][data-size=l]:after{inset-inline-start:calc(100% - var(--t-end) - .375rem + .25 * (1em - 1rem));margin-inline-start:-.75rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=l]._with-label{--t-vertical: 1.125rem}tui-textfield[multi][multi][data-size=l]._with-label>.t-items{padding:1.75rem 0 .5rem}tui-textfield[multi][multi][data-size=m]{--t-vertical: .5rem;--t-offset: calc(.75rem + var(--t-end) / 14)}tui-textfield[multi][multi][data-size=m]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=m]:after{inset-inline-start:calc(100% - var(--t-end) - .25rem);border-width:.625rem;margin-inline-start:-.125rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=m]._with-label{--t-vertical: .875rem}tui-textfield[multi][multi][data-size=m]._with-label>.t-items{padding:1.375rem 0 .375rem}tui-textfield[multi][multi][data-size=m]>.t-content{transform:translate(.125rem)}tui-textfield[multi][multi][data-size=s]{--t-vertical: .125rem;--t-offset: calc(.625rem + var(--t-end) / 10)}tui-textfield[multi][multi][data-size=s]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=s]:after{inset-inline-start:calc(100% - var(--t-end) - .125rem);border-width:.5rem;margin-inline-end:calc(-1 * var(--t-padding))}tui-textfield[multi][multi][data-size=s]>.t-content{gap:0;transform:translate(calc(.375rem - var(--t-end) / 10))}tui-textfield[multi][multi] tui-textfield-item{transform:translate(var(--t-scroll))}tui-textfield[multi][multi] input::placeholder{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}tui-textfield[multi][multi] select{opacity:0;pointer-events:none!important}tui-textfield[multi][multi]._empty>.t-items select~.t-filler{display:block}tui-textfield[multi][multi]._empty:not([data-focus=true])>.t-items select~.t-filler{color:var(--tui-text-secondary)}tui-textfield[multi][multi]:has([tuiSelectLike]){cursor:pointer}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButtonX, selector: "[tuiButtonX]" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["waResizeBox"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
311
322
|
}
|
|
312
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldMultiComponent, decorators: [{
|
|
313
324
|
type: Component,
|
|
314
325
|
args: [{ selector: 'tui-textfield[multi]', imports: [
|
|
315
326
|
AsyncPipe,
|
|
@@ -329,7 +340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
329
340
|
'[style.--t-rows]': 'rows()',
|
|
330
341
|
'(click.prevent)': 'onClick($event.target)',
|
|
331
342
|
'(tuiActiveZoneChange)': '!$event && el.scrollTo({left: 0})',
|
|
332
|
-
}, template: "@if (control()?.control?.valueChanges | async) {}\n@if (rows() > 1) {\n <tui-scroll-controls class=\"t-scrollbar\" />\n}\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows() === 1\"\n (click)=\"input()?.nativeElement?.focus()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n @for (item of control()?.value; track item) {\n <ng-template\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index: $index}}\"\n />\n }\n <span\n class=\"t-input\"\n (keydown.arrowLeft)=\"onLeft($event)\"\n >\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <span class=\"t-ghost\">{{ placeholder }}</span>\n <input\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [class.t-filler_hidden]=\"!showFiller()\"\n [value]=\"computedFiller()\"\n />\n </span>\n</div>\n\n<span\n class=\"t-content\"\n (click.stop)=\"input()?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue([])\"\n >\n {{ clear() }}\n </button>\n }\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);--t-label-y: -.75rem;--t-label-font: var(--tui-font-body-s);--t-end: 0rem;--t-start: 0rem;position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;min-block-size:var(--t-height);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-ui-m);line-height:1.25rem;box-sizing:border-box;gap:0 .25rem;isolation:isolate}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[tuiAppearance]{outline:none}tui-textfield[tuiAppearance][data-appearance=\"\"]{color:var(--tui-text-tertiary)}@media (hover: hover) and (pointer: fine){tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){color:var(--tui-text-secondary)}}tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly])[data-state=hover]{color:var(--tui-text-secondary)}tui-textfield[data-icon-start]{--t-start: 2.25rem}tui-textfield[data-icon-end]{--t-end: 2.25rem}tui-textfield[tuiIcons]:before{z-index:1;block-size:var(--t-height);margin-inline-end:.5rem;pointer-events:none}tui-textfield[tuiIcons]:after{position:relative;block-size:var(--t-height);cursor:pointer;border-inline:var(--t-padding) solid transparent;margin:0 calc(-1 * var(--t-padding))}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield [tuiLabel],tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=s][data-icon-start]{--t-start: 1.25rem}tui-textfield[data-size=s][data-icon-end]{--t-end: 1.25rem}tui-textfield[data-size=s]:before{margin-inline:-.125rem .5rem;font-size:1rem}tui-textfield[data-size=s]:after{margin-inline-start:calc(.625rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding));font-size:1rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.375rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);--t-label-font: var(--tui-font-body-xs);--t-label-y: -.5625rem;border-radius:var(--tui-radius-m);font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=m][data-icon-start]{--t-start: 1.75rem}tui-textfield[data-size=m][data-icon-end]{--t-end: 1.75rem}tui-textfield[data-size=m]:before{margin-inline:-.125rem .125rem}tui-textfield[data-size=m]:after{margin-inline-start:calc(.25rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield[data-size=l]{--t-label: -.7rem}tui-textfield:is(._disabled,[data-state=disabled]){pointer-events:none;opacity:var(--tui-disabled-opacity)}tui-textfield:is(._disabled,[data-state=disabled]) [tuiAppearance]:is(._disabled,:disabled,[data-state=disabled]){opacity:1}tui-textfield:is(._disabled,[data-state=disabled]) tui-icon{display:none}tui-textfield._with-label>.t-template,tui-textfield._with-label .t-filler,tui-textfield._with-label [tuiInput]{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template._empty,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]._empty{color:transparent}tui-textfield>.t-template,tui-textfield .t-filler,tui-textfield [tuiInput]{position:absolute;inset-block-start:0;inset-inline:0;inline-size:auto;block-size:100%;-webkit-appearance:none;appearance:none;background:none;font:inherit;resize:none;outline:none;color:var(--tui-text-primary);box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-start, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-end, 0rem) + var(--t-side, 0rem) + var(--t-padding))}tui-textfield>.t-template:is(input,textarea):read-only~.t-filler,tui-textfield .t-filler:is(input,textarea):read-only~.t-filler,tui-textfield [tuiInput]:is(input,textarea):read-only~.t-filler{display:none}tui-textfield>.t-template:disabled,tui-textfield .t-filler:disabled,tui-textfield [tuiInput]:disabled{animation:tuiPresent 1s infinite;opacity:1}tui-textfield>.t-template[inputmode=none],tui-textfield .t-filler[inputmode=none],tui-textfield [tuiInput][inputmode=none]{caret-color:transparent}tui-textfield>.t-template{display:flex;block-size:100%;align-items:center}tui-textfield._with-template [tuiInput]:first-of-type{color:transparent!important}tui-textfield [tuiInput]:-webkit-autofill [tuiLabel],tui-textfield [tuiInput][chrome-autofilled] [tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown) [tuiLabel],tui-textfield[multi][multi]:not(._empty) [tuiLabel],tui-textfield [tuiInput]:-webkit-autofill:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput][chrome-autofilled]:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown):not(tui-textfield)~[tuiLabel],tui-textfield[multi][multi]:not(._empty):not(tui-textfield)~[tuiLabel]{font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;-webkit-user-select:none;user-select:none;line-height:var(--t-height);transition-duration:inherit}tui-textfield [tuiLabel],tui-textfield [tuiInput]::placeholder,tui-textfield [tuiInput]._empty{color:var(--tui-text-secondary)}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a,tui-textfield tui-icon{pointer-events:auto}tui-textfield>.t-content{z-index:1;display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield:is([data-mode~=readonly],[data-state=disabled],._empty) [tuiButtonX],tui-textfield [tuiInput]._empty~.t-content [tuiButtonX],tui-textfield [tuiInput]:disabled~.t-content [tuiButtonX]{display:none}tui-textfield .t-filler{pointer-events:none!important;color:var(--tui-text-tertiary)}tui-textfield [tuiFluidTypography]{font-weight:700}tui-textfield [tuiSelectLike]:not(:read-only){cursor:pointer}tui-textfield:has(input[type=tel]){direction:ltr}tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled) [tuiInput]:not(._empty)~[tuiLabel],tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled)[multi]:not(._empty) [tuiLabel]{color:var(--tui-text-negative)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield[multi][multi]{flex-wrap:nowrap;overflow:scroll;align-items:stretch;cursor:text;gap:0;max-block-size:calc(var(--t-vertical) * 2 + var(--t-item-height) * var(--t-rows));overscroll-behavior:none;scroll-behavior:var(--tui-scroll-behavior)}tui-textfield[multi][multi]:before,tui-textfield[multi][multi]:after{position:sticky;inset-block-start:0;inset-inline-start:0;block-size:var(--t-height)}tui-textfield[multi][multi][tuiChevron]:after{inset-block-start:.375rem;block-size:calc(var(--t-height) - .75rem)}tui-textfield[multi][multi]>.t-scrollbar{transform:translate(calc(var(--t-padding) * var(--tui-inline)));margin-inline-start:calc(-1 * var(--t-start));margin-inline-end:calc(1px - 100% + var(--t-start))}tui-textfield[multi][multi]>.t-scrollbar .t-bar_horizontal{display:none}tui-textfield[multi][multi]>.t-items{position:sticky;display:flex;inset-inline-start:var(--t-start);min-inline-size:0;max-block-size:var(--t-height);min-block-size:fit-content;flex:1;align-items:center;flex-wrap:wrap;padding:var(--t-vertical) 0;transition-duration:inherit;box-sizing:border-box}tui-textfield[multi][multi]>.t-items:after{content:\"\";min-inline-size:1px;min-block-size:1px}tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 0 0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem));flex-wrap:nowrap}[dir=rtl] tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem) 0 0)}tui-textfield[multi][multi]>.t-items_horizontal>.t-input{padding-inline-end:calc(var(--t-side, 0rem) + var(--t-end) + var(--t-padding))}tui-textfield[multi][multi]>.t-items:not(tui-textfield[multi][multi]>.t-items_horizontal){--t-scroll: 0}tui-textfield[multi][multi]>.t-items>label[tuiLabel]{position:absolute;inset-block-start:0;inline-size:100%}tui-textfield[multi][multi]>.t-items>.t-input{position:relative;display:flex;align-items:center;flex:1;block-size:1.25em;max-block-size:1.25rem;max-inline-size:100%;pointer-events:none;transform:translate(var(--t-scroll))}tui-textfield[multi][multi]>.t-items>.t-input .t-filler,tui-textfield[multi][multi]>.t-items>.t-input [tuiInput]{block-size:100%;padding:0;pointer-events:auto}tui-textfield[multi][multi]>.t-items>.t-input .t-ghost{visibility:hidden;white-space:pre;text-overflow:clip;padding-inline-end:.125rem;min-block-size:var(--t-item-height, 1em)}tui-textfield[multi][multi]>.t-items>.t-input .t-filler_hidden{display:none}tui-textfield[multi][multi]>.t-content{position:sticky;inset-block-start:0;inset-inline-start:calc(100% - var(--t-side, 0rem) - var(--t-end) + var(--t-padding) - var(--t-offset));margin:0;gap:.25rem}tui-textfield[multi][multi]>.t-items input:not(:focus)::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items input::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items label~.t-input input::placeholder{opacity:0}tui-textfield[multi][multi]._empty>.t-items input::placeholder,tui-textfield[multi][multi][data-focus=true]:not([data-mode~=readonly]):not(:focus-within)>.t-items input::placeholder{opacity:1}tui-textfield[multi][multi][data-state=disabled],tui-textfield[multi][multi][data-mode~=readonly]{pointer-events:none}tui-textfield[multi][multi][data-state=disabled] select,tui-textfield[multi][multi][data-mode~=readonly] select{display:none}tui-textfield[multi][multi][data-size=l]{--t-vertical: .625rem;--t-offset: calc(1rem - var(--t-end) / 4.5)}tui-textfield[multi][multi][data-size=l]:before{margin-inline-end:.75rem}tui-textfield[multi][multi][data-size=l]:after{inset-inline-start:calc(100% - var(--t-end) - .375rem + .25 * (1em - 1rem));margin-inline-start:-.75rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=l]._with-label{--t-vertical: 1.125rem}tui-textfield[multi][multi][data-size=l]._with-label>.t-items{padding:1.75rem 0 .5rem}tui-textfield[multi][multi][data-size=m]{--t-vertical: .5rem;--t-offset: calc(.75rem + var(--t-end) / 14)}tui-textfield[multi][multi][data-size=m]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=m]:after{inset-inline-start:calc(100% - var(--t-end) - .25rem);border-width:.625rem;margin-inline-start:-.125rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=m]._with-label{--t-vertical: .875rem}tui-textfield[multi][multi][data-size=m]._with-label>.t-items{padding:1.375rem 0 .375rem}tui-textfield[multi][multi][data-size=m]>.t-content{transform:translate(.125rem)}tui-textfield[multi][multi][data-size=s]{--t-vertical: .125rem;--t-offset: calc(.625rem + var(--t-end) / 10)}tui-textfield[multi][multi][data-size=s]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=s]:after{inset-inline-start:calc(100% - var(--t-end) - .125rem);border-width:.5rem;margin-inline-end:calc(-1 * var(--t-padding))}tui-textfield[multi][multi][data-size=s]>.t-content{gap:0;transform:translate(calc(.375rem - var(--t-end) / 10))}tui-textfield[multi][multi] tui-textfield-item{transform:translate(var(--t-scroll))}tui-textfield[multi][multi] input::placeholder{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}tui-textfield[multi][multi] select{opacity:0;pointer-events:none!important}tui-textfield[multi][multi]._empty>.t-items select~.t-filler{display:block}tui-textfield[multi][multi]._empty:not([data-focus=true])>.t-items select~.t-filler{color:var(--tui-text-secondary)}tui-textfield[multi][multi]:has([tuiSelectLike]){cursor:pointer}\n"] }]
|
|
343
|
+
}, template: "@if (control()?.control?.valueChanges | async) {}\n@if (rows() > 1) {\n <tui-scroll-controls class=\"t-scrollbar\" />\n}\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows() === 1\"\n (click)=\"focusInput()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n @for (item of control()?.value; track item) {\n <ng-template\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index: $index}}\"\n />\n }\n <span\n class=\"t-input\"\n (keydown.arrowLeft)=\"onLeft($event)\"\n >\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <span class=\"t-ghost\">{{ placeholder }}</span>\n <input\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [class.t-filler_hidden]=\"!showFiller()\"\n [value]=\"computedFiller()\"\n />\n </span>\n</div>\n\n<span\n class=\"t-content\"\n (click.stop)=\"input()?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue([])\"\n >\n {{ clear() }}\n </button>\n }\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);--t-label-y: -.75rem;--t-label-font: var(--tui-font-body-s);--t-end: 0rem;--t-start: 0rem;position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;min-block-size:var(--t-height);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-ui-m);line-height:1.25rem;box-sizing:border-box;gap:0 .25rem;isolation:isolate}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[tuiAppearance]{outline:none}tui-textfield[tuiAppearance][data-appearance=\"\"]{color:var(--tui-text-tertiary)}@media (hover: hover) and (pointer: fine){tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){color:var(--tui-text-secondary)}}tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly])[data-state=hover]{color:var(--tui-text-secondary)}tui-textfield[data-icon-start]{--t-start: 2.25rem}tui-textfield[data-icon-end]{--t-end: 2.25rem}tui-textfield[tuiIcons]:before{z-index:1;block-size:var(--t-height);margin-inline-end:.5rem;pointer-events:none}tui-textfield[tuiIcons]:after{position:relative;block-size:var(--t-height);cursor:pointer;border-inline:var(--t-padding) solid transparent;margin:0 calc(-1 * var(--t-padding))}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield [tuiLabel],tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=s][data-icon-start]{--t-start: 1.25rem}tui-textfield[data-size=s][data-icon-end]{--t-end: 1.25rem}tui-textfield[data-size=s]:before{margin-inline:-.125rem .5rem;font-size:1rem}tui-textfield[data-size=s]:after{margin-inline-start:calc(.625rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding));font-size:1rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.375rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);--t-label-font: var(--tui-font-body-xs);--t-label-y: -.5625rem;border-radius:var(--tui-radius-m);font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=m][data-icon-start]{--t-start: 1.75rem}tui-textfield[data-size=m][data-icon-end]{--t-end: 1.75rem}tui-textfield[data-size=m]:before{margin-inline:-.125rem .125rem}tui-textfield[data-size=m]:after{margin-inline-start:calc(.25rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield[data-size=l]{--t-label: -.7rem}tui-textfield:is(._disabled,[data-state=disabled]){pointer-events:none;opacity:var(--tui-disabled-opacity)}tui-textfield:is(._disabled,[data-state=disabled]) [tuiAppearance]:is(._disabled,:disabled,[data-state=disabled]){opacity:1}tui-textfield:is(._disabled,[data-state=disabled]) tui-icon{display:none}tui-textfield._with-label>.t-template,tui-textfield._with-label .t-filler,tui-textfield._with-label [tuiInput]{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template._empty,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]._empty{color:transparent}tui-textfield>.t-template,tui-textfield .t-filler,tui-textfield [tuiInput]{position:absolute;inset-block-start:0;inset-inline:0;inline-size:auto;block-size:100%;-webkit-appearance:none;appearance:none;background:none;font:inherit;resize:none;outline:none;color:var(--tui-text-primary);box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-start, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-end, 0rem) + var(--t-side, 0rem) + var(--t-padding))}tui-textfield>.t-template:is(input,textarea):read-only~.t-filler,tui-textfield .t-filler:is(input,textarea):read-only~.t-filler,tui-textfield [tuiInput]:is(input,textarea):read-only~.t-filler{display:none}tui-textfield>.t-template:disabled,tui-textfield .t-filler:disabled,tui-textfield [tuiInput]:disabled{animation:tuiPresent 1s infinite;opacity:1}tui-textfield>.t-template[inputmode=none],tui-textfield .t-filler[inputmode=none],tui-textfield [tuiInput][inputmode=none]{caret-color:transparent}tui-textfield>.t-template{display:flex;block-size:100%;align-items:center}tui-textfield._with-template [tuiInput]:first-of-type{color:transparent!important}tui-textfield [tuiInput]:-webkit-autofill [tuiLabel],tui-textfield [tuiInput][chrome-autofilled] [tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown) [tuiLabel],tui-textfield[multi][multi]:not(._empty) [tuiLabel],tui-textfield [tuiInput]:-webkit-autofill:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput][chrome-autofilled]:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown):not(tui-textfield)~[tuiLabel],tui-textfield[multi][multi]:not(._empty):not(tui-textfield)~[tuiLabel]{font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;-webkit-user-select:none;user-select:none;line-height:var(--t-height);transition-duration:inherit}tui-textfield [tuiLabel],tui-textfield [tuiInput]::placeholder,tui-textfield [tuiInput]._empty{color:var(--tui-text-secondary)}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a,tui-textfield tui-icon{pointer-events:auto}tui-textfield>.t-content{z-index:1;display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield:is([data-mode~=readonly],[data-state=disabled],._empty) [tuiButtonX],tui-textfield [tuiInput]._empty~.t-content [tuiButtonX],tui-textfield [tuiInput]:disabled~.t-content [tuiButtonX]{display:none}tui-textfield .t-filler{pointer-events:none!important;color:var(--tui-text-tertiary)}tui-textfield [tuiFluidTypography]{font-weight:700}tui-textfield [tuiSelectLike]:not(:read-only){cursor:pointer}tui-textfield:has(input[type=tel]){direction:ltr}tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled) [tuiInput]:not(._empty)~[tuiLabel],tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled)[multi]:not(._empty) [tuiLabel]{color:var(--tui-text-negative)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield[multi][multi]{flex-wrap:nowrap;overflow:scroll;align-items:stretch;cursor:text;gap:0;max-block-size:calc(var(--t-vertical) * 2 + var(--t-item-height) * var(--t-rows));overscroll-behavior-x:none;scroll-behavior:var(--tui-scroll-behavior)}tui-textfield[multi][multi]:before,tui-textfield[multi][multi]:after{position:sticky;inset-block-start:0;inset-inline-start:0;block-size:var(--t-height)}tui-textfield[multi][multi][tuiChevron]:after{inset-block-start:.375rem;block-size:calc(var(--t-height) - .75rem)}tui-textfield[multi][multi]>.t-scrollbar{transform:translate(calc(var(--t-padding) * var(--tui-inline)));margin-inline-start:calc(-1 * var(--t-start));margin-inline-end:calc(1px - 100% + var(--t-start))}tui-textfield[multi][multi]>.t-scrollbar .t-bar_horizontal{display:none}tui-textfield[multi][multi]>.t-items{position:sticky;display:flex;inset-inline-start:var(--t-start);min-inline-size:0;max-block-size:var(--t-height);min-block-size:fit-content;flex:1;align-items:center;flex-wrap:wrap;padding:var(--t-vertical) 0;transition-duration:inherit;box-sizing:border-box}tui-textfield[multi][multi]>.t-items:after{content:\"\";min-inline-size:1px;min-block-size:1px}tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 0 0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem));flex-wrap:nowrap}[dir=rtl] tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem) 0 0)}tui-textfield[multi][multi]>.t-items_horizontal>.t-input{padding-inline-end:calc(var(--t-side, 0rem) + var(--t-end) + var(--t-padding))}tui-textfield[multi][multi]>.t-items:not(tui-textfield[multi][multi]>.t-items_horizontal){--t-scroll: 0}tui-textfield[multi][multi]>.t-items>label[tuiLabel]{position:absolute;inset-block-start:0;inline-size:100%}tui-textfield[multi][multi]>.t-items>.t-input{position:relative;display:flex;align-items:center;flex:1;block-size:1.25em;max-block-size:1.25rem;max-inline-size:100%;pointer-events:none;transform:translate(var(--t-scroll))}tui-textfield[multi][multi]>.t-items>.t-input .t-filler,tui-textfield[multi][multi]>.t-items>.t-input [tuiInput]{block-size:100%;padding:0;pointer-events:auto}tui-textfield[multi][multi]>.t-items>.t-input .t-ghost{visibility:hidden;white-space:pre;text-overflow:clip;padding-inline-end:.125rem;min-block-size:var(--t-item-height, 1em)}tui-textfield[multi][multi]>.t-items>.t-input .t-filler_hidden{display:none}tui-textfield[multi][multi]>.t-content{position:sticky;inset-block-start:0;inset-inline-start:calc(100% - var(--t-side, 0rem) - var(--t-end) + var(--t-padding) - var(--t-offset));margin:0;gap:.25rem}tui-textfield[multi][multi]>.t-items input:not(:focus)::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items input::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items label~.t-input input::placeholder{opacity:0}tui-textfield[multi][multi]._empty>.t-items input::placeholder,tui-textfield[multi][multi][data-focus=true]:not([data-mode~=readonly]):not(:focus-within)>.t-items input::placeholder{opacity:1}tui-textfield[multi][multi][data-state=disabled],tui-textfield[multi][multi][data-mode~=readonly]{pointer-events:none}tui-textfield[multi][multi][data-state=disabled] select,tui-textfield[multi][multi][data-mode~=readonly] select{display:none}tui-textfield[multi][multi][data-size=l]{--t-vertical: .625rem;--t-offset: calc(1rem - var(--t-end) / 4.5)}tui-textfield[multi][multi][data-size=l]:before{margin-inline-end:.75rem}tui-textfield[multi][multi][data-size=l]:after{inset-inline-start:calc(100% - var(--t-end) - .375rem + .25 * (1em - 1rem));margin-inline-start:-.75rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=l]._with-label{--t-vertical: 1.125rem}tui-textfield[multi][multi][data-size=l]._with-label>.t-items{padding:1.75rem 0 .5rem}tui-textfield[multi][multi][data-size=m]{--t-vertical: .5rem;--t-offset: calc(.75rem + var(--t-end) / 14)}tui-textfield[multi][multi][data-size=m]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=m]:after{inset-inline-start:calc(100% - var(--t-end) - .25rem);border-width:.625rem;margin-inline-start:-.125rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=m]._with-label{--t-vertical: .875rem}tui-textfield[multi][multi][data-size=m]._with-label>.t-items{padding:1.375rem 0 .375rem}tui-textfield[multi][multi][data-size=m]>.t-content{transform:translate(.125rem)}tui-textfield[multi][multi][data-size=s]{--t-vertical: .125rem;--t-offset: calc(.625rem + var(--t-end) / 10)}tui-textfield[multi][multi][data-size=s]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=s]:after{inset-inline-start:calc(100% - var(--t-end) - .125rem);border-width:.5rem;margin-inline-end:calc(-1 * var(--t-padding))}tui-textfield[multi][multi][data-size=s]>.t-content{gap:0;transform:translate(calc(.375rem - var(--t-end) / 10))}tui-textfield[multi][multi] tui-textfield-item{transform:translate(var(--t-scroll))}tui-textfield[multi][multi] input::placeholder{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}tui-textfield[multi][multi] select{opacity:0;pointer-events:none!important}tui-textfield[multi][multi]._empty>.t-items select~.t-filler{display:block}tui-textfield[multi][multi]._empty:not([data-focus=true])>.t-items select~.t-filler{color:var(--tui-text-secondary)}tui-textfield[multi][multi]:has([tuiSelectLike]){cursor:pointer}\n"] }]
|
|
333
344
|
}] });
|
|
334
345
|
|
|
335
346
|
const TuiTextfield = [
|
|
@@ -358,14 +369,12 @@ class TuiTextfieldContent {
|
|
|
358
369
|
ngOnDestroy() {
|
|
359
370
|
this.ref?.destroy();
|
|
360
371
|
}
|
|
361
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
362
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
372
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
373
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: TuiTextfieldContent, isStandalone: true, selector: "ng-template[tuiTextfieldContent]", ngImport: i0 }); }
|
|
363
374
|
}
|
|
364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
375
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldContent, decorators: [{
|
|
365
376
|
type: Directive,
|
|
366
|
-
args: [{
|
|
367
|
-
selector: 'ng-template[tuiTextfieldContent]',
|
|
368
|
-
}]
|
|
377
|
+
args: [{ selector: 'ng-template[tuiTextfieldContent]' }]
|
|
369
378
|
}] });
|
|
370
379
|
|
|
371
380
|
function tuiTextfieldIcon(token) {
|
|
@@ -386,10 +395,10 @@ class TuiWithNativePicker {
|
|
|
386
395
|
constructor() {
|
|
387
396
|
tuiInjectElement().type = 'text';
|
|
388
397
|
}
|
|
389
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
390
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
398
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiWithNativePicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
399
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: TuiWithNativePicker, isStandalone: true, ngImport: i0 }); }
|
|
391
400
|
}
|
|
392
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiWithNativePicker, decorators: [{
|
|
393
402
|
type: Directive
|
|
394
403
|
}], ctorParameters: () => [] });
|
|
395
404
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-textfield.mjs","sources":["../../../projects/core/components/textfield/textfield.options.ts","../../../projects/core/components/textfield/select-like.directive.ts","../../../projects/core/components/textfield/textfield-accessor.ts","../../../projects/core/components/textfield/textfield.component.ts","../../../projects/core/components/textfield/textfield.template.html","../../../projects/core/components/textfield/textfield-multi/textfield-item.component.ts","../../../projects/core/components/textfield/textfield-multi/textfield-multi.component.ts","../../../projects/core/components/textfield/textfield-multi/textfield-multi.template.html","../../../projects/core/components/textfield/textfield.ts","../../../projects/core/components/textfield/textfield-auxiliary.ts","../../../projects/core/components/textfield/textfield-content.directive.ts","../../../projects/core/components/textfield/textfield-icon.ts","../../../projects/core/components/textfield/with-native-picker.directive.ts","../../../projects/core/components/textfield/taiga-ui-core-components-textfield.ts"],"sourcesContent":["import {\n Directive,\n inject,\n InjectionToken,\n input,\n Optional,\n type Provider,\n type Signal,\n signal,\n SkipSelf,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nconst DEFAULT = {appearance: 'textfield', size: 'l', cleaner: true} as const;\n\nexport interface TuiTextfieldOptions {\n readonly appearance: Signal<string>;\n readonly size: Signal<TuiSizeL | TuiSizeS>;\n readonly cleaner: Signal<boolean>;\n}\n\nexport const TUI_TEXTFIELD_OPTIONS = new InjectionToken<TuiTextfieldOptions>(\n ngDevMode ? 'TUI_TEXTFIELD_OPTIONS' : '',\n {\n factory: () => ({\n appearance: signal(DEFAULT.appearance),\n size: signal(DEFAULT.size),\n cleaner: signal(DEFAULT.cleaner),\n }),\n },\n);\n\nexport function tuiTextfieldOptionsProvider(\n options: Partial<TuiTextfieldOptions>,\n): Provider {\n return {\n provide: TUI_TEXTFIELD_OPTIONS,\n deps: [[new Optional(), new SkipSelf(), TUI_TEXTFIELD_OPTIONS]],\n useFactory: (parent: TuiTextfieldOptions | null) => ({\n appearance: signal(parent?.appearance() ?? DEFAULT.appearance),\n size: signal(parent?.size() ?? DEFAULT.size),\n cleaner: signal(parent?.cleaner() ?? DEFAULT.cleaner),\n ...options,\n }),\n };\n}\n\n@Directive({\n selector: '[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]',\n providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)],\n})\nexport class TuiTextfieldOptionsDirective implements TuiTextfieldOptions {\n private readonly options = inject(TUI_TEXTFIELD_OPTIONS, {skipSelf: true});\n\n public readonly appearance = input(this.options.appearance(), {\n alias: 'tuiTextfieldAppearance',\n });\n\n public readonly size = input(this.options.size(), {\n alias: 'tuiTextfieldSize',\n transform: (size: TuiSizeL | TuiSizeS | ''): TuiSizeL | TuiSizeS =>\n size || DEFAULT.size,\n });\n\n public readonly cleaner = input(this.options.cleaner(), {\n alias: 'tuiTextfieldCleaner',\n });\n}\n","import {Directive, inject} from '@angular/core';\nimport {WA_IS_ANDROID} from '@ng-web-apis/platform';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\n@Directive({\n selector: '[tuiSelectLike]',\n host: {\n tuiSelectLike: '',\n inputmode: 'none',\n spellcheck: 'false',\n autocomplete: 'off',\n // Click on cleaner icon does not trigger `beforeinput` event --> handle all kind of deletion in input event\n '(beforeinput)':\n 'options.cleaner() && $event.inputType.includes(\"delete\") || $event.preventDefault()',\n '(input.capture)': '$event.inputType?.includes(\"delete\") && clear()',\n // Hide Android text select handle (bubble marker below transparent caret)\n '(mousedown)': 'prevent($event)',\n },\n})\nexport class TuiSelectLike {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly isAndroid = inject(WA_IS_ANDROID);\n protected readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n\n protected clear(): void {\n this.el.value = '';\n }\n\n protected prevent(event: MouseEvent): void {\n if (!this.isAndroid) {\n return;\n }\n\n event.preventDefault();\n this.el.focus();\n }\n}\n","import {InjectionToken, type Provider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiTextfieldAccessor<T = unknown> {\n setValue(value: T | T[] | null): void;\n}\n\nexport const TUI_TEXTFIELD_ACCESSOR = new InjectionToken<TuiTextfieldAccessor>(\n ngDevMode ? 'TUI_TEXTFIELD_ACCESSOR' : '',\n);\n\nexport function tuiAsTextfieldAccessor(accessor: Type<TuiTextfieldAccessor>): Provider {\n return tuiProvide(TUI_TEXTFIELD_ACCESSOR, accessor);\n}\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n ElementRef,\n forwardRef,\n inject,\n input,\n type Signal,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement, tuiValue} from '@taiga-ui/cdk/utils/dom';\nimport {tuiFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiGenerateId, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {\n tuiAsDataListHost,\n type TuiDataListHost,\n TuiWithOptionContent,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiButtonX} from '@taiga-ui/core/directives/button-x';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TuiWithItemsHandlers} from '@taiga-ui/core/directives/items-handlers';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiDropdownOpen,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/portals/dropdown';\nimport {TUI_AUXILIARY, TUI_CLEAR_WORD} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {TUI_TEXTFIELD_ACCESSOR, type TuiTextfieldAccessor} from './textfield-accessor';\n\n@Component({\n selector: 'tui-textfield:not([multi])',\n imports: [AsyncPipe, PolymorpheusOutlet, TuiButtonX, WaResizeObserver],\n templateUrl: './textfield.template.html',\n styles: '@import \"@taiga-ui/core/styles/components/textfield.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldComponent),\n ],\n hostDirectives: [\n TuiAppearance,\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiWithDropdownOpen,\n TuiWithIcons,\n TuiWithItemsHandlers,\n TuiWithOptionContent,\n ],\n host: {\n class: 'tui-interactive',\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel', // TODO :has([tuiLabel]\n '[class._with-template]': 'content() && control()?.value != null',\n '[class._disabled]': 'input()?.nativeElement?.disabled', // TODO :has([tuiInput]:disabled)\n '(animationstart)': '0', // TODO :has([tuiInput]:disabled)\n '(animationcancel)': '0', // TODO :has([tuiInput]:disabled)\n '(click.self.prevent)': '0',\n // TODO preventing breaks resize: both, but not preventing breaks focus, fix\n '(pointerdown.self.prevent)': 'onIconClick()',\n '(scroll.capture.zoneless)': 'onScroll($event.target)',\n '(tuiActiveZoneChange)': '!$event && control()?.valueAccessor?.onTouched?.()',\n },\n})\nexport class TuiTextfieldComponent<T> implements TuiDataListHost<T> {\n private readonly autoId = tuiGenerateId();\n private readonly focusedIn = tuiFocusedIn(tuiInjectElement());\n\n protected readonly ghost = viewChild<ElementRef<HTMLElement>>('ghost');\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly open = inject(TuiDropdownOpen);\n protected readonly clear = inject(TUI_CLEAR_WORD);\n protected readonly label = contentChild(\n forwardRef(() => TuiLabel),\n {read: ElementRef},\n );\n\n protected readonly computedFiller = computed((value = this.value()) => {\n const filler = value + this.filler().slice(value.length);\n\n return filler.length > value.length ? filler : '';\n });\n\n protected readonly showFiller = computed<boolean>(\n () =>\n this.focused() &&\n !!this.computedFiller() &&\n (!!this.value() || !this.input()?.nativeElement.placeholder),\n );\n\n protected readonly accessor = contentChild<TuiTextfieldAccessor<T>>(\n TUI_TEXTFIELD_ACCESSOR,\n {descendants: true},\n );\n\n public readonly vcr = viewChild('vcr', {read: ViewContainerRef});\n public readonly control = contentChild(NgControl);\n public readonly auxiliaries = contentChildren(TUI_AUXILIARY, {descendants: true});\n public readonly focused = computed(() => this.open.open() || this.focusedIn());\n public readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n public readonly el = tuiInjectElement();\n public readonly input: Signal<ElementRef<HTMLInputElement> | undefined> =\n contentChild(TUI_TEXTFIELD_ACCESSOR, {read: ElementRef});\n\n public readonly content = input<PolymorpheusContent<TuiContext<T>>>();\n public readonly filler = input('');\n public readonly value = tuiValue(this.input);\n\n public get id(): string {\n return this.input()?.nativeElement.id || this.autoId;\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.options.size();\n }\n\n public handleOption(option: T): void {\n this.accessor()?.setValue(option);\n this.open.open.set(false);\n }\n\n protected get hasLabel(): boolean {\n return Boolean(this.label()?.nativeElement?.childNodes.length);\n }\n\n protected onResize({contentRect}: ResizeObserverEntry): void {\n this.el.style.setProperty('--t-side', tuiPx(contentRect.width));\n }\n\n // Click on ::before,::after pseudo-elements ([iconStart] / [iconEnd])\n protected onIconClick(): void {\n this.input()?.nativeElement.focus();\n\n if (\n !this.open.enabled() ||\n this.input()?.nativeElement.matches('input:read-only,textarea:read-only')\n ) {\n return;\n }\n\n this.open.open.update((open) => !open);\n\n try {\n this.input()?.nativeElement.showPicker?.();\n } catch {\n // Empty catch block - silently ignore showPicker errors\n }\n }\n\n protected onScroll(element: HTMLElement): void {\n if (this.input()?.nativeElement === element) {\n this.ghost()?.nativeElement.scrollTo({\n left: this.input()?.nativeElement.scrollLeft,\n });\n }\n }\n}\n","@if (control()?.control?.valueChanges | async) {}\n<ng-content select=\"input\" />\n<ng-content select=\"select\" />\n<ng-content select=\"textarea\" />\n<ng-content select=\"label\" />\n<span\n class=\"t-content\"\n (pointerdown)=\"input()?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <ng-container #vcr />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue(null)\"\n >\n {{ clear() }}\n </button>\n }\n <ng-content select=\"tui-icon\" />\n</span>\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n@if (showFiller()) {\n <input\n #ghost\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n />\n}\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {\n injectContext,\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nimport {TuiTextfieldMultiComponent} from './textfield-multi.component';\n\nexport interface TuiTextfieldItem<T> {\n readonly item: T;\n readonly index: number;\n}\n\n/*\n * Internal wrapper for polymorpheus-context\n */\n@Component({\n selector: 'tui-textfield-item',\n imports: [PolymorpheusOutlet],\n template:\n '<ng-container *polymorpheusOutlet=\"content() as text; context: context\">{{ text }}</ng-container>',\n styleUrl: './textfield-item.style.less',\n // TODO: Set to OnPush in v5 when textfield.item becomes a signal\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n '[class._string]': '!textfield.item()',\n '[class._disabled]': 'handlers.disabledItemHandler()(context.$implicit.item)',\n '(pointerdown.self.prevent)': '0',\n '(keydown.arrowLeft.prevent)': 'el.previousElementSibling?.firstChild?.focus()',\n '(keydown.arrowRight.prevent)': 'el.nextElementSibling?.firstChild?.focus()',\n },\n})\nexport class TuiTextfieldItemComponent<T> {\n protected readonly el = tuiInjectElement();\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly context = injectContext<TuiContext<TuiTextfieldItem<T>>>();\n protected readonly textfield = inject(TuiTextfieldMultiComponent);\n protected readonly content = computed(\n () =>\n this.textfield.item() ??\n this.handlers.stringify()(this.context.$implicit.item),\n );\n}\n\nexport const TUI_TEXTFIELD_ITEM: PolymorpheusContent<TuiContext<TuiTextfieldItem<any>>> =\n new PolymorpheusComponent(TuiTextfieldItemComponent);\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n ElementRef,\n inject,\n input,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayToggle, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TUI_SCROLL_REF, TuiScrollControls} from '@taiga-ui/core/components/scrollbar';\nimport {TuiButtonX} from '@taiga-ui/core/directives/button-x';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {filter, fromEvent} from 'rxjs';\n\nimport {TuiTextfieldComponent} from '../textfield.component';\nimport {TUI_TEXTFIELD_ITEM} from './textfield-item.component';\n\n@Component({\n selector: 'tui-textfield[multi]',\n imports: [\n AsyncPipe,\n PolymorpheusOutlet,\n TuiButtonX,\n TuiScrollControls,\n WaResizeObserver,\n ],\n templateUrl: './textfield-multi.template.html',\n styleUrl: './textfield-multi.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldMultiComponent),\n tuiProvide(TuiTextfieldComponent, TuiTextfieldMultiComponent),\n tuiProvide(TUI_SCROLL_REF, ElementRef),\n ],\n host: {\n '[attr.data-state]': 'control()?.disabled ? \"disabled\" : null',\n '[class._empty]': '!control()?.value?.length',\n '[style.--t-item-height.px]': 'height()',\n '[style.--t-rows]': 'rows()',\n '(click.prevent)': 'onClick($event.target)',\n '(tuiActiveZoneChange)': '!$event && el.scrollTo({left: 0})',\n },\n})\nexport class TuiTextfieldMultiComponent<T> extends TuiTextfieldComponent<T> {\n protected readonly height = signal<number | null>(null);\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly component = TUI_TEXTFIELD_ITEM;\n protected readonly sub = fromEvent(this.el, 'scroll')\n .pipe(\n filter(() => this.rows() === 1),\n tuiZonefree(),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.el.style.setProperty('--t-scroll', tuiPx(-1 * this.el.scrollLeft));\n });\n\n public readonly cva = contentChild(TuiControl);\n public readonly item = contentChild(TuiItem, {read: TemplateRef, descendants: true});\n public readonly rows = input(100);\n\n public override handleOption(option: T): void {\n this.accessor()?.setValue(\n tuiArrayToggle(\n this.control()?.value ?? [],\n option,\n this.handlers.identityMatcher(),\n ),\n );\n }\n\n protected get placeholder(): string {\n const el = this.input()?.nativeElement;\n const placeholder = el?.matches('input') ? el.placeholder : this.computedFiller();\n const value = this.computedFiller() || this.value();\n const longer = value.length > placeholder.length ? value : placeholder;\n\n return this.focused() ? longer : '';\n }\n\n protected onItems({target}: ResizeObserverEntry): void {\n const height =\n this.rows() > 1 && this.control()?.value?.length\n ? (target.querySelector('tui-textfield-item')?.clientHeight ?? 0)\n : null;\n\n if (height !== 0) {\n this.height.set(height);\n }\n }\n\n protected onLeft(event: any): void {\n if (this.value() || !tuiIsElement(event.currentTarget)) {\n return;\n }\n\n event.preventDefault();\n event.currentTarget.previousElementSibling?.firstElementChild?.focus();\n }\n\n protected onClick(target: HTMLElement): void {\n if (\n target === this.el ||\n !this.cva()?.interactive() ||\n (!this.el.matches('[tuiChevron]') &&\n !this.el.querySelector('select, [tuiInputDateMulti]')) ||\n target.matches('input:read-only,input[inputmode=\"none\"]')\n ) {\n return;\n }\n\n this.open.open.update((open) => !open);\n\n try {\n this.input()?.nativeElement.showPicker?.();\n } catch {\n // Empty catch block - silently ignore showPicker errors\n }\n }\n}\n","@if (control()?.control?.valueChanges | async) {}\n@if (rows() > 1) {\n <tui-scroll-controls class=\"t-scrollbar\" />\n}\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows() === 1\"\n (click)=\"input()?.nativeElement?.focus()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n @for (item of control()?.value; track item) {\n <ng-template\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index: $index}}\"\n />\n }\n <span\n class=\"t-input\"\n (keydown.arrowLeft)=\"onLeft($event)\"\n >\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <span class=\"t-ghost\">{{ placeholder }}</span>\n <input\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [class.t-filler_hidden]=\"!showFiller()\"\n [value]=\"computedFiller()\"\n />\n </span>\n</div>\n\n<span\n class=\"t-content\"\n (click.stop)=\"input()?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue([])\"\n >\n {{ clear() }}\n </button>\n }\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TuiTextfieldOptionsDirective} from './textfield.options';\nimport {TuiTextfieldMultiComponent} from './textfield-multi/textfield-multi.component';\n\nexport const TuiTextfield = [\n TuiItem,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiTextfieldMultiComponent,\n TuiDropdownContent,\n] as const;\n","import {computed, inject, type Signal} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\nexport function tuiInjectAuxiliary<T>(\n predicate: (auxiliary: any, index: number) => boolean,\n): Signal<T | null> {\n const {auxiliaries} = inject(TuiTextfieldComponent);\n\n return computed(() => (auxiliaries().find(predicate) ?? null) as T | null);\n}\n","import {\n Directive,\n type DoCheck,\n inject,\n type OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\n@Directive({\n selector: 'ng-template[tuiTextfieldContent]',\n})\nexport class TuiTextfieldContent implements DoCheck, OnDestroy {\n private readonly ref = inject(TuiTextfieldComponent)\n .vcr()\n ?.createEmbeddedView(inject(TemplateRef));\n\n public ngDoCheck(): void {\n this.ref?.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ref?.destroy();\n }\n}\n","import {computed, inject, type ProviderToken, type Signal} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIconEnd} from '@taiga-ui/core/directives/icons';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\nexport function tuiTextfieldIcon(\n token: ProviderToken<{icon: TuiStringHandler<TuiSizeL | TuiSizeS>}>,\n): Signal<string> {\n const {size} = inject(TUI_TEXTFIELD_OPTIONS);\n const {icon} = inject(token);\n\n return tuiIconEnd(\n computed(() => icon(size())),\n {},\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * Use it instead of host binding\n * host: { '[type]': '\"text\"' }\n * ___\n * From Angular 19+ all effects are called before host bindings.\n * If effects inside `tuiValue` will be called before `<input />` get `type=\"text\"`,\n * it will cause loss of initial value\n */\n@Directive()\nexport class TuiWithNativePicker {\n constructor() {\n tuiInjectElement<HTMLInputElement>().type = 'text';\n }\n}\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-core-components-textfield.mjs","sources":["../../../projects/core/components/textfield/textfield.options.ts","../../../projects/core/components/textfield/select-like.directive.ts","../../../projects/core/components/textfield/textfield-accessor.ts","../../../projects/core/components/textfield/textfield.component.ts","../../../projects/core/components/textfield/textfield.template.html","../../../projects/core/components/textfield/textfield-multi/textfield-item.component.ts","../../../projects/core/components/textfield/textfield-multi/textfield-multi.component.ts","../../../projects/core/components/textfield/textfield-multi/textfield-multi.template.html","../../../projects/core/components/textfield/textfield.ts","../../../projects/core/components/textfield/textfield-auxiliary.ts","../../../projects/core/components/textfield/textfield-content.directive.ts","../../../projects/core/components/textfield/textfield-icon.ts","../../../projects/core/components/textfield/with-native-picker.directive.ts","../../../projects/core/components/textfield/taiga-ui-core-components-textfield.ts"],"sourcesContent":["import {\n Directive,\n inject,\n InjectionToken,\n input,\n Optional,\n type Provider,\n type Signal,\n signal,\n SkipSelf,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nconst DEFAULT = {appearance: 'textfield', size: 'l', cleaner: true} as const;\n\nexport interface TuiTextfieldOptions {\n readonly appearance: Signal<string>;\n readonly size: Signal<TuiSizeL | TuiSizeS>;\n readonly cleaner: Signal<boolean>;\n}\n\nexport const TUI_TEXTFIELD_OPTIONS = new InjectionToken<TuiTextfieldOptions>(\n ngDevMode ? 'TUI_TEXTFIELD_OPTIONS' : '',\n {\n factory: () => ({\n appearance: signal(DEFAULT.appearance),\n size: signal(DEFAULT.size),\n cleaner: signal(DEFAULT.cleaner),\n }),\n },\n);\n\nexport function tuiTextfieldOptionsProvider(\n options: Partial<TuiTextfieldOptions>,\n): Provider {\n return {\n provide: TUI_TEXTFIELD_OPTIONS,\n deps: [[new Optional(), new SkipSelf(), TUI_TEXTFIELD_OPTIONS]],\n useFactory: (parent: TuiTextfieldOptions | null) => ({\n appearance: signal(parent?.appearance() ?? DEFAULT.appearance),\n size: signal(parent?.size() ?? DEFAULT.size),\n cleaner: signal(parent?.cleaner() ?? DEFAULT.cleaner),\n ...options,\n }),\n };\n}\n\n@Directive({\n selector: '[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]',\n providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)],\n})\nexport class TuiTextfieldOptionsDirective implements TuiTextfieldOptions {\n private readonly options = inject(TUI_TEXTFIELD_OPTIONS, {skipSelf: true});\n\n public readonly appearance = input(this.options.appearance(), {\n alias: 'tuiTextfieldAppearance',\n });\n\n public readonly size = input(this.options.size(), {\n alias: 'tuiTextfieldSize',\n transform: (size: TuiSizeL | TuiSizeS | ''): TuiSizeL | TuiSizeS =>\n size || DEFAULT.size,\n });\n\n public readonly cleaner = input(this.options.cleaner(), {\n alias: 'tuiTextfieldCleaner',\n });\n}\n","import {Directive, inject} from '@angular/core';\nimport {WA_IS_ANDROID} from '@ng-web-apis/platform';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\n@Directive({\n selector: '[tuiSelectLike]',\n host: {\n tuiSelectLike: '',\n inputmode: 'none',\n spellcheck: 'false',\n autocomplete: 'off',\n // Click on cleaner icon does not trigger `beforeinput` event --> handle all kind of deletion in input event\n '(beforeinput)':\n 'options.cleaner() && $event.inputType.includes(\"delete\") || $event.preventDefault()',\n '(input.capture)': '$event.inputType?.includes(\"delete\") && clear()',\n // Hide Android text select handle (bubble marker below transparent caret)\n '(mousedown)': 'prevent($event)',\n },\n})\nexport class TuiSelectLike {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly isAndroid = inject(WA_IS_ANDROID);\n protected readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n\n protected clear(): void {\n this.el.value = '';\n }\n\n protected prevent(event: MouseEvent): void {\n if (!this.isAndroid) {\n return;\n }\n\n event.preventDefault();\n this.el.focus();\n }\n}\n","import {InjectionToken, type Provider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiTextfieldAccessor<T = unknown> {\n setValue(value: T | T[] | null): void;\n}\n\nexport const TUI_TEXTFIELD_ACCESSOR = new InjectionToken<TuiTextfieldAccessor>(\n ngDevMode ? 'TUI_TEXTFIELD_ACCESSOR' : '',\n);\n\nexport function tuiAsTextfieldAccessor(accessor: Type<TuiTextfieldAccessor>): Provider {\n return tuiProvide(TUI_TEXTFIELD_ACCESSOR, accessor);\n}\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n ElementRef,\n forwardRef,\n inject,\n input,\n type Signal,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement, tuiValue} from '@taiga-ui/cdk/utils/dom';\nimport {tuiFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiGenerateId, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {\n tuiAsDataListHost,\n type TuiDataListHost,\n TuiWithOptionContent,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiButtonX} from '@taiga-ui/core/directives/button-x';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TuiWithItemsHandlers} from '@taiga-ui/core/directives/items-handlers';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiDropdownOpen,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/portals/dropdown';\nimport {TUI_AUXILIARY, TUI_CLEAR_WORD} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {TUI_TEXTFIELD_ACCESSOR, type TuiTextfieldAccessor} from './textfield-accessor';\n\n@Component({\n selector: 'tui-textfield:not([multi])',\n imports: [AsyncPipe, PolymorpheusOutlet, TuiButtonX, WaResizeObserver],\n templateUrl: './textfield.template.html',\n styles: '@import \"@taiga-ui/core/styles/components/textfield.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldComponent),\n ],\n hostDirectives: [\n TuiAppearance,\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiWithDropdownOpen,\n TuiWithIcons,\n TuiWithItemsHandlers,\n TuiWithOptionContent,\n ],\n host: {\n class: 'tui-interactive',\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel', // TODO :has([tuiLabel]\n '[class._with-template]': 'content() && control()?.value != null',\n '[class._disabled]': 'input()?.nativeElement?.disabled', // TODO :has([tuiInput]:disabled)\n '(animationstart)': '0', // TODO :has([tuiInput]:disabled)\n '(animationcancel)': '0', // TODO :has([tuiInput]:disabled)\n '(click.self.prevent)': '0',\n // TODO preventing breaks resize: both, but not preventing breaks focus, fix\n '(pointerdown.self.prevent)': 'onIconClick()',\n '(scroll.capture.zoneless)': 'onScroll($event.target)',\n '(tuiActiveZoneChange)': '!$event && control()?.valueAccessor?.onTouched?.()',\n },\n})\nexport class TuiTextfieldComponent<T> implements TuiDataListHost<T> {\n private readonly autoId = tuiGenerateId();\n private readonly focusedIn = tuiFocusedIn(tuiInjectElement());\n\n protected readonly ghost = viewChild<ElementRef<HTMLElement>>('ghost');\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly open = inject(TuiDropdownOpen);\n protected readonly clear = inject(TUI_CLEAR_WORD);\n protected readonly label = contentChild(\n forwardRef(() => TuiLabel),\n {read: ElementRef},\n );\n\n protected readonly computedFiller = computed((value = this.value()) => {\n const filler = value + this.filler().slice(value.length);\n\n return filler.length > value.length ? filler : '';\n });\n\n protected readonly showFiller = computed<boolean>(\n () =>\n this.focused() &&\n !!this.computedFiller() &&\n (!!this.value() || !this.input()?.nativeElement.placeholder),\n );\n\n protected readonly accessor = contentChild<TuiTextfieldAccessor<T>>(\n TUI_TEXTFIELD_ACCESSOR,\n {descendants: true},\n );\n\n public readonly vcr = viewChild('vcr', {read: ViewContainerRef});\n public readonly control = contentChild(NgControl);\n public readonly auxiliaries = contentChildren(TUI_AUXILIARY, {descendants: true});\n public readonly focused = computed(() => this.open.open() || this.focusedIn());\n public readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n public readonly el = tuiInjectElement();\n public readonly input: Signal<ElementRef<HTMLInputElement> | undefined> =\n contentChild(TUI_TEXTFIELD_ACCESSOR, {read: ElementRef});\n\n public readonly content = input<PolymorpheusContent<TuiContext<T>>>();\n public readonly filler = input('');\n public readonly value = tuiValue(this.input);\n\n public get id(): string {\n return this.input()?.nativeElement.id || this.autoId;\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.options.size();\n }\n\n public handleOption(option: T): void {\n this.accessor()?.setValue(option);\n this.open.open.set(false);\n }\n\n protected get hasLabel(): boolean {\n return Boolean(this.label()?.nativeElement?.childNodes.length);\n }\n\n protected onResize({contentRect}: ResizeObserverEntry): void {\n this.el.style.setProperty('--t-side', tuiPx(contentRect.width));\n }\n\n // Click on ::before,::after pseudo-elements ([iconStart] / [iconEnd])\n protected onIconClick(): void {\n this.input()?.nativeElement.focus();\n\n if (\n !this.open.enabled() ||\n this.input()?.nativeElement.matches('input:read-only,textarea:read-only')\n ) {\n return;\n }\n\n this.open.open.update((open) => !open);\n\n try {\n this.input()?.nativeElement.showPicker?.();\n } catch {\n // Empty catch block - silently ignore showPicker errors\n }\n }\n\n protected onScroll(element: HTMLElement): void {\n if (this.input()?.nativeElement === element) {\n this.ghost()?.nativeElement.scrollTo({\n left: this.input()?.nativeElement.scrollLeft,\n });\n }\n }\n}\n","@if (control()?.control?.valueChanges | async) {}\n<ng-content select=\"input\" />\n<ng-content select=\"select\" />\n<ng-content select=\"textarea\" />\n<ng-content select=\"label\" />\n<span\n class=\"t-content\"\n (pointerdown)=\"input()?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <ng-container #vcr />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue(null)\"\n >\n {{ clear() }}\n </button>\n }\n <ng-content select=\"tui-icon\" />\n</span>\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n@if (showFiller()) {\n <input\n #ghost\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n />\n}\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {\n injectContext,\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nimport {TuiTextfieldMultiComponent} from './textfield-multi.component';\n\nexport interface TuiTextfieldItem<T> {\n readonly item: T;\n readonly index: number;\n}\n\n/*\n * Internal wrapper for polymorpheus-context\n */\n@Component({\n selector: 'tui-textfield-item',\n imports: [PolymorpheusOutlet],\n template:\n '<ng-container *polymorpheusOutlet=\"content() as text; context: context\">{{ text }}</ng-container>',\n styleUrl: './textfield-item.style.less',\n // TODO: Set to OnPush in v5 when textfield.item becomes a signal\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n '[class._string]': '!textfield.item()',\n '[class._disabled]': 'handlers.disabledItemHandler()(context.$implicit.item)',\n '(pointerdown.self)': 'prevent($event)',\n '(keydown.arrowLeft.prevent)': 'el.previousElementSibling?.firstChild?.focus()',\n '(keydown.arrowRight.prevent)': 'el.nextElementSibling?.firstChild?.focus()',\n },\n})\nexport class TuiTextfieldItemComponent<T> {\n protected readonly el = tuiInjectElement();\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly context = injectContext<TuiContext<TuiTextfieldItem<T>>>();\n protected readonly textfield = inject(TuiTextfieldMultiComponent);\n protected readonly content = computed(\n () =>\n this.textfield.item() ??\n this.handlers.stringify()(this.context.$implicit.item),\n );\n\n protected prevent(e: Event): void {\n this.textfield.focused() && e.preventDefault();\n }\n}\n\nexport const TUI_TEXTFIELD_ITEM: PolymorpheusContent<TuiContext<TuiTextfieldItem<any>>> =\n new PolymorpheusComponent(TuiTextfieldItemComponent);\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n ElementRef,\n inject,\n input,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayToggle, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TUI_SCROLL_REF, TuiScrollControls} from '@taiga-ui/core/components/scrollbar';\nimport {TuiButtonX} from '@taiga-ui/core/directives/button-x';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {filter, fromEvent} from 'rxjs';\n\nimport {TuiTextfieldComponent} from '../textfield.component';\nimport {TUI_TEXTFIELD_ITEM} from './textfield-item.component';\n\n@Component({\n selector: 'tui-textfield[multi]',\n imports: [\n AsyncPipe,\n PolymorpheusOutlet,\n TuiButtonX,\n TuiScrollControls,\n WaResizeObserver,\n ],\n templateUrl: './textfield-multi.template.html',\n styleUrl: './textfield-multi.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldMultiComponent),\n tuiProvide(TuiTextfieldComponent, TuiTextfieldMultiComponent),\n tuiProvide(TUI_SCROLL_REF, ElementRef),\n ],\n host: {\n '[attr.data-state]': 'control()?.disabled ? \"disabled\" : null',\n '[class._empty]': '!control()?.value?.length',\n '[style.--t-item-height.px]': 'height()',\n '[style.--t-rows]': 'rows()',\n '(click.prevent)': 'onClick($event.target)',\n '(tuiActiveZoneChange)': '!$event && el.scrollTo({left: 0})',\n },\n})\nexport class TuiTextfieldMultiComponent<T> extends TuiTextfieldComponent<T> {\n protected readonly height = signal<number | null>(null);\n protected readonly win = inject(WA_WINDOW);\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly component = TUI_TEXTFIELD_ITEM;\n protected readonly sub = fromEvent(this.el, 'scroll')\n .pipe(\n filter(() => this.rows() === 1),\n tuiZonefree(),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.el.style.setProperty('--t-scroll', tuiPx(-1 * this.el.scrollLeft));\n });\n\n public readonly cva = contentChild(TuiControl);\n public readonly item = contentChild(TuiItem, {read: TemplateRef, descendants: true});\n public readonly rows = input(100);\n\n public override handleOption(option: T): void {\n this.accessor()?.setValue(\n tuiArrayToggle(\n this.control()?.value ?? [],\n option,\n this.handlers.identityMatcher(),\n ),\n );\n }\n\n protected get placeholder(): string {\n const el = this.input()?.nativeElement;\n const placeholder = el?.matches('input') ? el.placeholder : this.computedFiller();\n const value = this.computedFiller() || this.value();\n const longer = value.length > placeholder.length ? value : placeholder;\n\n return this.focused() ? longer : '';\n }\n\n protected onItems({target}: ResizeObserverEntry): void {\n const height =\n this.rows() > 1 && this.control()?.value?.length\n ? (target.querySelector('tui-textfield-item')?.clientHeight ?? 0)\n : null;\n\n if (height !== 0) {\n this.height.set(height);\n }\n }\n\n protected onLeft(event: any): void {\n if (this.value() || !tuiIsElement(event.currentTarget)) {\n return;\n }\n\n event.preventDefault();\n event.currentTarget.previousElementSibling?.firstElementChild?.focus();\n }\n\n protected focusInput(): void {\n const selection = this.win.getSelection();\n\n if (!selection?.rangeCount || selection.getRangeAt(0)?.collapsed) {\n this.input()?.nativeElement.focus();\n }\n }\n\n protected onClick(target: HTMLElement): void {\n if (\n target === this.el ||\n !this.cva()?.interactive() ||\n (!this.el.matches('[tuiChevron]') &&\n !this.el.querySelector('select, [tuiInputDateMulti]')) ||\n target.matches('input:read-only,input[inputmode=\"none\"]')\n ) {\n return;\n }\n\n this.open.open.update((open) => !open);\n\n try {\n this.input()?.nativeElement.showPicker?.();\n } catch {\n // Empty catch block - silently ignore showPicker errors\n }\n }\n}\n","@if (control()?.control?.valueChanges | async) {}\n@if (rows() > 1) {\n <tui-scroll-controls class=\"t-scrollbar\" />\n}\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows() === 1\"\n (click)=\"focusInput()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n @for (item of control()?.value; track item) {\n <ng-template\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index: $index}}\"\n />\n }\n <span\n class=\"t-input\"\n (keydown.arrowLeft)=\"onLeft($event)\"\n >\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <span class=\"t-ghost\">{{ placeholder }}</span>\n <input\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [class.t-filler_hidden]=\"!showFiller()\"\n [value]=\"computedFiller()\"\n />\n </span>\n</div>\n\n<span\n class=\"t-content\"\n (click.stop)=\"input()?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue([])\"\n >\n {{ clear() }}\n </button>\n }\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TuiTextfieldOptionsDirective} from './textfield.options';\nimport {TuiTextfieldMultiComponent} from './textfield-multi/textfield-multi.component';\n\nexport const TuiTextfield = [\n TuiItem,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiTextfieldMultiComponent,\n TuiDropdownContent,\n] as const;\n","import {computed, inject, type Signal} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\nexport function tuiInjectAuxiliary<T>(\n predicate: (auxiliary: any, index: number) => boolean,\n): Signal<T | null> {\n const {auxiliaries} = inject(TuiTextfieldComponent);\n\n return computed(() => (auxiliaries().find(predicate) ?? null) as T | null);\n}\n","import {\n Directive,\n type DoCheck,\n inject,\n type OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\n@Directive({selector: 'ng-template[tuiTextfieldContent]'})\nexport class TuiTextfieldContent implements DoCheck, OnDestroy {\n private readonly ref = inject(TuiTextfieldComponent)\n .vcr()\n ?.createEmbeddedView(inject(TemplateRef));\n\n public ngDoCheck(): void {\n this.ref?.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ref?.destroy();\n }\n}\n","import {computed, inject, type ProviderToken, type Signal} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIconEnd} from '@taiga-ui/core/directives/icons';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\nexport function tuiTextfieldIcon(\n token: ProviderToken<{icon: TuiStringHandler<TuiSizeL | TuiSizeS>}>,\n): Signal<string> {\n const {size} = inject(TUI_TEXTFIELD_OPTIONS);\n const {icon} = inject(token);\n\n return tuiIconEnd(\n computed(() => icon(size())),\n {},\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * Use it instead of host binding\n * host: { '[type]': '\"text\"' }\n * ___\n * From Angular 19+ all effects are called before host bindings.\n * If effects inside `tuiValue` will be called before `<input />` get `type=\"text\"`,\n * it will cause loss of initial value\n */\n@Directive()\nexport class TuiWithNativePicker {\n constructor() {\n tuiInjectElement<HTMLInputElement>().type = 'text';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|