bootstrap-vue-next
Version:
BootstrapVueNext is an early and lovely component library for Vue 3 & Nuxt 3 based on Bootstrap 5 and Typescript.
1 lines • 5.38 kB
Source Map (JSON)
{"version":3,"file":"useFormCheck-Bcx8Ea7M.mjs","sources":["../src/composables/useFormCheck.ts"],"sourcesContent":["import type {AriaInvalid} from '../types/AriaInvalid'\nimport {computed, type MaybeRefOrGetter, readonly, toRef, toValue} from 'vue'\nimport {useAriaInvalid} from './useAriaInvalid'\nimport {useStateClass} from './useStateClass'\nimport type {Size} from '../types/Size'\nimport type {ButtonVariant} from '../types/ColorTypes'\nimport type {ValidationState} from '../types/CommonTypes'\n\ninterface ClassesItemsInput {\n plain?: boolean\n button?: boolean\n inline?: boolean\n reverse?: boolean\n switch?: boolean\n size?: Size\n hasDefaultSlot?: boolean\n}\n\nconst getClasses = (items: MaybeRefOrGetter<ClassesItemsInput>) =>\n computed(() => {\n const resolvedItems = toValue(items)\n return {\n 'form-check':\n resolvedItems.plain === false &&\n resolvedItems.button === false &&\n resolvedItems.hasDefaultSlot,\n 'form-check-reverse': resolvedItems.reverse === true,\n 'form-check-inline': resolvedItems.inline === true,\n 'form-switch': resolvedItems.switch === true,\n [`form-control-${resolvedItems.size}`]:\n resolvedItems.size !== undefined &&\n resolvedItems.size !== 'md' &&\n resolvedItems.button === false,\n }\n })\n\ninterface InputClassesItemsInput {\n plain?: boolean\n button?: boolean\n state?: ValidationState\n}\n\nconst getInputClasses = (items: MaybeRefOrGetter<InputClassesItemsInput>) => {\n const resolvedItems = readonly(toRef(items))\n\n const stateClass = useStateClass(() => resolvedItems.value.state ?? null)\n\n return computed(() => [\n stateClass.value,\n {\n 'form-check-input':\n resolvedItems.value.plain === false && resolvedItems.value.button === false,\n 'btn-check': resolvedItems.value.button === true,\n },\n ])\n}\n\ninterface LabelClasesItemsInput {\n plain?: boolean\n button?: boolean\n buttonVariant?: ButtonVariant | null\n size?: Size\n}\n\nconst getLabelClasses = (items: MaybeRefOrGetter<LabelClasesItemsInput>) =>\n computed(() => {\n const resolvedItems = toValue(items)\n return {\n 'form-check-label': resolvedItems.plain === false && resolvedItems.button === false,\n 'btn': resolvedItems.button === true,\n [`btn-${resolvedItems.buttonVariant}`]:\n resolvedItems.button === true &&\n resolvedItems.buttonVariant !== undefined &&\n resolvedItems.buttonVariant !== null,\n [`btn-${resolvedItems.size}`]:\n resolvedItems.button && resolvedItems.size && resolvedItems.size !== 'md',\n }\n })\n\ninterface GroupAttrItemsInput {\n required?: boolean\n ariaInvalid?: AriaInvalid\n state?: ValidationState\n}\n\nconst getGroupAttr = (items: MaybeRefOrGetter<GroupAttrItemsInput>) => {\n const resolvedItems = readonly(toRef(items))\n const computedAriaInvalid = useAriaInvalid(\n () => resolvedItems.value.ariaInvalid,\n () => resolvedItems.value.state\n )\n return computed(() => ({\n 'aria-invalid': computedAriaInvalid.value as Exclude<AriaInvalid, ''> | undefined,\n 'aria-required': resolvedItems.value.required === true ? true : undefined,\n }))\n}\n\ninterface GroupClassesItemsInput {\n validated?: boolean\n buttons?: boolean\n stacked?: boolean\n size?: Size\n}\n\nconst getGroupClasses = (items: MaybeRefOrGetter<GroupClassesItemsInput>) =>\n computed(() => {\n const resolvedItems = toValue(items)\n return {\n 'was-validated': resolvedItems.validated === true,\n 'btn-group': resolvedItems.buttons === true && resolvedItems.stacked === false,\n 'btn-group-vertical': resolvedItems.stacked === true && resolvedItems.buttons === true,\n [`btn-group-${resolvedItems.size}`]: resolvedItems.size !== undefined,\n }\n })\n\nexport {getClasses, getInputClasses, getLabelClasses, getGroupAttr, getGroupClasses}\n"],"names":[],"mappings":";;;AAkBA,MAAM,aAAa,CAAC,UAClB,SAAS,MAAM;AACP,QAAA,gBAAgB,QAAQ,KAAK;AAC5B,SAAA;AAAA,IACL,cACE,cAAc,UAAU,SACxB,cAAc,WAAW,SACzB,cAAc;AAAA,IAChB,sBAAsB,cAAc,YAAY;AAAA,IAChD,qBAAqB,cAAc,WAAW;AAAA,IAC9C,eAAe,cAAc,WAAW;AAAA,IACxC,CAAC,gBAAgB,cAAc,IAAI,EAAE,GACnC,cAAc,SAAS,UACvB,cAAc,SAAS,QACvB,cAAc,WAAW;AAAA,EAC7B;AACF,CAAC;AAQG,MAAA,kBAAkB,CAAC,UAAoD;AAC3E,QAAM,gBAAgB,SAAS,MAAM,KAAK,CAAC;AAE3C,QAAM,aAAa,cAAc,MAAM,cAAc,MAAM,SAAS,IAAI;AAExE,SAAO,SAAS,MAAM;AAAA,IACpB,WAAW;AAAA,IACX;AAAA,MACE,oBACE,cAAc,MAAM,UAAU,SAAS,cAAc,MAAM,WAAW;AAAA,MACxE,aAAa,cAAc,MAAM,WAAW;AAAA,IAAA;AAAA,EAC9C,CACD;AACH;AASA,MAAM,kBAAkB,CAAC,UACvB,SAAS,MAAM;AACP,QAAA,gBAAgB,QAAQ,KAAK;AAC5B,SAAA;AAAA,IACL,oBAAoB,cAAc,UAAU,SAAS,cAAc,WAAW;AAAA,IAC9E,OAAO,cAAc,WAAW;AAAA,IAChC,CAAC,OAAO,cAAc,aAAa,EAAE,GACnC,cAAc,WAAW,QACzB,cAAc,kBAAkB,UAChC,cAAc,kBAAkB;AAAA,IAClC,CAAC,OAAO,cAAc,IAAI,EAAE,GAC1B,cAAc,UAAU,cAAc,QAAQ,cAAc,SAAS;AAAA,EACzE;AACF,CAAC;AAQG,MAAA,eAAe,CAAC,UAAiD;AACrE,QAAM,gBAAgB,SAAS,MAAM,KAAK,CAAC;AAC3C,QAAM,sBAAsB;AAAA,IAC1B,MAAM,cAAc,MAAM;AAAA,IAC1B,MAAM,cAAc,MAAM;AAAA,EAC5B;AACA,SAAO,SAAS,OAAO;AAAA,IACrB,gBAAgB,oBAAoB;AAAA,IACpC,iBAAiB,cAAc,MAAM,aAAa,OAAO,OAAO;AAAA,EAAA,EAChE;AACJ;AASA,MAAM,kBAAkB,CAAC,UACvB,SAAS,MAAM;AACP,QAAA,gBAAgB,QAAQ,KAAK;AAC5B,SAAA;AAAA,IACL,iBAAiB,cAAc,cAAc;AAAA,IAC7C,aAAa,cAAc,YAAY,QAAQ,cAAc,YAAY;AAAA,IACzE,sBAAsB,cAAc,YAAY,QAAQ,cAAc,YAAY;AAAA,IAClF,CAAC,aAAa,cAAc,IAAI,EAAE,GAAG,cAAc,SAAS;AAAA,EAC9D;AACF,CAAC;"}