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