{"version":3,"file":"empty.mjs","sources":["../../../../../../../packages/components/empty/src/empty.tsx"],"sourcesContent":["import { type ExtractPropTypes, type PropType, defineComponent } from 'vue'\nimport {\n  createNamespace,\n  getSizeStyle,\n  makeStringProp,\n} from '@xzx-design/utils'\nimport {\n  renderEmpty,\n  renderLoss,\n  renderNetwork,\n  renderNoPermission,\n  renderNoSignal,\n  renderNotFound,\n  renderSystem,\n} from './svgs'\n\nimport type { EmptyImageTypes } from './types'\nimport type { Numeric } from '@xzx-design/utils'\n\nconst [name, bem] = createNamespace('empty')\n\nexport const emptyProps = {\n  image: makeStringProp<EmptyImageTypes>('default'),\n  imageSize: [Number, String, Array] as PropType<Numeric | [Numeric, Numeric]>,\n  description: String,\n}\n\nexport type EmptyProps = ExtractPropTypes<typeof emptyProps>\n\nexport default defineComponent({\n  name,\n\n  props: emptyProps,\n\n  setup(props, { slots }) {\n    const renderDescription = () => {\n      const description = slots.description\n        ? slots.description()\n        : props.description\n\n      if (description) {\n        return <p class={bem('description')}>{description}</p>\n      }\n    }\n\n    const renderBottom = () => {\n      if (slots.default) {\n        return <div class={bem('bottom')}>{slots.default()}</div>\n      }\n    }\n\n    const renderImage = () => {\n      if (slots.image) {\n        return slots.image()\n      }\n\n      const PRESET_IMAGES: Record<EmptyImageTypes, () => JSX.Element> = {\n        network: renderNetwork,\n        system: renderSystem,\n        loss: renderLoss,\n        404: renderNotFound,\n        'no-permission': renderNoPermission,\n        'no-signal': renderNoSignal,\n        empty: renderEmpty,\n        default: renderEmpty,\n      }\n\n      return PRESET_IMAGES[props.image]?.() || <img src={props.image} />\n    }\n\n    return () => (\n      <div class={bem()}>\n        <div class={bem('image')} style={getSizeStyle(props.imageSize)}>\n          {renderImage()}\n        </div>\n        {renderDescription()}\n        {renderBottom()}\n      </div>\n    )\n  },\n})\n"],"names":["name","bem","createNamespace","emptyProps","image","makeStringProp","imageSize","Number","String","Array","description","defineComponent","props","setup","slots","renderDescription","_createVNode","renderBottom","default","renderImage","PRESET_IMAGES","network","renderNetwork","system","renderSystem","loss","renderLoss","renderNotFound","renderNoPermission","renderNoSignal","empty","renderEmpty","getSizeStyle"],"mappings":";;;;;;;AAmBA,MAAM,CAACA,IAAAA,EAAMC,GAAG,CAAA,GAAIC,gBAAgB,OAAO,CAAA,CAAA;AAEpC,MAAMC,UAAa,GAAA;AAAA,EACxBC,KAAAA,EAAOC,eAAgC,SAAS,CAAA;AAAA,EAChDC,SAAW,EAAA,CAACC,MAAQC,EAAAA,MAAAA,EAAQC,KAAK,CAAA;AAAA,EACjCC,WAAaF,EAAAA,MAAAA;AACf,EAAA;AAIA,aAAeG,eAAgB,CAAA;AAAA,EAC7BX,IAAAA;AAAAA,EAEAY,KAAOT,EAAAA,UAAAA;AAAAA,EAEPU,MAAMD,KAAO,EAAA;AAAA,IAAEE,KAAAA;AAAAA,GAAS,EAAA;AACtB,IAAA,MAAMC,oBAAoBA,MAAM;AAC9B,MAAA,MAAML,cAAcI,KAAMJ,CAAAA,WAAAA,GACtBI,KAAMJ,CAAAA,WAAAA,KACNE,KAAMF,CAAAA,WAAAA,CAAAA;AAEV,MAAA,IAAIA,WAAa,EAAA;AACf,QAAA,OAAAM,YAAA,GAAA,EAAA;AAAA,UAAA,OAAA,EAAiBf,IAAI,aAAa,CAAA;AAAA,SAAC,EAAA,CAAGS,WAAW,CAAA,CAAA,CAAA;AAAA,OACnD;AAAA,KACF,CAAA;AAEA,IAAA,MAAMO,eAAeA,MAAM;AACzB,MAAA,IAAIH,MAAMI,OAAS,EAAA;AACjB,QAAA,OAAAF,YAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EAAmBf,IAAI,QAAQ,CAAA;AAAA,SAAC,EAAA,CAAGa,KAAMI,CAAAA,OAAAA,EAAS,CAAA,CAAA,CAAA;AAAA,OACpD;AAAA,KACF,CAAA;AAEA,IAAA,MAAMC,cAAcA,MAAM;AAnD9B,MAAA,IAAA,EAAA,CAAA;AAoDM,MAAA,IAAIL,MAAMV,KAAO,EAAA;AACf,QAAA,OAAOU,MAAMV,KAAM,EAAA,CAAA;AAAA,OACrB;AAEA,MAAA,MAAMgB,aAA4D,GAAA;AAAA,QAChEC,OAASC,EAAAA,aAAAA;AAAAA,QACTC,MAAQC,EAAAA,YAAAA;AAAAA,QACRC,IAAMC,EAAAA,UAAAA;AAAAA,QACN,GAAKC,EAAAA,cAAAA;AAAAA,QACL,eAAiBC,EAAAA,kBAAAA;AAAAA,QACjB,WAAaC,EAAAA,cAAAA;AAAAA,QACbC,KAAOC,EAAAA,WAAAA;AAAAA,QACPb,OAASa,EAAAA,WAAAA;AAAAA,OACX,CAAA;AAEA,MAAA,OAAA,CAAA,CAAOX,EAAcR,GAAAA,aAAAA,CAAAA,KAAAA,CAAMR,KAApBgB,CAAAA,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAAA,KAA8BJ,YAAA,KAAA,EAAA;AAAA,QAAA,OAAcJ,KAAMR,CAAAA,KAAAA;AAAAA,SAAS,IAAA,CAAA,CAAA;AAAA,KACpE,CAAA;AAEA,IAAO,OAAA,MAAAY,YAAA,KAAA,EAAA;AAAA,MAAA,SACOf,GAAI,EAAA;AAAA,KAAC,EAAA,CAAAe,WAAAA,CAAA,KAAA,EAAA;AAAA,MAAA,OAAA,EACHf,IAAI,OAAO,CAAA;AAAA,MAAC,OAAA,EAAS+B,YAAapB,CAAAA,KAAAA,CAAMN,SAAS,CAAA;AAAA,KAAC,EAC3Da,CAAAA,WAAAA,EAAa,CAEfJ,GAAAA,iBAAkB,EAAA,EAClBE,YAAa,EAAC,CAElB,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}