{"version":3,"file":"PageHeader.mjs","sources":["../../../../../../packages/components/page-header/src/PageHeader.tsx"],"sourcesContent":["import type { CustomSlotsType } from '@antdv/types';\nimport { ArrowLeftOutlined, ArrowRightOutlined } from '@ant-design/icons-vue';\nimport { useDestroyed } from '@antdv/hooks';\nimport { classNames, filterEmpty, flattenChildren, isEmptyContent } from '@antdv/utils';\nimport { ResizeObserver, TransButton } from '@antdv/vue-components';\nimport { computed, defineComponent, shallowRef } from 'vue';\nimport Avatar from '../../avatar';\nimport Breadcrumb from '../../breadcrumb';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\n\nimport LocaleReceiver from '../../locale-provider/src/LocaleReceiver';\nimport Space from '../../space';\nimport useStyle from '../style';\nimport { pageHeaderProps } from './props';\n\n// CSSINJS\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'APageHeader',\n  inheritAttrs: false,\n  props: pageHeaderProps(),\n  // emits: ['back'],\n  slots: Object as CustomSlotsType<{\n    backIcon: any\n    avatar: any\n    breadcrumb: any\n    title: any\n    subTitle: any\n    tags: any\n    extra: any\n    footer: any\n    default: any\n  }>,\n  setup(props, { emit, slots, attrs }) {\n    const { prefixCls, direction, pageHeader } = useConfigInject('page-header', props);\n\n    // style\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    const compact = shallowRef(false);\n    const isDestroyed = useDestroyed();\n    const onResize = ({ width }: { width: number }) => {\n      if (!isDestroyed.value)\n        compact.value = width < 768;\n    };\n    const ghost = computed(() => props.ghost ?? pageHeader?.value?.ghost ?? true);\n\n    const getBackIcon = () => {\n      return (\n        props.backIcon\n        ?? slots.backIcon?.()\n        ?? (direction.value === 'rtl' ? <ArrowRightOutlined /> : <ArrowLeftOutlined />)\n      );\n    };\n\n    const renderBack = (backIcon: any) => {\n      if (!backIcon || !props.onBack)\n        return null;\n\n      return (\n        <LocaleReceiver\n          componentName=\"PageHeader\"\n          children={({ back }: any) => (\n            <div class={`${prefixCls.value}-back`}>\n              <TransButton\n                onClick={(e) => {\n                  emit('back', e);\n                }}\n                class={`${prefixCls.value}-back-button`}\n                aria-label={back}\n              >\n                {backIcon}\n              </TransButton>\n            </div>\n          )}\n        >\n        </LocaleReceiver>\n      );\n    };\n\n    const renderBreadcrumb = () => {\n      return props.breadcrumb ? <Breadcrumb {...props.breadcrumb} /> : slots.breadcrumb?.();\n    };\n\n    const renderTitle = () => {\n      const { avatar } = props;\n      const title = props.title ?? slots.title?.();\n      const subTitle = props.subTitle ?? slots.subTitle?.();\n      const tags = props.tags ?? slots.tags?.();\n      const extra = props.extra ?? slots.extra?.();\n      const headingPrefixCls = `${prefixCls.value}-heading`;\n      const hasHeading = title || subTitle || tags || extra;\n      // If there is nothing, return a null\n      if (!hasHeading)\n        return null;\n\n      const backIcon = getBackIcon();\n      const backIconDom = renderBack(backIcon);\n      const hasTitle = backIconDom || avatar || hasHeading;\n      return (\n        <div class={headingPrefixCls}>\n          {hasTitle && (\n            <div class={`${headingPrefixCls}-left`}>\n              {backIconDom}\n              {avatar ? <Avatar {...avatar} /> : slots.avatar?.()}\n              {title && (\n                <span\n                  class={`${headingPrefixCls}-title`}\n                  title={typeof title === 'string' ? title : undefined}\n                >\n                  {title}\n                </span>\n              )}\n              {subTitle && (\n                <span\n                  class={`${headingPrefixCls}-sub-title`}\n                  title={typeof subTitle === 'string' ? subTitle : undefined}\n                >\n                  {subTitle}\n                </span>\n              )}\n              {tags && <span class={`${headingPrefixCls}-tags`}>{tags}</span>}\n            </div>\n          )}\n          {extra && (\n            <span class={`${headingPrefixCls}-extra`}>\n              <Space>{extra}</Space>\n            </span>\n          )}\n        </div>\n      );\n    };\n\n    const renderFooter = () => {\n      const footer = props.footer ?? filterEmpty(slots.footer?.());\n      return isEmptyContent(footer)\n        ? null\n        : (\n            <div class={`${prefixCls.value}-footer`}>{footer}</div>\n          );\n    };\n\n    const renderChildren = (children: any) => {\n      return <div class={`${prefixCls.value}-content`}>{children}</div>;\n    };\n    return () => {\n      const hasBreadcrumb = props.breadcrumb?.routes || slots.breadcrumb;\n      const hasFooter = props.footer || slots.footer;\n      const children = flattenChildren(slots.default?.());\n      const className = classNames(\n        prefixCls.value,\n        {\n          'has-breadcrumb': hasBreadcrumb,\n          'has-footer': hasFooter,\n          [`${prefixCls.value}-ghost`]: ghost.value,\n          [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n          [`${prefixCls.value}-compact`]: compact.value,\n        },\n        attrs.class,\n        hashId.value,\n      );\n      return wrapSSR(\n        <ResizeObserver onResize={onResize}>\n          <div {...attrs} class={className}>\n            {renderBreadcrumb()}\n            {renderTitle()}\n            {children.length ? renderChildren(children) : null}\n            {renderFooter()}\n          </div>\n        </ResizeObserver>,\n      );\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","props","pageHeaderProps","slots","Object","setup","emit","attrs","prefixCls","direction","pageHeader","useConfigInject","wrapSSR","hashId","useStyle","compact","shallowRef","isDestroyed","useDestroyed","onResize","width","value","ghost","computed","getBackIcon","backIcon","_createVNode","ArrowRightOutlined","ArrowLeftOutlined","renderBack","onBack","LocaleReceiver","children","back","TransButton","e","default","renderBreadcrumb","breadcrumb","Breadcrumb","renderTitle","avatar","title","subTitle","tags","extra","headingPrefixCls","hasHeading","backIconDom","hasTitle","Avatar","undefined","Space","renderFooter","footer","filterEmpty","isEmptyContent","renderChildren","hasBreadcrumb","routes","hasFooter","flattenChildren","className","classNames","class","ResizeObserver","length"],"mappings":"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"}