{"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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"}