UNPKG

vuestic-ui

Version:
1 lines 1.89 kB
{"version":3,"file":"useButtonAttributes.mjs","sources":["../../../../../../src/components/va-button/hooks/useButtonAttributes.ts"],"sourcesContent":["import { computed, ComputedRef } from 'vue'\nimport { ButtonPropsTypes } from '../types'\nimport { useRouterLink } from '../../../composables'\n\ntype UseButtonAttributes = (\n props: ButtonPropsTypes,\n) => ComputedRef<{\n 'aria-disabled': boolean,\n disabled: boolean,\n type?: any,\n tabindex?: number,\n target?: string,\n href?: any,\n to?: string | Record<string, any>,\n replace?: boolean,\n append?: boolean,\n activeClass?: string,\n exact?: boolean,\n exactActiveClass?: string,\n}>\n\nexport const useButtonAttributes: UseButtonAttributes = (props) => {\n const { linkAttributesComputed, isLinkTag } = useRouterLink(props as Required<typeof props>)\n\n const typeComputed = computed(() => isLinkTag.value ? undefined : props.type)\n const buttonAttributesComputed = computed(() => {\n const disabledAttributes = {\n 'aria-disabled': !!props.disabled,\n disabled: !!props.disabled,\n }\n\n if (isLinkTag.value) { return disabledAttributes }\n\n return {\n type: typeComputed.value,\n tabindex: props.loading || props.disabled ? -1 : 0,\n ...disabledAttributes,\n }\n })\n\n return computed(() => ({ ...linkAttributesComputed.value, ...buttonAttributesComputed.value }))\n}\n"],"names":[],"mappings":";;AAqBa,MAAA,sBAA2C,CAAC,UAAU;AACjE,QAAM,EAAE,wBAAwB,UAAU,IAAI,cAAc,KAA+B;AAE3F,QAAM,eAAe,SAAS,MAAM,UAAU,QAAQ,SAAY,MAAM,IAAI;AACtE,QAAA,2BAA2B,SAAS,MAAM;AAC9C,UAAM,qBAAqB;AAAA,MACzB,iBAAiB,CAAC,CAAC,MAAM;AAAA,MACzB,UAAU,CAAC,CAAC,MAAM;AAAA,IAAA;AAGpB,QAAI,UAAU,OAAO;AAAS,aAAA;AAAA,IAAmB;AAE1C,WAAA;AAAA,MACL,MAAM,aAAa;AAAA,MACnB,UAAU,MAAM,WAAW,MAAM,WAAW,KAAK;AAAA,MACjD,GAAG;AAAA,IAAA;AAAA,EACL,CACD;AAEM,SAAA,SAAS,OAAO,EAAE,GAAG,uBAAuB,OAAO,GAAG,yBAAyB,MAAQ,EAAA;AAChG;"}