vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 6.19 kB
Source Map (JSON)
{"version":3,"file":"layout-footer.cjs","sources":["../../../components/layout/layout-footer.tsx"],"sourcesContent":["import { Icon } from '@/components/icon'\nimport { Linker } from '@/components/linker'\n\nimport { computed, defineComponent, renderSlot, toRef } from 'vue'\n\nimport { useNameHelper, useProps } from '@vexip-ui/config'\nimport { layoutFooterProps } from './props'\nimport { useLayoutState, useMediaQuery } from './helper'\n\nexport default defineComponent({\n name: 'LayoutFooter',\n props: layoutFooterProps,\n setup(_props, { slots }) {\n const props = useProps('layoutFooter', _props, {\n tag: 'footer',\n copyright: '',\n links: () => [],\n verticalLinks: 'md',\n })\n\n const nh = useNameHelper('layout')\n const layoutState = useLayoutState()\n const horizontalMatched = useMediaQuery(toRef(props, 'verticalLinks'))\n\n const className = computed(() => {\n return [\n nh.be('footer'),\n {\n [nh.bs('vars')]: !layoutState.isLayout,\n [nh.bem('footer', 'inherit')]: layoutState.isLayout || props.inherit,\n },\n layoutState.classes.footer,\n ]\n })\n\n function renderLinks() {\n if (!props.links?.length) {\n return <div role={'none'} aria-hidden style={'display: none'}></div>\n }\n\n return (\n <div\n class={[\n nh.be('links'),\n !horizontalMatched.value && nh.bem('links', 'vertical'),\n layoutState.classes.footerLinks,\n ]}\n >\n <div class={nh.be('links-row')}>\n {props.links.map((group, index) => (\n <div\n key={index}\n class={[\n nh.be('link-group'),\n !horizontalMatched.value && nh.bem('link-group', 'vertical'),\n ]}\n >\n <div class={[nh.be('link-name'), nh.bem('link-name', 'group')]}>\n {group.to ? (\n <Linker icon={group.icon} to={group.to} target={group.target}>\n {group.name}\n </Linker>\n ) : (\n [group.icon && <Icon icon={group.icon}></Icon>, group.name]\n )}\n {group.subname && <div class={nh.be('link-subname')}>{`- ${group.subname}`}</div>}\n </div>\n {group.children?.length\n ? group.children.map((link, index) => (\n <div key={index} class={nh.be('link')}>\n <Linker icon={link.icon} to={link.to} target={link.target}>\n {link.name}\n </Linker>\n {link.subname && (\n <div class={nh.be('link-subname')}>{`- ${link.subname}`}</div>\n )}\n </div>\n ))\n : null}\n </div>\n ))}\n </div>\n </div>\n )\n }\n\n return () => {\n const CustomTag = (props.tag || 'footer') as any\n\n return (\n <CustomTag class={className.value}>\n {slots.links ? renderSlot(slots, 'links') : renderLinks()}\n <div class={[nh.be('copyright'), layoutState.classes.copyright]}>\n {slots.copyright ? slots.copyright() : props.copyright}\n </div>\n </CustomTag>\n )\n }\n },\n})\n"],"names":["defineComponent","name","props","layoutFooterProps","setup","_props","slots","useProps","tag","copyright","links","verticalLinks","nh","useNameHelper","layoutState","useLayoutState","horizontalMatched","useMediaQuery","toRef","className","computed","be","bs","isLayout","bem","inherit","classes","footer","renderLinks","length","_createVNode","value","footerLinks","map","group","index","to","Linker","icon","target","default","Icon","subname","children","link","CustomTag","renderSlot"],"mappings":"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"}