{"version":3,"file":"button2.mjs","sources":["../../../../../../../packages/components/button/src/button.vue"],"sourcesContent":["<template>\n  <button\n    :class=\"xNs\"\n    :type=\"formSubmit ? 'submit' : 'button'\"\n    v-bind=\"{\n      disabled: disabled || props.loading,\n      ariadisabled: disabled || props.loading,\n    }\"\n    @click=\"click\"\n  >\n    <span :class=\"ns.e('content')\">\n      <div\n        v-show=\"icon || loading\"\n        :class=\"[\n          ns.e('icon'),\n          (slots?.default || typeof text === 'string') && ns.m('mr'),\n        ]\"\n      >\n        <Loading v-if=\"loading\" />\n        <div v-else :class=\"ns.e('icon-wrapper')\">\n          <Icon v-if=\"typeof icon === 'string'\" :name=\"icon\" />\n          <Icon v-else>\n            <component :is=\"(icon as Component)\" />\n          </Icon>\n        </div>\n      </div>\n      <slot v-if=\"slots?.default\" />\n      <span v-else-if=\"typeof text === 'string'\">{{ text }}</span>\n    </span>\n  </button>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, useSlots } from 'vue'\nimport { throttle } from 'lodash-unified'\nimport { useNamespace } from '@xzx-design/hooks'\nimport { Icon, Loading } from '@xzx-design/components'\nimport { buttonEmits, buttonProps } from './button'\n\nimport type { Component } from 'vue'\nimport type { ProvideProps } from './button-group.vue'\n\ndefineOptions({\n  name: 'XzxButton',\n})\n\nconst btnTypes = ['primary', 'success', 'warning', 'danger']\n\nconst props = defineProps(buttonProps)\nconst emits = defineEmits(buttonEmits)\n\nconst parent = inject('XzxButtonGroup', { block: props.block }) as ProvideProps\n\nconst slots = useSlots()\n\nconst ns = useNamespace('button')\n\nconst xNs = computed(() => [\n  ns.b(),\n  ns.m(props.size),\n  btnTypes?.includes(props?.type) && ns.m(props.type),\n  props.text && ns.m('text'),\n  props.plain && ns.m('plain'),\n  props.dashed && ns.m('dashed'),\n  (props.block || parent?.block) && ns.m('block'),\n  props.round && ns.m('round'),\n  props.circle && ns.m('circle'),\n  props.bg && ns.m('bg'),\n  ns.is('disabled', props.disabled),\n  ns.is('loading', props.loading),\n])\n\nconst throttleFunc = (e: Event) => !props.loading && emits('click', e)\n\nconst throttleVal: number =\n  typeof props.throttle === 'boolean' ? 500 : props.throttle\n\nconst click = props?.throttle\n  ? throttle(throttleFunc, throttleVal)\n  : throttleFunc\n</script>\n"],"names":[],"mappings":";;;;;;;;;;mCA0Cc,CAAA;AAAA,EACZ,IAAM,EAAA,WAAA;AACR,CAAA,CAAA,CAAA;;;;;;AAEA,IAAA,MAAM,QAAW,GAAA,CAAC,SAAW,EAAA,SAAA,EAAW,WAAW,QAAQ,CAAA,CAAA;AAE3D,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAA,MAAM,SAAS,MAAO,CAAA,gBAAA,EAAkB,EAAE,KAAO,EAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAE9D,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEjB,IAAA,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAE1B,IAAA,MAAA,GAAA,GAAM,SAAS,MAAM;AAAA,MACzB,GAAG,CAAE,EAAA;AAAA,MACL,EAAA,CAAG,CAAE,CAAA,KAAA,CAAM,IAAI,CAAA;AAAA,MAAA,CACf,qCAAU,QAAS,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,UAAS,EAAG,CAAA,CAAA,CAAE,MAAM,IAAI,CAAA;AAAA,MAClD,KAAM,CAAA,IAAA,IAAQ,EAAG,CAAA,CAAA,CAAE,MAAM,CAAA;AAAA,MACzB,KAAM,CAAA,KAAA,IAAS,EAAG,CAAA,CAAA,CAAE,OAAO,CAAA;AAAA,MAC3B,KAAM,CAAA,MAAA,IAAU,EAAG,CAAA,CAAA,CAAE,QAAQ,CAAA;AAAA,MAAA,CAC5B,MAAM,KAAS,KAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,KAAU,CAAA,KAAA,EAAA,CAAG,EAAE,OAAO,CAAA;AAAA,MAC9C,KAAM,CAAA,KAAA,IAAS,EAAG,CAAA,CAAA,CAAE,OAAO,CAAA;AAAA,MAC3B,KAAM,CAAA,MAAA,IAAU,EAAG,CAAA,CAAA,CAAE,QAAQ,CAAA;AAAA,MAC7B,KAAM,CAAA,EAAA,IAAM,EAAG,CAAA,CAAA,CAAE,IAAI,CAAA;AAAA,MACrB,EAAG,CAAA,EAAA,CAAG,UAAY,EAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,MAChC,EAAG,CAAA,EAAA,CAAG,SAAW,EAAA,KAAA,CAAM,OAAO,CAAA;AAAA,KAC/B,CAAA,CAAA;AAEK,IAAA,MAAA,YAAA,GAAe,CAAC,CAAa,KAAA,CAAC,MAAM,OAAW,IAAA,KAAA,CAAM,SAAS,CAAC,CAAA,CAAA;AAErE,IAAA,MAAM,cACJ,OAAO,KAAA,CAAM,QAAa,KAAA,SAAA,GAAY,MAAM,KAAM,CAAA,QAAA,CAAA;AAEpD,IAAA,MAAM,SAAQ,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,QAAA,IACjB,QAAS,CAAA,YAAA,EAAc,WAAW,CAClC,GAAA,YAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}