{"version":3,"file":"action-bar-button.mjs","sources":["../../../../../../../packages/components/action-bar/src/action-bar-button.tsx"],"sourcesContent":["import {\n  type ExtractPropTypes,\n  type PropType,\n  computed,\n  defineComponent,\n} from 'vue'\nimport { routeProps, useExpose, useParent, useRoute } from '@xzx-design/hooks'\nimport { createNamespace, extend } from '@xzx-design/utils'\nimport { Button, type ButtonType } from '@xzx-design/components'\nimport { ACTION_BAR_KEY } from './action-bar'\n\n// Components\n\nconst [name, bem] = createNamespace('action-bar-button')\n\nexport const actionBarButtonProps = extend({}, routeProps, {\n  type: String as PropType<ButtonType>,\n  text: String,\n  icon: String,\n  color: String,\n  loading: Boolean,\n  disabled: Boolean,\n})\n\nexport type ActionBarButtonProps = ExtractPropTypes<typeof actionBarButtonProps>\n\nexport default defineComponent({\n  name,\n\n  props: actionBarButtonProps,\n\n  setup(props, { slots }) {\n    const route = useRoute()\n    const { parent, index } = useParent(ACTION_BAR_KEY)\n\n    // eslint-disable-next-line vue/return-in-computed-property\n    const isFirst = computed(() => {\n      if (parent) {\n        const prev = parent.children[index.value - 1]\n        return !(prev && 'isButton' in prev)\n      }\n    })\n\n    // eslint-disable-next-line vue/return-in-computed-property\n    const isLast = computed(() => {\n      if (parent) {\n        const next = parent.children[index.value + 1]\n        return !(next && 'isButton' in next)\n      }\n    })\n\n    useExpose({ isButton: true })\n\n    return () => {\n      const { type, icon, text, color, loading, disabled } = props\n\n      return (\n        <Button\n          class={bem([\n            type,\n            {\n              last: isLast.value,\n              first: isFirst.value,\n            },\n          ])}\n          size=\"large\"\n          type={type}\n          icon={icon}\n          color={color}\n          loading={loading}\n          disabled={disabled}\n          onClick={route}\n        >\n          {slots.default ? slots.default() : text}\n        </Button>\n      )\n    }\n  },\n})\n"],"names":["name","bem","createNamespace","actionBarButtonProps","extend","routeProps","type","String","text","icon","color","loading","Boolean","disabled","defineComponent","props","setup","slots","route","useRoute","parent","index","useParent","ACTION_BAR_KEY","isFirst","computed","prev","children","value","isLast","next","useExpose","isButton","_createVNode","Button","last","first","default"],"mappings":";;;;;;;;;;;;AAaA,MAAM,CAACA,IAAAA,EAAMC,GAAG,CAAA,GAAIC,gBAAgB,mBAAmB,CAAA,CAAA;AAEhD,MAAMC,oBAAuBC,GAAAA,MAAAA,CAAO,EAAC,EAAGC,UAAY,EAAA;AAAA,EACzDC,IAAMC,EAAAA,MAAAA;AAAAA,EACNC,IAAMD,EAAAA,MAAAA;AAAAA,EACNE,IAAMF,EAAAA,MAAAA;AAAAA,EACNG,KAAOH,EAAAA,MAAAA;AAAAA,EACPI,OAASC,EAAAA,OAAAA;AAAAA,EACTC,QAAUD,EAAAA,OAAAA;AACZ,CAAC,EAAA;AAID,uBAAeE,eAAgB,CAAA;AAAA,EAC7Bd,IAAAA;AAAAA,EAEAe,KAAOZ,EAAAA,oBAAAA;AAAAA,EAEPa,MAAMD,KAAO,EAAA;AAAA,IAAEE,KAAAA;AAAAA,GAAS,EAAA;AACtB,IAAA,MAAMC,QAAQC,QAAS,EAAA,CAAA;AACvB,IAAM,MAAA;AAAA,MAAEC,MAAAA;AAAAA,MAAQC,KAAAA;AAAAA,KAAM,GAAIC,UAAUC,cAAc,CAAA,CAAA;AAGlD,IAAMC,MAAAA,OAAAA,GAAUC,SAAS,MAAM;AAC7B,MAAA,IAAIL,MAAQ,EAAA;AACV,QAAA,MAAMM,IAAON,GAAAA,MAAAA,CAAOO,QAASN,CAAAA,KAAAA,CAAMO,KAAQ,GAAA,CAAA,CAAA,CAAA;AAC3C,QAAO,OAAA,EAAEF,QAAQ,UAAcA,IAAAA,IAAAA,CAAAA,CAAAA;AAAAA,OACjC;AAAA,KACD,CAAA,CAAA;AAGD,IAAMG,MAAAA,MAAAA,GAASJ,SAAS,MAAM;AAC5B,MAAA,IAAIL,MAAQ,EAAA;AACV,QAAA,MAAMU,IAAOV,GAAAA,MAAAA,CAAOO,QAASN,CAAAA,KAAAA,CAAMO,KAAQ,GAAA,CAAA,CAAA,CAAA;AAC3C,QAAO,OAAA,EAAEE,QAAQ,UAAcA,IAAAA,IAAAA,CAAAA,CAAAA;AAAAA,OACjC;AAAA,KACD,CAAA,CAAA;AAEDC,IAAU,SAAA,CAAA;AAAA,MAAEC,QAAU,EAAA,IAAA;AAAA,KAAM,CAAA,CAAA;AAE5B,IAAA,OAAO,MAAM;AACX,MAAM,MAAA;AAAA,QAAE1B,IAAAA;AAAAA,QAAMG,IAAAA;AAAAA,QAAMD,IAAAA;AAAAA,QAAME,KAAAA;AAAAA,QAAOC,OAAAA;AAAAA,QAASE,QAAAA;AAAAA,OAAaE,GAAAA,KAAAA,CAAAA;AAEvD,MAAA,OAAAkB,YAAAC,MAAA,EAAA;AAAA,QAAA,OAAA,EAEWjC,GAAI,CAAA,CACTK,IACA,EAAA;AAAA,UACE6B,MAAMN,MAAOD,CAAAA,KAAAA;AAAAA,UACbQ,OAAOZ,OAAQI,CAAAA,KAAAA;AAAAA,SAChB,CACF,CAAA;AAAA,QAAC,MAAA,EAAA,OAAA;AAAA,QAAA,MAEItB,EAAAA,IAAAA;AAAAA,QAAI,MACJG,EAAAA,IAAAA;AAAAA,QAAI,OACHC,EAAAA,KAAAA;AAAAA,QAAK,SACHC,EAAAA,OAAAA;AAAAA,QAAO,UACNE,EAAAA,QAAAA;AAAAA,QAAQ,SACTK,EAAAA,KAAAA;AAAAA,OAAK,EAAA;AAAA,QAAAmB,OAAAA,EAAAA,MAEbpB,CAAAA,KAAAA,CAAMoB,UAAUpB,KAAMoB,CAAAA,OAAAA,KAAY7B,IAAI,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAG7C,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}