@vuetify/nightly 3.0.0-beta.3 → 3.0.0-beta.4
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/CHANGELOG.md +32 -2
- package/dist/_component-variables.sass +61 -0
- package/dist/json/attributes.json +176 -20
- package/dist/json/importMap.json +208 -204
- package/dist/json/tags.json +48 -4
- package/dist/json/web-types.json +492 -46
- package/dist/vuetify.css +950 -932
- package/dist/vuetify.d.ts +2521 -341
- package/dist/vuetify.esm.js +2318 -2130
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +2317 -2129
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +764 -740
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +5 -5
- package/lib/components/VAlert/VAlert.mjs +1 -1
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +0 -2
- package/lib/components/VAppBar/VAppBar.sass +0 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +46 -17
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +0 -2
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/VAvatar.sass +1 -2
- package/lib/components/VAvatar/_mixins.scss +0 -1
- package/lib/components/VBadge/VBadge.sass +0 -1
- package/lib/components/VBanner/VBanner.sass +0 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +0 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +0 -1
- package/lib/components/VBtn/VBtn.css +24 -7
- package/lib/components/VBtn/VBtn.mjs +20 -11
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +17 -2
- package/lib/components/VBtnGroup/VBtnGroup.sass +0 -1
- package/lib/components/VBtnToggle/VBtnToggle.sass +0 -1
- package/lib/components/VCard/VCard.css +5 -5
- package/lib/components/VCard/VCard.mjs +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +0 -1
- package/lib/components/VCarousel/VCarousel.sass +0 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +13 -46
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.sass +0 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +67 -0
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -0
- package/lib/components/VCheckbox/index.mjs +1 -0
- package/lib/components/VCheckbox/index.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +5 -5
- package/lib/components/VChip/VChip.mjs +1 -1
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +0 -1
- package/lib/components/VChipGroup/VChipGroup.mjs +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VCode/VCode.sass +1 -2
- package/lib/components/VCode/_variables.scss +1 -1
- package/lib/components/VColorPicker/VColorPicker.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerEdit.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.sass +0 -1
- package/lib/components/VCombobox/VCombobox.mjs +47 -29
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +0 -2
- package/lib/components/VCounter/VCounter.sass +0 -1
- package/lib/components/VDialog/VDialog.sass +0 -1
- package/lib/components/VDivider/VDivider.sass +0 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +0 -1
- package/lib/components/VField/VField.css +9 -9
- package/lib/components/VField/VField.mjs +2 -2
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +6 -8
- package/lib/components/VField/_variables.scss +3 -3
- package/lib/components/VFileInput/VFileInput.sass +0 -1
- package/lib/components/VFooter/VFooter.sass +0 -1
- package/lib/components/VIcon/VIcon.sass +0 -1
- package/lib/components/VImg/VImg.sass +0 -1
- package/lib/components/VInput/VInput.mjs +3 -3
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +0 -1
- package/lib/components/VItemGroup/VItemGroup.sass +0 -1
- package/lib/components/VKbd/VKbd.sass +0 -1
- package/lib/components/VKbd/_variables.scss +1 -1
- package/lib/components/VLabel/VLabel.sass +0 -1
- package/lib/components/VList/VList.mjs +1 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +0 -1
- package/lib/components/VList/VListChildren.mjs +1 -1
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +11 -2
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +6 -6
- package/lib/components/VList/VListItem.mjs +7 -7
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +1 -2
- package/lib/components/VMain/VMain.sass +0 -1
- package/lib/components/VMenu/VMenu.sass +0 -1
- package/lib/components/VMessages/VMessages.sass +0 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VOverlay/VOverlay.sass +0 -1
- package/lib/components/VPagination/VPagination.sass +0 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +0 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +0 -1
- package/lib/components/VSelect/VSelect.mjs +54 -19
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +0 -2
- package/lib/components/VSelectionControl/VSelectionControl.css +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +6 -5
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +0 -1
- package/lib/components/VSheet/VSheet.sass +0 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -1
- package/lib/components/VSlider/VSlider.sass +0 -2
- package/lib/components/VSlider/VSliderThumb.sass +0 -2
- package/lib/components/VSlider/VSliderTrack.sass +0 -2
- package/lib/components/VSnackbar/VSnackbar.css +5 -5
- package/lib/components/VSnackbar/VSnackbar.sass +0 -1
- package/lib/components/VSwitch/VSwitch.mjs +8 -2
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +0 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -1
- package/lib/components/VTable/VTable.sass +0 -1
- package/lib/components/VTabs/VTab.sass +0 -1
- package/lib/components/VTabs/VTabs.sass +0 -1
- package/lib/components/VTabs/_variables.scss +1 -1
- package/lib/components/VTextField/VTextField.mjs +2 -0
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +0 -1
- package/lib/components/VTextarea/VTextarea.sass +0 -2
- package/lib/components/VTimeline/VTimeline.sass +0 -1
- package/lib/components/VToolbar/VToolbar.sass +0 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +1 -1
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +0 -1
- package/lib/components/VWindow/VWindow.sass +0 -2
- package/lib/components/VWindow/VWindowItem.mjs +9 -3
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/index.d.ts +2520 -342
- package/lib/composables/display.mjs +13 -11
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/form.mjs +6 -6
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/items.mjs +2 -2
- package/lib/composables/items.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs +3 -2
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/theme.mjs +6 -2
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/validation.mjs +14 -7
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +3 -3
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.sass +0 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +23 -6
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +73 -67
- package/lib/styles/tools/_variant.sass +6 -6
- package/lib/util/getCurrentInstance.mjs +19 -0
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs +0 -4
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +11 -3
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
position: relative;
|
|
23
23
|
border-radius: 4px;
|
|
24
24
|
}
|
|
25
|
-
.v-snackbar--variant-plain, .v-snackbar--variant-outlined, .v-snackbar--variant-text, .v-snackbar--variant-
|
|
25
|
+
.v-snackbar--variant-plain, .v-snackbar--variant-outlined, .v-snackbar--variant-text, .v-snackbar--variant-tonal {
|
|
26
26
|
background: transparent;
|
|
27
27
|
color: inherit;
|
|
28
28
|
}
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
.v-snackbar--variant-plain .v-snackbar__overlay {
|
|
36
36
|
display: none;
|
|
37
37
|
}
|
|
38
|
-
.v-snackbar--variant-
|
|
38
|
+
.v-snackbar--variant-elevated, .v-snackbar--variant-flat {
|
|
39
39
|
background: #333333;
|
|
40
40
|
color: rgb(var(--v-theme-on-surface-variant));
|
|
41
41
|
}
|
|
42
|
-
.v-snackbar--variant-
|
|
42
|
+
.v-snackbar--variant-elevated {
|
|
43
43
|
box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
|
|
44
44
|
}
|
|
45
|
-
.v-snackbar--variant-
|
|
45
|
+
.v-snackbar--variant-flat {
|
|
46
46
|
box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
|
|
47
47
|
}
|
|
48
48
|
.v-snackbar--variant-outlined {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
.v-snackbar--variant-text .v-snackbar__overlay {
|
|
52
52
|
background: currentColor;
|
|
53
53
|
}
|
|
54
|
-
.v-snackbar--variant-
|
|
54
|
+
.v-snackbar--variant-tonal .v-snackbar__underlay {
|
|
55
55
|
background: currentColor;
|
|
56
56
|
opacity: var(--v-activated-opacity);
|
|
57
57
|
border-radius: inherit;
|
|
@@ -10,7 +10,7 @@ import { LoaderSlot, useLoader } from "../../composables/loader.mjs";
|
|
|
10
10
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utility
|
|
11
11
|
|
|
12
12
|
import { computed, ref } from 'vue';
|
|
13
|
-
import { defineComponent, filterInputAttrs, useRender } from "../../util/index.mjs";
|
|
13
|
+
import { defineComponent, filterInputAttrs, getUid, useRender } from "../../util/index.mjs";
|
|
14
14
|
export const VSwitch = defineComponent({
|
|
15
15
|
name: 'VSwitch',
|
|
16
16
|
inheritAttrs: false,
|
|
@@ -41,6 +41,8 @@ export const VSwitch = defineComponent({
|
|
|
41
41
|
const loaderColor = computed(() => {
|
|
42
42
|
return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
|
|
43
43
|
});
|
|
44
|
+
const uid = getUid();
|
|
45
|
+
const id = computed(() => props.id || `switch-${uid}`);
|
|
44
46
|
|
|
45
47
|
function onChange() {
|
|
46
48
|
if (indeterminate.value) {
|
|
@@ -66,9 +68,12 @@ export const VSwitch = defineComponent({
|
|
|
66
68
|
}, {
|
|
67
69
|
'v-switch--indeterminate': indeterminate.value
|
|
68
70
|
}, loaderClasses.value]
|
|
69
|
-
}, inputAttrs, inputProps
|
|
71
|
+
}, inputAttrs, inputProps, {
|
|
72
|
+
"id": id.value
|
|
73
|
+
}), { ...slots,
|
|
70
74
|
default: _ref2 => {
|
|
71
75
|
let {
|
|
76
|
+
id,
|
|
72
77
|
isDisabled,
|
|
73
78
|
isReadonly,
|
|
74
79
|
isValid
|
|
@@ -76,6 +81,7 @@ export const VSwitch = defineComponent({
|
|
|
76
81
|
return _createVNode(VSelectionControl, _mergeProps({
|
|
77
82
|
"ref": control
|
|
78
83
|
}, controlProps, {
|
|
84
|
+
"id": id.value,
|
|
79
85
|
"type": "checkbox",
|
|
80
86
|
"onUpdate:modelValue": onChange,
|
|
81
87
|
"aria-checked": indeterminate.value ? 'mixed' : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSwitch.mjs","names":["filterControlProps","makeSelectionControlProps","VSelectionControl","filterInputProps","makeVInputProps","VInput","VProgressCircular","LoaderSlot","useLoader","useProxiedModel","computed","ref","defineComponent","filterInputAttrs","useRender","VSwitch","name","inheritAttrs","props","indeterminate","Boolean","inset","flat","loading","type","String","default","emits","val","setup","attrs","slots","loaderClasses","loaderColor","color","onChange","value","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","control","onClick","input","click","isDisabled","isReadonly","isValid","undefined","textColorClasses","slotProps","loader","isActive"],"sources":["../../../src/components/VSwitch/VSwitch.tsx"],"sourcesContent":["// Styles\nimport './VSwitch.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { LoaderSlot, useLoader } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, ref } from 'vue'\nimport { defineComponent, filterInputAttrs, useRender } from '@/util'\n\nexport const VSwitch = defineComponent({\n name: 'VSwitch',\n\n inheritAttrs: false,\n\n props: {\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n },\n\n emits: {\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const { loaderClasses } = useLoader(props)\n\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== ''\n ? props.loading\n : props.color\n })\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const control = ref<VSelectionControl>()\n\n function onClick () {\n control.value?.input?.click()\n }\n\n return (\n <VInput\n class={[\n 'v-switch',\n { 'v-switch--inset': props.inset },\n { 'v-switch--indeterminate': indeterminate.value },\n loaderClasses.value,\n ]}\n { ...inputAttrs }\n { ...inputProps }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isReadonly,\n isValid,\n }) => (\n <VSelectionControl\n ref={ control }\n { ...controlProps }\n type=\"checkbox\"\n onUpdate:modelValue={ onChange }\n aria-checked={ indeterminate.value ? 'mixed' : undefined }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n >\n {{\n ...slots,\n default: () => (<div class=\"v-switch__track\" onClick={ onClick }></div>),\n input: ({ textColorClasses }) => (\n <div\n class={[\n 'v-switch__thumb',\n textColorClasses.value,\n ]}\n >\n { props.loading && (\n <LoaderSlot\n name=\"v-switch\"\n active\n color={ isValid.value === false ? undefined : loaderColor.value }\n >\n { slotProps => (\n slots.loader\n ? slots.loader(slotProps)\n : (\n <VProgressCircular\n active={ slotProps.isActive }\n color={ slotProps.color }\n indeterminate\n size=\"16\"\n width=\"2\"\n />\n )\n )}\n </LoaderSlot>\n ) }\n </div>\n ),\n }}\n </VSelectionControl>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSwitch = InstanceType<typeof VSwitch>\n"],"mappings":";AAAA;AACA,uB,CAEA;;SACSA,kB,EAAoBC,yB,EAA2BC,iB;SAC/CC,gB,EAAkBC,e,EAAiBC,M;SACnCC,iB,0CAET;;SACSC,U,EAAYC,S;SACZC,e,8CAET;;AACA,SAASC,QAAT,EAAmBC,GAAnB,QAA8B,KAA9B;SACSC,e,EAAiBC,gB,EAAkBC,S;
|
|
1
|
+
{"version":3,"file":"VSwitch.mjs","names":["filterControlProps","makeSelectionControlProps","VSelectionControl","filterInputProps","makeVInputProps","VInput","VProgressCircular","LoaderSlot","useLoader","useProxiedModel","computed","ref","defineComponent","filterInputAttrs","getUid","useRender","VSwitch","name","inheritAttrs","props","indeterminate","Boolean","inset","flat","loading","type","String","default","emits","val","setup","attrs","slots","loaderClasses","loaderColor","color","uid","id","onChange","value","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","control","onClick","input","click","isDisabled","isReadonly","isValid","undefined","textColorClasses","slotProps","loader","isActive"],"sources":["../../../src/components/VSwitch/VSwitch.tsx"],"sourcesContent":["// Styles\nimport './VSwitch.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { LoaderSlot, useLoader } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, ref } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VSwitch = defineComponent({\n name: 'VSwitch',\n\n inheritAttrs: false,\n\n props: {\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n },\n\n emits: {\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const { loaderClasses } = useLoader(props)\n\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== ''\n ? props.loading\n : props.color\n })\n\n const uid = getUid()\n const id = computed(() => props.id || `switch-${uid}`)\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const control = ref<VSelectionControl>()\n\n function onClick () {\n control.value?.input?.click()\n }\n\n return (\n <VInput\n class={[\n 'v-switch',\n { 'v-switch--inset': props.inset },\n { 'v-switch--indeterminate': indeterminate.value },\n loaderClasses.value,\n ]}\n { ...inputAttrs }\n { ...inputProps }\n id={ id.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n isValid,\n }) => (\n <VSelectionControl\n ref={ control }\n { ...controlProps }\n id={ id.value }\n type=\"checkbox\"\n onUpdate:modelValue={ onChange }\n aria-checked={ indeterminate.value ? 'mixed' : undefined }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n >\n {{\n ...slots,\n default: () => (<div class=\"v-switch__track\" onClick={ onClick }></div>),\n input: ({ textColorClasses }) => (\n <div\n class={[\n 'v-switch__thumb',\n textColorClasses.value,\n ]}\n >\n { props.loading && (\n <LoaderSlot\n name=\"v-switch\"\n active\n color={ isValid.value === false ? undefined : loaderColor.value }\n >\n { slotProps => (\n slots.loader\n ? slots.loader(slotProps)\n : (\n <VProgressCircular\n active={ slotProps.isActive }\n color={ slotProps.color }\n indeterminate\n size=\"16\"\n width=\"2\"\n />\n )\n )}\n </LoaderSlot>\n ) }\n </div>\n ),\n }}\n </VSelectionControl>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSwitch = InstanceType<typeof VSwitch>\n"],"mappings":"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"}
|
|
@@ -128,6 +128,7 @@ export const VTextField = genericComponent()({
|
|
|
128
128
|
}), { ...slots,
|
|
129
129
|
default: _ref2 => {
|
|
130
130
|
let {
|
|
131
|
+
id,
|
|
131
132
|
isDisabled,
|
|
132
133
|
isDirty,
|
|
133
134
|
isReadonly,
|
|
@@ -145,6 +146,7 @@ export const VTextField = genericComponent()({
|
|
|
145
146
|
"onClick:appendInner": attrs['onClick:appendInner'],
|
|
146
147
|
"role": "textbox"
|
|
147
148
|
}, fieldProps, {
|
|
149
|
+
"id": id.value,
|
|
148
150
|
"active": isActive.value || isDirty.value,
|
|
149
151
|
"dirty": isDirty.value || props.dirty,
|
|
150
152
|
"focused": isFocused.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTextField.mjs","names":["filterInputProps","makeVInputProps","VInput","filterFieldProps","makeVFieldProps","VField","VCounter","useForwardRef","useProxiedModel","Intersect","computed","nextTick","ref","filterInputAttrs","genericComponent","useRender","activeTypes","VTextField","name","directives","inheritAttrs","props","autofocus","Boolean","counter","Number","String","counterValue","Function","hint","persistentHint","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","type","default","emits","e","val","setup","attrs","emit","slots","model","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","focus","vInputRef","vFieldRef","isFocused","inputRef","isActive","includes","messages","onFocus","document","activeElement","onControlClick","onClear","stopPropagation","hasCounter","rootAttrs","inputAttrs","modelValue","_","inputProps","fieldProps","variant","isDisabled","isDirty","isReadonly","isValid","preventDefault","dirty","class","fieldClass","slotProps","handler","details"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VCounter } from '@/components/VCounter'\n\n// Composables\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, ref } from 'vue'\nimport { filterInputAttrs, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const VTextField = genericComponent<new <T>() => {\n $slots: VInputSlots & VFieldSlots\n}>()({\n name: 'VTextField',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\n 'click:input': (e: MouseEvent) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\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 undefined\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 isFocused = ref(false)\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value\n ))\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isFocused.value || props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) isFocused.value = true\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n emit('click:clear', e)\n })\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n ]}\n onClick:prepend={ attrs['onClick:prepend'] }\n onClick:append={ attrs['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ (e: MouseEvent) => {\n if (e.target === inputRef.value) return\n\n e.preventDefault()\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ attrs['onClick:prependInner'] }\n onClick:appendInner={ attrs['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <div\n class={ fieldClass }\n onClick={ e => emit('click:input', e) }\n data-no-activator=\"\"\n >\n { slots.default?.() }\n\n <input\n ref={ inputRef }\n v-model={ model.value }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n </div>\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasCounter ? () => (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return useForwardRef({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VTextField.mjs","names":["filterInputProps","makeVInputProps","VInput","filterFieldProps","makeVFieldProps","VField","VCounter","useForwardRef","useProxiedModel","Intersect","computed","nextTick","ref","filterInputAttrs","genericComponent","useRender","activeTypes","VTextField","name","directives","inheritAttrs","props","autofocus","Boolean","counter","Number","String","counterValue","Function","hint","persistentHint","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","type","default","emits","e","val","setup","attrs","emit","slots","model","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","focus","vInputRef","vFieldRef","isFocused","inputRef","isActive","includes","messages","onFocus","document","activeElement","onControlClick","onClear","stopPropagation","hasCounter","rootAttrs","inputAttrs","modelValue","_","inputProps","fieldProps","variant","id","isDisabled","isDirty","isReadonly","isValid","preventDefault","dirty","class","fieldClass","slotProps","handler","details"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VCounter } from '@/components/VCounter'\n\n// Composables\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, ref } from 'vue'\nimport { filterInputAttrs, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const VTextField = genericComponent<new <T>() => {\n $slots: VInputSlots & VFieldSlots\n}>()({\n name: 'VTextField',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\n 'click:input': (e: MouseEvent) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\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 undefined\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 isFocused = ref(false)\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value\n ))\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isFocused.value || props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) isFocused.value = true\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n emit('click:clear', e)\n })\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n ]}\n onClick:prepend={ attrs['onClick:prepend'] }\n onClick:append={ attrs['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ (e: MouseEvent) => {\n if (e.target === inputRef.value) return\n\n e.preventDefault()\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ attrs['onClick:prependInner'] }\n onClick:appendInner={ attrs['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <div\n class={ fieldClass }\n onClick={ e => emit('click:input', e) }\n data-no-activator=\"\"\n >\n { slots.default?.() }\n\n <input\n ref={ inputRef }\n v-model={ model.value }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n </div>\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasCounter ? () => (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return useForwardRef({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VToolbarItems.mjs","names":["makeVariantProps","provideDefaults","defineComponent","toRef","VToolbarItems","name","props","variant","setup","slots","VBtn","color","default"],"sources":["../../../src/components/VToolbar/VToolbarItems.tsx"],"sourcesContent":["// Composables\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VToolbarItems = defineComponent({\n name: 'VToolbarItems',\n\n props: {\n ...makeVariantProps({ variant: '
|
|
1
|
+
{"version":3,"file":"VToolbarItems.mjs","names":["makeVariantProps","provideDefaults","defineComponent","toRef","VToolbarItems","name","props","variant","setup","slots","VBtn","color","default"],"sources":["../../../src/components/VToolbar/VToolbarItems.tsx"],"sourcesContent":["// Composables\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VToolbarItems = defineComponent({\n name: 'VToolbarItems',\n\n props: {\n ...makeVariantProps({ variant: 'tonal' }),\n },\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n variant: toRef(props, 'variant'),\n },\n })\n\n return () => slots.default?.()\n },\n})\n\nexport type VToolbarItems = InstanceType<typeof VToolbarItems>\n"],"mappings":"AAAA;SACSA,gB;SACAC,e,0CAET;;SACSC,e;AACT,SAASC,KAAT,QAAsB,KAAtB;AAEA,OAAO,MAAMC,aAAa,GAAGF,eAAe,CAAC;EAC3CG,IAAI,EAAE,eADqC;EAG3CC,KAAK,EAAE,EACL,GAAGN,gBAAgB,CAAC;MAAEO,OAAO,EAAE;IAAX,CAAD;EADd,CAHoC;;EAO3CC,KAAK,CAAEF,KAAF,QAAoB;IAAA,IAAX;MAAEG;IAAF,CAAW;IACvBR,eAAe,CAAC;MACdS,IAAI,EAAE;QACJC,KAAK,EAAER,KAAK,CAACG,KAAD,EAAQ,OAAR,CADR;QAEJC,OAAO,EAAEJ,KAAK,CAACG,KAAD,EAAQ,SAAR;MAFV;IADQ,CAAD,CAAf;IAOA,OAAO;MAAA;;MAAA,yBAAMG,KAAK,CAACG,OAAZ,qBAAM,oBAAAH,KAAK,CAAX;IAAA,CAAP;EACD;;AAhB0C,CAAD,CAArC"}
|
|
@@ -2,7 +2,8 @@ import { withDirectives as _withDirectives, createVNode as _createVNode, vShow a
|
|
|
2
2
|
// Composables
|
|
3
3
|
import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs";
|
|
4
4
|
import { makeLazyProps, useLazy } from "../../composables/lazy.mjs";
|
|
5
|
-
import { MaybeTransition } from "../../composables/transition.mjs";
|
|
5
|
+
import { MaybeTransition } from "../../composables/transition.mjs";
|
|
6
|
+
import { useSsrBoot } from "../../composables/ssrBoot.mjs"; // Directives
|
|
6
7
|
|
|
7
8
|
import Touch from "../../directives/touch/index.mjs"; // Utilities
|
|
8
9
|
|
|
@@ -33,6 +34,9 @@ export const VWindowItem = defineComponent({
|
|
|
33
34
|
} = _ref;
|
|
34
35
|
const window = inject(VWindowSymbol);
|
|
35
36
|
const groupItem = useGroupItem(props, VWindowGroupSymbol);
|
|
37
|
+
const {
|
|
38
|
+
isBooted
|
|
39
|
+
} = useSsrBoot();
|
|
36
40
|
if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');
|
|
37
41
|
const isTransitioning = ref(false);
|
|
38
42
|
const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false);
|
|
@@ -109,12 +113,14 @@ export const VWindowItem = defineComponent({
|
|
|
109
113
|
hasContent
|
|
110
114
|
} = useLazy(props, groupItem.isSelected);
|
|
111
115
|
return () => {
|
|
116
|
+
var _slots$default;
|
|
117
|
+
|
|
112
118
|
return _createVNode(MaybeTransition, {
|
|
113
|
-
"transition": transition.value
|
|
119
|
+
"transition": isBooted.value && transition.value
|
|
114
120
|
}, {
|
|
115
121
|
default: () => [_withDirectives(_createVNode("div", {
|
|
116
122
|
"class": ['v-window-item', groupItem.selectedClass.value]
|
|
117
|
-
}, [
|
|
123
|
+
}, [hasContent.value && ((_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots))]), [[_vShow, groupItem.isSelected.value]])]
|
|
118
124
|
});
|
|
119
125
|
};
|
|
120
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VWindowItem.mjs","names":["makeGroupItemProps","useGroupItem","makeLazyProps","useLazy","MaybeTransition","Touch","computed","inject","nextTick","ref","convertToUnit","defineComponent","VWindowGroupSymbol","VWindowSymbol","VWindowItem","name","directives","props","reverseTransition","type","Boolean","String","default","undefined","transition","setup","slots","window","groupItem","Error","isTransitioning","hasTransition","isReversed","value","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","rootRef","clientHeight","onTransitionCancelled","onEnterTransition","el","onBeforeEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onAfterLeave","onLeaveCancelled","onEnter","hasContent","isSelected","selectedClass"],"sources":["../../../src/components/VWindow/VWindowItem.tsx"],"sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport Touch from '@/directives/touch'\n\n// Utilities\nimport { computed, inject, nextTick, ref } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\nimport { VWindowGroupSymbol, VWindowSymbol } from './VWindow'\n\nexport const VWindowItem = defineComponent({\n name: 'VWindowItem',\n\n directives: {\n Touch,\n },\n\n props: {\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n ...makeLazyProps(),\n ...makeGroupItemProps(),\n },\n\n setup (props, { slots }) {\n const window = inject(VWindowSymbol)\n const groupItem = useGroupItem(props, VWindowGroupSymbol)\n\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow')\n\n const isTransitioning = ref(false)\n const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false)\n\n function onAfterTransition () {\n if (!isTransitioning.value || !window) {\n return\n }\n\n // Finalize transition state.\n isTransitioning.value = false\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined\n }\n }\n }\n\n function onBeforeTransition () {\n if (isTransitioning.value || !window) {\n return\n }\n\n // Initialize transition state here.\n isTransitioning.value = true\n\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight)\n }\n\n window.transitionCount.value += 1\n }\n\n function onTransitionCancelled () {\n onAfterTransition() // This should have the same path as normal transition end.\n }\n\n function onEnterTransition (el: Element) {\n if (!isTransitioning.value) {\n return\n }\n\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight)\n })\n }\n\n const transition = computed(() => {\n const name = window.isReversed.value\n ? props.reverseTransition\n : props.transition\n\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition,\n }\n })\n\n const { hasContent } = useLazy(props, groupItem.isSelected)\n\n return () => {\n return (\n <MaybeTransition transition={ transition.value } >\n <div\n class={[\n 'v-window-item',\n groupItem.selectedClass.value,\n ]}\n v-show={ groupItem.isSelected.value }\n >\n {
|
|
1
|
+
{"version":3,"file":"VWindowItem.mjs","names":["makeGroupItemProps","useGroupItem","makeLazyProps","useLazy","MaybeTransition","useSsrBoot","Touch","computed","inject","nextTick","ref","convertToUnit","defineComponent","VWindowGroupSymbol","VWindowSymbol","VWindowItem","name","directives","props","reverseTransition","type","Boolean","String","default","undefined","transition","setup","slots","window","groupItem","isBooted","Error","isTransitioning","hasTransition","isReversed","value","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","rootRef","clientHeight","onTransitionCancelled","onEnterTransition","el","onBeforeEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onAfterLeave","onLeaveCancelled","onEnter","hasContent","isSelected","selectedClass"],"sources":["../../../src/components/VWindow/VWindowItem.tsx"],"sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { MaybeTransition } from '@/composables/transition'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Directives\nimport Touch from '@/directives/touch'\n\n// Utilities\nimport { computed, inject, nextTick, ref } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\nimport { VWindowGroupSymbol, VWindowSymbol } from './VWindow'\n\nexport const VWindowItem = defineComponent({\n name: 'VWindowItem',\n\n directives: {\n Touch,\n },\n\n props: {\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n ...makeLazyProps(),\n ...makeGroupItemProps(),\n },\n\n setup (props, { slots }) {\n const window = inject(VWindowSymbol)\n const groupItem = useGroupItem(props, VWindowGroupSymbol)\n const { isBooted } = useSsrBoot()\n\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow')\n\n const isTransitioning = ref(false)\n const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false)\n\n function onAfterTransition () {\n if (!isTransitioning.value || !window) {\n return\n }\n\n // Finalize transition state.\n isTransitioning.value = false\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined\n }\n }\n }\n\n function onBeforeTransition () {\n if (isTransitioning.value || !window) {\n return\n }\n\n // Initialize transition state here.\n isTransitioning.value = true\n\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight)\n }\n\n window.transitionCount.value += 1\n }\n\n function onTransitionCancelled () {\n onAfterTransition() // This should have the same path as normal transition end.\n }\n\n function onEnterTransition (el: Element) {\n if (!isTransitioning.value) {\n return\n }\n\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight)\n })\n }\n\n const transition = computed(() => {\n const name = window.isReversed.value\n ? props.reverseTransition\n : props.transition\n\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition,\n }\n })\n\n const { hasContent } = useLazy(props, groupItem.isSelected)\n\n return () => {\n return (\n <MaybeTransition transition={ isBooted.value && transition.value } >\n <div\n class={[\n 'v-window-item',\n groupItem.selectedClass.value,\n ]}\n v-show={ groupItem.isSelected.value }\n >\n { hasContent.value && slots.default?.() }\n </div>\n </MaybeTransition>\n )\n }\n },\n})\n\nexport type VWindowItem = InstanceType<typeof VWindowItem>\n"],"mappings":"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"}
|