vuetify 3.2.4 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +2503 -2151
- package/dist/json/importMap-labs.json +12 -4
- package/dist/json/importMap.json +28 -28
- package/dist/json/tags.json +107 -9
- package/dist/json/web-types.json +10785 -7110
- package/dist/vuetify-labs.css +263 -153
- package/dist/vuetify-labs.d.ts +35870 -16257
- package/dist/vuetify-labs.esm.js +1466 -934
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1465 -933
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +246 -168
- package/dist/vuetify.d.ts +27883 -14061
- package/dist/vuetify.esm.js +477 -300
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +476 -299
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +811 -806
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/{index.d.ts → index.d.mts} +5 -1
- package/lib/blueprints/{md1.d.ts → md1.d.mts} +5 -1
- package/lib/blueprints/{md2.d.ts → md2.d.mts} +5 -1
- package/lib/blueprints/{md3.d.ts → md3.d.mts} +5 -1
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/{index.d.ts → index.d.mts} +284 -69
- package/lib/components/VApp/{index.d.ts → index.d.mts} +80 -19
- package/lib/components/VAppBar/{index.d.ts → index.d.mts} +391 -119
- package/lib/components/VAutocomplete/VAutocomplete.css +15 -9
- package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -34
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +15 -11
- package/lib/components/VAutocomplete/index.d.mts +2048 -0
- package/lib/components/VAvatar/{index.d.ts → index.d.mts} +85 -30
- package/lib/components/VBadge/_variables.scss +1 -1
- package/lib/components/VBadge/{index.d.ts → index.d.mts} +105 -42
- package/lib/components/VBanner/{index.d.ts → index.d.mts} +282 -63
- package/lib/components/VBottomNavigation/{index.d.ts → index.d.mts} +93 -45
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/{index.d.ts → index.d.mts} +348 -212
- package/lib/components/VBtn/{index.d.ts → index.d.mts} +139 -53
- package/lib/components/VBtnGroup/{index.d.ts → index.d.mts} +84 -27
- package/lib/components/VBtnToggle/{index.d.ts → index.d.mts} +88 -35
- package/lib/components/VCalendar/util/props.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/{index.d.ts → index.d.mts} +957 -419
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/{index.d.ts → index.d.mts} +616 -111
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +3 -3
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/{index.d.ts → index.d.mts} +408 -141
- package/lib/components/VChip/VChip.css +4 -2
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +3 -2
- package/lib/components/VChip/{index.d.ts → index.d.mts} +376 -85
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.mts +470 -0
- package/lib/components/VCode/{index.d.ts → index.d.mts} +78 -17
- package/lib/components/VColorPicker/VColorPicker.mjs +9 -4
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +5 -4
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/{index.d.ts → index.d.mts} +241 -109
- package/lib/components/VColorPicker/util/index.mjs +2 -22
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +15 -9
- package/lib/components/VCombobox/VCombobox.mjs +82 -37
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +15 -11
- package/lib/components/VCombobox/index.d.mts +2060 -0
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/{index.d.ts → index.d.mts} +105 -45
- package/lib/components/VDefaultsProvider/{index.d.ts → index.d.mts} +82 -20
- package/lib/components/VDialog/{index.d.ts → index.d.mts} +571 -305
- package/lib/components/VDivider/{index.d.ts → index.d.mts} +81 -21
- package/lib/components/VExpansionPanel/{index.d.ts → index.d.mts} +374 -110
- package/lib/components/VField/VField.css +49 -16
- package/lib/components/VField/VField.mjs +12 -2
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +40 -11
- package/lib/components/VField/_variables.scss +8 -2
- package/lib/components/VField/index.d.mts +682 -0
- package/lib/components/VFileInput/VFileInput.css +3 -0
- package/lib/components/VFileInput/VFileInput.mjs +7 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +6 -1
- package/lib/components/VFileInput/{index.d.ts → index.d.mts} +1033 -399
- package/lib/components/VFooter/{index.d.ts → index.d.mts} +85 -29
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.mts +993 -0
- package/lib/components/VGrid/{index.d.ts → index.d.mts} +334 -100
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/{index.d.ts → index.d.mts} +120 -37
- package/lib/components/VIcon/{index.d.ts → index.d.mts} +322 -81
- package/lib/components/VImg/VImg.css +2 -4
- package/lib/components/VImg/VImg.mjs +25 -24
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +4 -3
- package/lib/components/VImg/{index.d.ts → index.d.mts} +177 -40
- package/lib/components/VInput/VInput.css +10 -4
- package/lib/components/VInput/VInput.mjs +9 -3
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +7 -2
- package/lib/components/VInput/_variables.scss +1 -0
- package/lib/components/VInput/{index.d.ts → index.d.mts} +237 -93
- package/lib/components/VItemGroup/VItem.mjs +1 -1
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.mts +781 -0
- package/lib/components/VKbd/{index.d.ts → index.d.mts} +78 -17
- package/lib/components/VLabel/{index.d.ts → index.d.mts} +79 -18
- package/lib/components/VLayout/{index.d.ts → index.d.mts} +161 -42
- package/lib/components/VLazy/{index.d.ts → index.d.mts} +82 -27
- package/lib/components/VList/VList.mjs +6 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs +4 -8
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +3 -0
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +11 -6
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/{index.d.ts → index.d.mts} +1245 -619
- package/lib/components/VLocaleProvider/{index.d.ts → index.d.mts} +80 -19
- package/lib/components/VMain/{index.d.ts → index.d.mts} +79 -19
- package/lib/components/VMenu/{index.d.ts → index.d.mts} +567 -299
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/{index.d.ts → index.d.mts} +87 -34
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +2 -0
- package/lib/components/VNavigationDrawer/{index.d.ts → index.d.mts} +139 -57
- package/lib/components/VOverlay/{index.d.ts → index.d.mts} +159 -75
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/{index.d.ts → index.d.mts} +229 -125
- package/lib/components/VParallax/{index.d.ts → index.d.mts} +118 -18
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/{index.d.ts → index.d.mts} +148 -45
- package/lib/components/VProgressLinear/{index.d.ts → index.d.mts} +119 -52
- package/lib/components/VRadio/{index.d.ts → index.d.mts} +139 -40
- package/lib/components/VRadioGroup/{index.d.ts → index.d.mts} +265 -93
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -4
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/{index.d.ts → index.d.mts} +313 -132
- package/lib/components/VRating/{index.d.ts → index.d.mts} +108 -49
- package/lib/components/VResponsive/VResponsive.css +13 -5
- package/lib/components/VResponsive/VResponsive.mjs +4 -1
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.sass +12 -4
- package/lib/components/VResponsive/{index.d.ts → index.d.mts} +99 -16
- package/lib/components/VSelect/VSelect.css +15 -9
- package/lib/components/VSelect/VSelect.mjs +23 -18
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +14 -11
- package/lib/components/VSelect/index.d.mts +1986 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +403 -0
- package/lib/components/VSelectionControlGroup/{index.d.ts → index.d.mts} +90 -38
- package/lib/components/VSheet/{index.d.ts → index.d.mts} +81 -21
- package/lib/components/VSlideGroup/{index.d.ts → index.d.mts} +236 -61
- package/lib/components/VSlider/VSlider.mjs +2 -2
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/{index.d.ts → index.d.mts} +308 -126
- package/lib/components/VSlider/slider.mjs +8 -2
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/{index.d.ts → index.d.mts} +566 -297
- package/lib/components/VSwitch/VSwitch.css +3 -3
- package/lib/components/VSwitch/VSwitch.sass +4 -3
- package/lib/components/VSwitch/{index.d.ts → index.d.mts} +284 -101
- package/lib/components/VSystemBar/{index.d.ts → index.d.mts} +84 -27
- package/lib/components/VTable/{index.d.ts → index.d.mts} +122 -26
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/{index.d.ts → index.d.mts} +203 -113
- package/lib/components/VTextField/VTextField.css +9 -1
- package/lib/components/VTextField/VTextField.mjs +4 -2
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +8 -1
- package/lib/components/VTextField/index.d.mts +2735 -0
- package/lib/components/VTextarea/VTextarea.mjs +13 -4
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/{index.d.ts → index.d.mts} +933 -393
- package/lib/components/VThemeProvider/{index.d.ts → index.d.mts} +80 -20
- package/lib/components/VTimeline/{index.d.ts → index.d.mts} +201 -62
- package/lib/components/VToolbar/{index.d.ts → index.d.mts} +325 -73
- package/lib/components/VTooltip/{index.d.ts → index.d.mts} +568 -297
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.d.mts +634 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.mts +229 -0
- package/lib/components/VWindow/{index.d.ts → index.d.mts} +271 -68
- package/lib/components/{index.d.ts → index.d.mts} +27847 -14031
- package/lib/components/index.mjs +2 -3
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/{index.d.ts → index.d.mts} +1330 -355
- package/lib/composables/display.mjs +6 -6
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/filter.mjs +5 -4
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/form.mjs +2 -3
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/group.mjs +13 -13
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/{items.mjs → list-items.mjs} +9 -6
- package/lib/composables/list-items.mjs.map +1 -0
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/scroll.mjs +2 -2
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/validation.mjs +44 -16
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/{index.d.ts → index.d.mts} +16 -10
- package/lib/labs/VBottomSheet/VBottomSheet.css +33 -0
- package/lib/labs/VBottomSheet/VBottomSheet.mjs +40 -0
- package/lib/labs/VBottomSheet/VBottomSheet.mjs.map +1 -0
- package/lib/labs/VBottomSheet/VBottomSheet.sass +37 -0
- package/lib/labs/VBottomSheet/_variables.scss +5 -0
- package/lib/labs/VBottomSheet/index.d.mts +871 -0
- package/lib/labs/VBottomSheet/index.mjs +2 -0
- package/lib/labs/VBottomSheet/index.mjs.map +1 -0
- package/lib/labs/VDataIterator/VDataIterator.mjs +160 -0
- package/lib/labs/VDataIterator/VDataIterator.mjs.map +1 -0
- package/lib/labs/VDataIterator/composables/items.mjs +37 -0
- package/lib/labs/VDataIterator/composables/items.mjs.map +1 -0
- package/lib/labs/VDataIterator/index.d.mts +704 -0
- package/lib/labs/VDataIterator/index.mjs +2 -0
- package/lib/labs/VDataIterator/index.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTable.mjs +58 -20
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +17 -10
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +50 -14
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +50 -13
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/group.mjs +8 -6
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/headers.mjs +2 -3
- package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/items.mjs +31 -32
- package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +14 -2
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +3 -3
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +17 -17
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.mts +9681 -0
- package/lib/labs/VDataTable/index.mjs +1 -1
- package/lib/labs/VDataTable/index.mjs.map +1 -1
- package/lib/labs/VDataTable/types.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/{index.d.ts → index.d.mts} +161 -54
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/{index.d.ts → index.d.mts} +92 -31
- package/lib/labs/components.d.mts +11806 -0
- package/lib/labs/components.mjs +2 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/labs/date/date.mjs.map +1 -1
- package/lib/labs/date/index.d.mts +70 -0
- package/lib/labs/date/index.mjs +1 -1
- package/lib/labs/date/index.mjs.map +1 -1
- package/lib/styles/settings/_variables.scss +3 -3
- package/lib/util/colorUtils.mjs +68 -3
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/console.mjs +12 -81
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +4 -18
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/propsFactory.mjs +2 -0
- package/lib/util/propsFactory.mjs.map +1 -1
- package/package.json +13 -9
- package/lib/components/VAutocomplete/index.d.ts +0 -2050
- package/lib/components/VBottomSheet/VBottomSheet.mjs +0 -29
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +0 -1
- package/lib/components/VBottomSheet/VBottomSheet.sass +0 -23
- package/lib/components/VBottomSheet/_variables.scss +0 -3
- package/lib/components/VBottomSheet/index.mjs +0 -4
- package/lib/components/VBottomSheet/index.mjs.map +0 -1
- package/lib/components/VChipGroup/index.d.ts +0 -280
- package/lib/components/VCombobox/index.d.ts +0 -2086
- package/lib/components/VData/VData.mjs +0 -374
- package/lib/components/VData/VData.mjs.map +0 -1
- package/lib/components/VData/index.mjs +0 -4
- package/lib/components/VData/index.mjs.map +0 -1
- package/lib/components/VDataIterator/VDataFooter.mjs +0 -194
- package/lib/components/VDataIterator/VDataFooter.mjs.map +0 -1
- package/lib/components/VDataIterator/VDataFooter.sass +0 -71
- package/lib/components/VDataIterator/VDataIterator.mjs +0 -316
- package/lib/components/VDataIterator/VDataIterator.mjs.map +0 -1
- package/lib/components/VDataIterator/_variables.scss +0 -13
- package/lib/components/VDataIterator/index.mjs +0 -10
- package/lib/components/VDataIterator/index.mjs.map +0 -1
- package/lib/components/VField/index.d.ts +0 -563
- package/lib/components/VForm/index.d.ts +0 -284
- package/lib/components/VItemGroup/index.d.ts +0 -396
- package/lib/components/VSelect/index.d.ts +0 -1981
- package/lib/components/VSelectionControl/index.d.ts +0 -387
- package/lib/components/VTextField/index.d.ts +0 -2061
- package/lib/components/VValidation/index.d.ts +0 -243
- package/lib/components/VVirtualScroll/index.d.ts +0 -197
- package/lib/composables/items.mjs.map +0 -1
- package/lib/labs/VDataTable/index.d.ts +0 -5415
- package/lib/labs/components.d.ts +0 -5945
- package/lib/labs/date/index.d.ts +0 -38
- /package/lib/components/VNoSsr/{index.d.ts → index.d.mts} +0 -0
- /package/lib/directives/{index.d.ts → index.d.mts} +0 -0
- /package/lib/iconsets/{fa-svg.d.ts → fa-svg.d.mts} +0 -0
- /package/lib/iconsets/{fa.d.ts → fa.d.mts} +0 -0
- /package/lib/iconsets/{fa4.d.ts → fa4.d.mts} +0 -0
- /package/lib/iconsets/{md.d.ts → md.d.mts} +0 -0
- /package/lib/iconsets/{mdi-svg.d.ts → mdi-svg.d.mts} +0 -0
- /package/lib/iconsets/{mdi.d.ts → mdi.d.mts} +0 -0
- /package/lib/labs/date/adapters/{vuetify.d.ts → vuetify.d.mts} +0 -0
- /package/lib/locale/adapters/{vue-i18n.d.ts → vue-i18n.d.mts} +0 -0
- /package/lib/locale/adapters/{vuetify.d.ts → vuetify.d.mts} +0 -0
- /package/lib/locale/{index.d.ts → index.d.mts} +0 -0
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from "vue";
|
|
1
|
+
import { withDirectives as _withDirectives, mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from "vue";
|
|
2
2
|
import "./VImg.css";
|
|
3
3
|
|
|
4
4
|
// Components
|
|
5
|
-
import { VResponsive } from "../VResponsive/
|
|
5
|
+
import { makeVResponsiveProps, VResponsive } from "../VResponsive/VResponsive.mjs"; // Directives
|
|
6
6
|
import intersect from "../../directives/intersect/index.mjs"; // Composables
|
|
7
7
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
8
8
|
import { makeTransitionProps, MaybeTransition } from "../../composables/transition.mjs"; // Utilities
|
|
9
9
|
import { computed, nextTick, onBeforeMount, ref, shallowRef, vShow, watch, withDirectives } from 'vue';
|
|
10
|
-
import {
|
|
10
|
+
import { genericComponent, propsFactory, SUPPORTS_INTERSECTION, useRender } from "../../util/index.mjs"; // Types
|
|
11
11
|
export const makeVImgProps = propsFactory({
|
|
12
|
-
aspectRatio: [String, Number],
|
|
13
12
|
alt: String,
|
|
14
13
|
cover: Boolean,
|
|
15
14
|
eager: Boolean,
|
|
@@ -31,7 +30,7 @@ export const makeVImgProps = propsFactory({
|
|
|
31
30
|
default: ''
|
|
32
31
|
},
|
|
33
32
|
srcset: String,
|
|
34
|
-
|
|
33
|
+
...makeVResponsiveProps(),
|
|
35
34
|
...makeComponentProps(),
|
|
36
35
|
...makeTransitionProps()
|
|
37
36
|
}, 'v-img');
|
|
@@ -223,25 +222,27 @@ export const VImg = genericComponent()({
|
|
|
223
222
|
}
|
|
224
223
|
});
|
|
225
224
|
}
|
|
226
|
-
useRender(() =>
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
225
|
+
useRender(() => {
|
|
226
|
+
const [responsiveProps] = VResponsive.filterProps(props);
|
|
227
|
+
return _withDirectives(_createVNode(VResponsive, _mergeProps({
|
|
228
|
+
"class": ['v-img', {
|
|
229
|
+
'v-img--booting': !isBooted.value
|
|
230
|
+
}, props.class],
|
|
231
|
+
"style": props.style
|
|
232
|
+
}, responsiveProps, {
|
|
233
|
+
"aspectRatio": aspectRatio.value,
|
|
234
|
+
"aria-label": props.alt,
|
|
235
|
+
"role": props.alt ? 'img' : undefined
|
|
236
|
+
}), {
|
|
237
|
+
additional: () => _createVNode(_Fragment, null, [_createVNode(__image, null, null), _createVNode(__preloadImage, null, null), _createVNode(__gradient, null, null), _createVNode(__placeholder, null, null), _createVNode(__error, null, null)]),
|
|
238
|
+
default: slots.default
|
|
239
|
+
}), [[_resolveDirective("intersect"), {
|
|
240
|
+
handler: init,
|
|
241
|
+
options: props.options
|
|
242
|
+
}, null, {
|
|
243
|
+
once: true
|
|
244
|
+
}]]);
|
|
245
|
+
});
|
|
245
246
|
return {
|
|
246
247
|
currentSrc,
|
|
247
248
|
image,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VImg.mjs","names":["VResponsive","intersect","makeComponentProps","makeTransitionProps","MaybeTransition","computed","nextTick","onBeforeMount","ref","shallowRef","vShow","watch","withDirectives","convertToUnit","genericComponent","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","aspectRatio","String","Number","alt","cover","Boolean","eager","gradient","lazySrc","options","type","Object","default","root","undefined","rootMargin","threshold","sizes","src","srcset","width","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","setTimeout","endsWith","startsWith","containClasses","__image","_createVNode","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","_withDirectives","class","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["import './VImg.sass'\n\n// Components\nimport { VResponsive } from '@/components/VResponsive'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: []\n placeholder: []\n error: []\n sources: []\n}\n\nexport const makeVImgProps = propsFactory({\n aspectRatio: [String, Number],\n alt: String,\n cover: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n srcset: String,\n width: [String, Number],\n\n ...makeComponentProps(),\n ...makeTransitionProps(),\n}, 'v-img')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n props.style,\n ]}\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n ))\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VImg.mjs","names":["makeVResponsiveProps","VResponsive","intersect","makeComponentProps","makeTransitionProps","MaybeTransition","computed","nextTick","onBeforeMount","ref","shallowRef","vShow","watch","withDirectives","genericComponent","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","alt","String","cover","Boolean","eager","gradient","lazySrc","options","type","Object","default","root","undefined","rootMargin","threshold","sizes","src","srcset","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","setTimeout","endsWith","startsWith","containClasses","__image","_createVNode","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["import './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n genericComponent,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: []\n placeholder: []\n error: []\n sources: []\n}\n\nexport const makeVImgProps = propsFactory({\n alt: String,\n cover: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n srcset: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeTransitionProps(),\n}, 'v-img')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const [responsiveProps] = VResponsive.filterProps(props)\n return (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n props.class,\n ]}\n style={ props.style }\n { ...responsiveProps }\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
|
|
@@ -15,56 +15,98 @@ declare const VImg: {
|
|
|
15
15
|
new (...args: any[]): {
|
|
16
16
|
$: vue.ComponentInternalInstance;
|
|
17
17
|
$data: {};
|
|
18
|
-
$props:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
style: vue.StyleValue;
|
|
23
|
-
eager: boolean;
|
|
24
|
-
options: IntersectionObserverInit;
|
|
25
|
-
cover: boolean;
|
|
26
|
-
src: string | srcObject;
|
|
27
|
-
}> & Omit<{
|
|
28
|
-
transition: string | boolean | (vue.TransitionProps & {
|
|
18
|
+
$props: {
|
|
19
|
+
inline?: boolean | undefined;
|
|
20
|
+
transition?: string | boolean | (vue.TransitionProps & {
|
|
29
21
|
component?: vue.Component | undefined;
|
|
30
|
-
});
|
|
31
|
-
style
|
|
32
|
-
eager
|
|
33
|
-
options
|
|
34
|
-
cover
|
|
35
|
-
src
|
|
36
|
-
|
|
22
|
+
}) | undefined;
|
|
23
|
+
style?: vue.StyleValue | undefined;
|
|
24
|
+
eager?: boolean | undefined;
|
|
25
|
+
options?: IntersectionObserverInit | undefined;
|
|
26
|
+
cover?: boolean | undefined;
|
|
27
|
+
src?: string | srcObject | undefined;
|
|
28
|
+
key?: string | number | symbol | undefined;
|
|
29
|
+
height?: string | number | undefined;
|
|
37
30
|
width?: string | number | undefined;
|
|
38
31
|
aspectRatio?: string | number | undefined;
|
|
32
|
+
maxHeight?: string | number | undefined;
|
|
33
|
+
maxWidth?: string | number | undefined;
|
|
34
|
+
minHeight?: string | number | undefined;
|
|
35
|
+
minWidth?: string | number | undefined;
|
|
39
36
|
class?: any;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
gradient?: string | undefined;
|
|
44
|
-
lazySrc?: string | undefined;
|
|
45
|
-
} & {
|
|
37
|
+
onError?: ((value: string | undefined) => any) | undefined;
|
|
38
|
+
onLoad?: ((value: string | undefined) => any) | undefined;
|
|
39
|
+
onLoadstart?: ((value: string | undefined) => any) | undefined;
|
|
46
40
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
47
41
|
default?: (() => vue.VNodeChild) | undefined;
|
|
48
42
|
placeholder?: (() => vue.VNodeChild) | undefined;
|
|
49
43
|
error?: (() => vue.VNodeChild) | undefined;
|
|
50
44
|
sources?: (() => vue.VNodeChild) | undefined;
|
|
51
45
|
};
|
|
46
|
+
alt?: string | undefined;
|
|
47
|
+
sizes?: string | undefined;
|
|
48
|
+
srcset?: string | undefined;
|
|
49
|
+
ref?: vue.VNodeRef | undefined;
|
|
50
|
+
ref_for?: boolean | undefined;
|
|
51
|
+
ref_key?: string | undefined;
|
|
52
|
+
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
52
53
|
'v-slots'?: {
|
|
53
54
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
54
55
|
placeholder?: false | (() => vue.VNodeChild) | undefined;
|
|
55
56
|
error?: false | (() => vue.VNodeChild) | undefined;
|
|
56
57
|
sources?: false | (() => vue.VNodeChild) | undefined;
|
|
57
58
|
} | undefined;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
contentClass?: string | undefined;
|
|
60
|
+
gradient?: string | undefined;
|
|
61
|
+
lazySrc?: string | undefined;
|
|
61
62
|
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
|
|
62
63
|
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
|
|
65
|
+
$slots?: {
|
|
66
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
67
|
+
placeholder?: (() => vue.VNodeChild) | undefined;
|
|
68
|
+
error?: (() => vue.VNodeChild) | undefined;
|
|
69
|
+
sources?: (() => vue.VNodeChild) | undefined;
|
|
70
|
+
} | undefined;
|
|
71
|
+
onVnodeBeforeMount?: ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
72
|
+
[key: string]: any;
|
|
73
|
+
}>) => void) | ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
74
|
+
[key: string]: any;
|
|
75
|
+
}>) => void)[] | undefined;
|
|
76
|
+
onVnodeMounted?: ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
77
|
+
[key: string]: any;
|
|
78
|
+
}>) => void) | ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
79
|
+
[key: string]: any;
|
|
80
|
+
}>) => void)[] | undefined;
|
|
81
|
+
onVnodeBeforeUpdate?: ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
82
|
+
[key: string]: any;
|
|
83
|
+
}>, oldVNode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
84
|
+
[key: string]: any;
|
|
85
|
+
}>) => void) | ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
86
|
+
[key: string]: any;
|
|
87
|
+
}>, oldVNode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
88
|
+
[key: string]: any;
|
|
89
|
+
}>) => void)[] | undefined;
|
|
90
|
+
onVnodeUpdated?: ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
91
|
+
[key: string]: any;
|
|
92
|
+
}>, oldVNode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
93
|
+
[key: string]: any;
|
|
94
|
+
}>) => void) | ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
95
|
+
[key: string]: any;
|
|
96
|
+
}>, oldVNode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
97
|
+
[key: string]: any;
|
|
98
|
+
}>) => void)[] | undefined;
|
|
99
|
+
onVnodeBeforeUnmount?: ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
100
|
+
[key: string]: any;
|
|
101
|
+
}>) => void) | ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
102
|
+
[key: string]: any;
|
|
103
|
+
}>) => void)[] | undefined;
|
|
104
|
+
onVnodeUnmounted?: ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
105
|
+
[key: string]: any;
|
|
106
|
+
}>) => void) | ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
107
|
+
[key: string]: any;
|
|
108
|
+
}>) => void)[] | undefined;
|
|
109
|
+
};
|
|
68
110
|
$attrs: {
|
|
69
111
|
[x: string]: unknown;
|
|
70
112
|
};
|
|
@@ -72,13 +114,25 @@ declare const VImg: {
|
|
|
72
114
|
[x: string]: unknown;
|
|
73
115
|
};
|
|
74
116
|
$slots: Readonly<{
|
|
75
|
-
|
|
117
|
+
default?: (() => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
118
|
+
[key: string]: any;
|
|
119
|
+
}>[]) | undefined;
|
|
120
|
+
placeholder?: (() => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
121
|
+
[key: string]: any;
|
|
122
|
+
}>[]) | undefined;
|
|
123
|
+
error?: (() => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
124
|
+
[key: string]: any;
|
|
125
|
+
}>[]) | undefined;
|
|
126
|
+
sources?: (() => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
127
|
+
[key: string]: any;
|
|
128
|
+
}>[]) | undefined;
|
|
76
129
|
}>;
|
|
77
|
-
$root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
|
|
78
|
-
$parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
|
|
130
|
+
$root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
|
|
131
|
+
$parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
|
|
79
132
|
$emit: ((event: "error", value: string | undefined) => void) & ((event: "load", value: string | undefined) => void) & ((event: "loadstart", value: string | undefined) => void);
|
|
80
133
|
$el: any;
|
|
81
134
|
$options: vue.ComponentOptionsBase<{
|
|
135
|
+
inline: boolean;
|
|
82
136
|
transition: string | boolean | (vue.TransitionProps & {
|
|
83
137
|
component?: vue.Component | undefined;
|
|
84
138
|
});
|
|
@@ -88,12 +142,18 @@ declare const VImg: {
|
|
|
88
142
|
cover: boolean;
|
|
89
143
|
src: string | srcObject;
|
|
90
144
|
} & {
|
|
145
|
+
height?: string | number | undefined;
|
|
91
146
|
width?: string | number | undefined;
|
|
92
147
|
aspectRatio?: string | number | undefined;
|
|
148
|
+
maxHeight?: string | number | undefined;
|
|
149
|
+
maxWidth?: string | number | undefined;
|
|
150
|
+
minHeight?: string | number | undefined;
|
|
151
|
+
minWidth?: string | number | undefined;
|
|
93
152
|
class?: any;
|
|
94
153
|
alt?: string | undefined;
|
|
95
154
|
sizes?: string | undefined;
|
|
96
155
|
srcset?: string | undefined;
|
|
156
|
+
contentClass?: string | undefined;
|
|
97
157
|
gradient?: string | undefined;
|
|
98
158
|
lazySrc?: string | undefined;
|
|
99
159
|
} & {
|
|
@@ -114,6 +174,13 @@ declare const VImg: {
|
|
|
114
174
|
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
|
|
115
175
|
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
|
|
116
176
|
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
|
|
177
|
+
} & {
|
|
178
|
+
$slots?: {
|
|
179
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
180
|
+
placeholder?: (() => vue.VNodeChild) | undefined;
|
|
181
|
+
error?: (() => vue.VNodeChild) | undefined;
|
|
182
|
+
sources?: (() => vue.VNodeChild) | undefined;
|
|
183
|
+
} | undefined;
|
|
117
184
|
} & {
|
|
118
185
|
onError?: ((value: string | undefined) => any) | undefined;
|
|
119
186
|
onLoad?: ((value: string | undefined) => any) | undefined;
|
|
@@ -129,6 +196,7 @@ declare const VImg: {
|
|
|
129
196
|
load: (value: string | undefined) => true;
|
|
130
197
|
error: (value: string | undefined) => true;
|
|
131
198
|
}, string, {
|
|
199
|
+
inline: boolean;
|
|
132
200
|
transition: string | boolean | (vue.TransitionProps & {
|
|
133
201
|
component?: vue.Component | undefined;
|
|
134
202
|
});
|
|
@@ -137,7 +205,20 @@ declare const VImg: {
|
|
|
137
205
|
options: IntersectionObserverInit;
|
|
138
206
|
cover: boolean;
|
|
139
207
|
src: string | srcObject;
|
|
140
|
-
}, {}, string
|
|
208
|
+
}, {}, string, vue.SlotsType<Partial<{
|
|
209
|
+
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
210
|
+
[key: string]: any;
|
|
211
|
+
}>[];
|
|
212
|
+
placeholder: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
213
|
+
[key: string]: any;
|
|
214
|
+
}>[];
|
|
215
|
+
error: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
216
|
+
[key: string]: any;
|
|
217
|
+
}>[];
|
|
218
|
+
sources: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
219
|
+
[key: string]: any;
|
|
220
|
+
}>[];
|
|
221
|
+
}>>> & {
|
|
141
222
|
beforeCreate?: ((() => void) | (() => void)[]) | undefined;
|
|
142
223
|
created?: ((() => void) | (() => void)[]) | undefined;
|
|
143
224
|
beforeMount?: ((() => void) | (() => void)[]) | undefined;
|
|
@@ -152,12 +233,13 @@ declare const VImg: {
|
|
|
152
233
|
unmounted?: ((() => void) | (() => void)[]) | undefined;
|
|
153
234
|
renderTracked?: (((e: vue.DebuggerEvent) => void) | ((e: vue.DebuggerEvent) => void)[]) | undefined;
|
|
154
235
|
renderTriggered?: (((e: vue.DebuggerEvent) => void) | ((e: vue.DebuggerEvent) => void)[]) | undefined;
|
|
155
|
-
errorCaptured?: (((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void)[]) | undefined;
|
|
236
|
+
errorCaptured?: (((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void)[]) | undefined;
|
|
156
237
|
};
|
|
157
238
|
$forceUpdate: () => void;
|
|
158
239
|
$nextTick: typeof nextTick;
|
|
159
240
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: vue.WatchOptions<boolean> | undefined): vue.WatchStopHandle;
|
|
160
241
|
} & {
|
|
242
|
+
inline: boolean;
|
|
161
243
|
transition: string | boolean | (vue.TransitionProps & {
|
|
162
244
|
component?: vue.Component | undefined;
|
|
163
245
|
});
|
|
@@ -167,12 +249,18 @@ declare const VImg: {
|
|
|
167
249
|
cover: boolean;
|
|
168
250
|
src: string | srcObject;
|
|
169
251
|
} & {
|
|
252
|
+
height?: string | number | undefined;
|
|
170
253
|
width?: string | number | undefined;
|
|
171
254
|
aspectRatio?: string | number | undefined;
|
|
255
|
+
maxHeight?: string | number | undefined;
|
|
256
|
+
maxWidth?: string | number | undefined;
|
|
257
|
+
minHeight?: string | number | undefined;
|
|
258
|
+
minWidth?: string | number | undefined;
|
|
172
259
|
class?: any;
|
|
173
260
|
alt?: string | undefined;
|
|
174
261
|
sizes?: string | undefined;
|
|
175
262
|
srcset?: string | undefined;
|
|
263
|
+
contentClass?: string | undefined;
|
|
176
264
|
gradient?: string | undefined;
|
|
177
265
|
lazySrc?: string | undefined;
|
|
178
266
|
} & {
|
|
@@ -193,6 +281,13 @@ declare const VImg: {
|
|
|
193
281
|
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
|
|
194
282
|
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
|
|
195
283
|
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
|
|
284
|
+
} & {
|
|
285
|
+
$slots?: {
|
|
286
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
287
|
+
placeholder?: (() => vue.VNodeChild) | undefined;
|
|
288
|
+
error?: (() => vue.VNodeChild) | undefined;
|
|
289
|
+
sources?: (() => vue.VNodeChild) | undefined;
|
|
290
|
+
} | undefined;
|
|
196
291
|
} & {
|
|
197
292
|
onError?: ((value: string | undefined) => any) | undefined;
|
|
198
293
|
onLoad?: ((value: string | undefined) => any) | undefined;
|
|
@@ -208,6 +303,7 @@ declare const VImg: {
|
|
|
208
303
|
__isTeleport?: undefined;
|
|
209
304
|
__isSuspense?: undefined;
|
|
210
305
|
} & vue.ComponentOptionsBase<{
|
|
306
|
+
inline: boolean;
|
|
211
307
|
transition: string | boolean | (vue.TransitionProps & {
|
|
212
308
|
component?: vue.Component | undefined;
|
|
213
309
|
});
|
|
@@ -217,12 +313,18 @@ declare const VImg: {
|
|
|
217
313
|
cover: boolean;
|
|
218
314
|
src: string | srcObject;
|
|
219
315
|
} & {
|
|
316
|
+
height?: string | number | undefined;
|
|
220
317
|
width?: string | number | undefined;
|
|
221
318
|
aspectRatio?: string | number | undefined;
|
|
319
|
+
maxHeight?: string | number | undefined;
|
|
320
|
+
maxWidth?: string | number | undefined;
|
|
321
|
+
minHeight?: string | number | undefined;
|
|
322
|
+
minWidth?: string | number | undefined;
|
|
222
323
|
class?: any;
|
|
223
324
|
alt?: string | undefined;
|
|
224
325
|
sizes?: string | undefined;
|
|
225
326
|
srcset?: string | undefined;
|
|
327
|
+
contentClass?: string | undefined;
|
|
226
328
|
gradient?: string | undefined;
|
|
227
329
|
lazySrc?: string | undefined;
|
|
228
330
|
} & {
|
|
@@ -243,6 +345,13 @@ declare const VImg: {
|
|
|
243
345
|
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
|
|
244
346
|
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
|
|
245
347
|
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
|
|
348
|
+
} & {
|
|
349
|
+
$slots?: {
|
|
350
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
351
|
+
placeholder?: (() => vue.VNodeChild) | undefined;
|
|
352
|
+
error?: (() => vue.VNodeChild) | undefined;
|
|
353
|
+
sources?: (() => vue.VNodeChild) | undefined;
|
|
354
|
+
} | undefined;
|
|
246
355
|
} & {
|
|
247
356
|
onError?: ((value: string | undefined) => any) | undefined;
|
|
248
357
|
onLoad?: ((value: string | undefined) => any) | undefined;
|
|
@@ -258,6 +367,7 @@ declare const VImg: {
|
|
|
258
367
|
load: (value: string | undefined) => true;
|
|
259
368
|
error: (value: string | undefined) => true;
|
|
260
369
|
}, string, {
|
|
370
|
+
inline: boolean;
|
|
261
371
|
transition: string | boolean | (vue.TransitionProps & {
|
|
262
372
|
component?: vue.Component | undefined;
|
|
263
373
|
});
|
|
@@ -266,7 +376,20 @@ declare const VImg: {
|
|
|
266
376
|
options: IntersectionObserverInit;
|
|
267
377
|
cover: boolean;
|
|
268
378
|
src: string | srcObject;
|
|
269
|
-
}, {}, string
|
|
379
|
+
}, {}, string, vue.SlotsType<Partial<{
|
|
380
|
+
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
381
|
+
[key: string]: any;
|
|
382
|
+
}>[];
|
|
383
|
+
placeholder: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
384
|
+
[key: string]: any;
|
|
385
|
+
}>[];
|
|
386
|
+
error: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
387
|
+
[key: string]: any;
|
|
388
|
+
}>[];
|
|
389
|
+
sources: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
390
|
+
[key: string]: any;
|
|
391
|
+
}>[];
|
|
392
|
+
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
270
393
|
transition: {
|
|
271
394
|
type: PropType<string | boolean | (vue.TransitionProps & {
|
|
272
395
|
component?: vue.Component | undefined;
|
|
@@ -279,7 +402,15 @@ declare const VImg: {
|
|
|
279
402
|
type: PropType<vue.StyleValue>;
|
|
280
403
|
default: null;
|
|
281
404
|
};
|
|
405
|
+
height: (StringConstructor | NumberConstructor)[];
|
|
406
|
+
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
407
|
+
maxWidth: (StringConstructor | NumberConstructor)[];
|
|
408
|
+
minHeight: (StringConstructor | NumberConstructor)[];
|
|
409
|
+
minWidth: (StringConstructor | NumberConstructor)[];
|
|
410
|
+
width: (StringConstructor | NumberConstructor)[];
|
|
282
411
|
aspectRatio: (StringConstructor | NumberConstructor)[];
|
|
412
|
+
contentClass: StringConstructor;
|
|
413
|
+
inline: BooleanConstructor;
|
|
283
414
|
alt: StringConstructor;
|
|
284
415
|
cover: BooleanConstructor;
|
|
285
416
|
eager: BooleanConstructor;
|
|
@@ -299,7 +430,6 @@ declare const VImg: {
|
|
|
299
430
|
default: string;
|
|
300
431
|
};
|
|
301
432
|
srcset: StringConstructor;
|
|
302
|
-
width: (StringConstructor | NumberConstructor)[];
|
|
303
433
|
}, vue.ExtractPropTypes<{
|
|
304
434
|
transition: {
|
|
305
435
|
type: PropType<string | boolean | (vue.TransitionProps & {
|
|
@@ -313,7 +443,15 @@ declare const VImg: {
|
|
|
313
443
|
type: PropType<vue.StyleValue>;
|
|
314
444
|
default: null;
|
|
315
445
|
};
|
|
446
|
+
height: (StringConstructor | NumberConstructor)[];
|
|
447
|
+
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
448
|
+
maxWidth: (StringConstructor | NumberConstructor)[];
|
|
449
|
+
minHeight: (StringConstructor | NumberConstructor)[];
|
|
450
|
+
minWidth: (StringConstructor | NumberConstructor)[];
|
|
451
|
+
width: (StringConstructor | NumberConstructor)[];
|
|
316
452
|
aspectRatio: (StringConstructor | NumberConstructor)[];
|
|
453
|
+
contentClass: StringConstructor;
|
|
454
|
+
inline: BooleanConstructor;
|
|
317
455
|
alt: StringConstructor;
|
|
318
456
|
cover: BooleanConstructor;
|
|
319
457
|
eager: BooleanConstructor;
|
|
@@ -333,7 +471,6 @@ declare const VImg: {
|
|
|
333
471
|
default: string;
|
|
334
472
|
};
|
|
335
473
|
srcset: StringConstructor;
|
|
336
|
-
width: (StringConstructor | NumberConstructor)[];
|
|
337
474
|
}>>;
|
|
338
475
|
type VImg = InstanceType<typeof VImg>;
|
|
339
476
|
|
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
flex: 1 1 auto;
|
|
4
4
|
font-size: 1rem;
|
|
5
5
|
font-weight: 400;
|
|
6
|
-
line-height: 1.
|
|
6
|
+
line-height: 1.625;
|
|
7
7
|
}
|
|
8
8
|
.v-input--disabled {
|
|
9
9
|
pointer-events: none;
|
|
10
10
|
}
|
|
11
11
|
.v-input--density-default {
|
|
12
12
|
--v-input-control-height: 56px;
|
|
13
|
-
--v-input-padding-top:
|
|
13
|
+
--v-input-padding-top: 15px;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
.v-input--density-comfortable {
|
|
17
17
|
--v-input-control-height: 48px;
|
|
18
|
-
--v-input-padding-top:
|
|
18
|
+
--v-input-padding-top: 11px;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.v-input--density-compact {
|
|
22
22
|
--v-input-control-height: 40px;
|
|
23
|
-
--v-input-padding-top:
|
|
23
|
+
--v-input-padding-top: 7px;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
.v-input--vertical {
|
|
@@ -96,8 +96,14 @@
|
|
|
96
96
|
.v-input__prepend,
|
|
97
97
|
.v-input__append {
|
|
98
98
|
display: flex;
|
|
99
|
+
align-items: flex-start;
|
|
99
100
|
padding-top: var(--v-input-padding-top);
|
|
100
101
|
}
|
|
102
|
+
.v-input--center-affix .v-input__prepend,
|
|
103
|
+
.v-input--center-affix .v-input__append {
|
|
104
|
+
align-items: center;
|
|
105
|
+
padding-top: 0;
|
|
106
|
+
}
|
|
101
107
|
|
|
102
108
|
.v-input__prepend {
|
|
103
109
|
grid-area: prepend;
|
|
@@ -3,7 +3,7 @@ import { resolveDirective as _resolveDirective, createVNode as _createVNode } fr
|
|
|
3
3
|
import "./VInput.css";
|
|
4
4
|
|
|
5
5
|
// Components
|
|
6
|
-
import { VMessages } from "../VMessages/
|
|
6
|
+
import { VMessages } from "../VMessages/VMessages.mjs"; // Composables
|
|
7
7
|
import { IconValue } from "../../composables/icons.mjs";
|
|
8
8
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
9
9
|
import { makeDensityProps, useDensity } from "../../composables/density.mjs";
|
|
@@ -14,6 +14,10 @@ import { useInputIcon } from "./InputIcon.mjs";
|
|
|
14
14
|
export const makeVInputProps = propsFactory({
|
|
15
15
|
id: String,
|
|
16
16
|
appendIcon: IconValue,
|
|
17
|
+
centerAffix: {
|
|
18
|
+
type: Boolean,
|
|
19
|
+
default: true
|
|
20
|
+
},
|
|
17
21
|
prependIcon: IconValue,
|
|
18
22
|
hideDetails: [Boolean, String],
|
|
19
23
|
hint: String,
|
|
@@ -83,7 +87,7 @@ export const VInput = genericComponent()({
|
|
|
83
87
|
validate
|
|
84
88
|
}));
|
|
85
89
|
const messages = computed(() => {
|
|
86
|
-
if (errorMessages.value.length > 0) {
|
|
90
|
+
if (!isPristine.value && errorMessages.value.length > 0) {
|
|
87
91
|
return errorMessages.value;
|
|
88
92
|
} else if (props.hint && (props.persistentHint || props.focused)) {
|
|
89
93
|
return props.hint;
|
|
@@ -97,7 +101,9 @@ export const VInput = genericComponent()({
|
|
|
97
101
|
const hasMessages = messages.value.length > 0;
|
|
98
102
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
|
99
103
|
return _createVNode("div", {
|
|
100
|
-
"class": ['v-input', `v-input--${props.direction}`,
|
|
104
|
+
"class": ['v-input', `v-input--${props.direction}`, {
|
|
105
|
+
'v-input--center-affix': props.centerAffix
|
|
106
|
+
}, densityClasses.value, validationClasses.value, props.class],
|
|
101
107
|
"style": props.style
|
|
102
108
|
}, [hasPrepend && _createVNode("div", {
|
|
103
109
|
"key": "prepend",
|