vuetify 3.2.3 → 3.2.5
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/dist/json/attributes.json +9 -9
- package/dist/json/web-types.json +11 -11
- package/dist/vuetify-labs.css +505 -502
- package/dist/vuetify-labs.d.ts +4918 -437
- package/dist/vuetify-labs.esm.js +142 -124
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +142 -124
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +10 -7
- package/dist/vuetify.d.ts +3796 -248
- package/dist/vuetify.esm.js +131 -115
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +131 -115
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +469 -469
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.mjs +1 -2
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +52 -0
- package/lib/components/VApp/index.d.ts +16 -0
- package/lib/components/VAppBar/VAppBar.mjs +2 -2
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -2
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +84 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -5
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +76 -12
- package/lib/components/VAvatar/index.d.ts +16 -0
- package/lib/components/VBadge/index.d.ts +20 -0
- package/lib/components/VBanner/index.d.ts +60 -0
- package/lib/components/VBottomNavigation/index.d.ts +16 -0
- package/lib/components/VBreadcrumbs/index.d.ts +39 -3
- package/lib/components/VBtn/index.d.ts +28 -0
- package/lib/components/VBtnGroup/index.d.ts +16 -0
- package/lib/components/VBtnToggle/index.d.ts +16 -0
- package/lib/components/VCard/index.d.ts +144 -0
- package/lib/components/VCarousel/index.d.ts +128 -0
- package/lib/components/VCheckbox/index.d.ts +84 -0
- package/lib/components/VChip/VChip.css +4 -3
- package/lib/components/VChip/VChip.sass +3 -3
- package/lib/components/VChip/index.d.ts +28 -0
- package/lib/components/VChipGroup/index.d.ts +16 -0
- package/lib/components/VCode/index.d.ts +16 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -5
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +5 -5
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +76 -12
- package/lib/components/VCounter/index.d.ts +16 -0
- package/lib/components/VDefaultsProvider/index.d.ts +16 -0
- package/lib/components/VDialog/index.d.ts +133 -3
- package/lib/components/VDivider/index.d.ts +16 -0
- package/lib/components/VExpansionPanel/index.d.ts +76 -0
- package/lib/components/VField/index.d.ts +23 -3
- package/lib/components/VFileInput/index.d.ts +118 -3
- package/lib/components/VFooter/VFooter.mjs +2 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/index.d.ts +16 -0
- package/lib/components/VForm/index.d.ts +19 -3
- package/lib/components/VGrid/index.d.ts +64 -0
- package/lib/components/VHover/index.d.ts +28 -0
- package/lib/components/VIcon/index.d.ts +32 -0
- package/lib/components/VImg/VImg.mjs +6 -6
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +40 -12
- package/lib/components/VInput/index.d.ts +28 -0
- package/lib/components/VItemGroup/index.d.ts +32 -0
- package/lib/components/VKbd/index.d.ts +16 -0
- package/lib/components/VLabel/index.d.ts +16 -0
- package/lib/components/VLayout/index.d.ts +32 -0
- package/lib/components/VLazy/index.d.ts +16 -0
- package/lib/components/VList/VList.mjs +2 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +176 -12
- package/lib/components/VList/list.mjs +4 -4
- package/lib/components/VList/list.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.d.ts +16 -0
- package/lib/components/VMain/index.d.ts +16 -0
- package/lib/components/VMenu/VMenu.mjs +3 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +136 -6
- package/lib/components/VMessages/index.d.ts +16 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +2 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +2 -0
- package/lib/components/VNavigationDrawer/index.d.ts +31 -3
- package/lib/components/VNavigationDrawer/sticky.mjs +5 -4
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs +4 -4
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +40 -0
- package/lib/components/VOverlay/locationStrategies.mjs +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +2 -2
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +32 -0
- package/lib/components/VParallax/index.d.ts +28 -0
- package/lib/components/VProgressCircular/index.d.ts +16 -0
- package/lib/components/VProgressLinear/index.d.ts +28 -0
- package/lib/components/VRadio/index.d.ts +36 -0
- package/lib/components/VRadioGroup/index.d.ts +48 -0
- package/lib/components/VRangeSlider/index.d.ts +36 -0
- package/lib/components/VRating/VRating.mjs +6 -3
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/index.d.ts +20 -0
- package/lib/components/VResponsive/index.d.ts +20 -0
- package/lib/components/VSelect/VSelect.mjs +2 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +76 -12
- package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +10 -6
- package/lib/components/VSelectionControlGroup/index.d.ts +16 -0
- package/lib/components/VSheet/index.d.ts +16 -0
- package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +63 -3
- package/lib/components/VSlider/index.d.ts +36 -0
- package/lib/components/VSlider/slider.mjs +3 -3
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +129 -3
- package/lib/components/VSwitch/VSwitch.css +3 -3
- package/lib/components/VSwitch/VSwitch.sass +4 -3
- package/lib/components/VSwitch/index.d.ts +52 -0
- package/lib/components/VSystemBar/VSystemBar.mjs +2 -2
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/index.d.ts +16 -0
- package/lib/components/VTable/index.d.ts +28 -0
- package/lib/components/VTabs/VTab.mjs +4 -5
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +32 -0
- package/lib/components/VTextField/index.d.ts +121 -6
- package/lib/components/VTextarea/VTextarea.mjs +6 -3
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +110 -3
- package/lib/components/VThemeProvider/index.d.ts +16 -0
- package/lib/components/VTimeline/VTimelineItem.mjs +2 -2
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/index.d.ts +40 -0
- package/lib/components/VToolbar/VToolbar.mjs +2 -2
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +72 -0
- package/lib/components/VTooltip/index.d.ts +133 -3
- package/lib/components/VValidation/index.d.ts +16 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +3 -3
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.ts +7 -3
- package/lib/components/VWindow/VWindow.mjs +3 -3
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +3 -3
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.ts +76 -0
- package/lib/components/index.d.ts +3786 -245
- package/lib/components/transitions/index.d.ts +256 -0
- package/lib/composables/display.mjs +3 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/form.mjs +4 -4
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/hydration.mjs +6 -6
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs +2 -2
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/layout.mjs +3 -3
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/lazy.mjs +2 -2
- package/lib/composables/lazy.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +5 -4
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/scroll.mjs +6 -6
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs +2 -2
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/stack.mjs +5 -4
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/transition.mjs +5 -2
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +3 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +9 -2
- package/lib/labs/VDataTable/VDataTable.mjs +2 -1
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -6
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
- package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +894 -2
- package/lib/labs/VInfiniteScroll/index.d.ts +32 -0
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.ts +25 -9
- package/lib/labs/components.d.ts +951 -11
- package/lib/locale/adapters/vuetify.mjs +8 -5
- package/lib/locale/adapters/vuetify.mjs.map +1 -1
- package/lib/styles/settings/_variables.scss +3 -3
- package/lib/util/defineComponent.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -98,6 +98,10 @@ declare const VTabs: {
|
|
|
98
98
|
} | undefined;
|
|
99
99
|
} & {
|
|
100
100
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
101
|
+
} & {
|
|
102
|
+
$slots?: {
|
|
103
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
104
|
+
} | undefined;
|
|
101
105
|
} & {
|
|
102
106
|
"onUpdate:modelValue"?: ((v: unknown) => any) | undefined;
|
|
103
107
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "symbol" | "height" | "direction" | "style" | "disabled" | "multiple" | "tag" | "mandatory" | "items" | "density" | "modelValue" | "selectedClass" | "stacked" | "grow" | "nextIcon" | "prevIcon" | "centerActive" | "hideSlider" | "alignTabs" | "fixedTabs">;
|
|
@@ -151,6 +155,10 @@ declare const VTabs: {
|
|
|
151
155
|
} | undefined;
|
|
152
156
|
} & {
|
|
153
157
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
158
|
+
} & {
|
|
159
|
+
$slots?: {
|
|
160
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
161
|
+
} | undefined;
|
|
154
162
|
} & {
|
|
155
163
|
"onUpdate:modelValue"?: ((v: unknown) => any) | undefined;
|
|
156
164
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -233,6 +241,10 @@ declare const VTabs: {
|
|
|
233
241
|
} | undefined;
|
|
234
242
|
} & {
|
|
235
243
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
244
|
+
} & {
|
|
245
|
+
$slots?: {
|
|
246
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
247
|
+
} | undefined;
|
|
236
248
|
} & {
|
|
237
249
|
"onUpdate:modelValue"?: ((v: unknown) => any) | undefined;
|
|
238
250
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
@@ -276,6 +288,10 @@ declare const VTabs: {
|
|
|
276
288
|
} | undefined;
|
|
277
289
|
} & {
|
|
278
290
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
291
|
+
} & {
|
|
292
|
+
$slots?: {
|
|
293
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
294
|
+
} | undefined;
|
|
279
295
|
} & {
|
|
280
296
|
"onUpdate:modelValue"?: ((v: unknown) => any) | undefined;
|
|
281
297
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -510,6 +526,10 @@ declare const VTab: {
|
|
|
510
526
|
} | undefined;
|
|
511
527
|
} & {
|
|
512
528
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
529
|
+
} & {
|
|
530
|
+
$slots?: {
|
|
531
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
532
|
+
} | undefined;
|
|
513
533
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "replace" | "fixed" | "exact" | "direction" | "style" | "disabled" | "size" | "tag" | "rounded" | "density" | "variant" | "selectedClass" | "stacked" | "ripple" | "hideSlider">;
|
|
514
534
|
$attrs: {
|
|
515
535
|
[x: string]: unknown;
|
|
@@ -570,6 +590,10 @@ declare const VTab: {
|
|
|
570
590
|
} | undefined;
|
|
571
591
|
} & {
|
|
572
592
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
593
|
+
} & {
|
|
594
|
+
$slots?: {
|
|
595
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
596
|
+
} | undefined;
|
|
573
597
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
574
598
|
replace: boolean;
|
|
575
599
|
fixed: boolean;
|
|
@@ -652,6 +676,10 @@ declare const VTab: {
|
|
|
652
676
|
} | undefined;
|
|
653
677
|
} & {
|
|
654
678
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
679
|
+
} & {
|
|
680
|
+
$slots?: {
|
|
681
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
682
|
+
} | undefined;
|
|
655
683
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
656
684
|
__isFragment?: undefined;
|
|
657
685
|
__isTeleport?: undefined;
|
|
@@ -702,6 +730,10 @@ declare const VTab: {
|
|
|
702
730
|
} | undefined;
|
|
703
731
|
} & {
|
|
704
732
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
733
|
+
} & {
|
|
734
|
+
$slots?: {
|
|
735
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
736
|
+
} | undefined;
|
|
705
737
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
706
738
|
replace: boolean;
|
|
707
739
|
fixed: boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as vue from 'vue';
|
|
2
2
|
import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, PropType, JSXComponent, ComputedRef, Ref, nextTick } from 'vue';
|
|
3
3
|
|
|
4
|
-
type SlotsToProps<U extends Record<string, any[]> | Record<string, Slot>, T = U extends Record<string, any[]> ? MakeSlots<U> : U> = {
|
|
4
|
+
type SlotsToProps<U extends Record<string, any[]> | Record<string, Slot>, Generic extends boolean = false, T = U extends Record<string, any[]> ? MakeSlots<U> : U> = {
|
|
5
5
|
$children?: (VNodeChild | (T extends {
|
|
6
6
|
default: infer V;
|
|
7
7
|
} ? V : {}) | {
|
|
@@ -12,13 +12,17 @@ type SlotsToProps<U extends Record<string, any[]> | Record<string, Slot>, T = U
|
|
|
12
12
|
};
|
|
13
13
|
} & {
|
|
14
14
|
[K in keyof T as `v-slot:${K & string}`]?: T[K] | false;
|
|
15
|
-
}
|
|
15
|
+
} & (Generic extends false ? {
|
|
16
|
+
$slots?: {
|
|
17
|
+
[K in keyof T]?: T[K];
|
|
18
|
+
};
|
|
19
|
+
} : {});
|
|
16
20
|
type Slot<T extends any[] = any[]> = (...args: T) => VNodeChild;
|
|
17
21
|
type MakeSlots<T extends Record<string, any[]> | Record<string, Slot>> = {
|
|
18
22
|
[K in keyof T]: T[K] extends any[] ? Slot<T[K]> : T[K];
|
|
19
23
|
};
|
|
20
24
|
type GenericProps<Props, Slots extends Record<string, any[]>> = {
|
|
21
|
-
$props: Props & SlotsToProps<Slots>;
|
|
25
|
+
$props: Props & SlotsToProps<Slots, true>;
|
|
22
26
|
$slots: MakeSlots<Slots>;
|
|
23
27
|
};
|
|
24
28
|
interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
|
|
@@ -196,6 +200,18 @@ declare const VTextField: {
|
|
|
196
200
|
"v-slot:prepend-inner"?: false | ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
197
201
|
"v-slot:append-inner"?: false | ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
198
202
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
203
|
+
} & {
|
|
204
|
+
$slots?: {
|
|
205
|
+
clear?: (() => vue.VNodeChild) | undefined;
|
|
206
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
207
|
+
label?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
208
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
209
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
210
|
+
loader?: ((args_0: LoaderSlotProps) => vue.VNodeChild) | undefined;
|
|
211
|
+
'prepend-inner'?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
212
|
+
'append-inner'?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
213
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
214
|
+
} | undefined;
|
|
199
215
|
} & {
|
|
200
216
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
|
201
217
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -306,6 +322,18 @@ declare const VTextField: {
|
|
|
306
322
|
"v-slot:prepend-inner"?: false | ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
307
323
|
"v-slot:append-inner"?: false | ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
308
324
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
325
|
+
} & {
|
|
326
|
+
$slots?: {
|
|
327
|
+
clear?: (() => vue.VNodeChild) | undefined;
|
|
328
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
329
|
+
label?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
330
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
331
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
332
|
+
loader?: ((args_0: LoaderSlotProps) => vue.VNodeChild) | undefined;
|
|
333
|
+
'prepend-inner'?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
334
|
+
'append-inner'?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
335
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
336
|
+
} | undefined;
|
|
309
337
|
} & {
|
|
310
338
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
|
311
339
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -373,6 +401,13 @@ declare const VTextField: {
|
|
|
373
401
|
"v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
374
402
|
"v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
375
403
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
404
|
+
} & {
|
|
405
|
+
$slots?: {
|
|
406
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
407
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
408
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
409
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
410
|
+
} | undefined;
|
|
376
411
|
} & {
|
|
377
412
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
378
413
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint">;
|
|
@@ -435,6 +470,13 @@ declare const VTextField: {
|
|
|
435
470
|
"v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
436
471
|
"v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
437
472
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
473
|
+
} & {
|
|
474
|
+
$slots?: {
|
|
475
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
476
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
477
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
478
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
479
|
+
} | undefined;
|
|
438
480
|
} & {
|
|
439
481
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
440
482
|
}, {
|
|
@@ -522,13 +564,20 @@ declare const VTextField: {
|
|
|
522
564
|
"v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
523
565
|
"v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
524
566
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
567
|
+
} & {
|
|
568
|
+
$slots?: {
|
|
569
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
570
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
571
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
572
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
573
|
+
} | undefined;
|
|
525
574
|
} & {
|
|
526
575
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
527
576
|
} & vue.ShallowUnwrapRef<{
|
|
528
577
|
reset: () => void;
|
|
529
578
|
resetValidation: () => void;
|
|
530
579
|
validate: () => Promise<string[]>;
|
|
531
|
-
}> & {} & vue.ComponentCustomProperties & {}, "key" | "id" | "name" | "label" | "class" | "$children" | "ref" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "v-slot:default" | "v-slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "onUpdate:focused" | "validateOn" | "validationValue" | "hint" | "hideDetails" | ("error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint") | "v-slot:details">, `$${any}`> & Omit<Omit<{
|
|
580
|
+
}> & {} & vue.ComponentCustomProperties & {}, "key" | "id" | "name" | "label" | "class" | "$children" | "ref" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "v-slot:default" | "v-slots" | "$slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "onUpdate:focused" | "validateOn" | "validationValue" | "hint" | "hideDetails" | ("error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint") | "v-slot:details">, `$${any}`> & Omit<Omit<{
|
|
532
581
|
$: vue.ComponentInternalInstance;
|
|
533
582
|
$data: {};
|
|
534
583
|
$props: Partial<{
|
|
@@ -880,6 +929,18 @@ declare const VTextField: {
|
|
|
880
929
|
"v-slot:prepend-inner"?: false | ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
881
930
|
"v-slot:append-inner"?: false | ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
882
931
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
932
|
+
} & {
|
|
933
|
+
$slots?: {
|
|
934
|
+
clear?: (() => vue.VNodeChild) | undefined;
|
|
935
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
936
|
+
label?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
937
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
938
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
939
|
+
loader?: ((args_0: LoaderSlotProps) => vue.VNodeChild) | undefined;
|
|
940
|
+
'prepend-inner'?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
941
|
+
'append-inner'?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
942
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
943
|
+
} | undefined;
|
|
883
944
|
} & {
|
|
884
945
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
|
885
946
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -947,6 +1008,13 @@ declare const VTextField: {
|
|
|
947
1008
|
"v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
948
1009
|
"v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
949
1010
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1011
|
+
} & {
|
|
1012
|
+
$slots?: {
|
|
1013
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1014
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1015
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1016
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1017
|
+
} | undefined;
|
|
950
1018
|
} & {
|
|
951
1019
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
952
1020
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint">;
|
|
@@ -1009,6 +1077,13 @@ declare const VTextField: {
|
|
|
1009
1077
|
"v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1010
1078
|
"v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1011
1079
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1080
|
+
} & {
|
|
1081
|
+
$slots?: {
|
|
1082
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1083
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1084
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1085
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1086
|
+
} | undefined;
|
|
1012
1087
|
} & {
|
|
1013
1088
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
1014
1089
|
}, {
|
|
@@ -1096,13 +1171,20 @@ declare const VTextField: {
|
|
|
1096
1171
|
"v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1097
1172
|
"v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1098
1173
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1174
|
+
} & {
|
|
1175
|
+
$slots?: {
|
|
1176
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1177
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1178
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1179
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1180
|
+
} | undefined;
|
|
1099
1181
|
} & {
|
|
1100
1182
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
1101
1183
|
} & vue.ShallowUnwrapRef<{
|
|
1102
1184
|
reset: () => void;
|
|
1103
1185
|
resetValidation: () => void;
|
|
1104
1186
|
validate: () => Promise<string[]>;
|
|
1105
|
-
}> & {} & vue.ComponentCustomProperties & {}, "key" | "id" | "name" | "label" | "class" | "$children" | "ref" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "v-slot:default" | "v-slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "onUpdate:focused" | "validateOn" | "validationValue" | "hint" | "hideDetails" | ("error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint") | "v-slot:details">, `$${any}`> & Omit<Omit<{
|
|
1187
|
+
}> & {} & vue.ComponentCustomProperties & {}, "key" | "id" | "name" | "label" | "class" | "$children" | "ref" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "v-slot:default" | "v-slots" | "$slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "onUpdate:focused" | "validateOn" | "validationValue" | "hint" | "hideDetails" | ("error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint") | "v-slot:details">, `$${any}`> & Omit<Omit<{
|
|
1106
1188
|
$: vue.ComponentInternalInstance;
|
|
1107
1189
|
$data: {};
|
|
1108
1190
|
$props: Partial<{
|
|
@@ -1406,6 +1488,18 @@ declare const VTextField: {
|
|
|
1406
1488
|
"v-slot:prepend-inner"?: false | ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
1407
1489
|
"v-slot:append-inner"?: false | ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
1408
1490
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
1491
|
+
} & {
|
|
1492
|
+
$slots?: {
|
|
1493
|
+
clear?: (() => vue.VNodeChild) | undefined;
|
|
1494
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1495
|
+
label?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
1496
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1497
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1498
|
+
loader?: ((args_0: LoaderSlotProps) => vue.VNodeChild) | undefined;
|
|
1499
|
+
'prepend-inner'?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
1500
|
+
'append-inner'?: ((args_0: DefaultInputSlot & VInputSlot) => vue.VNodeChild) | undefined;
|
|
1501
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
1502
|
+
} | undefined;
|
|
1409
1503
|
} & {
|
|
1410
1504
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
|
1411
1505
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -1473,6 +1567,13 @@ declare const VTextField: {
|
|
|
1473
1567
|
"v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1474
1568
|
"v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1475
1569
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1570
|
+
} & {
|
|
1571
|
+
$slots?: {
|
|
1572
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1573
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1574
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1575
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1576
|
+
} | undefined;
|
|
1476
1577
|
} & {
|
|
1477
1578
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
1478
1579
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint">;
|
|
@@ -1535,6 +1636,13 @@ declare const VTextField: {
|
|
|
1535
1636
|
"v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1536
1637
|
"v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1537
1638
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1639
|
+
} & {
|
|
1640
|
+
$slots?: {
|
|
1641
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1642
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1643
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1644
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1645
|
+
} | undefined;
|
|
1538
1646
|
} & {
|
|
1539
1647
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
1540
1648
|
}, {
|
|
@@ -1622,13 +1730,20 @@ declare const VTextField: {
|
|
|
1622
1730
|
"v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1623
1731
|
"v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1624
1732
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1733
|
+
} & {
|
|
1734
|
+
$slots?: {
|
|
1735
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1736
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1737
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1738
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
1739
|
+
} | undefined;
|
|
1625
1740
|
} & {
|
|
1626
1741
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
1627
1742
|
} & vue.ShallowUnwrapRef<{
|
|
1628
1743
|
reset: () => void;
|
|
1629
1744
|
resetValidation: () => void;
|
|
1630
1745
|
validate: () => Promise<string[]>;
|
|
1631
|
-
}> & {} & vue.ComponentCustomProperties & {}, "key" | "id" | "name" | "label" | "class" | "$children" | "ref" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "v-slot:default" | "v-slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "onUpdate:focused" | "validateOn" | "validationValue" | "hint" | "hideDetails" | ("error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint") | "v-slot:details">, `$${any}`> & Omit<Omit<{
|
|
1746
|
+
}> & {} & vue.ComponentCustomProperties & {}, "key" | "id" | "name" | "label" | "class" | "$children" | "ref" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "v-slot:default" | "v-slots" | "$slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "onUpdate:focused" | "validateOn" | "validationValue" | "hint" | "hideDetails" | ("error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint") | "v-slot:details">, `$${any}`> & Omit<Omit<{
|
|
1632
1747
|
$: vue.ComponentInternalInstance;
|
|
1633
1748
|
$data: {};
|
|
1634
1749
|
$props: Partial<{
|
|
@@ -12,8 +12,11 @@ import Intersect from "../../directives/intersect/index.mjs"; // Composables
|
|
|
12
12
|
import { forwardRefs } from "../../composables/forwardRefs.mjs";
|
|
13
13
|
import { useFocus } from "../../composables/focus.mjs";
|
|
14
14
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
16
|
+
import { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue';
|
|
17
|
+
|
|
18
|
+
// Types
|
|
19
|
+
|
|
17
20
|
export const makeVTextareaProps = propsFactory({
|
|
18
21
|
autoGrow: Boolean,
|
|
19
22
|
autofocus: Boolean,
|
|
@@ -77,7 +80,7 @@ export const VTextarea = genericComponent()({
|
|
|
77
80
|
}
|
|
78
81
|
const vInputRef = ref();
|
|
79
82
|
const vFieldRef = ref();
|
|
80
|
-
const controlHeight =
|
|
83
|
+
const controlHeight = shallowRef('');
|
|
81
84
|
const textareaRef = ref();
|
|
82
85
|
const isActive = computed(() => props.persistentPlaceholder || isFocused.value || props.active);
|
|
83
86
|
function onFocus() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTextarea.mjs","names":["filterFieldProps","makeVFieldProps","makeVInputProps","VInput","VCounter","VField","Intersect","forwardRefs","useFocus","useProxiedModel","computed","nextTick","onBeforeUnmount","onMounted","ref","watch","callEvent","clamp","convertToUnit","filterInputAttrs","genericComponent","propsFactory","useRender","makeVTextareaProps","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","modelModifiers","Object","VTextarea","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","vInputRef","vFieldRef","controlHeight","textareaRef","isActive","active","onFocus","document","activeElement","onControlClick","onControlMousedown","onClear","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","sizerRef","calculateInputHeight","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","Math","maxHeight","Infinity","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","includes","variant","class","_ref2","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","_Fragment","_withDirectives","_resolveDirective","handler","once","_vModelText"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'v-textarea')\n\nexport const VTextarea = genericComponent<Omit<VInputSlots & VFieldSlots, 'default'>>()({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextareaProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as string | number\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const controlHeight = ref('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n\n controlHeight.value = convertToUnit(clamp(height ?? 0, minHeight, maxHeight))\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = VInput.filterProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick={ onControlClick }\n onMousedown={ onControlMousedown }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n )}\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n )}\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VTextarea.mjs","names":["filterFieldProps","makeVFieldProps","makeVInputProps","VInput","VCounter","VField","Intersect","forwardRefs","useFocus","useProxiedModel","callEvent","clamp","convertToUnit","filterInputAttrs","genericComponent","propsFactory","useRender","computed","nextTick","onBeforeUnmount","onMounted","ref","shallowRef","watch","makeVTextareaProps","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","modelModifiers","Object","VTextarea","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","vInputRef","vFieldRef","controlHeight","textareaRef","isActive","active","onFocus","document","activeElement","onControlClick","onControlMousedown","onClear","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","sizerRef","calculateInputHeight","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","Math","maxHeight","Infinity","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","includes","variant","class","_ref2","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","_Fragment","_withDirectives","_resolveDirective","handler","once","_vModelText"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'v-textarea')\n\nexport const VTextarea = genericComponent<Omit<VInputSlots & VFieldSlots, 'default'>>()({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextareaProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as string | number\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const controlHeight = shallowRef('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n\n controlHeight.value = convertToUnit(clamp(height ?? 0, minHeight, maxHeight))\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = VInput.filterProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick={ onControlClick }\n onMousedown={ onControlMousedown }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n )}\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n )}\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":"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"}
|