UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 5.73 kB
{"version":3,"file":"VFooter.mjs","names":["makeBorderProps","useBorder","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","useResizeObserver","computed","ref","toRef","genericComponent","useRender","VFooter","name","props","app","Boolean","color","String","height","type","Number","default","tag","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","elevationClasses","roundedClasses","autoHeight","resizeRef","entries","length","value","target","clientHeight","parseInt","layoutItemStyles","id","order","position","layoutSize","elementSize","undefined","active","absolute"],"sources":["../../../src/components/VFooter/VFooter.tsx"],"sourcesContent":["// Styles\nimport './VFooter.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\nexport const VFooter = genericComponent()({\n name: 'VFooter',\n\n props: {\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'footer' }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const autoHeight = ref(32)\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n autoHeight.value = entries[0].target.clientHeight\n })\n const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10))\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: height,\n elementSize: computed(() => props.height === 'auto' ? undefined : height.value),\n active: computed(() => props.app),\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-footer',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n props.app ? layoutItemStyles.value : undefined,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VFooter = InstanceType<typeof VFooter>\n"],"mappings":"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"}