{"version":3,"file":"action-bar-icon.mjs","sources":["../../../../../../../packages/components/action-bar/src/action-bar-icon.tsx"],"sourcesContent":["import {\n  type ExtractPropTypes,\n  type PropType,\n  computed,\n  defineComponent,\n} from 'vue'\nimport {\n  createNamespace,\n  extend,\n  makeObjectProp,\n  numericProp,\n  unknownProp,\n} from '@xzx-design/utils'\n\n// Composables\nimport { routeProps, useParent, useRoute } from '@xzx-design/hooks'\n\n// Components\nimport {\n  Badge,\n  type BadgeProps,\n  Icon,\n  type IconsComponent,\n} from '@xzx-design/components'\nimport { ACTION_BAR_KEY } from './action-bar'\n\nconst [name, bem] = createNamespace('action-bar-icon')\n\nexport const actionBarIconProps = extend({}, routeProps, {\n  dot: Boolean,\n  text: String,\n  icon: makeObjectProp<IconsComponent>(null),\n  color: String,\n  badge: numericProp,\n  iconClass: unknownProp,\n  badgeProps: Object as PropType<Partial<BadgeProps>>,\n  iconPrefix: String,\n})\n\nexport type ActionBarIconProps = ExtractPropTypes<typeof actionBarIconProps>\n\nexport default defineComponent({\n  name,\n\n  props: actionBarIconProps,\n\n  setup(props, { slots }) {\n    const route = useRoute()\n\n    useParent(ACTION_BAR_KEY)\n\n    const renderIcon = () => {\n      const { dot, badge, icon, color, iconClass, badgeProps, iconPrefix } =\n        props\n\n      if (slots.icon) {\n        return (\n          <Badge\n            v-slots={{ default: slots.icon }}\n            dot={dot}\n            class={bem('icon')}\n            content={badge}\n            {...badgeProps}\n          />\n        )\n      }\n\n      const iconComponent = computed(() => icon)\n\n      return (\n        <Icon\n          tag=\"div\"\n          dot={dot}\n          badge={badge}\n          color={color}\n          class={[bem('icon'), iconClass]}\n          badgeProps={badgeProps}\n          classPrefix={iconPrefix}\n        >\n          <iconComponent.value />\n        </Icon>\n      )\n    }\n\n    return () => (\n      <div role=\"button\" class={bem()} tabindex={0} onClick={route}>\n        {renderIcon()}\n        {slots.default ? slots.default() : props.text}\n      </div>\n    )\n  },\n})\n"],"names":["name","bem","createNamespace","actionBarIconProps","extend","routeProps","dot","Boolean","text","String","icon","makeObjectProp","color","badge","numericProp","iconClass","unknownProp","badgeProps","Object","iconPrefix","defineComponent","props","setup","slots","route","useRoute","useParent","ACTION_BAR_KEY","renderIcon","_createVNode","Badge","_mergeProps","default","iconComponent","computed","Icon","value"],"mappings":";;;;;;;;;;;;;AA0BA,MAAM,CAACA,IAAAA,EAAMC,GAAG,CAAA,GAAIC,gBAAgB,iBAAiB,CAAA,CAAA;AAE9C,MAAMC,kBAAqBC,GAAAA,MAAAA,CAAO,EAAC,EAAGC,UAAY,EAAA;AAAA,EACvDC,GAAKC,EAAAA,OAAAA;AAAAA,EACLC,IAAMC,EAAAA,MAAAA;AAAAA,EACNC,IAAAA,EAAMC,eAA+B,IAAI,CAAA;AAAA,EACzCC,KAAOH,EAAAA,MAAAA;AAAAA,EACPI,KAAOC,EAAAA,WAAAA;AAAAA,EACPC,SAAWC,EAAAA,WAAAA;AAAAA,EACXC,UAAYC,EAAAA,MAAAA;AAAAA,EACZC,UAAYV,EAAAA,MAAAA;AACd,CAAC,EAAA;AAID,qBAAeW,eAAgB,CAAA;AAAA,EAC7BpB,IAAAA;AAAAA,EAEAqB,KAAOlB,EAAAA,kBAAAA;AAAAA,EAEPmB,MAAMD,KAAO,EAAA;AAAA,IAAEE,KAAAA;AAAAA,GAAS,EAAA;AACtB,IAAA,MAAMC,QAAQC,QAAS,EAAA,CAAA;AAEvBC,IAAAA,SAAAA,CAAUC,cAAc,CAAA,CAAA;AAExB,IAAA,MAAMC,aAAaA,MAAM;AACvB,MAAM,MAAA;AAAA,QAAEtB,GAAAA;AAAAA,QAAKO,KAAAA;AAAAA,QAAOH,IAAAA;AAAAA,QAAME,KAAAA;AAAAA,QAAOG,SAAAA;AAAAA,QAAWE,UAAAA;AAAAA,QAAYE,UAAAA;AAAAA,OACtDE,GAAAA,KAAAA,CAAAA;AAEF,MAAA,IAAIE,MAAMb,IAAM,EAAA;AACd,QAAAmB,OAAAA,WAAAA,CAAAC,OAAAC,UAAA,CAAA;AAAA,UAAA,KAGSzB,EAAAA,GAAAA;AAAAA,UAAG,OAAA,EACDL,IAAI,MAAM,CAAA;AAAA,UAAC,SACTY,EAAAA,KAAAA;AAAAA,SAAK,EACVI,UAAU,CAJL,EAAA;AAAA,UAAEe,SAAST,KAAMb,CAAAA,IAAAA;AAAAA,SAAM,CAAA,CAAA;AAAA,OAOtC;AAEA,MAAMuB,MAAAA,aAAAA,GAAgBC,QAAS,CAAA,MAAMxB,IAAI,CAAA,CAAA;AAEzC,MAAA,OAAAmB,YAAAM,IAAA,EAAA;AAAA,QAAA,KAAA,EAAA,KAAA;AAAA,QAAA,KAGS7B,EAAAA,GAAAA;AAAAA,QAAG,OACDO,EAAAA,KAAAA;AAAAA,QAAK,OACLD,EAAAA,KAAAA;AAAAA,QAAK,OACL,EAAA,CAACX,GAAI,CAAA,MAAM,GAAGc,SAAS,CAAA;AAAA,QAAC,YACnBE,EAAAA,UAAAA;AAAAA,QAAU,aACTE,EAAAA,UAAAA;AAAAA,OAAU,EAAA;AAAA,QAAAa,OAAAA,EAAAA,MAAA,CAAAH,WAAAA,CAAAI,cAAAG,KAAA,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAK7B,CAAA;AAEA,IAAO,OAAA,MAAAP,YAAA,KAAA,EAAA;AAAA,MAAA,MAAA,EAAA,QAAA;AAAA,MAAA,SACqB5B,GAAI,EAAA;AAAA,MAAC,UAAY,EAAA,CAAA;AAAA,MAAC,SAAWuB,EAAAA,KAAAA;AAAAA,KAAK,EAAA,CACzDI,UAAAA,EACAL,EAAAA,KAAAA,CAAMS,OAAUT,GAAAA,KAAAA,CAAMS,OAAQ,EAAA,GAAIX,KAAMb,CAAAA,IAAI,CAEhD,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}