vuetify 3.8.1 → 3.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +2066 -2066
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +164 -164
- package/dist/json/web-types.json +4116 -3862
- package/dist/vuetify-labs.cjs +784 -697
- package/dist/vuetify-labs.css +3174 -3162
- package/dist/vuetify-labs.d.ts +2103 -1144
- package/dist/vuetify-labs.esm.js +785 -698
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +784 -697
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +565 -590
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2963 -2960
- package/dist/vuetify.d.ts +190 -169
- package/dist/vuetify.esm.js +566 -591
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +565 -590
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1264 -1235
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/md3.js +18 -5
- package/lib/blueprints/md3.js.map +1 -1
- package/lib/components/VAlert/VAlert.js +8 -9
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.js +4 -4
- package/lib/components/VAppBar/VAppBar.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +1 -2
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.js +2 -3
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBanner/VBanner.js +3 -3
- package/lib/components/VBanner/VBanner.js.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.js +8 -8
- package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js +6 -6
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +1 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
- package/lib/components/VBtn/VBtn.js +3 -3
- package/lib/components/VBtn/VBtn.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VCard/VCard.js +7 -8
- package/lib/components/VCard/VCard.js.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.js +2 -3
- package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.js +3 -3
- package/lib/components/VCheckbox/VCheckboxBtn.js.map +1 -1
- package/lib/components/VChip/VChip.js +8 -9
- package/lib/components/VChip/VChip.js.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.js +5 -5
- package/lib/components/VChipGroup/VChipGroup.js.map +1 -1
- package/lib/components/VCode/VCode.css +3 -0
- package/lib/components/VCode/VCode.sass +3 -0
- package/lib/components/VCombobox/VCombobox.js +3 -4
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VCounter/VCounter.js +2 -2
- package/lib/components/VCounter/VCounter.js.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.js +2 -2
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.css +1 -1
- package/lib/components/VDataTable/VDataTable.js +7 -7
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.sass +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.js +7 -7
- package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDataTable/composables/expand.d.ts +1 -1
- package/lib/components/VDataTable/composables/expand.js +1 -1
- package/lib/components/VDataTable/composables/expand.js.map +1 -1
- package/lib/components/VDataTable/composables/options.js +8 -8
- package/lib/components/VDataTable/composables/options.js.map +1 -1
- package/lib/components/VDataTable/composables/select.d.ts +2 -2
- package/lib/components/VDataTable/composables/select.js +2 -2
- package/lib/components/VDataTable/composables/select.js.map +1 -1
- package/lib/components/VDataTable/composables/sort.d.ts +2 -2
- package/lib/components/VDataTable/composables/sort.js +2 -2
- package/lib/components/VDataTable/composables/sort.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
- package/lib/components/VDatePicker/VDatePicker.js +4 -4
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
- package/lib/components/VDatePicker/VDatePickerMonth.js +2 -2
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDialog/VDialog.d.ts +9 -9
- package/lib/components/VDivider/VDivider.js +2 -2
- package/lib/components/VDivider/VDivider.js.map +1 -1
- package/lib/components/VEmptyState/VEmptyState.js +1 -2
- package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.js +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.js +14 -14
- package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
- package/lib/components/VFab/VFab.js +2 -2
- package/lib/components/VFab/VFab.js.map +1 -1
- package/lib/components/VField/VField.js +5 -5
- package/lib/components/VField/VField.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +2 -2
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VFooter/VFooter.js +4 -4
- package/lib/components/VFooter/VFooter.js.map +1 -1
- package/lib/components/VForm/VForm.d.ts +40 -40
- package/lib/components/VIcon/VIcon.js +4 -4
- package/lib/components/VIcon/VIcon.js.map +1 -1
- package/lib/components/VImg/VImg.js +2 -2
- package/lib/components/VImg/VImg.js.map +1 -1
- package/lib/components/VInput/VInput.js +3 -3
- package/lib/components/VInput/VInput.js.map +1 -1
- package/lib/components/VLayout/VLayoutItem.js +5 -5
- package/lib/components/VLayout/VLayoutItem.js.map +1 -1
- package/lib/components/VList/VList.js +14 -14
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListGroup.js +2 -2
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VList/VListItem.d.ts +3 -3
- package/lib/components/VList/VListItem.js +6 -6
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/VListSubheader.js +1 -2
- package/lib/components/VList/VListSubheader.js.map +1 -1
- package/lib/components/VMenu/VMenu.d.ts +15 -15
- package/lib/components/VMenu/VMenu.js +2 -2
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VMessages/VMessages.js +1 -1
- package/lib/components/VMessages/VMessages.js.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js +6 -6
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +11 -11
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +7 -7
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.d.ts +3 -3
- package/lib/components/VOverlay/VOverlay.js +4 -4
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VOverlay/locationStrategies.d.ts +4 -0
- package/lib/components/VOverlay/locationStrategies.js +33 -4
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VPagination/VPagination.js +7 -7
- package/lib/components/VPagination/VPagination.js.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.js +9 -9
- package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +4 -4
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +3 -2
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.js +7 -7
- package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +15 -15
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
- package/lib/components/VSheet/VSheet.js +1 -2
- package/lib/components/VSheet/VSheet.js.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js +2 -2
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
- package/lib/components/VSlider/slider.js +10 -10
- package/lib/components/VSlider/slider.js.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.d.ts +9 -9
- package/lib/components/VSparkline/VSparkline.js +2 -2
- package/lib/components/VSparkline/VSparkline.js.map +1 -1
- package/lib/components/VSwitch/VSwitch.js +3 -3
- package/lib/components/VSwitch/VSwitch.js.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.js +2 -2
- package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
- package/lib/components/VTabs/VTab.d.ts +3 -3
- package/lib/components/VTabs/VTab.js +1 -1
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTabs/VTabs.js +7 -7
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTimeline/VTimeline.js +9 -9
- package/lib/components/VTimeline/VTimeline.js.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.js +2 -3
- package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
- package/lib/components/VToolbar/VToolbar.js +2 -2
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/components/VToolbar/VToolbarItems.js +2 -2
- package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.d.ts +9 -9
- package/lib/components/VTooltip/VTooltip.js +3 -3
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +3 -3
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/components/transitions/dialog-transition.js +11 -2
- package/lib/components/transitions/dialog-transition.js.map +1 -1
- package/lib/composables/border.d.ts +1 -1
- package/lib/composables/border.js +5 -8
- package/lib/composables/border.js.map +1 -1
- package/lib/composables/calendar.d.ts +23 -56
- package/lib/composables/calendar.js +16 -18
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/color.d.ts +8 -10
- package/lib/composables/color.js +21 -22
- package/lib/composables/color.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +1 -0
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/vuetify.d.ts +1 -0
- package/lib/composables/date/adapters/vuetify.js +101 -160
- package/lib/composables/date/adapters/vuetify.js.map +1 -1
- package/lib/composables/date/date.d.ts +1 -1
- package/lib/composables/date/date.js +0 -20
- package/lib/composables/date/date.js.map +1 -1
- package/lib/composables/defaults.js +6 -3
- package/lib/composables/defaults.js.map +1 -1
- package/lib/composables/density.d.ts +1 -1
- package/lib/composables/density.js +2 -2
- package/lib/composables/density.js.map +1 -1
- package/lib/composables/display.d.ts +4 -2
- package/lib/composables/display.js +2 -2
- package/lib/composables/display.js.map +1 -1
- package/lib/composables/elevation.js +4 -6
- package/lib/composables/elevation.js.map +1 -1
- package/lib/composables/filter.js +2 -1
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/focus.d.ts +4 -2
- package/lib/composables/focus.js +2 -2
- package/lib/composables/focus.js.map +1 -1
- package/lib/composables/form.d.ts +7 -7
- package/lib/composables/form.js +3 -3
- package/lib/composables/form.js.map +1 -1
- package/lib/composables/goto.js +2 -2
- package/lib/composables/goto.js.map +1 -1
- package/lib/composables/group.d.ts +3 -3
- package/lib/composables/group.js +4 -4
- package/lib/composables/group.js.map +1 -1
- package/lib/composables/icons.d.ts +2 -2
- package/lib/composables/icons.js +2 -2
- package/lib/composables/icons.js.map +1 -1
- package/lib/composables/layout.d.ts +10 -4
- package/lib/composables/layout.js +4 -4
- package/lib/composables/layout.js.map +1 -1
- package/lib/composables/lazy.d.ts +1 -1
- package/lib/composables/lazy.js +2 -2
- package/lib/composables/lazy.js.map +1 -1
- package/lib/composables/loader.d.ts +4 -2
- package/lib/composables/loader.js +2 -2
- package/lib/composables/loader.js.map +1 -1
- package/lib/composables/locale.js +3 -3
- package/lib/composables/locale.js.map +1 -1
- package/lib/composables/nested/nested.d.ts +3 -3
- package/lib/composables/nested/nested.js +4 -4
- package/lib/composables/nested/nested.js.map +1 -1
- package/lib/composables/position.d.ts +1 -1
- package/lib/composables/position.js +2 -2
- package/lib/composables/position.js.map +1 -1
- package/lib/composables/router.d.ts +3 -3
- package/lib/composables/router.js +8 -8
- package/lib/composables/router.js.map +1 -1
- package/lib/composables/size.d.ts +8 -5
- package/lib/composables/size.js +6 -5
- package/lib/composables/size.js.map +1 -1
- package/lib/composables/ssrBoot.d.ts +4 -2
- package/lib/composables/ssrBoot.js +2 -2
- package/lib/composables/ssrBoot.js.map +1 -1
- package/lib/composables/stack.d.ts +7 -5
- package/lib/composables/stack.js +5 -5
- package/lib/composables/stack.js.map +1 -1
- package/lib/composables/theme.js +9 -9
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/variant.d.ts +5 -6
- package/lib/composables/variant.js +6 -6
- package/lib/composables/variant.js.map +1 -1
- package/lib/entry-bundler.d.ts +1 -0
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +80 -71
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +607 -218
- package/lib/labs/VCalendar/VCalendar.js +55 -27
- package/lib/labs/VCalendar/VCalendar.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarDay.css +9 -0
- package/lib/labs/VCalendar/VCalendarDay.d.ts +329 -17
- package/lib/labs/VCalendar/VCalendarDay.js +18 -10
- package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarDay.sass +8 -0
- package/lib/labs/VCalendar/VCalendarEvent.js +15 -5
- package/lib/labs/VCalendar/VCalendarEvent.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarHeader.d.ts +44 -17
- package/lib/labs/VCalendar/VCalendarHeader.js +5 -2
- package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarInterval.d.ts +171 -17
- package/lib/labs/VCalendar/VCalendarInterval.js +56 -19
- package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +92 -17
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js +30 -10
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +122 -88
- package/lib/labs/VCalendar/VCalendarMonthDay.js +24 -22
- package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
- package/lib/labs/VIconBtn/VIconBtn.d.ts +6 -21
- package/lib/labs/VIconBtn/VIconBtn.js +10 -12
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/VPicker/VPicker.js +1 -2
- package/lib/labs/VPicker/VPicker.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js +3 -3
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
- package/lib/labs/VTreeview/VTreeview.js +11 -11
- package/lib/labs/VTreeview/VTreeview.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +1 -0
- package/lib/util/box.js.map +1 -1
- package/lib/util/helpers.d.ts +7 -2
- package/lib/util/helpers.js +16 -5
- package/lib/util/helpers.js.map +1 -1
- package/package.json +49 -47
|
@@ -12,7 +12,7 @@ import { useFocus } from "../../composables/focus.js";
|
|
|
12
12
|
import { forwardRefs } from "../../composables/forwardRefs.js";
|
|
13
13
|
import { useLocale } from "../../composables/locale.js";
|
|
14
14
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
|
15
|
-
import { computed, nextTick, ref, watch } from 'vue';
|
|
15
|
+
import { computed, nextTick, ref, toRef, watch } from 'vue';
|
|
16
16
|
import { callEvent, filterInputAttrs, genericComponent, humanReadableFileSize, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
|
|
17
17
|
export const makeVFileInputProps = propsFactory({
|
|
18
18
|
chips: Boolean,
|
|
@@ -95,7 +95,7 @@ export const VFileInput = genericComponent()({
|
|
|
95
95
|
const vInputRef = ref();
|
|
96
96
|
const vFieldRef = ref();
|
|
97
97
|
const inputRef = ref();
|
|
98
|
-
const isActive =
|
|
98
|
+
const isActive = toRef(() => isFocused.value || props.active);
|
|
99
99
|
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
100
100
|
function onFocus() {
|
|
101
101
|
if (inputRef.value !== document.activeElement) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isArray","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","onFocus","document","activeElement","onClickPrepend","click","onControlMousedown","onControlClick","onClear","stopPropagation","onDragover","preventDefault","onDrop","dataTransfer","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_Fragment","target","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.active\n ))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\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 callEvent(props['onClick:clear'], e)\n })\n }\n function onDragover (e: DragEvent) {\n e.preventDefault()\n }\n function onDrop (e: DragEvent) {\n e.preventDefault()\n\n if (!e.dataTransfer) return\n\n model.value = [...e.dataTransfer.files ?? []]\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n text={ text }\n />\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","toRef","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isArray","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","onFocus","document","activeElement","onClickPrepend","click","onControlMousedown","onControlClick","onClear","stopPropagation","onDragover","preventDefault","onDrop","dataTransfer","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_Fragment","target","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, toRef, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = toRef(() => isFocused.value || props.active)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\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 callEvent(props['onClick:clear'], e)\n })\n }\n function onDragover (e: DragEvent) {\n e.preventDefault()\n }\n function onDrop (e: DragEvent) {\n e.preventDefault()\n\n if (!e.dataTransfer) return\n\n model.value = [...e.dataTransfer.files ?? []]\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n text={ text }\n />\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -46,7 +46,7 @@ export const VFooter = genericComponent()({
|
|
|
46
46
|
const {
|
|
47
47
|
backgroundColorClasses,
|
|
48
48
|
backgroundColorStyles
|
|
49
|
-
} = useBackgroundColor(
|
|
49
|
+
} = useBackgroundColor(() => props.color);
|
|
50
50
|
const {
|
|
51
51
|
borderClasses
|
|
52
52
|
} = useBorder(props);
|
|
@@ -68,11 +68,11 @@ export const VFooter = genericComponent()({
|
|
|
68
68
|
const layout = useLayoutItem({
|
|
69
69
|
id: props.name,
|
|
70
70
|
order: computed(() => parseInt(props.order, 10)),
|
|
71
|
-
position:
|
|
71
|
+
position: toRef(() => 'bottom'),
|
|
72
72
|
layoutSize: height,
|
|
73
73
|
elementSize: computed(() => props.height === 'auto' ? undefined : height.value),
|
|
74
|
-
active:
|
|
75
|
-
absolute: toRef(props
|
|
74
|
+
active: toRef(() => props.app),
|
|
75
|
+
absolute: toRef(() => props.absolute)
|
|
76
76
|
});
|
|
77
77
|
watchEffect(() => {
|
|
78
78
|
layoutItemStyles.value = layout.layoutItemStyles.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VFooter.js","names":["makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","useResizeObserver","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useToggleScope","computed","ref","shallowRef","toRef","watchEffect","convertToUnit","genericComponent","propsFactory","useRender","makeVFooterProps","app","Boolean","color","String","height","type","Number","default","tag","VFooter","name","props","setup","_ref","slots","layoutItemStyles","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","elevationClasses","roundedClasses","autoHeight","resizeRef","entries","length","value","target","clientHeight","parseInt","layout","id","order","position","layoutSize","elementSize","undefined","active","absolute","_createVNode","class","style"],"sources":["../../../src/components/VFooter/VFooter.tsx"],"sourcesContent":["// Styles\nimport './VFooter.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVFooterProps = propsFactory({\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'footer' }),\n ...makeThemeProps(),\n}, 'VFooter')\n\nexport const VFooter = genericComponent()({\n name: 'VFooter',\n\n props: makeVFooterProps(),\n\n setup (props, { slots }) {\n const layoutItemStyles = ref()\n\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(
|
|
1
|
+
{"version":3,"file":"VFooter.js","names":["makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","useResizeObserver","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useToggleScope","computed","ref","shallowRef","toRef","watchEffect","convertToUnit","genericComponent","propsFactory","useRender","makeVFooterProps","app","Boolean","color","String","height","type","Number","default","tag","VFooter","name","props","setup","_ref","slots","layoutItemStyles","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","elevationClasses","roundedClasses","autoHeight","resizeRef","entries","length","value","target","clientHeight","parseInt","layout","id","order","position","layoutSize","elementSize","undefined","active","absolute","_createVNode","class","style"],"sources":["../../../src/components/VFooter/VFooter.tsx"],"sourcesContent":["// Styles\nimport './VFooter.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVFooterProps = propsFactory({\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'footer' }),\n ...makeThemeProps(),\n}, 'VFooter')\n\nexport const VFooter = genericComponent()({\n name: 'VFooter',\n\n props: makeVFooterProps(),\n\n setup (props, { slots }) {\n const layoutItemStyles = ref()\n\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const autoHeight = shallowRef(32)\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n autoHeight.value = entries[0].target.clientHeight\n })\n const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10))\n\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(() => 'bottom'),\n layoutSize: height,\n elementSize: computed(() => props.height === 'auto' ? undefined : height.value),\n active: toRef(() => props.app),\n absolute: toRef(() => props.absolute),\n })\n\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value\n })\n })\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-footer',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.app ? layoutItemStyles.value : {\n height: convertToUnit(props.height),\n },\n props.style,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VFooter = InstanceType<typeof VFooter>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -75,8 +75,8 @@ export declare const VForm: {
|
|
|
75
75
|
id: number | string;
|
|
76
76
|
errorMessages: string[];
|
|
77
77
|
}[]>;
|
|
78
|
-
isDisabled: import("vue").
|
|
79
|
-
isReadonly: import("vue").
|
|
78
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
79
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
80
80
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
81
81
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
82
82
|
readonly externalValue: boolean | null;
|
|
@@ -116,8 +116,8 @@ export declare const VForm: {
|
|
|
116
116
|
id: number | string;
|
|
117
117
|
errorMessages: string[];
|
|
118
118
|
}[]>;
|
|
119
|
-
isDisabled: import("vue").
|
|
120
|
-
isReadonly: import("vue").
|
|
119
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
120
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
121
121
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
122
122
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
123
123
|
readonly externalValue: boolean | null;
|
|
@@ -158,8 +158,8 @@ export declare const VForm: {
|
|
|
158
158
|
id: number | string;
|
|
159
159
|
errorMessages: string[];
|
|
160
160
|
}[]>;
|
|
161
|
-
isDisabled: import("vue").
|
|
162
|
-
isReadonly: import("vue").
|
|
161
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
162
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
163
163
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
164
164
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
165
165
|
readonly externalValue: boolean | null;
|
|
@@ -201,8 +201,8 @@ export declare const VForm: {
|
|
|
201
201
|
id: number | string;
|
|
202
202
|
errorMessages: string[];
|
|
203
203
|
}[]>;
|
|
204
|
-
isDisabled: import("vue").
|
|
205
|
-
isReadonly: import("vue").
|
|
204
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
205
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
206
206
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
207
207
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
208
208
|
readonly externalValue: boolean | null;
|
|
@@ -245,8 +245,8 @@ export declare const VForm: {
|
|
|
245
245
|
id: number | string;
|
|
246
246
|
errorMessages: string[];
|
|
247
247
|
}[]>;
|
|
248
|
-
isDisabled: import("vue").
|
|
249
|
-
isReadonly: import("vue").
|
|
248
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
249
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
250
250
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
251
251
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
252
252
|
readonly externalValue: boolean | null;
|
|
@@ -286,8 +286,8 @@ export declare const VForm: {
|
|
|
286
286
|
id: number | string;
|
|
287
287
|
errorMessages: string[];
|
|
288
288
|
}[]>;
|
|
289
|
-
isDisabled: import("vue").
|
|
290
|
-
isReadonly: import("vue").
|
|
289
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
290
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
291
291
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
292
292
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
293
293
|
readonly externalValue: boolean | null;
|
|
@@ -338,8 +338,8 @@ export declare const VForm: {
|
|
|
338
338
|
id: number | string;
|
|
339
339
|
errorMessages: string[];
|
|
340
340
|
}[]>;
|
|
341
|
-
isDisabled: import("vue").
|
|
342
|
-
isReadonly: import("vue").
|
|
341
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
342
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
343
343
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
344
344
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
345
345
|
readonly externalValue: boolean | null;
|
|
@@ -397,8 +397,8 @@ export declare const VForm: {
|
|
|
397
397
|
id: number | string;
|
|
398
398
|
errorMessages: string[];
|
|
399
399
|
}[]>;
|
|
400
|
-
isDisabled: import("vue").
|
|
401
|
-
isReadonly: import("vue").
|
|
400
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
401
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
402
402
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
403
403
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
404
404
|
readonly externalValue: boolean | null;
|
|
@@ -438,8 +438,8 @@ export declare const VForm: {
|
|
|
438
438
|
id: number | string;
|
|
439
439
|
errorMessages: string[];
|
|
440
440
|
}[]>;
|
|
441
|
-
isDisabled: import("vue").
|
|
442
|
-
isReadonly: import("vue").
|
|
441
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
442
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
443
443
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
444
444
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
445
445
|
readonly externalValue: boolean | null;
|
|
@@ -480,8 +480,8 @@ export declare const VForm: {
|
|
|
480
480
|
id: number | string;
|
|
481
481
|
errorMessages: string[];
|
|
482
482
|
}[]>;
|
|
483
|
-
isDisabled: import("vue").
|
|
484
|
-
isReadonly: import("vue").
|
|
483
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
484
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
485
485
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
486
486
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
487
487
|
readonly externalValue: boolean | null;
|
|
@@ -523,8 +523,8 @@ export declare const VForm: {
|
|
|
523
523
|
id: number | string;
|
|
524
524
|
errorMessages: string[];
|
|
525
525
|
}[]>;
|
|
526
|
-
isDisabled: import("vue").
|
|
527
|
-
isReadonly: import("vue").
|
|
526
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
527
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
528
528
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
529
529
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
530
530
|
readonly externalValue: boolean | null;
|
|
@@ -567,8 +567,8 @@ export declare const VForm: {
|
|
|
567
567
|
id: number | string;
|
|
568
568
|
errorMessages: string[];
|
|
569
569
|
}[]>;
|
|
570
|
-
isDisabled: import("vue").
|
|
571
|
-
isReadonly: import("vue").
|
|
570
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
571
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
572
572
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
573
573
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
574
574
|
readonly externalValue: boolean | null;
|
|
@@ -608,8 +608,8 @@ export declare const VForm: {
|
|
|
608
608
|
id: number | string;
|
|
609
609
|
errorMessages: string[];
|
|
610
610
|
}[]>;
|
|
611
|
-
isDisabled: import("vue").
|
|
612
|
-
isReadonly: import("vue").
|
|
611
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
612
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
613
613
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
614
614
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
615
615
|
readonly externalValue: boolean | null;
|
|
@@ -671,8 +671,8 @@ export declare const VForm: {
|
|
|
671
671
|
id: number | string;
|
|
672
672
|
errorMessages: string[];
|
|
673
673
|
}[]>;
|
|
674
|
-
isDisabled: import("vue").
|
|
675
|
-
isReadonly: import("vue").
|
|
674
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
675
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
676
676
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
677
677
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
678
678
|
readonly externalValue: boolean | null;
|
|
@@ -712,8 +712,8 @@ export declare const VForm: {
|
|
|
712
712
|
id: number | string;
|
|
713
713
|
errorMessages: string[];
|
|
714
714
|
}[]>;
|
|
715
|
-
isDisabled: import("vue").
|
|
716
|
-
isReadonly: import("vue").
|
|
715
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
716
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
717
717
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
718
718
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
719
719
|
readonly externalValue: boolean | null;
|
|
@@ -754,8 +754,8 @@ export declare const VForm: {
|
|
|
754
754
|
id: number | string;
|
|
755
755
|
errorMessages: string[];
|
|
756
756
|
}[]>;
|
|
757
|
-
isDisabled: import("vue").
|
|
758
|
-
isReadonly: import("vue").
|
|
757
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
758
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
759
759
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
760
760
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
761
761
|
readonly externalValue: boolean | null;
|
|
@@ -797,8 +797,8 @@ export declare const VForm: {
|
|
|
797
797
|
id: number | string;
|
|
798
798
|
errorMessages: string[];
|
|
799
799
|
}[]>;
|
|
800
|
-
isDisabled: import("vue").
|
|
801
|
-
isReadonly: import("vue").
|
|
800
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
801
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
802
802
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
803
803
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
804
804
|
readonly externalValue: boolean | null;
|
|
@@ -841,8 +841,8 @@ export declare const VForm: {
|
|
|
841
841
|
id: number | string;
|
|
842
842
|
errorMessages: string[];
|
|
843
843
|
}[]>;
|
|
844
|
-
isDisabled: import("vue").
|
|
845
|
-
isReadonly: import("vue").
|
|
844
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
845
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
846
846
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
847
847
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
848
848
|
readonly externalValue: boolean | null;
|
|
@@ -882,8 +882,8 @@ export declare const VForm: {
|
|
|
882
882
|
id: number | string;
|
|
883
883
|
errorMessages: string[];
|
|
884
884
|
}[]>;
|
|
885
|
-
isDisabled: import("vue").
|
|
886
|
-
isReadonly: import("vue").
|
|
885
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
886
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
887
887
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
888
888
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
889
889
|
readonly externalValue: boolean | null;
|
|
@@ -934,8 +934,8 @@ export declare const VForm: {
|
|
|
934
934
|
id: number | string;
|
|
935
935
|
errorMessages: string[];
|
|
936
936
|
}[]>;
|
|
937
|
-
isDisabled: import("vue").
|
|
938
|
-
isReadonly: import("vue").
|
|
937
|
+
isDisabled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
938
|
+
isReadonly: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
939
939
|
isValidating: import("vue").ShallowRef<boolean, boolean>;
|
|
940
940
|
isValid: import("vue").Ref<boolean | null, boolean | null> & {
|
|
941
941
|
readonly externalValue: boolean | null;
|
|
@@ -9,7 +9,7 @@ import { IconValue, useIcon } from "../../composables/icons.js";
|
|
|
9
9
|
import { makeSizeProps, useSize } from "../../composables/size.js";
|
|
10
10
|
import { makeTagProps } from "../../composables/tag.js";
|
|
11
11
|
import { makeThemeProps, useTheme } from "../../composables/theme.js"; // Utilities
|
|
12
|
-
import {
|
|
12
|
+
import { shallowRef, Text } from 'vue';
|
|
13
13
|
import { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from "../../util/index.js";
|
|
14
14
|
export const makeVIconProps = propsFactory({
|
|
15
15
|
color: String,
|
|
@@ -33,20 +33,20 @@ export const VIcon = genericComponent()({
|
|
|
33
33
|
attrs,
|
|
34
34
|
slots
|
|
35
35
|
} = _ref;
|
|
36
|
-
const slotIcon =
|
|
36
|
+
const slotIcon = shallowRef();
|
|
37
37
|
const {
|
|
38
38
|
themeClasses
|
|
39
39
|
} = useTheme();
|
|
40
40
|
const {
|
|
41
41
|
iconData
|
|
42
|
-
} = useIcon(
|
|
42
|
+
} = useIcon(() => slotIcon.value || props.icon);
|
|
43
43
|
const {
|
|
44
44
|
sizeClasses
|
|
45
45
|
} = useSize(props);
|
|
46
46
|
const {
|
|
47
47
|
textColorClasses,
|
|
48
48
|
textColorStyles
|
|
49
|
-
} = useTextColor(
|
|
49
|
+
} = useTextColor(() => props.color);
|
|
50
50
|
useRender(() => {
|
|
51
51
|
const slotValue = slots.default?.();
|
|
52
52
|
if (slotValue) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VIcon.js","names":["useTextColor","makeComponentProps","IconValue","useIcon","makeSizeProps","useSize","makeTagProps","makeThemeProps","useTheme","
|
|
1
|
+
{"version":3,"file":"VIcon.js","names":["useTextColor","makeComponentProps","IconValue","useIcon","makeSizeProps","useSize","makeTagProps","makeThemeProps","useTheme","shallowRef","Text","convertToUnit","flattenFragments","genericComponent","propsFactory","useRender","makeVIconProps","color","String","disabled","Boolean","start","end","icon","opacity","Number","tag","VIcon","name","props","setup","_ref","attrs","slots","slotIcon","themeClasses","iconData","value","sizeClasses","textColorClasses","textColorStyles","slotValue","default","filter","node","type","children","hasClick","onClick","onClickOnce","_createVNode","component","class","fontSize","size","height","width","undefined","style"],"sources":["../../../src/components/VIcon/VIcon.tsx"],"sourcesContent":["// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\n\n// Utilities\nimport { shallowRef, Text } from 'vue'\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n opacity: [String, Number],\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'VIcon')\n\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n const slotIcon = shallowRef<string>()\n\n const { themeClasses } = useTheme()\n const { iconData } = useIcon(() => slotIcon.value || props.icon)\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n\n useRender(() => {\n const slotValue = slots.default?.()\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node =>\n node.type === Text && node.children && typeof node.children === 'string'\n )[0]?.children as string\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce)\n\n return (\n <iconData.value.component\n tag={ props.tag }\n icon={ iconData.value.icon }\n class={[\n 'v-icon',\n 'notranslate',\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n {\n 'v-icon--clickable': hasClick,\n 'v-icon--disabled': props.disabled,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end,\n },\n props.class,\n ]}\n style={[\n {\n '--v-icon-opacity': props.opacity,\n },\n !sizeClasses.value ? ({\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size),\n }) : undefined,\n textColorStyles.value,\n props.style,\n ]}\n role={ hasClick ? 'button' : undefined }\n aria-hidden={ !hasClick }\n tabindex={ hasClick ? props.disabled ? -1 : 0 : undefined }\n >\n { slotValue }\n </iconData.value.component>\n )\n })\n\n return {}\n },\n})\n\nexport type VIcon = InstanceType<typeof VIcon>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,YAAY;AAAA,SACZC,kBAAkB;AAAA,SAClBC,SAAS,EAAEC,OAAO;AAAA,SAClBC,aAAa,EAAEC,OAAO;AAAA,SACtBC,YAAY;AAAA,SACZC,cAAc,EAAEC,QAAQ,sCAEjC;AACA,SAASC,UAAU,EAAEC,IAAI,QAAQ,KAAK;AAAA,SAC7BC,aAAa,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAEnF,OAAO,MAAMC,cAAc,GAAGF,YAAY,CAAC;EACzCG,KAAK,EAAEC,MAAM;EACbC,QAAQ,EAAEC,OAAO;EACjBC,KAAK,EAAED,OAAO;EACdE,GAAG,EAAEF,OAAO;EACZG,IAAI,EAAErB,SAAS;EACfsB,OAAO,EAAE,CAACN,MAAM,EAAEO,MAAM,CAAC;EAEzB,GAAGxB,kBAAkB,CAAC,CAAC;EACvB,GAAGG,aAAa,CAAC,CAAC;EAClB,GAAGE,YAAY,CAAC;IAAEoB,GAAG,EAAE;EAAI,CAAC,CAAC;EAC7B,GAAGnB,cAAc,CAAC;AACpB,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,MAAMoB,KAAK,GAAGd,gBAAgB,CAAC,CAAC,CAAC;EACtCe,IAAI,EAAE,OAAO;EAEbC,KAAK,EAAEb,cAAc,CAAC,CAAC;EAEvBc,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAoB;IAAA,IAAlB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC5B,MAAMG,QAAQ,GAAGzB,UAAU,CAAS,CAAC;IAErC,MAAM;MAAE0B;IAAa,CAAC,GAAG3B,QAAQ,CAAC,CAAC;IACnC,MAAM;MAAE4B;IAAS,CAAC,GAAGjC,OAAO,CAAC,MAAM+B,QAAQ,CAACG,KAAK,IAAIR,KAAK,CAACN,IAAI,CAAC;IAChE,MAAM;MAAEe;IAAY,CAAC,GAAGjC,OAAO,CAACwB,KAAK,CAAC;IACtC,MAAM;MAAEU,gBAAgB;MAAEC;IAAgB,CAAC,GAAGxC,YAAY,CAAC,MAAM6B,KAAK,CAACZ,KAAK,CAAC;IAE7EF,SAAS,CAAC,MAAM;MACd,MAAM0B,SAAS,GAAGR,KAAK,CAACS,OAAO,GAAG,CAAC;MACnC,IAAID,SAAS,EAAE;QACbP,QAAQ,CAACG,KAAK,GAAGzB,gBAAgB,CAAC6B,SAAS,CAAC,CAACE,MAAM,CAACC,IAAI,IACtDA,IAAI,CAACC,IAAI,KAAKnC,IAAI,IAAIkC,IAAI,CAACE,QAAQ,IAAI,OAAOF,IAAI,CAACE,QAAQ,KAAK,QAClE,CAAC,CAAC,CAAC,CAAC,EAAEA,QAAkB;MAC1B;MACA,MAAMC,QAAQ,GAAG,CAAC,EAAEf,KAAK,CAACgB,OAAO,IAAIhB,KAAK,CAACiB,WAAW,CAAC;MAEvD,OAAAC,YAAA,CAAAd,QAAA,CAAAC,KAAA,CAAAc,SAAA;QAAA,OAEUtB,KAAK,CAACH,GAAG;QAAA,QACRU,QAAQ,CAACC,KAAK,CAACd,IAAI;QAAA,SACnB,CACL,QAAQ,EACR,aAAa,EACbY,YAAY,CAACE,KAAK,EAClBC,WAAW,CAACD,KAAK,EACjBE,gBAAgB,CAACF,KAAK,EACtB;UACE,mBAAmB,EAAEU,QAAQ;UAC7B,kBAAkB,EAAElB,KAAK,CAACV,QAAQ;UAClC,eAAe,EAAEU,KAAK,CAACR,KAAK;UAC5B,aAAa,EAAEQ,KAAK,CAACP;QACvB,CAAC,EACDO,KAAK,CAACuB,KAAK,CACZ;QAAA,SACM,CACL;UACE,kBAAkB,EAAEvB,KAAK,CAACL;QAC5B,CAAC,EACD,CAACc,WAAW,CAACD,KAAK,GAAI;UACpBgB,QAAQ,EAAE1C,aAAa,CAACkB,KAAK,CAACyB,IAAI,CAAC;UACnCC,MAAM,EAAE5C,aAAa,CAACkB,KAAK,CAACyB,IAAI,CAAC;UACjCE,KAAK,EAAE7C,aAAa,CAACkB,KAAK,CAACyB,IAAI;QACjC,CAAC,GAAIG,SAAS,EACdjB,eAAe,CAACH,KAAK,EACrBR,KAAK,CAAC6B,KAAK,CACZ;QAAA,QACMX,QAAQ,GAAG,QAAQ,GAAGU,SAAS;QAAA,eACxB,CAACV,QAAQ;QAAA,YACZA,QAAQ,GAAGlB,KAAK,CAACV,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAGsC;MAAS;QAAAf,OAAA,EAAAA,CAAA,MAEvDD,SAAS;MAAA;IAGjB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -67,7 +67,7 @@ export const VImg = genericComponent()({
|
|
|
67
67
|
const {
|
|
68
68
|
backgroundColorClasses,
|
|
69
69
|
backgroundColorStyles
|
|
70
|
-
} = useBackgroundColor(
|
|
70
|
+
} = useBackgroundColor(() => props.color);
|
|
71
71
|
const {
|
|
72
72
|
roundedClasses
|
|
73
73
|
} = useRounded(props);
|
|
@@ -174,7 +174,7 @@ export const VImg = genericComponent()({
|
|
|
174
174
|
};
|
|
175
175
|
poll();
|
|
176
176
|
}
|
|
177
|
-
const containClasses =
|
|
177
|
+
const containClasses = toRef(() => ({
|
|
178
178
|
'v-img__img--cover': props.cover,
|
|
179
179
|
'v-img__img--contain': !props.cover
|
|
180
180
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VImg.js","names":["makeVResponsiveProps","VResponsive","useBackgroundColor","makeComponentProps","makeRoundedProps","useRounded","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","onBeforeUnmount","ref","shallowRef","toRef","vShow","watch","withDirectives","convertToUnit","genericComponent","getCurrentInstance","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","absolute","Boolean","alt","String","cover","color","draggable","type","default","undefined","eager","gradient","lazySrc","options","Object","root","rootMargin","threshold","sizes","src","crossorigin","referrerpolicy","srcset","position","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","backgroundColorClasses","backgroundColorStyles","roundedClasses","vm","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","setTimeout","isUnmounted","complete","onError","onLoad","getSrc","img","timer","clearTimeout","timeout","arguments","length","poll","imgHeight","imgWidth","window","endsWith","startsWith","containClasses","__image","_createVNode","objectPosition","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n ref,\n shallowRef,\n toRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\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: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n absolute: Boolean,\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String] as PropType<boolean | 'true' | 'false'>,\n default: undefined,\n },\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 crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps(),\n}, 'VImg')\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 { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props)\n const vm = getCurrentInstance('VImg')\n\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 setTimeout(() => {\n if (vm.isUnmounted) return\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 if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n if (vm.isUnmounted) return\n\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n if (vm.isUnmounted) return\n\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\n onBeforeUnmount(() => {\n clearTimeout(timer)\n })\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n if (vm.isUnmounted) return\n\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 style={{ objectPosition: props.position }}\n crossorigin={ props.crossorigin }\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\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 style={{ objectPosition: props.position }}\n crossorigin={ props.crossorigin }\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\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 {\n 'v-img--absolute': props.absolute,\n 'v-img--booting': !isBooted.value,\n },\n backgroundColorClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n backgroundColorStyles.value,\n props.style,\n ]}\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VImg.js","names":["makeVResponsiveProps","VResponsive","useBackgroundColor","makeComponentProps","makeRoundedProps","useRounded","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","onBeforeUnmount","ref","shallowRef","toRef","vShow","watch","withDirectives","convertToUnit","genericComponent","getCurrentInstance","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","absolute","Boolean","alt","String","cover","color","draggable","type","default","undefined","eager","gradient","lazySrc","options","Object","root","rootMargin","threshold","sizes","src","crossorigin","referrerpolicy","srcset","position","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","backgroundColorClasses","backgroundColorStyles","roundedClasses","vm","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","setTimeout","isUnmounted","complete","onError","onLoad","getSrc","img","timer","clearTimeout","timeout","arguments","length","poll","imgHeight","imgWidth","window","endsWith","startsWith","containClasses","__image","_createVNode","objectPosition","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n ref,\n shallowRef,\n toRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\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: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n absolute: Boolean,\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String] as PropType<boolean | 'true' | 'false'>,\n default: undefined,\n },\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 crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps(),\n}, 'VImg')\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 { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n const { roundedClasses } = useRounded(props)\n const vm = getCurrentInstance('VImg')\n\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 setTimeout(() => {\n if (vm.isUnmounted) return\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 if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n if (vm.isUnmounted) return\n\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n if (vm.isUnmounted) return\n\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\n onBeforeUnmount(() => {\n clearTimeout(timer)\n })\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n if (vm.isUnmounted) return\n\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 = toRef(() => ({\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 style={{ objectPosition: props.position }}\n crossorigin={ props.crossorigin }\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\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 style={{ objectPosition: props.position }}\n crossorigin={ props.crossorigin }\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\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 {\n 'v-img--absolute': props.absolute,\n 'v-img--booting': !isBooted.value,\n },\n backgroundColorClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n backgroundColorStyles.value,\n props.style,\n ]}\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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","ignoreList":[]}
|