{"version":3,"file":"Layout.cjs","sources":["../../../../../../packages/components/layout/src/Layout.tsx"],"sourcesContent":["import type { GeneratorArgument } from './interface';\nimport { computed, createVNode, defineComponent, provide, ref } from 'vue';\n\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport useStyle from '../style';\nimport { SiderHookProviderKey } from './injectionKey';\nimport { layoutProps } from './props';\n\nfunction generator({ suffixCls, tagName, name }: GeneratorArgument) {\n  return (BasicComponent: typeof BasicLayout) => {\n    const Adapter = defineComponent({\n      compatConfig: { MODE: 3 },\n      name,\n      props: layoutProps(),\n      setup(props, { slots }) {\n        const { prefixCls } = useConfigInject(suffixCls, props);\n        return () => {\n          const basicComponentProps = {\n            ...props,\n            prefixCls: prefixCls.value,\n            tagName,\n          };\n          return <BasicComponent {...basicComponentProps} v-slots={slots}></BasicComponent>;\n        };\n      },\n    });\n    return Adapter;\n  };\n}\n\nconst Basic = defineComponent({\n  compatConfig: { MODE: 3 },\n  props: layoutProps(),\n  setup(props, { slots }) {\n    return () => createVNode(props.tagName, { class: props.prefixCls }, slots);\n  },\n});\n\nconst BasicLayout = defineComponent({\n  compatConfig: { MODE: 3 },\n  inheritAttrs: false,\n  props: layoutProps(),\n  setup(props, { slots, attrs }) {\n    const { prefixCls, direction } = useConfigInject('', props);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    const siders = ref<string[]>([]);\n    const siderHookProvider = {\n      addSider: (id: string) => {\n        siders.value = [...siders.value, id];\n      },\n      removeSider: (id: string) => {\n        siders.value = siders.value.filter(currentId => currentId !== id);\n      },\n    };\n\n    provide(SiderHookProviderKey, siderHookProvider);\n    const divCls = computed(() => {\n      const { hasSider } = props;\n      return {\n        [hashId.value]: true,\n        [`${props.prefixCls}`]: true,\n        [`${props.prefixCls}-has-sider`]:\n          typeof hasSider === 'boolean' ? hasSider : siders.value.length > 0,\n        [`${props.prefixCls}-rtl`]: direction.value === 'rtl',\n      };\n    });\n    return () => {\n      const { tagName } = props;\n      return wrapSSR(createVNode(tagName, { ...attrs, class: [divCls.value, attrs.class] }, slots));\n    };\n  },\n});\n\nconst Layout = generator({\n  suffixCls: 'layout',\n  tagName: 'section',\n  name: 'ALayout',\n})(BasicLayout);\n\nconst Header = generator({\n  suffixCls: 'layout-header',\n  tagName: 'header',\n  name: 'ALayoutHeader',\n})(Basic);\n\nconst Footer = generator({\n  suffixCls: 'layout-footer',\n  tagName: 'footer',\n  name: 'ALayoutFooter',\n})(Basic);\n\nconst Content = generator({\n  suffixCls: 'layout-content',\n  tagName: 'main',\n  name: 'ALayoutContent',\n})(Basic);\n\nexport { Content, Footer, Header, Layout };\n"],"names":["generator","suffixCls","tagName","name","BasicComponent","Adapter","defineComponent","compatConfig","MODE","props","layoutProps","setup","slots","prefixCls","useConfigInject","basicComponentProps","value","_createVNode","Basic","createVNode","class","BasicLayout","inheritAttrs","attrs","direction","wrapSSR","hashId","useStyle","siders","ref","siderHookProvider","addSider","id","removeSider","filter","currentId","provide","SiderHookProviderKey","divCls","computed","hasSider","length","Layout","Header","Footer","Content"],"mappings":"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"}