UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 8.73 kB
{"version":3,"file":"VBottomNavigation.mjs","names":["makeBorderProps","useBorder","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupProps","useGroup","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","useTheme","provideDefaults","useBackgroundColor","useSsrBoot","computed","toRef","convertToUnit","genericComponent","useRender","VBtnToggleSymbol","VBottomNavigation","name","props","bgColor","String","color","grow","Boolean","mode","type","validator","v","includes","height","Number","default","active","tag","modelValue","selectedClass","emits","value","setup","slots","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","densityClasses","elevationClasses","roundedClasses","ssrBootStyles","density","isActive","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","absolute","VBtn","stacked","variant","scoped","transform"],"sources":["../../../src/components/VBottomNavigation/VBottomNavigation.tsx"],"sourcesContent":["// Styles\nimport './VBottomNavigation.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\n\nexport const VBottomNavigation = genericComponent()({\n name: 'VBottomNavigation',\n\n props: {\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: (v: any) => !v || ['horizontal', 'shift'].includes(v),\n },\n height: {\n type: [Number, String],\n default: 56,\n },\n active: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({ name: 'bottom-navigation' }),\n ...makeTagProps({ tag: 'header' }),\n ...makeGroupProps({\n modelValue: true,\n selectedClass: 'v-btn--selected',\n }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { ssrBootStyles } = useSsrBoot()\n const height = computed(() => (\n Number(props.height) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ))\n const isActive = toRef(props, 'active')\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useGroup(props, VBtnToggleSymbol)\n\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text',\n },\n }, { scoped: true })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-bottom-navigation',\n {\n 'v-bottom-navigation--active': isActive.value,\n 'v-bottom-navigation--grow': props.grow,\n 'v-bottom-navigation--shift': props.mode === 'shift',\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n {\n height: convertToUnit(height.value),\n transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`,\n },\n ssrBootStyles.value,\n ]}\n >\n { slots.default && (\n <div class=\"v-bottom-navigation__content\">\n { slots.default() }\n </div>\n ) }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBottomNavigation = InstanceType<typeof VBottomNavigation>\n"],"mappings":"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"}