@vuetify/nightly 3.6.13-pr-20185.5bf1ff4 → 3.6.14-master.2024-08-02

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.
Files changed (143) hide show
  1. package/dist/json/attributes.json +96 -96
  2. package/dist/json/importMap-labs.json +16 -16
  3. package/dist/json/importMap.json +136 -136
  4. package/dist/json/web-types.json +188 -188
  5. package/dist/vuetify-labs.css +3094 -3095
  6. package/dist/vuetify-labs.esm.js +6 -6
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +6 -6
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +2736 -2737
  11. package/dist/vuetify.d.ts +46 -46
  12. package/dist/vuetify.esm.js +6 -6
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +6 -6
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +5 -5
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  21. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  22. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  23. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  24. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  25. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  26. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  27. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  28. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +1 -1
  29. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  30. package/lib/components/VDataTable/VDataTableColumn.mjs.map +1 -1
  31. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  32. package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
  33. package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
  34. package/lib/components/VDataTable/composables/group.mjs.map +1 -1
  35. package/lib/components/VDataTable/composables/headers.mjs.map +1 -1
  36. package/lib/components/VDataTable/composables/options.mjs +1 -1
  37. package/lib/components/VDataTable/composables/options.mjs.map +1 -1
  38. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  39. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
  40. package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
  41. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
  42. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  43. package/lib/components/VEmptyState/VEmptyState.mjs.map +1 -1
  44. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  45. package/lib/components/VFab/VFab.mjs.map +1 -1
  46. package/lib/components/VField/VField.mjs.map +1 -1
  47. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  48. package/lib/components/VGrid/VCol.mjs.map +1 -1
  49. package/lib/components/VGrid/VRow.mjs.map +1 -1
  50. package/lib/components/VImg/VImg.mjs.map +1 -1
  51. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  52. package/lib/components/VInput/InputIcon.mjs.map +1 -1
  53. package/lib/components/VInput/VInput.mjs.map +1 -1
  54. package/lib/components/VList/VList.mjs.map +1 -1
  55. package/lib/components/VList/VListGroup.mjs.map +1 -1
  56. package/lib/components/VList/VListItem.mjs.map +1 -1
  57. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  58. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  59. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  60. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  61. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  62. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  63. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  64. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  65. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  66. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  67. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  68. package/lib/components/VRating/VRating.mjs.map +1 -1
  69. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  70. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  71. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  72. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  73. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  74. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  75. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  76. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  77. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  78. package/lib/components/VSparkline/util/path.mjs.map +1 -1
  79. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  80. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  81. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  82. package/lib/components/VTabs/VTab.mjs.map +1 -1
  83. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  84. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  85. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  86. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  87. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  88. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  89. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  90. package/lib/components/transitions/createTransition.mjs.map +1 -1
  91. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  92. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  93. package/lib/composables/border.mjs.map +1 -1
  94. package/lib/composables/color.mjs.map +1 -1
  95. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  96. package/lib/composables/density.mjs.map +1 -1
  97. package/lib/composables/display.mjs.map +1 -1
  98. package/lib/composables/elevation.mjs.map +1 -1
  99. package/lib/composables/focus.mjs.map +1 -1
  100. package/lib/composables/form.mjs.map +1 -1
  101. package/lib/composables/goto.mjs.map +1 -1
  102. package/lib/composables/group.mjs.map +1 -1
  103. package/lib/composables/icons.mjs.map +1 -1
  104. package/lib/composables/layout.mjs.map +1 -1
  105. package/lib/composables/loader.mjs.map +1 -1
  106. package/lib/composables/locale.mjs.map +1 -1
  107. package/lib/composables/location.mjs.map +1 -1
  108. package/lib/composables/position.mjs.map +1 -1
  109. package/lib/composables/proxiedModel.mjs.map +1 -1
  110. package/lib/composables/rounded.mjs.map +1 -1
  111. package/lib/composables/scroll.mjs.map +1 -1
  112. package/lib/composables/size.mjs.map +1 -1
  113. package/lib/composables/teleport.mjs.map +1 -1
  114. package/lib/composables/theme.mjs.map +1 -1
  115. package/lib/composables/touch.mjs.map +1 -1
  116. package/lib/composables/validation.mjs.map +1 -1
  117. package/lib/composables/variant.mjs.map +1 -1
  118. package/lib/directives/color/index.mjs.map +1 -1
  119. package/lib/directives/ripple/index.mjs.map +1 -1
  120. package/lib/entry-bundler.mjs +1 -1
  121. package/lib/entry-bundler.mjs.map +1 -1
  122. package/lib/framework.mjs +1 -1
  123. package/lib/framework.mjs.map +1 -1
  124. package/lib/index.d.mts +46 -46
  125. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  126. package/lib/labs/VCalendar/VCalendarInterval.mjs.map +1 -1
  127. package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs.map +1 -1
  128. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  129. package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -1
  130. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  131. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  132. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  133. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  134. package/lib/locale/fr.mjs.map +1 -1
  135. package/lib/locale/it.mjs.map +1 -1
  136. package/lib/services/goto/index.mjs.map +1 -1
  137. package/lib/services/goto/util.mjs.map +1 -1
  138. package/lib/util/colorUtils.mjs.map +1 -1
  139. package/lib/util/console.mjs.map +1 -1
  140. package/lib/util/getCurrentInstance.mjs.map +1 -1
  141. package/lib/util/helpers.mjs +2 -2
  142. package/lib/util/helpers.mjs.map +1 -1
  143. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VField.mjs","names":["VFieldLabel","VExpandXTransition","VDefaultsProvider","useInputIcon","useBackgroundColor","useTextColor","makeComponentProps","makeFocusProps","useFocus","IconValue","LoaderSlot","makeLoaderProps","useLoader","useRtl","makeRoundedProps","useRounded","makeThemeProps","provideTheme","computed","ref","toRef","watch","animate","convertToUnit","EventProp","genericComponent","getUid","isOn","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","centerAffix","undefined","color","baseColor","dirty","disabled","error","flat","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","focused","value","setup","_ref","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","InputIcon","roundedClasses","rtlClasses","isActive","hasLabel","uid","messagesId","labelRef","floatingLabelRef","controlRef","isPlainOrUnderlined","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","val","el","$el","targetEl","requestAnimationFrame","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","style","getComputedStyle","targetStyle","duration","parseFloat","transitionDuration","scale","getPropertyValue","visibility","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","e","target","document","activeElement","preventDefault","onKeydownClear","key","stopPropagation","MouseEvent","isOutlined","hasPrepend","hasClear","clear","hasAppend","for","_createVNode","_mergeProps","class","loading","loader","_withDirectives","VIcon","icon","onKeydown","onFocus","onBlur","_vShow","_Fragment","filterFieldProps","keys","Object","filter","k"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VFieldLabel } from './VFieldLabel'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined,\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp<[MouseEvent]>(),\n 'onClick:appendInner': EventProp<[MouseEvent]>(),\n 'onClick:prependInner': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n}, 'VField')\n\nexport type VFieldSlots = {\n clear: DefaultInputSlot & { props: Record<string, any> }\n 'prepend-inner': DefaultInputSlot\n 'append-inner': DefaultInputSlot\n label: DefaultInputSlot & { label: string | undefined, props: Record<string, any> }\n loader: LoaderSlotProps\n default: VFieldSlot\n}\n\nexport const VField = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VFieldSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n const { roundedClasses } = useRounded(props)\n const { rtlClasses } = useRtl()\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined\n : isActive.value && isFocused.value ? props.color\n : props.baseColor\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n function onKeydownClear (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n props['onClick:clear']?.(new MouseEvent('click'))\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = () => (\n slots.label\n ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n )\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label(),\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n roundedClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.style,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ !!props.loading }\n color={ props.error ? 'error' : (typeof props.loading === 'string' ? props.loading : props.color) }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { props.prependInnerIcon && (\n <InputIcon key=\"prepend-icon\" name=\"prependInner\" />\n )}\n\n { slots['prepend-inner']?.(slotProps.value) }\n </div>\n )}\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n {['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n for={ id.value }\n style={ textColorStyles.value }\n >\n { label() }\n </VFieldLabel>\n )}\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label() }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot)}\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <VDefaultsProvider\n defaults={{\n VIcon: {\n icon: props.clearIcon,\n },\n }}\n >\n { slots.clear\n ? slots.clear({\n ...slotProps.value,\n props: {\n onKeydown: onKeydownClear,\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear'],\n },\n })\n : (\n <InputIcon\n name=\"clear\"\n onKeydown={ onKeydownClear }\n onFocus={ focus }\n onBlur={ blur }\n />\n )}\n </VDefaultsProvider>\n </div>\n </VExpandXTransition>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <InputIcon key=\"append-icon\" name=\"appendInner\" />\n )}\n </div>\n )}\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label() }\n </VFieldLabel>\n </div>\n )}\n\n <div class=\"v-field__outline__end\" />\n </>\n )}\n\n { isPlainOrUnderlined.value && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label() }\n </VFieldLabel>\n )}\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style')\n return pick(attrs, keys)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VField.mjs","names":["VFieldLabel","VExpandXTransition","VDefaultsProvider","useInputIcon","useBackgroundColor","useTextColor","makeComponentProps","makeFocusProps","useFocus","IconValue","LoaderSlot","makeLoaderProps","useLoader","useRtl","makeRoundedProps","useRounded","makeThemeProps","provideTheme","computed","ref","toRef","watch","animate","convertToUnit","EventProp","genericComponent","getUid","isOn","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","centerAffix","undefined","color","baseColor","dirty","disabled","error","flat","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","focused","value","setup","_ref","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","InputIcon","roundedClasses","rtlClasses","isActive","hasLabel","uid","messagesId","labelRef","floatingLabelRef","controlRef","isPlainOrUnderlined","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","val","el","$el","targetEl","requestAnimationFrame","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","style","getComputedStyle","targetStyle","duration","parseFloat","transitionDuration","scale","getPropertyValue","visibility","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","e","target","document","activeElement","preventDefault","onKeydownClear","key","stopPropagation","MouseEvent","isOutlined","hasPrepend","hasClear","clear","hasAppend","for","_createVNode","_mergeProps","class","loading","loader","_withDirectives","VIcon","icon","onKeydown","onFocus","onBlur","_vShow","_Fragment","filterFieldProps","keys","Object","filter","k"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VFieldLabel } from './VFieldLabel'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined,\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp<[MouseEvent]>(),\n 'onClick:appendInner': EventProp<[MouseEvent]>(),\n 'onClick:prependInner': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n}, 'VField')\n\nexport type VFieldSlots = {\n clear: DefaultInputSlot & { props: Record<string, any> }\n 'prepend-inner': DefaultInputSlot\n 'append-inner': DefaultInputSlot\n label: DefaultInputSlot & { label: string | undefined, props: Record<string, any> }\n loader: LoaderSlotProps\n default: VFieldSlot\n}\n\nexport const VField = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VFieldSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n const { roundedClasses } = useRounded(props)\n const { rtlClasses } = useRtl()\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined\n : isActive.value && isFocused.value ? props.color\n : props.baseColor\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n function onKeydownClear (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n props['onClick:clear']?.(new MouseEvent('click'))\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = () => (\n slots.label\n ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n )\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label(),\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n roundedClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.style,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ !!props.loading }\n color={ props.error ? 'error' : (typeof props.loading === 'string' ? props.loading : props.color) }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { props.prependInnerIcon && (\n <InputIcon key=\"prepend-icon\" name=\"prependInner\" />\n )}\n\n { slots['prepend-inner']?.(slotProps.value) }\n </div>\n )}\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n {['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n for={ id.value }\n style={ textColorStyles.value }\n >\n { label() }\n </VFieldLabel>\n )}\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label() }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot)}\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <VDefaultsProvider\n defaults={{\n VIcon: {\n icon: props.clearIcon,\n },\n }}\n >\n { slots.clear\n ? slots.clear({\n ...slotProps.value,\n props: {\n onKeydown: onKeydownClear,\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear'],\n },\n })\n : (\n <InputIcon\n name=\"clear\"\n onKeydown={ onKeydownClear }\n onFocus={ focus }\n onBlur={ blur }\n />\n )}\n </VDefaultsProvider>\n </div>\n </VExpandXTransition>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <InputIcon key=\"append-icon\" name=\"appendInner\" />\n )}\n </div>\n )}\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label() }\n </VFieldLabel>\n </div>\n )}\n\n <div class=\"v-field__outline__end\" />\n </>\n )}\n\n { isPlainOrUnderlined.value && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label() }\n </VFieldLabel>\n )}\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style')\n return pick(attrs, keys)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VFileInput.mjs","names":["VChip","VCounter","VField","filterFieldProps","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","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_Fragment","preventDefault","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 { filterFieldProps, 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(props.modelValue)) ? val : (val[0] ?? null),\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\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 = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\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 >\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.mjs","names":["VChip","VCounter","VField","filterFieldProps","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","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_Fragment","preventDefault","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 { filterFieldProps, 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(props.modelValue)) ? val : (val[0] ?? null),\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\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 = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\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 >\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 +1 @@
1
- {"version":3,"file":"VCol.mjs","names":["makeComponentProps","breakpoints","makeTagProps","capitalize","computed","h","genericComponent","propsFactory","breakpointProps","reduce","props","val","type","Boolean","String","Number","default","offsetProps","offsetKey","orderProps","orderKey","propMap","col","Object","keys","offset","order","breakpointClass","prop","className","undefined","breakpoint","replace","toLowerCase","ALIGN_SELF_VALUES","makeVColProps","cols","alignSelf","validator","str","includes","VCol","name","setup","_ref","slots","classes","classList","forEach","value","push","hasColClasses","some","startsWith","tag","class","style"],"sources":["../../../src/components/VGrid/VCol.ts"],"sourcesContent":["// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\ntype BreakpointOffset = `offset${Capitalize<Breakpoint>}`\ntype BreakpointOrder = `order${Capitalize<Breakpoint>}`\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Record<Breakpoint, Prop<boolean | string | number, false>>)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n const offsetKey = ('offset' + capitalize(val)) as BreakpointOffset\n props[offsetKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record<BreakpointOffset, Prop<string | number, null>>)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n const orderKey = ('order' + capitalize(val)) as BreakpointOrder\n props[orderKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record<BreakpointOrder, Prop<string | number, null>>)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className: string = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n if (type === 'col') {\n className = 'v-' + className\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <v-col sm></v-col> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'] as const\n\nexport const makeVColProps = propsFactory({\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String as PropType<typeof ALIGN_SELF_VALUES[number]>,\n default: null,\n validator: (str: any) => ALIGN_SELF_VALUES.includes(str),\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCol')\n\nexport const VCol = genericComponent()({\n name: 'VCol',\n\n props: makeVColProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('v-col-'))\n\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VCol = InstanceType<typeof VCol>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VCol.mjs","names":["makeComponentProps","breakpoints","makeTagProps","capitalize","computed","h","genericComponent","propsFactory","breakpointProps","reduce","props","val","type","Boolean","String","Number","default","offsetProps","offsetKey","orderProps","orderKey","propMap","col","Object","keys","offset","order","breakpointClass","prop","className","undefined","breakpoint","replace","toLowerCase","ALIGN_SELF_VALUES","makeVColProps","cols","alignSelf","validator","str","includes","VCol","name","setup","_ref","slots","classes","classList","forEach","value","push","hasColClasses","some","startsWith","tag","class","style"],"sources":["../../../src/components/VGrid/VCol.ts"],"sourcesContent":["// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\ntype BreakpointOffset = `offset${Capitalize<Breakpoint>}`\ntype BreakpointOrder = `order${Capitalize<Breakpoint>}`\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Record<Breakpoint, Prop<boolean | string | number, false>>)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n const offsetKey = ('offset' + capitalize(val)) as BreakpointOffset\n props[offsetKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record<BreakpointOffset, Prop<string | number, null>>)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n const orderKey = ('order' + capitalize(val)) as BreakpointOrder\n props[orderKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record<BreakpointOrder, Prop<string | number, null>>)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className: string = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n if (type === 'col') {\n className = 'v-' + className\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <v-col sm></v-col> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'] as const\n\nexport const makeVColProps = propsFactory({\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String as PropType<typeof ALIGN_SELF_VALUES[number]>,\n default: null,\n validator: (str: any) => ALIGN_SELF_VALUES.includes(str),\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCol')\n\nexport const VCol = genericComponent()({\n name: 'VCol',\n\n props: makeVColProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('v-col-'))\n\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VCol = InstanceType<typeof VCol>\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VRow.mjs","names":["makeComponentProps","breakpoints","makeTagProps","capitalize","computed","h","genericComponent","propsFactory","ALIGNMENT","SPACE","makeRowProps","prefix","def","reduce","props","val","prefixKey","ALIGN_VALUES","alignValidator","str","includes","alignProps","type","String","default","validator","JUSTIFY_VALUES","justifyValidator","justifyProps","ALIGN_CONTENT_VALUES","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","undefined","breakpoint","replace","toLowerCase","makeVRowProps","dense","Boolean","noGutters","VRow","name","setup","_ref","slots","classes","classList","forEach","value","push","tag","class","style"],"sources":["../../../src/components/VGrid/VRow.ts"],"sourcesContent":["// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\ntype BreakpointAlign = `align${Capitalize<Breakpoint>}`\ntype BreakpointJustify = `justify${Capitalize<Breakpoint>}`\ntype BreakpointAlignContent = `alignContent${Capitalize<Breakpoint>}`\n\nconst SPACE = ['space-between', 'space-around', 'space-evenly'] as const\n\nfunction makeRowProps <\n Name extends BreakpointAlign | BreakpointJustify | BreakpointAlignContent,\n Type,\n> (prefix: string, def: () => Prop<Type, null>) {\n return breakpoints.reduce((props, val) => {\n const prefixKey = prefix + capitalize(val) as Name\n props[prefixKey] = def()\n return props\n }, {} as Record<Name, Prop<Type, null>>)\n}\n\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'] as const\ntype AlignValue = typeof ALIGN_VALUES[number]\nconst alignValidator = (str: any) => ALIGN_VALUES.includes(str)\nconst alignProps = makeRowProps<BreakpointAlign, AlignValue>('align', () => ({\n type: String as PropType<AlignValue>,\n default: null,\n validator: alignValidator,\n}))\n\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE] as const\ntype JustifyValue = typeof JUSTIFY_VALUES[number]\nconst justifyValidator = (str: any) => JUSTIFY_VALUES.includes(str)\nconst justifyProps = makeRowProps<BreakpointJustify, JustifyValue>('justify', () => ({\n type: String as PropType<JustifyValue>,\n default: null,\n validator: justifyValidator,\n}))\n\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'] as const\ntype AlignContentValue = typeof ALIGN_CONTENT_VALUES[number]\nconst alignContentValidator = (str: any) => ALIGN_CONTENT_VALUES.includes(str)\nconst alignContentProps = makeRowProps<BreakpointAlignContent, AlignContentValue>('alignContent', () => ({\n type: String as PropType<AlignContentValue>,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const makeVRowProps = propsFactory({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String as PropType<typeof ALIGN_VALUES[number]>,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: alignContentValidator,\n },\n\n ...alignContentProps,\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VRow')\n\nexport const VRow = genericComponent()({\n name: 'VRow',\n\n props: makeVRowProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n 'v-row',\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VRow = InstanceType<typeof VRow>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VRow.mjs","names":["makeComponentProps","breakpoints","makeTagProps","capitalize","computed","h","genericComponent","propsFactory","ALIGNMENT","SPACE","makeRowProps","prefix","def","reduce","props","val","prefixKey","ALIGN_VALUES","alignValidator","str","includes","alignProps","type","String","default","validator","JUSTIFY_VALUES","justifyValidator","justifyProps","ALIGN_CONTENT_VALUES","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","undefined","breakpoint","replace","toLowerCase","makeVRowProps","dense","Boolean","noGutters","VRow","name","setup","_ref","slots","classes","classList","forEach","value","push","tag","class","style"],"sources":["../../../src/components/VGrid/VRow.ts"],"sourcesContent":["// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\ntype BreakpointAlign = `align${Capitalize<Breakpoint>}`\ntype BreakpointJustify = `justify${Capitalize<Breakpoint>}`\ntype BreakpointAlignContent = `alignContent${Capitalize<Breakpoint>}`\n\nconst SPACE = ['space-between', 'space-around', 'space-evenly'] as const\n\nfunction makeRowProps <\n Name extends BreakpointAlign | BreakpointJustify | BreakpointAlignContent,\n Type,\n> (prefix: string, def: () => Prop<Type, null>) {\n return breakpoints.reduce((props, val) => {\n const prefixKey = prefix + capitalize(val) as Name\n props[prefixKey] = def()\n return props\n }, {} as Record<Name, Prop<Type, null>>)\n}\n\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'] as const\ntype AlignValue = typeof ALIGN_VALUES[number]\nconst alignValidator = (str: any) => ALIGN_VALUES.includes(str)\nconst alignProps = makeRowProps<BreakpointAlign, AlignValue>('align', () => ({\n type: String as PropType<AlignValue>,\n default: null,\n validator: alignValidator,\n}))\n\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE] as const\ntype JustifyValue = typeof JUSTIFY_VALUES[number]\nconst justifyValidator = (str: any) => JUSTIFY_VALUES.includes(str)\nconst justifyProps = makeRowProps<BreakpointJustify, JustifyValue>('justify', () => ({\n type: String as PropType<JustifyValue>,\n default: null,\n validator: justifyValidator,\n}))\n\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'] as const\ntype AlignContentValue = typeof ALIGN_CONTENT_VALUES[number]\nconst alignContentValidator = (str: any) => ALIGN_CONTENT_VALUES.includes(str)\nconst alignContentProps = makeRowProps<BreakpointAlignContent, AlignContentValue>('alignContent', () => ({\n type: String as PropType<AlignContentValue>,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const makeVRowProps = propsFactory({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String as PropType<typeof ALIGN_VALUES[number]>,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: alignContentValidator,\n },\n\n ...alignContentProps,\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VRow')\n\nexport const VRow = genericComponent()({\n name: 'VRow',\n\n props: makeVRowProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n 'v-row',\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VRow = InstanceType<typeof VRow>\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VImg.mjs","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","alt","String","cover","Boolean","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 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 src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\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 src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\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 { 'v-img--booting': !isBooted.value },\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.mjs","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","alt","String","cover","Boolean","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 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 src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\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 src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\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 { 'v-img--booting': !isBooted.value },\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 +1 @@
1
- {"version":3,"file":"VInfiniteScroll.mjs","names":["VBtn","VProgressCircular","makeDimensionProps","useDimension","useIntersectionObserver","useLocale","makeTagProps","computed","nextTick","onMounted","ref","shallowRef","watch","convertToUnit","defineComponent","genericComponent","propsFactory","useRender","makeVInfiniteScrollProps","color","String","direction","type","default","validator","v","includes","side","mode","margin","Number","loadMoreText","emptyText","VInfiniteScrollIntersect","name","props","required","rootRef","rootMargin","emits","intersect","isIntersecting","setup","_ref","emit","intersectionRef","entries","undefined","val","_createVNode","_createTextVNode","VInfiniteScroll","load","options","_ref2","slots","rootEl","startStatus","endStatus","setScrollAmount","amount","value","property","getScrollAmount","getScrollSize","getContainerSize","setStatus","status","getStatus","previousScrollSize","handleIntersect","_isIntersecting","intersecting","done","window","requestAnimationFrame","t","renderSide","onClick","slotProps","error","empty","loading","dimensionStyles","Tag","tag","hasStartIntersect","hasEndIntersect","intersectMode"],"sources":["../../../src/components/VInfiniteScroll/VInfiniteScroll.tsx"],"sourcesContent":["// Styles\nimport './VInfiniteScroll.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, watch } from 'vue'\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type InfiniteScrollSide = 'start' | 'end' | 'both'\nexport type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'\n\ntype InfiniteScrollSlot = {\n side: InfiniteScrollSide\n props: Record<string, any>\n}\n\ntype VInfiniteScrollSlots = {\n default: never\n loading: InfiniteScrollSlot\n error: InfiniteScrollSlot\n empty: InfiniteScrollSlot\n 'load-more': InfiniteScrollSlot\n}\n\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String as PropType<'vertical' | 'horizontal'>,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n side: {\n type: String as PropType<InfiniteScrollSide>,\n default: 'end',\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n },\n mode: {\n type: String as PropType<'intersect' | 'manual'>,\n default: 'intersect',\n validator: (v: any) => ['intersect', 'manual'].includes(v),\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore',\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty',\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VInfiniteScroll')\n\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n\n props: {\n side: {\n type: String as PropType<InfiniteScrollSide>,\n required: true,\n },\n rootRef: null,\n rootMargin: String,\n },\n\n emits: {\n intersect: (side: InfiniteScrollSide, isIntersecting: boolean) => true,\n },\n\n setup (props, { emit }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver(entries => {\n }, props.rootMargin ? {\n rootMargin: props.rootMargin,\n } : undefined)\n\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val)\n })\n\n useRender(() => (\n <div class=\"v-infinite-scroll-intersect\" ref={ intersectionRef }>&nbsp;</div>\n ))\n\n return {}\n },\n})\n\nexport const VInfiniteScroll = genericComponent<VInfiniteScrollSlots>()({\n name: 'VInfiniteScroll',\n\n props: makeVInfiniteScrollProps(),\n\n emits: {\n load: (options: { side: InfiniteScrollSide, done: (status: InfiniteScrollStatus) => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n const rootEl = ref<HTMLDivElement>()\n const startStatus = shallowRef<InfiniteScrollStatus>('ok')\n const endStatus = shallowRef<InfiniteScrollStatus>('ok')\n const margin = computed(() => convertToUnit(props.margin))\n const isIntersecting = shallowRef(false)\n\n function setScrollAmount (amount: number) {\n if (!rootEl.value) return\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n rootEl.value[property] = amount\n }\n\n function getScrollAmount () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n return rootEl.value[property]\n }\n\n function getScrollSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth'\n return rootEl.value[property]\n }\n\n function getContainerSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth'\n return rootEl.value[property]\n }\n\n onMounted(() => {\n if (!rootEl.value) return\n\n if (props.side === 'start') {\n setScrollAmount(getScrollSize())\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2)\n }\n })\n\n function setStatus (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (side === 'start') {\n startStatus.value = status\n } else if (side === 'end') {\n endStatus.value = status\n }\n }\n\n function getStatus (side: string) {\n return side === 'start' ? startStatus.value : endStatus.value\n }\n\n let previousScrollSize = 0\n function handleIntersect (side: InfiniteScrollSide, _isIntersecting: boolean) {\n isIntersecting.value = _isIntersecting\n if (isIntersecting.value) {\n intersecting(side)\n }\n }\n\n function intersecting (side: InfiniteScrollSide) {\n if (props.mode !== 'manual' && !isIntersecting.value) return\n\n const status = getStatus(side)\n if (!rootEl.value || ['empty', 'loading'].includes(status)) return\n\n previousScrollSize = getScrollSize()\n setStatus(side, 'loading')\n\n function done (status: InfiniteScrollStatus) {\n setStatus(side, status)\n\n nextTick(() => {\n if (status === 'empty' || status === 'error') return\n\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount())\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side)\n })\n })\n })\n })\n }\n })\n }\n\n emit('load', { side, done })\n }\n\n const { t } = useLocale()\n\n function renderSide (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (props.side !== side && props.side !== 'both') return\n\n const onClick = () => intersecting(side)\n const slotProps = { side, props: { onClick, color: props.color } }\n\n if (status === 'error') return slots.error?.(slotProps)\n\n if (status === 'empty') return slots.empty?.(slotProps) ?? <div>{ t(props.emptyText) }</div>\n\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n return slots['load-more']?.(slotProps) ?? (\n <VBtn variant=\"outlined\" color={ props.color } onClick={ onClick }>\n { t(props.loadMoreText) }\n </VBtn>\n )\n }\n\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => {\n const Tag = props.tag\n const hasStartIntersect = props.side === 'start' || props.side === 'both'\n const hasEndIntersect = props.side === 'end' || props.side === 'both'\n const intersectMode = props.mode === 'intersect'\n\n return (\n <Tag\n ref={ rootEl }\n class={[\n 'v-infinite-scroll',\n `v-infinite-scroll--${props.direction}`,\n {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect,\n },\n ]}\n style={ dimensionStyles.value }\n >\n <div class=\"v-infinite-scroll__side\">\n { renderSide('start', startStatus.value) }\n </div>\n\n { rootEl.value && hasStartIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"start\"\n side=\"start\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n { slots.default?.() }\n\n { rootEl.value && hasEndIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"end\"\n side=\"end\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n <div class=\"v-infinite-scroll__side\">\n { renderSide('end', endStatus.value) }\n </div>\n </Tag>\n )\n })\n },\n})\n\nexport type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VInfiniteScroll.mjs","names":["VBtn","VProgressCircular","makeDimensionProps","useDimension","useIntersectionObserver","useLocale","makeTagProps","computed","nextTick","onMounted","ref","shallowRef","watch","convertToUnit","defineComponent","genericComponent","propsFactory","useRender","makeVInfiniteScrollProps","color","String","direction","type","default","validator","v","includes","side","mode","margin","Number","loadMoreText","emptyText","VInfiniteScrollIntersect","name","props","required","rootRef","rootMargin","emits","intersect","isIntersecting","setup","_ref","emit","intersectionRef","entries","undefined","val","_createVNode","_createTextVNode","VInfiniteScroll","load","options","_ref2","slots","rootEl","startStatus","endStatus","setScrollAmount","amount","value","property","getScrollAmount","getScrollSize","getContainerSize","setStatus","status","getStatus","previousScrollSize","handleIntersect","_isIntersecting","intersecting","done","window","requestAnimationFrame","t","renderSide","onClick","slotProps","error","empty","loading","dimensionStyles","Tag","tag","hasStartIntersect","hasEndIntersect","intersectMode"],"sources":["../../../src/components/VInfiniteScroll/VInfiniteScroll.tsx"],"sourcesContent":["// Styles\nimport './VInfiniteScroll.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, watch } from 'vue'\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type InfiniteScrollSide = 'start' | 'end' | 'both'\nexport type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'\n\ntype InfiniteScrollSlot = {\n side: InfiniteScrollSide\n props: Record<string, any>\n}\n\ntype VInfiniteScrollSlots = {\n default: never\n loading: InfiniteScrollSlot\n error: InfiniteScrollSlot\n empty: InfiniteScrollSlot\n 'load-more': InfiniteScrollSlot\n}\n\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String as PropType<'vertical' | 'horizontal'>,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n side: {\n type: String as PropType<InfiniteScrollSide>,\n default: 'end',\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n },\n mode: {\n type: String as PropType<'intersect' | 'manual'>,\n default: 'intersect',\n validator: (v: any) => ['intersect', 'manual'].includes(v),\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore',\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty',\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VInfiniteScroll')\n\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n\n props: {\n side: {\n type: String as PropType<InfiniteScrollSide>,\n required: true,\n },\n rootRef: null,\n rootMargin: String,\n },\n\n emits: {\n intersect: (side: InfiniteScrollSide, isIntersecting: boolean) => true,\n },\n\n setup (props, { emit }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver(entries => {\n }, props.rootMargin ? {\n rootMargin: props.rootMargin,\n } : undefined)\n\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val)\n })\n\n useRender(() => (\n <div class=\"v-infinite-scroll-intersect\" ref={ intersectionRef }>&nbsp;</div>\n ))\n\n return {}\n },\n})\n\nexport const VInfiniteScroll = genericComponent<VInfiniteScrollSlots>()({\n name: 'VInfiniteScroll',\n\n props: makeVInfiniteScrollProps(),\n\n emits: {\n load: (options: { side: InfiniteScrollSide, done: (status: InfiniteScrollStatus) => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n const rootEl = ref<HTMLDivElement>()\n const startStatus = shallowRef<InfiniteScrollStatus>('ok')\n const endStatus = shallowRef<InfiniteScrollStatus>('ok')\n const margin = computed(() => convertToUnit(props.margin))\n const isIntersecting = shallowRef(false)\n\n function setScrollAmount (amount: number) {\n if (!rootEl.value) return\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n rootEl.value[property] = amount\n }\n\n function getScrollAmount () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n return rootEl.value[property]\n }\n\n function getScrollSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth'\n return rootEl.value[property]\n }\n\n function getContainerSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth'\n return rootEl.value[property]\n }\n\n onMounted(() => {\n if (!rootEl.value) return\n\n if (props.side === 'start') {\n setScrollAmount(getScrollSize())\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2)\n }\n })\n\n function setStatus (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (side === 'start') {\n startStatus.value = status\n } else if (side === 'end') {\n endStatus.value = status\n }\n }\n\n function getStatus (side: string) {\n return side === 'start' ? startStatus.value : endStatus.value\n }\n\n let previousScrollSize = 0\n function handleIntersect (side: InfiniteScrollSide, _isIntersecting: boolean) {\n isIntersecting.value = _isIntersecting\n if (isIntersecting.value) {\n intersecting(side)\n }\n }\n\n function intersecting (side: InfiniteScrollSide) {\n if (props.mode !== 'manual' && !isIntersecting.value) return\n\n const status = getStatus(side)\n if (!rootEl.value || ['empty', 'loading'].includes(status)) return\n\n previousScrollSize = getScrollSize()\n setStatus(side, 'loading')\n\n function done (status: InfiniteScrollStatus) {\n setStatus(side, status)\n\n nextTick(() => {\n if (status === 'empty' || status === 'error') return\n\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount())\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side)\n })\n })\n })\n })\n }\n })\n }\n\n emit('load', { side, done })\n }\n\n const { t } = useLocale()\n\n function renderSide (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (props.side !== side && props.side !== 'both') return\n\n const onClick = () => intersecting(side)\n const slotProps = { side, props: { onClick, color: props.color } }\n\n if (status === 'error') return slots.error?.(slotProps)\n\n if (status === 'empty') return slots.empty?.(slotProps) ?? <div>{ t(props.emptyText) }</div>\n\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n return slots['load-more']?.(slotProps) ?? (\n <VBtn variant=\"outlined\" color={ props.color } onClick={ onClick }>\n { t(props.loadMoreText) }\n </VBtn>\n )\n }\n\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => {\n const Tag = props.tag\n const hasStartIntersect = props.side === 'start' || props.side === 'both'\n const hasEndIntersect = props.side === 'end' || props.side === 'both'\n const intersectMode = props.mode === 'intersect'\n\n return (\n <Tag\n ref={ rootEl }\n class={[\n 'v-infinite-scroll',\n `v-infinite-scroll--${props.direction}`,\n {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect,\n },\n ]}\n style={ dimensionStyles.value }\n >\n <div class=\"v-infinite-scroll__side\">\n { renderSide('start', startStatus.value) }\n </div>\n\n { rootEl.value && hasStartIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"start\"\n side=\"start\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n { slots.default?.() }\n\n { rootEl.value && hasEndIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"end\"\n side=\"end\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n <div class=\"v-infinite-scroll__side\">\n { renderSide('end', endStatus.value) }\n </div>\n </Tag>\n )\n })\n },\n})\n\nexport type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB,0CAE1B;AAAA,SACSC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,uBAAuB;AAAA,SACvBC,SAAS;AAAA,SACTC,YAAY,qCAErB;AACA,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAClEC,aAAa,EAAEC,eAAe,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElF;AAmBA,OAAO,MAAMC,wBAAwB,GAAGF,YAAY,CAAC;EACnDG,KAAK,EAAEC,MAAM;EACbC,SAAS,EAAE;IACTC,IAAI,EAAEF,MAA6C;IACnDG,OAAO,EAAE,UAAU;IACnBC,SAAS,EAAGC,CAAM,IAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAACC,QAAQ,CAACD,CAAC;EAC9D,CAAC;EACDE,IAAI,EAAE;IACJL,IAAI,EAAEF,MAAsC;IAC5CG,OAAO,EAAE,KAAK;IACdC,SAAS,EAAGC,CAAM,IAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAACC,QAAQ,CAACD,CAAC;EAC5D,CAAC;EACDG,IAAI,EAAE;IACJN,IAAI,EAAEF,MAA0C;IAChDG,OAAO,EAAE,WAAW;IACpBC,SAAS,EAAGC,CAAM,IAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAACD,CAAC;EAC3D,CAAC;EACDI,MAAM,EAAE,CAACC,MAAM,EAAEV,MAAM,CAAC;EACxBW,YAAY,EAAE;IACZT,IAAI,EAAEF,MAAM;IACZG,OAAO,EAAE;EACX,CAAC;EACDS,SAAS,EAAE;IACTV,IAAI,EAAEF,MAAM;IACZG,OAAO,EAAE;EACX,CAAC;EAED,GAAGrB,kBAAkB,CAAC,CAAC;EACvB,GAAGI,YAAY,CAAC;AAClB,CAAC,EAAE,iBAAiB,CAAC;AAErB,OAAO,MAAM2B,wBAAwB,GAAGnB,eAAe,CAAC;EACtDoB,IAAI,EAAE,0BAA0B;EAEhCC,KAAK,EAAE;IACLR,IAAI,EAAE;MACJL,IAAI,EAAEF,MAAsC;MAC5CgB,QAAQ,EAAE;IACZ,CAAC;IACDC,OAAO,EAAE,IAAI;IACbC,UAAU,EAAElB;EACd,CAAC;EAEDmB,KAAK,EAAE;IACLC,SAAS,EAAEA,CAACb,IAAwB,EAAEc,cAAuB,KAAK;EACpE,CAAC;EAEDC,KAAKA,CAAEP,KAAK,EAAAQ,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpB,MAAM;MAAEE,eAAe;MAAEJ;IAAe,CAAC,GAAGrC,uBAAuB,CAAC0C,OAAO,IAAI,CAC/E,CAAC,EAAEX,KAAK,CAACG,UAAU,GAAG;MACpBA,UAAU,EAAEH,KAAK,CAACG;IACpB,CAAC,GAAGS,SAAS,CAAC;IAEdnC,KAAK,CAAC6B,cAAc,EAAE,MAAMO,GAAG,IAAI;MACjCJ,IAAI,CAAC,WAAW,EAAET,KAAK,CAACR,IAAI,EAAEqB,GAAG,CAAC;IACpC,CAAC,CAAC;IAEF/B,SAAS,CAAC,MAAAgC,YAAA;MAAA;MAAA,OACuCJ;IAAe,IAAAK,gBAAA,UAC/D,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC;AAEF,OAAO,MAAMC,eAAe,GAAGpC,gBAAgB,CAAuB,CAAC,CAAC;EACtEmB,IAAI,EAAE,iBAAiB;EAEvBC,KAAK,EAAEjB,wBAAwB,CAAC,CAAC;EAEjCqB,KAAK,EAAE;IACLa,IAAI,EAAGC,OAAmF,IAAK;EACjG,CAAC;EAEDX,KAAKA,CAAEP,KAAK,EAAAmB,KAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEX;IAAK,CAAC,GAAAU,KAAA;IAC3B,MAAME,MAAM,GAAG9C,GAAG,CAAiB,CAAC;IACpC,MAAM+C,WAAW,GAAG9C,UAAU,CAAuB,IAAI,CAAC;IAC1D,MAAM+C,SAAS,GAAG/C,UAAU,CAAuB,IAAI,CAAC;IACxD,MAAMkB,MAAM,GAAGtB,QAAQ,CAAC,MAAMM,aAAa,CAACsB,KAAK,CAACN,MAAM,CAAC,CAAC;IAC1D,MAAMY,cAAc,GAAG9B,UAAU,CAAC,KAAK,CAAC;IAExC,SAASgD,eAAeA,CAAEC,MAAc,EAAE;MACxC,IAAI,CAACJ,MAAM,CAACK,KAAK,EAAE;MAEnB,MAAMC,QAAQ,GAAG3B,KAAK,CAACd,SAAS,KAAK,UAAU,GAAG,WAAW,GAAG,YAAY;MAC5EmC,MAAM,CAACK,KAAK,CAACC,QAAQ,CAAC,GAAGF,MAAM;IACjC;IAEA,SAASG,eAAeA,CAAA,EAAI;MAC1B,IAAI,CAACP,MAAM,CAACK,KAAK,EAAE,OAAO,CAAC;MAE3B,MAAMC,QAAQ,GAAG3B,KAAK,CAACd,SAAS,KAAK,UAAU,GAAG,WAAW,GAAG,YAAY;MAC5E,OAAOmC,MAAM,CAACK,KAAK,CAACC,QAAQ,CAAC;IAC/B;IAEA,SAASE,aAAaA,CAAA,EAAI;MACxB,IAAI,CAACR,MAAM,CAACK,KAAK,EAAE,OAAO,CAAC;MAE3B,MAAMC,QAAQ,GAAG3B,KAAK,CAACd,SAAS,KAAK,UAAU,GAAG,cAAc,GAAG,aAAa;MAChF,OAAOmC,MAAM,CAACK,KAAK,CAACC,QAAQ,CAAC;IAC/B;IAEA,SAASG,gBAAgBA,CAAA,EAAI;MAC3B,IAAI,CAACT,MAAM,CAACK,KAAK,EAAE,OAAO,CAAC;MAE3B,MAAMC,QAAQ,GAAG3B,KAAK,CAACd,SAAS,KAAK,UAAU,GAAG,cAAc,GAAG,aAAa;MAChF,OAAOmC,MAAM,CAACK,KAAK,CAACC,QAAQ,CAAC;IAC/B;IAEArD,SAAS,CAAC,MAAM;MACd,IAAI,CAAC+C,MAAM,CAACK,KAAK,EAAE;MAEnB,IAAI1B,KAAK,CAACR,IAAI,KAAK,OAAO,EAAE;QAC1BgC,eAAe,CAACK,aAAa,CAAC,CAAC,CAAC;MAClC,CAAC,MAAM,IAAI7B,KAAK,CAACR,IAAI,KAAK,MAAM,EAAE;QAChCgC,eAAe,CAACK,aAAa,CAAC,CAAC,GAAG,CAAC,GAAGC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;MAC/D;IACF,CAAC,CAAC;IAEF,SAASC,SAASA,CAAEvC,IAAwB,EAAEwC,MAA4B,EAAE;MAC1E,IAAIxC,IAAI,KAAK,OAAO,EAAE;QACpB8B,WAAW,CAACI,KAAK,GAAGM,MAAM;MAC5B,CAAC,MAAM,IAAIxC,IAAI,KAAK,KAAK,EAAE;QACzB+B,SAAS,CAACG,KAAK,GAAGM,MAAM;MAC1B;IACF;IAEA,SAASC,SAASA,CAAEzC,IAAY,EAAE;MAChC,OAAOA,IAAI,KAAK,OAAO,GAAG8B,WAAW,CAACI,KAAK,GAAGH,SAAS,CAACG,KAAK;IAC/D;IAEA,IAAIQ,kBAAkB,GAAG,CAAC;IAC1B,SAASC,eAAeA,CAAE3C,IAAwB,EAAE4C,eAAwB,EAAE;MAC5E9B,cAAc,CAACoB,KAAK,GAAGU,eAAe;MACtC,IAAI9B,cAAc,CAACoB,KAAK,EAAE;QACxBW,YAAY,CAAC7C,IAAI,CAAC;MACpB;IACF;IAEA,SAAS6C,YAAYA,CAAE7C,IAAwB,EAAE;MAC/C,IAAIQ,KAAK,CAACP,IAAI,KAAK,QAAQ,IAAI,CAACa,cAAc,CAACoB,KAAK,EAAE;MAEtD,MAAMM,MAAM,GAAGC,SAAS,CAACzC,IAAI,CAAC;MAC9B,IAAI,CAAC6B,MAAM,CAACK,KAAK,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAACnC,QAAQ,CAACyC,MAAM,CAAC,EAAE;MAE5DE,kBAAkB,GAAGL,aAAa,CAAC,CAAC;MACpCE,SAAS,CAACvC,IAAI,EAAE,SAAS,CAAC;MAE1B,SAAS8C,IAAIA,CAAEN,MAA4B,EAAE;QAC3CD,SAAS,CAACvC,IAAI,EAAEwC,MAAM,CAAC;QAEvB3D,QAAQ,CAAC,MAAM;UACb,IAAI2D,MAAM,KAAK,OAAO,IAAIA,MAAM,KAAK,OAAO,EAAE;UAE9C,IAAIA,MAAM,KAAK,IAAI,IAAIxC,IAAI,KAAK,OAAO,EAAE;YACvCgC,eAAe,CAACK,aAAa,CAAC,CAAC,GAAGK,kBAAkB,GAAGN,eAAe,CAAC,CAAC,CAAC;UAC3E;UACA,IAAI5B,KAAK,CAACP,IAAI,KAAK,QAAQ,EAAE;YAC3BpB,QAAQ,CAAC,MAAM;cACbkE,MAAM,CAACC,qBAAqB,CAAC,MAAM;gBACjCD,MAAM,CAACC,qBAAqB,CAAC,MAAM;kBACjCD,MAAM,CAACC,qBAAqB,CAAC,MAAM;oBACjCH,YAAY,CAAC7C,IAAI,CAAC;kBACpB,CAAC,CAAC;gBACJ,CAAC,CAAC;cACJ,CAAC,CAAC;YACJ,CAAC,CAAC;UACJ;QACF,CAAC,CAAC;MACJ;MAEAiB,IAAI,CAAC,MAAM,EAAE;QAAEjB,IAAI;QAAE8C;MAAK,CAAC,CAAC;IAC9B;IAEA,MAAM;MAAEG;IAAE,CAAC,GAAGvE,SAAS,CAAC,CAAC;IAEzB,SAASwE,UAAUA,CAAElD,IAAwB,EAAEwC,MAA4B,EAAE;MAC3E,IAAIhC,KAAK,CAACR,IAAI,KAAKA,IAAI,IAAIQ,KAAK,CAACR,IAAI,KAAK,MAAM,EAAE;MAElD,MAAMmD,OAAO,GAAGA,CAAA,KAAMN,YAAY,CAAC7C,IAAI,CAAC;MACxC,MAAMoD,SAAS,GAAG;QAAEpD,IAAI;QAAEQ,KAAK,EAAE;UAAE2C,OAAO;UAAE3D,KAAK,EAAEgB,KAAK,CAAChB;QAAM;MAAE,CAAC;MAElE,IAAIgD,MAAM,KAAK,OAAO,EAAE,OAAOZ,KAAK,CAACyB,KAAK,GAAGD,SAAS,CAAC;MAEvD,IAAIZ,MAAM,KAAK,OAAO,EAAE,OAAOZ,KAAK,CAAC0B,KAAK,GAAGF,SAAS,CAAC,IAAA9B,YAAA,eAAW2B,CAAC,CAACzC,KAAK,CAACH,SAAS,CAAC,EAAQ;MAE5F,IAAIG,KAAK,CAACP,IAAI,KAAK,QAAQ,EAAE;QAC3B,IAAIuC,MAAM,KAAK,SAAS,EAAE;UACxB,OAAOZ,KAAK,CAAC2B,OAAO,GAAGH,SAAS,CAAC,IAAA9B,YAAA,CAAAhD,iBAAA;YAAA;YAAA,SACUkC,KAAK,CAAChB;UAAK,QACrD;QACH;QAEA,OAAOoC,KAAK,CAAC,WAAW,CAAC,GAAGwB,SAAS,CAAC,IAAA9B,YAAA,CAAAjD,IAAA;UAAA;UAAA,SACHmC,KAAK,CAAChB,KAAK;UAAA,WAAa2D;QAAO;UAAAvD,OAAA,EAAAA,CAAA,MAC5DqD,CAAC,CAACzC,KAAK,CAACJ,YAAY,CAAC;QAAA,EAE1B;MACH;MAEA,OAAOwB,KAAK,CAAC2B,OAAO,GAAGH,SAAS,CAAC,IAAA9B,YAAA,CAAAhD,iBAAA;QAAA;QAAA,SACUkC,KAAK,CAAChB;MAAK,QACrD;IACH;IAEA,MAAM;MAAEgE;IAAgB,CAAC,GAAGhF,YAAY,CAACgC,KAAK,CAAC;IAE/ClB,SAAS,CAAC,MAAM;MACd,MAAMmE,GAAG,GAAGjD,KAAK,CAACkD,GAAG;MACrB,MAAMC,iBAAiB,GAAGnD,KAAK,CAACR,IAAI,KAAK,OAAO,IAAIQ,KAAK,CAACR,IAAI,KAAK,MAAM;MACzE,MAAM4D,eAAe,GAAGpD,KAAK,CAACR,IAAI,KAAK,KAAK,IAAIQ,KAAK,CAACR,IAAI,KAAK,MAAM;MACrE,MAAM6D,aAAa,GAAGrD,KAAK,CAACP,IAAI,KAAK,WAAW;MAEhD,OAAAqB,YAAA,CAAAmC,GAAA;QAAA,OAEU5B,MAAM;QAAA,SACL,CACL,mBAAmB,EACnB,sBAAsBrB,KAAK,CAACd,SAAS,EAAE,EACvC;UACE,0BAA0B,EAAEiE,iBAAiB;UAC7C,wBAAwB,EAAEC;QAC5B,CAAC,CACF;QAAA,SACOJ,eAAe,CAACtB;MAAK;QAAAtC,OAAA,EAAAA,CAAA,MAAA0B,YAAA;UAAA;QAAA,IAGzB4B,UAAU,CAAC,OAAO,EAAEpB,WAAW,CAACI,KAAK,CAAC,IAGxCL,MAAM,CAACK,KAAK,IAAIyB,iBAAiB,IAAIE,aAAa,IAAAvC,YAAA,CAAAhB,wBAAA;UAAA;UAAA;UAAA,eAIlCqC,eAAe;UAAA,WACnBd,MAAM,CAACK,KAAK;UAAA,cACThC,MAAM,CAACgC;QAAK,QAE5B,EAECN,KAAK,CAAChC,OAAO,GAAG,CAAC,EAEjBiC,MAAM,CAACK,KAAK,IAAI0B,eAAe,IAAIC,aAAa,IAAAvC,YAAA,CAAAhB,wBAAA;UAAA;UAAA;UAAA,eAIhCqC,eAAe;UAAA,WACnBd,MAAM,CAACK,KAAK;UAAA,cACThC,MAAM,CAACgC;QAAK,QAE5B,EAAAZ,YAAA;UAAA;QAAA,IAGG4B,UAAU,CAAC,KAAK,EAAEnB,SAAS,CAACG,KAAK,CAAC;MAAA;IAI5C,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"InputIcon.mjs","names":["VIcon","useLocale","useInputIcon","props","t","InputIcon","_ref","name","localeKey","prepend","prependInner","append","appendInner","clear","listener","label","undefined","_createVNode"],"sources":["../../../src/components/VInput/InputIcon.tsx"],"sourcesContent":["// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Types\nimport type { IconValue } from '@/composables/icons'\n\ntype names = 'clear' | 'prepend' | 'append' | 'appendInner' | 'prependInner'\n\ntype EventProp<T = (...args: any[]) => any> = T | T[]\ntype InputIconProps<T extends names> = {\n label: string | undefined\n} & {\n [K in `${T}Icon`]: IconValue | undefined\n} & {\n [K in `onClick:${T}`]: EventProp | undefined\n}\n\ntype Listeners<T extends {}, U = keyof T> = U extends `onClick:${infer V extends names}` ? V : never\n\nexport function useInputIcon<T extends {}, K extends names = Listeners<T>> (props: T & InputIconProps<K>) {\n const { t } = useLocale()\n\n function InputIcon ({ name }: { name: Extract<names, K> }) {\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear',\n }[name]\n const listener = props[`onClick:${name}`]\n const label = listener && localeKey\n ? t(`$vuetify.input.${localeKey}`, props.label ?? '')\n : undefined\n\n return (\n <VIcon\n icon={ props[`${name}Icon`] }\n aria-label={ label }\n onClick={ listener }\n />\n )\n }\n\n return { InputIcon }\n}\n"],"mappings":";AAAA;AAAA,SACSA,KAAK,8BAEd;AAAA,SACSC,SAAS,wCAElB;AAgBA,OAAO,SAASC,YAAYA,CAAgDC,KAA4B,EAAE;EACxG,MAAM;IAAEC;EAAE,CAAC,GAAGH,SAAS,CAAC,CAAC;EAEzB,SAASI,SAASA,CAAAC,IAAA,EAAyC;IAAA,IAAvC;MAAEC;IAAkC,CAAC,GAAAD,IAAA;IACvD,MAAME,SAAS,GAAG;MAChBC,OAAO,EAAE,eAAe;MACxBC,YAAY,EAAE,eAAe;MAC7BC,MAAM,EAAE,cAAc;MACtBC,WAAW,EAAE,cAAc;MAC3BC,KAAK,EAAE;IACT,CAAC,CAACN,IAAI,CAAC;IACP,MAAMO,QAAQ,GAAGX,KAAK,CAAE,WAAUI,IAAK,EAAC,CAAC;IACzC,MAAMQ,KAAK,GAAGD,QAAQ,IAAIN,SAAS,GAC/BJ,CAAC,CAAE,kBAAiBI,SAAU,EAAC,EAAEL,KAAK,CAACY,KAAK,IAAI,EAAE,CAAC,GACnDC,SAAS;IAEb,OAAAC,YAAA,CAAAjB,KAAA;MAAA,QAEWG,KAAK,CAAE,GAAEI,IAAK,MAAK,CAAC;MAAA,cACdQ,KAAK;MAAA,WACRD;IAAQ;EAGxB;EAEA,OAAO;IAAET;EAAU,CAAC;AACtB","ignoreList":[]}
1
+ {"version":3,"file":"InputIcon.mjs","names":["VIcon","useLocale","useInputIcon","props","t","InputIcon","_ref","name","localeKey","prepend","prependInner","append","appendInner","clear","listener","label","undefined","_createVNode"],"sources":["../../../src/components/VInput/InputIcon.tsx"],"sourcesContent":["// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Types\nimport type { IconValue } from '@/composables/icons'\n\ntype names = 'clear' | 'prepend' | 'append' | 'appendInner' | 'prependInner'\n\ntype EventProp<T = (...args: any[]) => any> = T | T[]\ntype InputIconProps<T extends names> = {\n label: string | undefined\n} & {\n [K in `${T}Icon`]: IconValue | undefined\n} & {\n [K in `onClick:${T}`]: EventProp | undefined\n}\n\ntype Listeners<T extends {}, U = keyof T> = U extends `onClick:${infer V extends names}` ? V : never\n\nexport function useInputIcon<T extends {}, K extends names = Listeners<T>> (props: T & InputIconProps<K>) {\n const { t } = useLocale()\n\n function InputIcon ({ name }: { name: Extract<names, K> }) {\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear',\n }[name]\n const listener = props[`onClick:${name}`]\n const label = listener && localeKey\n ? t(`$vuetify.input.${localeKey}`, props.label ?? '')\n : undefined\n\n return (\n <VIcon\n icon={ props[`${name}Icon`] }\n aria-label={ label }\n onClick={ listener }\n />\n )\n }\n\n return { InputIcon }\n}\n"],"mappings":";AAAA;AAAA,SACSA,KAAK,8BAEd;AAAA,SACSC,SAAS,wCAElB;AAgBA,OAAO,SAASC,YAAYA,CAAgDC,KAA4B,EAAE;EACxG,MAAM;IAAEC;EAAE,CAAC,GAAGH,SAAS,CAAC,CAAC;EAEzB,SAASI,SAASA,CAAAC,IAAA,EAAyC;IAAA,IAAvC;MAAEC;IAAkC,CAAC,GAAAD,IAAA;IACvD,MAAME,SAAS,GAAG;MAChBC,OAAO,EAAE,eAAe;MACxBC,YAAY,EAAE,eAAe;MAC7BC,MAAM,EAAE,cAAc;MACtBC,WAAW,EAAE,cAAc;MAC3BC,KAAK,EAAE;IACT,CAAC,CAACN,IAAI,CAAC;IACP,MAAMO,QAAQ,GAAGX,KAAK,CAAC,WAAWI,IAAI,EAAE,CAAC;IACzC,MAAMQ,KAAK,GAAGD,QAAQ,IAAIN,SAAS,GAC/BJ,CAAC,CAAC,kBAAkBI,SAAS,EAAE,EAAEL,KAAK,CAACY,KAAK,IAAI,EAAE,CAAC,GACnDC,SAAS;IAEb,OAAAC,YAAA,CAAAjB,KAAA;MAAA,QAEWG,KAAK,CAAC,GAAGI,IAAI,MAAM,CAAC;MAAA,cACdQ,KAAK;MAAA,WACRD;IAAQ;EAGxB;EAEA,OAAO;IAAET;EAAU,CAAC;AACtB","ignoreList":[]}