bootstrap-vue-next 0.44.6 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{BAlert-BnT7fF6B.js → BAlert-CHbgLTZH.js} +2 -2
- package/dist/{BAlert-BnT7fF6B.js.map → BAlert-CHbgLTZH.js.map} +1 -1
- package/dist/{BAlert-Qiyqq4rE.mjs → BAlert-CRRUJXYi.mjs} +2 -2
- package/dist/{BAlert-Qiyqq4rE.mjs.map → BAlert-CRRUJXYi.mjs.map} +1 -1
- package/dist/{BAutocomplete-jAlZC6_t.js → BAutocomplete-4CFl6XQR.js} +3 -3
- package/dist/{BAutocomplete-jAlZC6_t.js.map → BAutocomplete-4CFl6XQR.js.map} +1 -1
- package/dist/{BAutocomplete-QBIaWPY1.mjs → BAutocomplete-B7yzKPIp.mjs} +3 -3
- package/dist/{BAutocomplete-QBIaWPY1.mjs.map → BAutocomplete-B7yzKPIp.mjs.map} +1 -1
- package/dist/{BAvatar-lefHkDuG.js → BAvatar-BHqTW5Ll.js} +1 -2
- package/dist/BAvatar-BHqTW5Ll.js.map +1 -0
- package/dist/{BAvatar-D7aFEXLH.mjs → BAvatar-BSLk69M0.mjs} +1 -2
- package/dist/BAvatar-BSLk69M0.mjs.map +1 -0
- package/dist/{BButton-kykTWnBy.js → BButton-BUYwco3v.js} +4 -4
- package/dist/BButton-BUYwco3v.js.map +1 -0
- package/dist/{BButton-DBRs8Pz_.js → BButton-Bw4HgpsF.js} +10 -13
- package/dist/BButton-Bw4HgpsF.js.map +1 -0
- package/dist/{BButton-BRvIFnRm.mjs → BButton-CDo9SRvU.mjs} +10 -13
- package/dist/BButton-CDo9SRvU.mjs.map +1 -0
- package/dist/{BButton-DNmtqoqR.mjs → BButton-DgequxLk.mjs} +4 -4
- package/dist/BButton-DgequxLk.mjs.map +1 -0
- package/dist/{BCarousel-Be7z13f9.js → BCarousel-BgT74ryc.js} +87 -87
- package/dist/BCarousel-BgT74ryc.js.map +1 -0
- package/dist/{BCarousel-D81alfFC.mjs → BCarousel-D9Yei1Q4.mjs} +88 -88
- package/dist/BCarousel-D9Yei1Q4.mjs.map +1 -0
- package/dist/{BDropdown-C1AxRj81.js → BDropdown-BxciLgyt.js} +15 -16
- package/dist/BDropdown-BxciLgyt.js.map +1 -0
- package/dist/{BDropdown-BW_O8vPQ.mjs → BDropdown-CRIh9xqy.mjs} +2 -2
- package/dist/{BDropdown-BW_O8vPQ.mjs.map → BDropdown-CRIh9xqy.mjs.map} +1 -1
- package/dist/{BDropdown-DAHnN54Z.mjs → BDropdown-D2pBrZsG.mjs} +15 -16
- package/dist/BDropdown-D2pBrZsG.mjs.map +1 -0
- package/dist/{BDropdown-CuVOxCzu.js → BDropdown-DgbFCKfP.js} +2 -2
- package/dist/{BDropdown-CuVOxCzu.js.map → BDropdown-DgbFCKfP.js.map} +1 -1
- package/dist/{BFormCheckbox-Bdk2rgVe.js → BFormCheckbox-BPQxUDQG.js} +5 -5
- package/dist/BFormCheckbox-BPQxUDQG.js.map +1 -0
- package/dist/{BFormCheckbox-CcDK-lh1.mjs → BFormCheckbox-DPNPjRKN.mjs} +5 -5
- package/dist/BFormCheckbox-DPNPjRKN.mjs.map +1 -0
- package/dist/{BFormRadio-DuVYw-Vs.js → BFormRadio-BZ0etDxl.js} +5 -5
- package/dist/BFormRadio-BZ0etDxl.js.map +1 -0
- package/dist/{BFormRadio-CRDbgMiR.mjs → BFormRadio-CqYd0bLV.mjs} +5 -5
- package/dist/BFormRadio-CqYd0bLV.mjs.map +1 -0
- package/dist/{BFormSelect-DIKVsG--.js → BFormSelect-B_mbfTMC.js} +5 -5
- package/dist/BFormSelect-B_mbfTMC.js.map +1 -0
- package/dist/{BFormSelect-Bb8yE8vz.mjs → BFormSelect-CpkJ1haI.mjs} +5 -5
- package/dist/BFormSelect-CpkJ1haI.mjs.map +1 -0
- package/dist/{BFormTags-BFA6xbr3.js → BFormTags-DJzXJp7d.js} +3 -3
- package/dist/BFormTags-DJzXJp7d.js.map +1 -0
- package/dist/{BFormTags-CJb4H67g.mjs → BFormTags-DWAWX2av.mjs} +3 -3
- package/dist/BFormTags-DWAWX2av.mjs.map +1 -0
- package/dist/{BInputGroup-BScMw6Zr.js → BInputGroup-Bfcs5h_Q.js} +2 -2
- package/dist/{BInputGroup-BScMw6Zr.js.map → BInputGroup-Bfcs5h_Q.js.map} +1 -1
- package/dist/{BInputGroup-DpX10xwR.mjs → BInputGroup-C5sxenhE.mjs} +3 -3
- package/dist/BInputGroup-C5sxenhE.mjs.map +1 -0
- package/dist/{BInputGroup-Duk6Jk0v.js → BInputGroup-DTP5Vf1f.js} +3 -3
- package/dist/BInputGroup-DTP5Vf1f.js.map +1 -0
- package/dist/{BInputGroup-C7k0tS9j.mjs → BInputGroup-Dl9AgpAx.mjs} +2 -2
- package/dist/{BInputGroup-C7k0tS9j.mjs.map → BInputGroup-Dl9AgpAx.mjs.map} +1 -1
- package/dist/{BModal-D0LB339D.js → BModal-BnHYbFuj.js} +5 -5
- package/dist/BModal-BnHYbFuj.js.map +1 -0
- package/dist/{BModal-Br5xLT0-.mjs → BModal-CAjLrkBp.mjs} +5 -5
- package/dist/BModal-CAjLrkBp.mjs.map +1 -0
- package/dist/{BNav-BRjdHsjC.mjs → BNav-BdO2N7G0.mjs} +4 -3
- package/dist/{BNav-BRjdHsjC.mjs.map → BNav-BdO2N7G0.mjs.map} +1 -1
- package/dist/{BNav-tYBwz1wU.js → BNav-MjroX-Jl.js} +4 -3
- package/dist/{BNav-tYBwz1wU.js.map → BNav-MjroX-Jl.js.map} +1 -1
- package/dist/{BOffcanvas-D33pEfZe.js → BOffcanvas-ColOuYdV.js} +2 -2
- package/dist/{BOffcanvas-D33pEfZe.js.map → BOffcanvas-ColOuYdV.js.map} +1 -1
- package/dist/{BOffcanvas-jETHbtC3.mjs → BOffcanvas-DmkJSSFy.mjs} +2 -2
- package/dist/{BOffcanvas-jETHbtC3.mjs.map → BOffcanvas-DmkJSSFy.mjs.map} +1 -1
- package/dist/{BPlaceholder-C4AOg29f.mjs → BPlaceholder-DKDtjMjy.mjs} +9 -9
- package/dist/BPlaceholder-DKDtjMjy.mjs.map +1 -0
- package/dist/{BPlaceholder-DYYYuNgR.js → BPlaceholder-n447tOzJ.js} +9 -9
- package/dist/BPlaceholder-n447tOzJ.js.map +1 -0
- package/dist/{BToast-DCSZYXIi.js → BToast-BFcT76M1.js} +2 -2
- package/dist/{BToast-DCSZYXIi.js.map → BToast-BFcT76M1.js.map} +1 -1
- package/dist/{BToast-B2rFKhLD.mjs → BToast-D5XkJqF4.mjs} +2 -2
- package/dist/{BToast-B2rFKhLD.mjs.map → BToast-D5XkJqF4.mjs.map} +1 -1
- package/dist/{BTooltip-CryTO-SM.js → BTooltip-BwiqjqX-.js} +2 -2
- package/dist/{BTooltip-CryTO-SM.js.map → BTooltip-BwiqjqX-.js.map} +1 -1
- package/dist/{BTooltip-DtpjIEBu.mjs → BTooltip-DohT1Q3C.mjs} +2 -2
- package/dist/{BTooltip-DtpjIEBu.mjs.map → BTooltip-DohT1Q3C.mjs.map} +1 -1
- package/dist/bootstrap-vue-next.mjs +21 -21
- package/dist/bootstrap-vue-next.umd.js +21 -21
- package/dist/components/BCarousel/BCarousel.vue.d.mts +4 -4
- package/dist/components/BCarousel/BCarousel.vue.d.ts +4 -4
- package/dist/components/BContainer/BCol.vue.d.mts +1 -1
- package/dist/components/BContainer/BCol.vue.d.ts +1 -1
- package/dist/components/BDropdown/BDropdown.vue.d.mts +1 -0
- package/dist/components/BDropdown/BDropdown.vue.d.ts +1 -0
- package/dist/components/BNav/BNavItemDropdown.vue.d.mts +13 -2
- package/dist/components/BNav/BNavItemDropdown.vue.d.ts +13 -2
- package/dist/{floatingUi-DHMrP__c.mjs → floatingUi-BAUk171g.mjs} +10 -2
- package/dist/{floatingUi-DHMrP__c.mjs.map → floatingUi-BAUk171g.mjs.map} +1 -1
- package/dist/{floatingUi-Cs4rDXmO.js → floatingUi-DBLN9xLH.js} +15 -1
- package/dist/{floatingUi-Cs4rDXmO.js.map → floatingUi-DBLN9xLH.js.map} +1 -1
- package/dist/keys-CQKrwmvN.mjs.map +1 -1
- package/dist/keys-durSVUrO.js.map +1 -1
- package/dist/src/components/BAlert/index.mjs +1 -1
- package/dist/src/components/BAlert/index.umd.js +1 -1
- package/dist/src/components/BAutocomplete/index.mjs +1 -1
- package/dist/src/components/BAutocomplete/index.umd.js +1 -1
- package/dist/src/components/BAvatar/index.mjs +1 -1
- package/dist/src/components/BAvatar/index.umd.js +1 -1
- package/dist/src/components/BButton/index.mjs +2 -2
- package/dist/src/components/BButton/index.umd.js +2 -2
- package/dist/src/components/BCarousel/index.mjs +1 -1
- package/dist/src/components/BCarousel/index.umd.js +1 -1
- package/dist/src/components/BDropdown/index.mjs +2 -2
- package/dist/src/components/BDropdown/index.umd.js +2 -2
- package/dist/src/components/BFormCheckbox/index.mjs +1 -1
- package/dist/src/components/BFormCheckbox/index.umd.js +1 -1
- package/dist/src/components/BFormRadio/index.mjs +1 -1
- package/dist/src/components/BFormRadio/index.umd.js +1 -1
- package/dist/src/components/BFormSelect/index.mjs +1 -1
- package/dist/src/components/BFormSelect/index.umd.js +1 -1
- package/dist/src/components/BFormTags/index.mjs +1 -1
- package/dist/src/components/BFormTags/index.umd.js +1 -1
- package/dist/src/components/BInputGroup/index.mjs +2 -2
- package/dist/src/components/BInputGroup/index.umd.js +2 -2
- package/dist/src/components/BModal/index.mjs +1 -1
- package/dist/src/components/BModal/index.umd.js +1 -1
- package/dist/src/components/BNav/index.mjs +1 -1
- package/dist/src/components/BNav/index.umd.js +1 -1
- package/dist/src/components/BOffcanvas/index.mjs +1 -1
- package/dist/src/components/BOffcanvas/index.umd.js +1 -1
- package/dist/src/components/BPlaceholder/index.mjs +1 -1
- package/dist/src/components/BPlaceholder/index.umd.js +1 -1
- package/dist/src/components/BPopover/index.mjs +1 -1
- package/dist/src/components/BPopover/index.umd.js +1 -1
- package/dist/src/components/BToast/index.mjs +1 -1
- package/dist/src/components/BToast/index.umd.js +1 -1
- package/dist/src/components/BTooltip/index.mjs +1 -1
- package/dist/src/components/BTooltip/index.umd.js +1 -1
- package/dist/src/components/index.mjs +21 -21
- package/dist/src/components/index.umd.js +21 -21
- package/dist/src/composables/useModal/index.mjs +1 -1
- package/dist/src/composables/useModal/index.umd.js +1 -1
- package/dist/src/composables/usePopover/index.mjs +2 -2
- package/dist/src/composables/usePopover/index.umd.js +2 -2
- package/dist/src/composables/useToast/index.mjs +1 -1
- package/dist/src/composables/useToast/index.umd.js +1 -1
- package/dist/src/directives/BPopover/index.mjs +2 -2
- package/dist/src/directives/BPopover/index.umd.js +2 -2
- package/dist/src/directives/BScrollspy/index.mjs +1 -1
- package/dist/src/directives/BScrollspy/index.umd.js +1 -1
- package/dist/src/directives/BToggle/index.mjs +1 -1
- package/dist/src/directives/BToggle/index.umd.js +1 -1
- package/dist/src/directives/BTooltip/index.mjs +2 -2
- package/dist/src/directives/BTooltip/index.umd.js +2 -2
- package/dist/types/ComponentProps.d.mts +1 -0
- package/dist/types/ComponentProps.d.ts +1 -0
- package/dist/types/ComponentSlots.d.mts +2 -1
- package/dist/types/ComponentSlots.d.ts +2 -1
- package/dist/types/Size.d.mts +0 -1
- package/dist/types/Size.d.ts +0 -1
- package/dist/{useFormCheck-CJvIDxcO.mjs → useFormCheck-CbRHduFK.mjs} +3 -3
- package/dist/useFormCheck-CbRHduFK.mjs.map +1 -0
- package/dist/{useFormCheck-UHNy_iZ0.js → useFormCheck-Cj5K6pk-.js} +3 -3
- package/dist/useFormCheck-Cj5K6pk-.js.map +1 -0
- package/dist/utils/floatingUi.d.mts +1 -0
- package/dist/utils/floatingUi.d.ts +1 -0
- package/dist/utils/keys.d.mts +2 -2
- package/dist/utils/keys.d.ts +2 -2
- package/dist/{utils-CgwCsk6U.mjs → utils-D30CwVm-.mjs} +3 -4
- package/dist/utils-D30CwVm-.mjs.map +1 -0
- package/dist/{utils-CaC78Zdk.js → utils-DtPi91ue.js} +3 -4
- package/dist/utils-DtPi91ue.js.map +1 -0
- package/package.json +1 -1
- package/dist/BAvatar-D7aFEXLH.mjs.map +0 -1
- package/dist/BAvatar-lefHkDuG.js.map +0 -1
- package/dist/BButton-BRvIFnRm.mjs.map +0 -1
- package/dist/BButton-DBRs8Pz_.js.map +0 -1
- package/dist/BButton-DNmtqoqR.mjs.map +0 -1
- package/dist/BButton-kykTWnBy.js.map +0 -1
- package/dist/BCarousel-Be7z13f9.js.map +0 -1
- package/dist/BCarousel-D81alfFC.mjs.map +0 -1
- package/dist/BDropdown-C1AxRj81.js.map +0 -1
- package/dist/BDropdown-DAHnN54Z.mjs.map +0 -1
- package/dist/BFormCheckbox-Bdk2rgVe.js.map +0 -1
- package/dist/BFormCheckbox-CcDK-lh1.mjs.map +0 -1
- package/dist/BFormRadio-CRDbgMiR.mjs.map +0 -1
- package/dist/BFormRadio-DuVYw-Vs.js.map +0 -1
- package/dist/BFormSelect-Bb8yE8vz.mjs.map +0 -1
- package/dist/BFormSelect-DIKVsG--.js.map +0 -1
- package/dist/BFormTags-BFA6xbr3.js.map +0 -1
- package/dist/BFormTags-CJb4H67g.mjs.map +0 -1
- package/dist/BInputGroup-DpX10xwR.mjs.map +0 -1
- package/dist/BInputGroup-Duk6Jk0v.js.map +0 -1
- package/dist/BModal-Br5xLT0-.mjs.map +0 -1
- package/dist/BModal-D0LB339D.js.map +0 -1
- package/dist/BPlaceholder-C4AOg29f.mjs.map +0 -1
- package/dist/BPlaceholder-DYYYuNgR.js.map +0 -1
- package/dist/useFormCheck-CJvIDxcO.mjs.map +0 -1
- package/dist/useFormCheck-UHNy_iZ0.js.map +0 -1
- package/dist/utils-CaC78Zdk.js.map +0 -1
- package/dist/utils-CgwCsk6U.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BCarousel-D9Yei1Q4.mjs","names":[],"sources":["../src/utils/getSlotElements.ts","../src/components/BCarousel/BCarousel.vue","../src/components/BCarousel/BCarousel.vue","../src/components/BCarousel/BCarouselSlide.vue","../src/components/BCarousel/BCarouselSlide.vue"],"sourcesContent":["import type {Slot, VNode} from 'vue'\n\nexport const getSlotElements = (slot: Slot | undefined, filterBy: string): VNode[] =>\n (slot?.() ?? [])\n .reduce((arr: VNode[], slot: VNode) => {\n if (typeof slot.type === 'symbol') {\n arr = arr.concat(slot.children as unknown as VNode)\n } else {\n arr.push(slot)\n }\n return arr\n }, [])\n .filter((child) => (child.type as {__name: string} | undefined)?.__name === filterBy)\n","<template>\n <div\n :id=\"computedId\"\n ref=\"_element\"\n class=\"carousel slide pointer-event\"\n :class=\"computedClasses\"\n >\n <div\n v-if=\"props.indicators\"\n class=\"carousel-indicators\"\n :aria-label=\"props.labelIndicators\"\n :aria-owns=\"buttonOwnership\"\n >\n <!-- :data-bs-target=\"`#${computedId}`\" is required since the classes target elems with that attr -->\n <button\n v-for=\"(_, i) in slides.length\"\n :key=\"i\"\n type=\"button\"\n data-bs-target=\"\"\n :class=\"i === modelValue ? 'active' : ''\"\n :aria-current=\"i === modelValue ? true : undefined\"\n :aria-label=\"`${props.indicatorsButtonLabel} ${i}`\"\n :aria-controls=\"buttonOwnership\"\n :aria-describedby=\"slideValues?.[i]?._id\"\n @click=\"slideTo(i)\"\n />\n </div>\n\n <div ref=\"_relatedTarget\" class=\"carousel-inner\">\n <TransitionGroup v-bind=\"transitionGroupProps\">\n <component\n :is=\"slide\"\n v-for=\"(slide, i) in slides\"\n v-show=\"i === modelValue\"\n :key=\"i\"\n ref=\"_slideValues\"\n :class=\"{active: i === modelValue && isTransitioning === false}\"\n :style=\"props.noAnimation && {transition: 'none'}\"\n />\n </TransitionGroup>\n </div>\n\n <template v-if=\"props.controls\">\n <button class=\"carousel-control-prev\" type=\"button\" @click=\"onClickPrev\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsPrevText }}</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" @click=\"onClickNext\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsNextText }}</span>\n </button>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvCarouselEvent} from '../../utils'\nimport {computed, onMounted, provide, ref, toRef, useTemplateRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport {onKeyStroke, useElementHover, useIntervalFn, useSwipe, useToNumber} from '@vueuse/core'\nimport type BCarouselSlide from './BCarouselSlide.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {Numberish} from '../../types/CommonTypes'\nimport {getSlotElements} from '../../utils/getSlotElements'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport type {BCarouselEmits, BCarouselProps, BCarouselSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<Omit<BCarouselProps, 'modelValue'>>(), {\n background: undefined,\n controls: false,\n controlsNextText: 'Next',\n controlsPrevText: 'Previous',\n fade: false,\n id: undefined,\n imgHeight: undefined,\n imgWidth: undefined,\n indicators: false,\n indicatorsButtonLabel: 'Slide',\n interval: 5000,\n labelIndicators: 'Select a slide to display',\n keyboard: true,\n noAnimation: false,\n noHoverPause: false,\n noTouch: false,\n noWrap: false,\n ride: false,\n rideReverse: false,\n touchThreshold: 50,\n})\nconst props = useDefaults(_props, 'BCarousel')\nconst emit = defineEmits<BCarouselEmits>()\nconst slots = defineSlots<BCarouselSlots>()\n\nconst computedId = useId(() => props.id, 'carousel')\nconst buttonOwnership = useId(undefined, 'carousel-button-ownership')\n\nconst modelValue = defineModel<Exclude<BCarouselProps['modelValue'], undefined>>({default: 0})\n\nconst slideValues = useTemplateRef<InstanceType<typeof BCarouselSlide>[]>('_slideValues')\n\nconst touchThresholdNumber = useToNumber(() => props.touchThreshold)\nconst slideInterval = ref<Numberish | null>(null)\nonMounted(() => {\n slideInterval.value =\n slideValues.value?.find((slid) => slid.$el.style.display !== 'none')?._interval ?? null\n})\nconst intervalNumber = useToNumber(() => slideInterval.value ?? props.interval)\n\nconst isTransitioning = ref(false)\nconst rideStarted = ref(false)\nconst direction = ref<'start' | 'end'>('start')\nconst relatedTarget = useTemplateRef('_relatedTarget')\nconst element = useTemplateRef('_element')\n\nlet previousModelValue = modelValue.value\nlet isInternalChange = false\n\nconst isHovering = useElementHover(element)\n\nconst {pause, resume} = useIntervalFn(\n () => {\n if (props.rideReverse) {\n prev()\n return\n }\n next()\n },\n intervalNumber,\n {immediate: props.ride === 'carousel'}\n)\n\nconst isRiding = computed(\n () => (props.ride === true && rideStarted.value === true) || props.ride === 'carousel'\n)\nconst slides = computed(() => getSlotElements(slots.default, 'BCarouselSlide'))\nconst computedClasses = computed(() => ({'carousel-fade': props.fade}))\n\nconst buildBvCarouselEvent = (event: 'slid' | 'slide') =>\n new BvCarouselEvent(event, {\n componentId: computedId.value,\n cancelable: false,\n target: element.value,\n direction: direction.value === 'start' ? 'right' : 'left',\n from: previousModelValue,\n to: modelValue.value,\n relatedTarget: relatedTarget.value?.children[modelValue.value] ?? null,\n })\n\nwatch(modelValue, (newValue, oldValue) => {\n if (!isInternalChange) {\n // External v-model change: determine direction from the new/old values\n const lastIndex = slides.value.length - 1\n const wrappedForward = oldValue === lastIndex && newValue === 0\n const wrappedBackward = oldValue === 0 && newValue === lastIndex\n if (wrappedForward) {\n direction.value = 'start'\n } else if (wrappedBackward) {\n direction.value = 'end'\n } else {\n direction.value = newValue > oldValue ? 'start' : 'end'\n }\n }\n isInternalChange = false\n // If one ever thinks to change the transitions dependence on modelValue and thinks it is appropriate to remove this isTransitioning line, be careful\n // This directly effects how transitions are applied. The watch is for if you have an external change to modelValue, and doesn't directly call slideTo\n isTransitioning.value = true\n})\nconst slideTo = (value: number): void => {\n if (isTransitioning.value === true) return\n\n if (props.ride === true) {\n rideStarted.value = true\n }\n if (isRiding.value === true) {\n resume()\n }\n let nextValue = value\n if (nextValue >= slides.value.length) {\n if (props.noWrap) return\n nextValue = 0\n }\n if (nextValue < 0) {\n if (props.noWrap) return\n nextValue = slides.value.length - 1\n }\n if (nextValue === modelValue.value) return\n // Set direction based on the original requested value (before wrapping) so that\n // next() always animates forward and prev() always animates backward, regardless\n // of how many slides there are. This fixes the 2-slide case where wrap-detection\n // heuristics in the watcher would otherwise produce the wrong direction.\n // Note: `value` is the raw index passed by the caller (e.g. modelValue+1 for next()),\n // while `nextValue` is the resolved/wrapped index that becomes the new modelValue.\n direction.value = value > modelValue.value ? 'start' : 'end'\n // Mark as internal so the modelValue watcher skips its direction heuristics.\n // A race condition here is not possible because the isTransitioning guard above\n // ensures slideTo cannot be called again until the current transition completes.\n isInternalChange = true\n isTransitioning.value = true\n previousModelValue = modelValue.value\n modelValue.value = nextValue\n}\n\nconst prev = (): void => {\n slideTo(modelValue.value - 1)\n}\nconst next = (): void => {\n slideTo(modelValue.value + 1)\n}\n\nconst {lengthX} = useSwipe(element, {\n passive: true,\n onSwipeStart() {\n if (props.noTouch) return\n pause()\n },\n onSwipeEnd() {\n if (props.noTouch) return\n const resumeRiding = () => {\n if (isRiding.value === false) return\n resume()\n }\n if (lengthX.value >= touchThresholdNumber.value) {\n next()\n resumeRiding()\n return\n }\n if (lengthX.value <= -touchThresholdNumber.value) {\n prev()\n resumeRiding()\n }\n },\n})\n\nconst onClickPrev = (event: MouseEvent) => {\n emit('prev-click', event)\n if (event.defaultPrevented) return\n prev()\n}\nconst onClickNext = (event: MouseEvent) => {\n emit('next-click', event)\n if (event.defaultPrevented) return\n next()\n}\n\nconst onMouseEnter = () => {\n if (props.noHoverPause) return\n pause()\n}\nconst onMouseLeave = () => {\n if (!isRiding.value) return\n resume()\n}\nwatch(isHovering, (newValue) => {\n if (newValue) {\n onMouseEnter()\n return\n }\n onMouseLeave()\n})\nonKeyStroke(\n ['ArrowLeft', 'ArrowRight'],\n (event) => {\n if (!props.keyboard) return\n if (event.key === 'ArrowLeft') {\n prev()\n } else {\n next()\n }\n },\n {target: element, passive: true}\n)\n\nwatch(\n () => props.ride,\n () => {\n rideStarted.value = false\n }\n)\n\nconst enterDirectionClass = computed(\n () => `carousel-item-${direction.value === 'start' ? 'next' : 'prev'}`\n)\nconst orderDirectionClass = computed(() => `carousel-item-${direction.value}`)\nconst transitionGroupProps = computed(() => ({\n enterFromClass: `carousel-item ${enterDirectionClass.value}`,\n enterActiveClass: `carousel-item ${enterDirectionClass.value}`,\n enterToClass: `carousel-item ${enterDirectionClass.value} ${orderDirectionClass.value}`,\n leaveFromClass: 'carousel-item active',\n leaveActiveClass: 'carousel-item active',\n leaveToClass: `carousel-item active ${orderDirectionClass.value}`,\n onBeforeLeave: () => {\n emit('slide', buildBvCarouselEvent('slide'))\n },\n onAfterLeave: () => {\n emit('slid', buildBvCarouselEvent('slid'))\n isTransitioning.value = false\n },\n // carousel-item class is removed from the slide during the transition,\n // as is included within enter classes.\n // The first slide recovers carousel-item class,\n onAfterEnter: (el: Readonly<Element>) => {\n if (modelValue.value !== 0) {\n el.classList.add('carousel-item')\n }\n },\n onEnter: (el: Readonly<Element>) => {\n slideInterval.value = slideValues.value?.find((slid) => slid.$el === el)?._interval ?? null\n },\n}))\n\ndefineExpose({\n resume,\n pause,\n next,\n prev,\n slideTo,\n})\n\nprovide(carouselInjectionKey, {\n background: toRef(() => props.background),\n width: toRef(() => props.imgWidth),\n height: toRef(() => props.imgHeight),\n})\n</script>\n","<template>\n <div\n :id=\"computedId\"\n ref=\"_element\"\n class=\"carousel slide pointer-event\"\n :class=\"computedClasses\"\n >\n <div\n v-if=\"props.indicators\"\n class=\"carousel-indicators\"\n :aria-label=\"props.labelIndicators\"\n :aria-owns=\"buttonOwnership\"\n >\n <!-- :data-bs-target=\"`#${computedId}`\" is required since the classes target elems with that attr -->\n <button\n v-for=\"(_, i) in slides.length\"\n :key=\"i\"\n type=\"button\"\n data-bs-target=\"\"\n :class=\"i === modelValue ? 'active' : ''\"\n :aria-current=\"i === modelValue ? true : undefined\"\n :aria-label=\"`${props.indicatorsButtonLabel} ${i}`\"\n :aria-controls=\"buttonOwnership\"\n :aria-describedby=\"slideValues?.[i]?._id\"\n @click=\"slideTo(i)\"\n />\n </div>\n\n <div ref=\"_relatedTarget\" class=\"carousel-inner\">\n <TransitionGroup v-bind=\"transitionGroupProps\">\n <component\n :is=\"slide\"\n v-for=\"(slide, i) in slides\"\n v-show=\"i === modelValue\"\n :key=\"i\"\n ref=\"_slideValues\"\n :class=\"{active: i === modelValue && isTransitioning === false}\"\n :style=\"props.noAnimation && {transition: 'none'}\"\n />\n </TransitionGroup>\n </div>\n\n <template v-if=\"props.controls\">\n <button class=\"carousel-control-prev\" type=\"button\" @click=\"onClickPrev\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsPrevText }}</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" @click=\"onClickNext\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsNextText }}</span>\n </button>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvCarouselEvent} from '../../utils'\nimport {computed, onMounted, provide, ref, toRef, useTemplateRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport {onKeyStroke, useElementHover, useIntervalFn, useSwipe, useToNumber} from '@vueuse/core'\nimport type BCarouselSlide from './BCarouselSlide.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {Numberish} from '../../types/CommonTypes'\nimport {getSlotElements} from '../../utils/getSlotElements'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport type {BCarouselEmits, BCarouselProps, BCarouselSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<Omit<BCarouselProps, 'modelValue'>>(), {\n background: undefined,\n controls: false,\n controlsNextText: 'Next',\n controlsPrevText: 'Previous',\n fade: false,\n id: undefined,\n imgHeight: undefined,\n imgWidth: undefined,\n indicators: false,\n indicatorsButtonLabel: 'Slide',\n interval: 5000,\n labelIndicators: 'Select a slide to display',\n keyboard: true,\n noAnimation: false,\n noHoverPause: false,\n noTouch: false,\n noWrap: false,\n ride: false,\n rideReverse: false,\n touchThreshold: 50,\n})\nconst props = useDefaults(_props, 'BCarousel')\nconst emit = defineEmits<BCarouselEmits>()\nconst slots = defineSlots<BCarouselSlots>()\n\nconst computedId = useId(() => props.id, 'carousel')\nconst buttonOwnership = useId(undefined, 'carousel-button-ownership')\n\nconst modelValue = defineModel<Exclude<BCarouselProps['modelValue'], undefined>>({default: 0})\n\nconst slideValues = useTemplateRef<InstanceType<typeof BCarouselSlide>[]>('_slideValues')\n\nconst touchThresholdNumber = useToNumber(() => props.touchThreshold)\nconst slideInterval = ref<Numberish | null>(null)\nonMounted(() => {\n slideInterval.value =\n slideValues.value?.find((slid) => slid.$el.style.display !== 'none')?._interval ?? null\n})\nconst intervalNumber = useToNumber(() => slideInterval.value ?? props.interval)\n\nconst isTransitioning = ref(false)\nconst rideStarted = ref(false)\nconst direction = ref<'start' | 'end'>('start')\nconst relatedTarget = useTemplateRef('_relatedTarget')\nconst element = useTemplateRef('_element')\n\nlet previousModelValue = modelValue.value\nlet isInternalChange = false\n\nconst isHovering = useElementHover(element)\n\nconst {pause, resume} = useIntervalFn(\n () => {\n if (props.rideReverse) {\n prev()\n return\n }\n next()\n },\n intervalNumber,\n {immediate: props.ride === 'carousel'}\n)\n\nconst isRiding = computed(\n () => (props.ride === true && rideStarted.value === true) || props.ride === 'carousel'\n)\nconst slides = computed(() => getSlotElements(slots.default, 'BCarouselSlide'))\nconst computedClasses = computed(() => ({'carousel-fade': props.fade}))\n\nconst buildBvCarouselEvent = (event: 'slid' | 'slide') =>\n new BvCarouselEvent(event, {\n componentId: computedId.value,\n cancelable: false,\n target: element.value,\n direction: direction.value === 'start' ? 'right' : 'left',\n from: previousModelValue,\n to: modelValue.value,\n relatedTarget: relatedTarget.value?.children[modelValue.value] ?? null,\n })\n\nwatch(modelValue, (newValue, oldValue) => {\n if (!isInternalChange) {\n // External v-model change: determine direction from the new/old values\n const lastIndex = slides.value.length - 1\n const wrappedForward = oldValue === lastIndex && newValue === 0\n const wrappedBackward = oldValue === 0 && newValue === lastIndex\n if (wrappedForward) {\n direction.value = 'start'\n } else if (wrappedBackward) {\n direction.value = 'end'\n } else {\n direction.value = newValue > oldValue ? 'start' : 'end'\n }\n }\n isInternalChange = false\n // If one ever thinks to change the transitions dependence on modelValue and thinks it is appropriate to remove this isTransitioning line, be careful\n // This directly effects how transitions are applied. The watch is for if you have an external change to modelValue, and doesn't directly call slideTo\n isTransitioning.value = true\n})\nconst slideTo = (value: number): void => {\n if (isTransitioning.value === true) return\n\n if (props.ride === true) {\n rideStarted.value = true\n }\n if (isRiding.value === true) {\n resume()\n }\n let nextValue = value\n if (nextValue >= slides.value.length) {\n if (props.noWrap) return\n nextValue = 0\n }\n if (nextValue < 0) {\n if (props.noWrap) return\n nextValue = slides.value.length - 1\n }\n if (nextValue === modelValue.value) return\n // Set direction based on the original requested value (before wrapping) so that\n // next() always animates forward and prev() always animates backward, regardless\n // of how many slides there are. This fixes the 2-slide case where wrap-detection\n // heuristics in the watcher would otherwise produce the wrong direction.\n // Note: `value` is the raw index passed by the caller (e.g. modelValue+1 for next()),\n // while `nextValue` is the resolved/wrapped index that becomes the new modelValue.\n direction.value = value > modelValue.value ? 'start' : 'end'\n // Mark as internal so the modelValue watcher skips its direction heuristics.\n // A race condition here is not possible because the isTransitioning guard above\n // ensures slideTo cannot be called again until the current transition completes.\n isInternalChange = true\n isTransitioning.value = true\n previousModelValue = modelValue.value\n modelValue.value = nextValue\n}\n\nconst prev = (): void => {\n slideTo(modelValue.value - 1)\n}\nconst next = (): void => {\n slideTo(modelValue.value + 1)\n}\n\nconst {lengthX} = useSwipe(element, {\n passive: true,\n onSwipeStart() {\n if (props.noTouch) return\n pause()\n },\n onSwipeEnd() {\n if (props.noTouch) return\n const resumeRiding = () => {\n if (isRiding.value === false) return\n resume()\n }\n if (lengthX.value >= touchThresholdNumber.value) {\n next()\n resumeRiding()\n return\n }\n if (lengthX.value <= -touchThresholdNumber.value) {\n prev()\n resumeRiding()\n }\n },\n})\n\nconst onClickPrev = (event: MouseEvent) => {\n emit('prev-click', event)\n if (event.defaultPrevented) return\n prev()\n}\nconst onClickNext = (event: MouseEvent) => {\n emit('next-click', event)\n if (event.defaultPrevented) return\n next()\n}\n\nconst onMouseEnter = () => {\n if (props.noHoverPause) return\n pause()\n}\nconst onMouseLeave = () => {\n if (!isRiding.value) return\n resume()\n}\nwatch(isHovering, (newValue) => {\n if (newValue) {\n onMouseEnter()\n return\n }\n onMouseLeave()\n})\nonKeyStroke(\n ['ArrowLeft', 'ArrowRight'],\n (event) => {\n if (!props.keyboard) return\n if (event.key === 'ArrowLeft') {\n prev()\n } else {\n next()\n }\n },\n {target: element, passive: true}\n)\n\nwatch(\n () => props.ride,\n () => {\n rideStarted.value = false\n }\n)\n\nconst enterDirectionClass = computed(\n () => `carousel-item-${direction.value === 'start' ? 'next' : 'prev'}`\n)\nconst orderDirectionClass = computed(() => `carousel-item-${direction.value}`)\nconst transitionGroupProps = computed(() => ({\n enterFromClass: `carousel-item ${enterDirectionClass.value}`,\n enterActiveClass: `carousel-item ${enterDirectionClass.value}`,\n enterToClass: `carousel-item ${enterDirectionClass.value} ${orderDirectionClass.value}`,\n leaveFromClass: 'carousel-item active',\n leaveActiveClass: 'carousel-item active',\n leaveToClass: `carousel-item active ${orderDirectionClass.value}`,\n onBeforeLeave: () => {\n emit('slide', buildBvCarouselEvent('slide'))\n },\n onAfterLeave: () => {\n emit('slid', buildBvCarouselEvent('slid'))\n isTransitioning.value = false\n },\n // carousel-item class is removed from the slide during the transition,\n // as is included within enter classes.\n // The first slide recovers carousel-item class,\n onAfterEnter: (el: Readonly<Element>) => {\n if (modelValue.value !== 0) {\n el.classList.add('carousel-item')\n }\n },\n onEnter: (el: Readonly<Element>) => {\n slideInterval.value = slideValues.value?.find((slid) => slid.$el === el)?._interval ?? null\n },\n}))\n\ndefineExpose({\n resume,\n pause,\n next,\n prev,\n slideTo,\n})\n\nprovide(carouselInjectionKey, {\n background: toRef(() => props.background),\n width: toRef(() => props.imgWidth),\n height: toRef(() => props.imgHeight),\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"carousel-item\" :style=\"computedStyle\">\n <slot name=\"img\">\n <BImg\n class=\"d-block w-100\"\n :alt=\"props.imgAlt\"\n :srcset=\"props.imgSrcset\"\n :src=\"props.imgSrc\"\n :width=\"props.imgWidth || parentData?.width.value\"\n :height=\"props.imgHeight || parentData?.height.value\"\n :blank=\"props.imgBlank\"\n :blank-color=\"props.imgBlankColor\"\n />\n </slot>\n <component\n :is=\"props.contentTag\"\n v-if=\"hasContent\"\n class=\"carousel-caption\"\n :class=\"computedContentClasses\"\n >\n <component :is=\"props.captionTag\" v-if=\"hasCaption\">\n <slot name=\"caption\">\n <span>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <span>{{ props.text }}</span>\n </slot>\n </component>\n <slot />\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties, inject, toRef} from 'vue'\nimport type {BCarouselSlideProps} from '../../types/ComponentProps'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport BImg from '../BImg/BImg.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useId} from '../../composables/useId'\nimport type {BCarouselSlideSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BCarouselSlideProps>(), {\n background: undefined,\n caption: undefined,\n captionTag: 'h3',\n contentTag: 'div',\n contentVisibleUp: undefined,\n id: undefined,\n imgAlt: undefined,\n imgBlank: false,\n imgBlankColor: 'transparent',\n imgHeight: undefined,\n imgSrc: undefined,\n imgSrcset: undefined,\n imgWidth: undefined,\n interval: undefined,\n text: undefined,\n textTag: 'p',\n})\nconst props = useDefaults(_props, 'BCarouselSlide')\nconst slots = defineSlots<BCarouselSlideSlots>()\n\nconst computedId = useId(() => props.id, 'carousel-slide')\nconst parentData = inject(carouselInjectionKey, null)\n\nconst hasText = computed(() => props.text || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || !isEmptySlot(slots.caption))\nconst hasContent = computed(() => hasText.value || hasCaption.value || !isEmptySlot(slots.default))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n background: `${\n props.background || parentData?.background.value || 'rgb(171, 171, 171)'\n } none repeat scroll 0% 0%`,\n}))\n\nconst computedContentClasses = computed(() => ({\n 'd-none': props.contentVisibleUp !== undefined,\n [`d-${props.contentVisibleUp}-block`]: props.contentVisibleUp !== undefined,\n}))\n\ndefineExpose({\n _interval: toRef(() => props.interval),\n _id: computedId,\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"carousel-item\" :style=\"computedStyle\">\n <slot name=\"img\">\n <BImg\n class=\"d-block w-100\"\n :alt=\"props.imgAlt\"\n :srcset=\"props.imgSrcset\"\n :src=\"props.imgSrc\"\n :width=\"props.imgWidth || parentData?.width.value\"\n :height=\"props.imgHeight || parentData?.height.value\"\n :blank=\"props.imgBlank\"\n :blank-color=\"props.imgBlankColor\"\n />\n </slot>\n <component\n :is=\"props.contentTag\"\n v-if=\"hasContent\"\n class=\"carousel-caption\"\n :class=\"computedContentClasses\"\n >\n <component :is=\"props.captionTag\" v-if=\"hasCaption\">\n <slot name=\"caption\">\n <span>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <span>{{ props.text }}</span>\n </slot>\n </component>\n <slot />\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties, inject, toRef} from 'vue'\nimport type {BCarouselSlideProps} from '../../types/ComponentProps'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport BImg from '../BImg/BImg.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useId} from '../../composables/useId'\nimport type {BCarouselSlideSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BCarouselSlideProps>(), {\n background: undefined,\n caption: undefined,\n captionTag: 'h3',\n contentTag: 'div',\n contentVisibleUp: undefined,\n id: undefined,\n imgAlt: undefined,\n imgBlank: false,\n imgBlankColor: 'transparent',\n imgHeight: undefined,\n imgSrc: undefined,\n imgSrcset: undefined,\n imgWidth: undefined,\n interval: undefined,\n text: undefined,\n textTag: 'p',\n})\nconst props = useDefaults(_props, 'BCarouselSlide')\nconst slots = defineSlots<BCarouselSlideSlots>()\n\nconst computedId = useId(() => props.id, 'carousel-slide')\nconst parentData = inject(carouselInjectionKey, null)\n\nconst hasText = computed(() => props.text || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || !isEmptySlot(slots.caption))\nconst hasContent = computed(() => hasText.value || hasCaption.value || !isEmptySlot(slots.default))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n background: `${\n props.background || parentData?.background.value || 'rgb(171, 171, 171)'\n } none repeat scroll 0% 0%`,\n}))\n\nconst computedContentClasses = computed(() => ({\n 'd-none': props.contentVisibleUp !== undefined,\n [`d-${props.contentVisibleUp}-block`]: props.contentVisibleUp !== undefined,\n}))\n\ndefineExpose({\n _interval: toRef(() => props.interval),\n _id: computedId,\n})\n</script>\n"],"mappings":"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"}
|
|
@@ -5,11 +5,11 @@ const require_dom = require("./dom-Bs6DzM72.js");
|
|
|
5
5
|
const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
|
|
6
6
|
const require_useId = require("./useId-DHrBgM7P.js");
|
|
7
7
|
const require_useShowHide = require("./useShowHide-BTCaeU5j.js");
|
|
8
|
-
const require_BButton = require("./BButton-
|
|
8
|
+
const require_BButton = require("./BButton-Bw4HgpsF.js");
|
|
9
9
|
const require_ConditionalTeleport = require("./ConditionalTeleport-BJZk6HAx.js");
|
|
10
10
|
const require_floating_ui_vue = require("./floating-ui.vue-GXIS2sFG.js");
|
|
11
11
|
const require_ConditionalWrapper = require("./ConditionalWrapper-Cc7EIszd.js");
|
|
12
|
-
const require_floatingUi = require("./floatingUi-
|
|
12
|
+
const require_floatingUi = require("./floatingUi-DBLN9xLH.js");
|
|
13
13
|
const require_getElement = require("./getElement-CxWWOx3K.js");
|
|
14
14
|
let vue = require("vue");
|
|
15
15
|
//#region src/components/BDropdown/BDropdown.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -64,7 +64,7 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
64
64
|
},
|
|
65
65
|
offset: { default: 0 },
|
|
66
66
|
role: { default: "menu" },
|
|
67
|
-
size: { default:
|
|
67
|
+
size: { default: void 0 },
|
|
68
68
|
noWrapper: {
|
|
69
69
|
type: Boolean,
|
|
70
70
|
default: false
|
|
@@ -84,6 +84,7 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
84
84
|
splitVariant: { default: void 0 },
|
|
85
85
|
strategy: { default: "absolute" },
|
|
86
86
|
text: { default: void 0 },
|
|
87
|
+
toggleAttrs: { default: void 0 },
|
|
87
88
|
toggleClass: { default: void 0 },
|
|
88
89
|
toggleText: { default: "Toggle dropdown" },
|
|
89
90
|
variant: { default: "secondary" },
|
|
@@ -298,12 +299,12 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
298
299
|
role: (0, vue.unref)(inButtonGroupAttributes)?.role
|
|
299
300
|
}, {
|
|
300
301
|
default: (0, vue.withCtx)(() => [
|
|
301
|
-
(0, vue.createVNode)(require_BButton.BButton_default, {
|
|
302
|
+
(0, vue.createVNode)(require_BButton.BButton_default, (0, vue.mergeProps)({
|
|
302
303
|
id: (0, vue.unref)(computedId),
|
|
303
304
|
ref: "_splitButton",
|
|
304
305
|
variant: (0, vue.unref)(props).splitVariant || (0, vue.unref)(props).variant,
|
|
305
306
|
size: (0, vue.unref)(props).size,
|
|
306
|
-
class:
|
|
307
|
+
class: buttonClasses.value,
|
|
307
308
|
disabled: (0, vue.unref)(props).splitDisabled || (0, vue.unref)(props).disabled,
|
|
308
309
|
type: (0, vue.unref)(props).splitButtonType,
|
|
309
310
|
"aria-label": (0, vue.unref)(props).ariaLabel,
|
|
@@ -311,12 +312,11 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
311
312
|
"aria-haspopup": (0, vue.unref)(props).split ? void 0 : "menu",
|
|
312
313
|
href: (0, vue.unref)(props).split ? (0, vue.unref)(props).splitHref : void 0,
|
|
313
314
|
icon: (0, vue.unref)(props).icon,
|
|
314
|
-
to: (0, vue.unref)(props).split && (0, vue.unref)(props).splitTo ? (0, vue.unref)(props).splitTo : void 0
|
|
315
|
-
|
|
316
|
-
}, {
|
|
315
|
+
to: (0, vue.unref)(props).split && (0, vue.unref)(props).splitTo ? (0, vue.unref)(props).splitTo : void 0
|
|
316
|
+
}, !(0, vue.unref)(props).split ? (0, vue.unref)(props).toggleAttrs : void 0, { onClick: onSplitClick }), {
|
|
317
317
|
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "button-content", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).text), 1)])]),
|
|
318
318
|
_: 3
|
|
319
|
-
},
|
|
319
|
+
}, 16, [
|
|
320
320
|
"id",
|
|
321
321
|
"variant",
|
|
322
322
|
"size",
|
|
@@ -330,21 +330,20 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
330
330
|
"icon",
|
|
331
331
|
"to"
|
|
332
332
|
]),
|
|
333
|
-
(0, vue.unref)(props).split ? ((0, vue.openBlock)(), (0, vue.createBlock)(require_BButton.BButton_default, {
|
|
333
|
+
(0, vue.unref)(props).split ? ((0, vue.openBlock)(), (0, vue.createBlock)(require_BButton.BButton_default, (0, vue.mergeProps)({
|
|
334
334
|
key: 0,
|
|
335
335
|
id: (0, vue.unref)(computedId) + "-split",
|
|
336
336
|
ref: "_button",
|
|
337
337
|
variant: (0, vue.unref)(props).variant,
|
|
338
338
|
size: (0, vue.unref)(props).size,
|
|
339
339
|
disabled: (0, vue.unref)(props).disabled,
|
|
340
|
-
class:
|
|
340
|
+
class: [[(0, vue.unref)(props).toggleClass, { show: (0, vue.unref)(showRef) }], "dropdown-toggle-split dropdown-toggle"],
|
|
341
341
|
"aria-expanded": (0, vue.unref)(showRef),
|
|
342
|
-
"aria-haspopup": "menu"
|
|
343
|
-
|
|
344
|
-
}, {
|
|
342
|
+
"aria-haspopup": "menu"
|
|
343
|
+
}, (0, vue.unref)(props).toggleAttrs, { onClick: onButtonClick }), {
|
|
345
344
|
default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", _hoisted_1, [(0, vue.renderSlot)(_ctx.$slots, "toggle-text", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).toggleText), 1)])])]),
|
|
346
345
|
_: 3
|
|
347
|
-
},
|
|
346
|
+
}, 16, [
|
|
348
347
|
"id",
|
|
349
348
|
"variant",
|
|
350
349
|
"size",
|
|
@@ -401,4 +400,4 @@ Object.defineProperty(exports, "BDropdown_default", {
|
|
|
401
400
|
}
|
|
402
401
|
});
|
|
403
402
|
|
|
404
|
-
//# sourceMappingURL=BDropdown-
|
|
403
|
+
//# sourceMappingURL=BDropdown-BxciLgyt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BDropdown-BxciLgyt.js","names":[],"sources":["../src/components/BDropdown/BDropdown.vue","../src/components/BDropdown/BDropdown.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n :skip=\"inInputGroup || props.noWrapper\"\n :class=\"computedClasses\"\n :role=\"inButtonGroupAttributes?.role\"\n >\n <BButton\n :id=\"computedId\"\n ref=\"_splitButton\"\n :variant=\"props.splitVariant || props.variant\"\n :size=\"props.size\"\n :class=\"buttonClasses\"\n :disabled=\"props.splitDisabled || props.disabled\"\n :type=\"props.splitButtonType\"\n :aria-label=\"props.ariaLabel\"\n :aria-expanded=\"props.split ? undefined : showRef\"\n :aria-haspopup=\"props.split ? undefined : 'menu'\"\n :href=\"props.split ? props.splitHref : undefined\"\n :icon=\"props.icon\"\n :to=\"props.split && props.splitTo ? props.splitTo : undefined\"\n v-bind=\"!props.split ? props.toggleAttrs : undefined\"\n @click=\"onSplitClick\"\n >\n <slot name=\"button-content\"> {{ props.text }} </slot>\n </BButton>\n <BButton\n v-if=\"props.split\"\n :id=\"computedId + '-split'\"\n ref=\"_button\"\n :variant=\"props.variant\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n :class=\"[props.toggleClass, {show: showRef}]\"\n class=\"dropdown-toggle-split dropdown-toggle\"\n :aria-expanded=\"showRef\"\n aria-haspopup=\"menu\"\n v-bind=\"props.toggleAttrs\"\n @click=\"onButtonClick\"\n >\n <span class=\"visually-hidden\">\n <slot name=\"toggle-text\">\n {{ props.toggleText }}\n </slot>\n </span>\n </BButton>\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <ul\n v-show=\"showRef\"\n :id=\"computedId + '-menu'\"\n ref=\"_floating\"\n :style=\"[floatingStyles, sizeStyles, {display: showRef || isActive ? 'block' : 'none'}]\"\n class=\"dropdown-menu overflow-auto b-floating-size\"\n :class=\"[props.menuClass, computedMenuClasses]\"\n :aria-labelledby=\"computedId\"\n :role=\"props.role\"\n @click=\"onClickInside\"\n >\n <slot\n v-if=\"contentShowing\"\n :id=\"computedId\"\n :hide=\"hide\"\n :show=\"show\"\n :visible=\"showRef\"\n :click=\"onClickInside\"\n :toggle=\"onButtonClick\"\n :active=\"showRef\"\n />\n </ul>\n </Transition>\n </ConditionalTeleport>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n autoUpdate,\n type Boundary,\n flip,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, onKeyStroke, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n inject,\n nextTick,\n provide,\n readonly,\n ref,\n toRef,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport BButton from '../BButton/BButton.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {isBoundary, isRootBoundary, resolveBootstrapCaret} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport {buttonGroupKey, dropdownInjectionKey, inputGroupKey} from '../../utils/keys'\nimport {useShowHide} from '../../composables/useShowHide'\nimport type {BDropdownEmits, BDropdownProps, BDropdownSlots} from '../../types'\nimport {getSafeDocument} from '../../utils/dom'\n\nconst _props = withDefaults(defineProps<Omit<BDropdownProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n autoClose: true,\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n disabled: false,\n floatingMiddleware: undefined,\n icon: false,\n id: undefined,\n initialAnimation: false,\n isNav: false,\n lazy: false,\n menuClass: undefined,\n noCaret: false,\n noFade: false,\n noFlip: false,\n noShift: false,\n noSize: false,\n offset: 0,\n unmountLazy: false,\n role: 'menu',\n size: undefined,\n noWrapper: false,\n split: false,\n splitButtonType: 'button',\n splitClass: undefined,\n splitDisabled: undefined,\n splitHref: undefined,\n splitTo: undefined,\n placement: 'bottom-start',\n splitVariant: undefined,\n strategy: 'absolute',\n text: undefined,\n show: false,\n toggleAttrs: undefined,\n toggleClass: undefined,\n toggleText: 'Toggle dropdown',\n transProps: undefined,\n variant: 'secondary',\n visible: false,\n wrapperClass: undefined,\n})\nconst props = useDefaults(_props, 'BDropdown')\nconst emit = defineEmits<BDropdownEmits>()\ndefineSlots<BDropdownSlots>()\n\nconst computedId = useId(() => props.id, 'dropdown')\n\nconst modelValue = defineModel<Exclude<BDropdownProps['modelValue'], undefined>>({default: false})\n\nconst inInputGroup = inject(inputGroupKey, false)\nconst inButtonGroup = inject(buttonGroupKey, false)\n\nconst computedOffset = computed(() =>\n typeof props.offset === 'string' || typeof props.offset === 'number' ? props.offset : Number.NaN\n)\nconst offsetToNumber = useToNumber(computedOffset)\n\nconst floatingElement = useTemplateRef<HTMLUListElement | null>('_floating')\nconst button = useTemplateRef<HTMLElement | null>('_button')\nconst splitButton = useTemplateRef<HTMLElement | null>('_splitButton')\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst referenceElement = computed(() => (!props.split ? splitButton.value : button.value))\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\n\nconst {\n showRef,\n renderRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n} = useShowHide(modelValue, props, emit as EmitFn, referenceElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {\n animationFrame: false,\n }\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nconst computedMenuClasses = computed(() => [\n {\n show: isVisible.value,\n fade: !computedNoAnimation.value,\n },\n])\n\nonKeyStroke(\n 'Escape',\n () => {\n hide()\n getElement(referenceElement.value)?.focus()\n },\n {target: referenceElement}\n)\nonKeyStroke(\n 'Escape',\n () => {\n hide()\n getElement(referenceElement.value)?.focus()\n },\n {target: floatingElement, passive: true}\n)\n\nconst keynav = (e: Readonly<Event>, v: number) => {\n if (floatingElement.value?.contains((e.target as HTMLElement)?.closest('form'))) return\n if (/input|select|option|textarea|form/i.test((e.target as HTMLElement)?.tagName)) return\n e.preventDefault()\n if (!showRef.value) {\n show()\n const loop = setInterval(() => {\n if (isVisible.value) {\n clearInterval(loop)\n nextTick(() => keynav(e, v))\n }\n }, 16)\n return\n }\n const list = floatingElement.value?.querySelectorAll(\n '.dropdown-item:not(.disabled):not(:disabled)'\n )\n const doc = getSafeDocument()\n if (!list || !doc) return\n if (floatingElement.value?.contains(doc.activeElement)) {\n const active = floatingElement.value.querySelector('.dropdown-item:focus')\n const index = Array.prototype.indexOf.call(list, active) + v\n if (index >= 0 && index < list?.length) (list[index] as HTMLElement)?.focus()\n } else {\n ;(list[v === -1 ? list.length - 1 : 0] as HTMLElement)?.focus()\n }\n}\n\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: referenceElement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: referenceElement})\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: floatingElement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: floatingElement})\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const localOffset =\n typeof props.offset === 'string' || typeof props.offset === 'number'\n ? offsetToNumber.value\n : props.offset\n const arr: Middleware[] = [offsetMiddleware(localOffset)]\n if (props.noFlip === false) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (floatingElement.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (floatingElement.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\nconst {update, floatingStyles} = useFloating(referenceElement, floatingElement, {\n placement: () => props.placement,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n})\n\nconst inButtonGroupAttributes = inButtonGroup\n ? {\n class: 'btn-group',\n role: 'group',\n }\n : undefined\n\nconst computedClasses = computed(() => [\n inButtonGroupAttributes?.class,\n props.wrapperClass,\n {\n 'btn-group': !props.wrapperClass && props.split,\n [`drop${resolveBootstrapCaret(props.placement)}`]: !props.wrapperClass,\n 'position-static': props.boundary !== 'clippingAncestors' && !props.isNav,\n },\n])\n\nconst buttonClasses = computed(() => [\n props.split ? props.splitClass : props.toggleClass,\n {\n 'nav-link': props.isNav,\n 'dropdown-toggle': !props.split,\n 'dropdown-toggle-no-caret': props.noCaret && !props.split,\n 'show': props.split ? undefined : showRef.value,\n },\n])\n\nconst onButtonClick = () => {\n toggle()\n}\n\nconst onSplitClick = (event: Readonly<MouseEvent>) => {\n if (props.split) {\n emit('split-click', event)\n return\n }\n onButtonClick()\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && (props.autoClose === true || props.autoClose === 'outside')) {\n hide()\n }\n },\n {ignore: [button, splitButton]}\n)\nconst onClickInside = () => {\n if (showRef.value && (props.autoClose === true || props.autoClose === 'inside')) {\n hide()\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nprovide(dropdownInjectionKey, {\n id: computedId,\n show,\n hide,\n toggle,\n visible: readonly(showRef),\n isNav: toRef(() => props.isNav),\n})\n</script>\n","<template>\n <ConditionalWrapper\n :skip=\"inInputGroup || props.noWrapper\"\n :class=\"computedClasses\"\n :role=\"inButtonGroupAttributes?.role\"\n >\n <BButton\n :id=\"computedId\"\n ref=\"_splitButton\"\n :variant=\"props.splitVariant || props.variant\"\n :size=\"props.size\"\n :class=\"buttonClasses\"\n :disabled=\"props.splitDisabled || props.disabled\"\n :type=\"props.splitButtonType\"\n :aria-label=\"props.ariaLabel\"\n :aria-expanded=\"props.split ? undefined : showRef\"\n :aria-haspopup=\"props.split ? undefined : 'menu'\"\n :href=\"props.split ? props.splitHref : undefined\"\n :icon=\"props.icon\"\n :to=\"props.split && props.splitTo ? props.splitTo : undefined\"\n v-bind=\"!props.split ? props.toggleAttrs : undefined\"\n @click=\"onSplitClick\"\n >\n <slot name=\"button-content\"> {{ props.text }} </slot>\n </BButton>\n <BButton\n v-if=\"props.split\"\n :id=\"computedId + '-split'\"\n ref=\"_button\"\n :variant=\"props.variant\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n :class=\"[props.toggleClass, {show: showRef}]\"\n class=\"dropdown-toggle-split dropdown-toggle\"\n :aria-expanded=\"showRef\"\n aria-haspopup=\"menu\"\n v-bind=\"props.toggleAttrs\"\n @click=\"onButtonClick\"\n >\n <span class=\"visually-hidden\">\n <slot name=\"toggle-text\">\n {{ props.toggleText }}\n </slot>\n </span>\n </BButton>\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <ul\n v-show=\"showRef\"\n :id=\"computedId + '-menu'\"\n ref=\"_floating\"\n :style=\"[floatingStyles, sizeStyles, {display: showRef || isActive ? 'block' : 'none'}]\"\n class=\"dropdown-menu overflow-auto b-floating-size\"\n :class=\"[props.menuClass, computedMenuClasses]\"\n :aria-labelledby=\"computedId\"\n :role=\"props.role\"\n @click=\"onClickInside\"\n >\n <slot\n v-if=\"contentShowing\"\n :id=\"computedId\"\n :hide=\"hide\"\n :show=\"show\"\n :visible=\"showRef\"\n :click=\"onClickInside\"\n :toggle=\"onButtonClick\"\n :active=\"showRef\"\n />\n </ul>\n </Transition>\n </ConditionalTeleport>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n autoUpdate,\n type Boundary,\n flip,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, onKeyStroke, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n inject,\n nextTick,\n provide,\n readonly,\n ref,\n toRef,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport BButton from '../BButton/BButton.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {isBoundary, isRootBoundary, resolveBootstrapCaret} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport {buttonGroupKey, dropdownInjectionKey, inputGroupKey} from '../../utils/keys'\nimport {useShowHide} from '../../composables/useShowHide'\nimport type {BDropdownEmits, BDropdownProps, BDropdownSlots} from '../../types'\nimport {getSafeDocument} from '../../utils/dom'\n\nconst _props = withDefaults(defineProps<Omit<BDropdownProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n autoClose: true,\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n disabled: false,\n floatingMiddleware: undefined,\n icon: false,\n id: undefined,\n initialAnimation: false,\n isNav: false,\n lazy: false,\n menuClass: undefined,\n noCaret: false,\n noFade: false,\n noFlip: false,\n noShift: false,\n noSize: false,\n offset: 0,\n unmountLazy: false,\n role: 'menu',\n size: undefined,\n noWrapper: false,\n split: false,\n splitButtonType: 'button',\n splitClass: undefined,\n splitDisabled: undefined,\n splitHref: undefined,\n splitTo: undefined,\n placement: 'bottom-start',\n splitVariant: undefined,\n strategy: 'absolute',\n text: undefined,\n show: false,\n toggleAttrs: undefined,\n toggleClass: undefined,\n toggleText: 'Toggle dropdown',\n transProps: undefined,\n variant: 'secondary',\n visible: false,\n wrapperClass: undefined,\n})\nconst props = useDefaults(_props, 'BDropdown')\nconst emit = defineEmits<BDropdownEmits>()\ndefineSlots<BDropdownSlots>()\n\nconst computedId = useId(() => props.id, 'dropdown')\n\nconst modelValue = defineModel<Exclude<BDropdownProps['modelValue'], undefined>>({default: false})\n\nconst inInputGroup = inject(inputGroupKey, false)\nconst inButtonGroup = inject(buttonGroupKey, false)\n\nconst computedOffset = computed(() =>\n typeof props.offset === 'string' || typeof props.offset === 'number' ? props.offset : Number.NaN\n)\nconst offsetToNumber = useToNumber(computedOffset)\n\nconst floatingElement = useTemplateRef<HTMLUListElement | null>('_floating')\nconst button = useTemplateRef<HTMLElement | null>('_button')\nconst splitButton = useTemplateRef<HTMLElement | null>('_splitButton')\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst referenceElement = computed(() => (!props.split ? splitButton.value : button.value))\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\n\nconst {\n showRef,\n renderRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n} = useShowHide(modelValue, props, emit as EmitFn, referenceElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {\n animationFrame: false,\n }\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nconst computedMenuClasses = computed(() => [\n {\n show: isVisible.value,\n fade: !computedNoAnimation.value,\n },\n])\n\nonKeyStroke(\n 'Escape',\n () => {\n hide()\n getElement(referenceElement.value)?.focus()\n },\n {target: referenceElement}\n)\nonKeyStroke(\n 'Escape',\n () => {\n hide()\n getElement(referenceElement.value)?.focus()\n },\n {target: floatingElement, passive: true}\n)\n\nconst keynav = (e: Readonly<Event>, v: number) => {\n if (floatingElement.value?.contains((e.target as HTMLElement)?.closest('form'))) return\n if (/input|select|option|textarea|form/i.test((e.target as HTMLElement)?.tagName)) return\n e.preventDefault()\n if (!showRef.value) {\n show()\n const loop = setInterval(() => {\n if (isVisible.value) {\n clearInterval(loop)\n nextTick(() => keynav(e, v))\n }\n }, 16)\n return\n }\n const list = floatingElement.value?.querySelectorAll(\n '.dropdown-item:not(.disabled):not(:disabled)'\n )\n const doc = getSafeDocument()\n if (!list || !doc) return\n if (floatingElement.value?.contains(doc.activeElement)) {\n const active = floatingElement.value.querySelector('.dropdown-item:focus')\n const index = Array.prototype.indexOf.call(list, active) + v\n if (index >= 0 && index < list?.length) (list[index] as HTMLElement)?.focus()\n } else {\n ;(list[v === -1 ? list.length - 1 : 0] as HTMLElement)?.focus()\n }\n}\n\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: referenceElement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: referenceElement})\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: floatingElement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: floatingElement})\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const localOffset =\n typeof props.offset === 'string' || typeof props.offset === 'number'\n ? offsetToNumber.value\n : props.offset\n const arr: Middleware[] = [offsetMiddleware(localOffset)]\n if (props.noFlip === false) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (floatingElement.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (floatingElement.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\nconst {update, floatingStyles} = useFloating(referenceElement, floatingElement, {\n placement: () => props.placement,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n})\n\nconst inButtonGroupAttributes = inButtonGroup\n ? {\n class: 'btn-group',\n role: 'group',\n }\n : undefined\n\nconst computedClasses = computed(() => [\n inButtonGroupAttributes?.class,\n props.wrapperClass,\n {\n 'btn-group': !props.wrapperClass && props.split,\n [`drop${resolveBootstrapCaret(props.placement)}`]: !props.wrapperClass,\n 'position-static': props.boundary !== 'clippingAncestors' && !props.isNav,\n },\n])\n\nconst buttonClasses = computed(() => [\n props.split ? props.splitClass : props.toggleClass,\n {\n 'nav-link': props.isNav,\n 'dropdown-toggle': !props.split,\n 'dropdown-toggle-no-caret': props.noCaret && !props.split,\n 'show': props.split ? undefined : showRef.value,\n },\n])\n\nconst onButtonClick = () => {\n toggle()\n}\n\nconst onSplitClick = (event: Readonly<MouseEvent>) => {\n if (props.split) {\n emit('split-click', event)\n return\n }\n onButtonClick()\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && (props.autoClose === true || props.autoClose === 'outside')) {\n hide()\n }\n },\n {ignore: [button, splitButton]}\n)\nconst onClickInside = () => {\n if (showRef.value && (props.autoClose === true || props.autoClose === 'inside')) {\n hide()\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nprovide(dropdownInjectionKey, {\n id: computedId,\n show,\n hide,\n toggle,\n visible: readonly(showRef),\n isNav: toRef(() => props.isNav),\n})\n</script>\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { c as collapseInjectionKey, g as navbarInjectionKey, u as dropdownInject
|
|
|
2
2
|
import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
|
|
3
3
|
import { t as useColorVariantClasses } from "./useColorVariantClasses-B6Me_Kx6.mjs";
|
|
4
4
|
import { r as useBLinkHelper, t as BLink_default } from "./BLink-Cz5YCsnv.mjs";
|
|
5
|
-
import "./BDropdown-
|
|
5
|
+
import "./BDropdown-D2pBrZsG.mjs";
|
|
6
6
|
import { computed, createBlock, createElementBlock, createElementVNode, createTextVNode, defineComponent, inject, mergeProps, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref, useAttrs, withCtx } from "vue";
|
|
7
7
|
//#endregion
|
|
8
8
|
//#region src/components/BDropdown/BDropdownDivider.vue
|
|
@@ -370,4 +370,4 @@ var BDropdownText_default = /* @__PURE__ */ defineComponent({
|
|
|
370
370
|
//#endregion
|
|
371
371
|
export { BDropdownGroup_default as a, BDropdownHeader_default as i, BDropdownItemButton_default as n, BDropdownForm_default as o, BDropdownItem_default as r, BDropdownDivider_default as s, BDropdownText_default as t };
|
|
372
372
|
|
|
373
|
-
//# sourceMappingURL=BDropdown-
|
|
373
|
+
//# sourceMappingURL=BDropdown-CRIh9xqy.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BDropdown-BW_O8vPQ.mjs","names":["$attrs"],"sources":["../src/components/BDropdown/BDropdownDivider.vue","../src/components/BDropdown/BDropdownDivider.vue","../src/components/BDropdown/BDropdownForm.vue","../src/components/BDropdown/BDropdownForm.vue","../src/components/BDropdown/BDropdownGroup.vue","../src/components/BDropdown/BDropdownGroup.vue","../src/components/BDropdown/BDropdownHeader.vue","../src/components/BDropdown/BDropdownHeader.vue","../src/components/BDropdown/BDropdownItem.vue","../src/components/BDropdown/BDropdownItem.vue","../src/components/BDropdown/BDropdownItemButton.vue","../src/components/BDropdown/BDropdownItemButton.vue","../src/components/BDropdown/BDropdownText.vue","../src/components/BDropdown/BDropdownText.vue"],"sourcesContent":["<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-divider\"\n :class=\"props.dividerClass\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n v-bind=\"processedAttrs.dividerAttrs\"\n />\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownDividerProps} from '../../types/ComponentProps'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownDividerProps>(), {\n dividerClass: undefined,\n tag: 'hr',\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownDivider')\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dividerAttrs} = attrs\n return {wrapperClass, dividerAttrs}\n})\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-divider\"\n :class=\"props.dividerClass\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n v-bind=\"processedAttrs.dividerAttrs\"\n />\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownDividerProps} from '../../types/ComponentProps'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownDividerProps>(), {\n dividerClass: undefined,\n tag: 'hr',\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownDivider')\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dividerAttrs} = attrs\n return {wrapperClass, dividerAttrs}\n})\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <form\n class=\"dropdown-item-text\"\n :class=\"computedClasses\"\n :novalidate=\"props.novalidate\"\n v-bind=\"processedAttrs.formAttrs\"\n >\n <slot />\n </form>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownFormProps} from '../../types/ComponentProps'\nimport type {BDropdownFormSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownFormProps>(), {\n formClass: undefined,\n novalidate: undefined,\n validated: undefined,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownForm')\ndefineSlots<BDropdownFormSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...formAttrs} = attrs\n return {wrapperClass, formAttrs}\n})\n\nconst computedClasses = computed(() => [\n props.formClass,\n {\n 'was-validated': props.validated,\n },\n])\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <form\n class=\"dropdown-item-text\"\n :class=\"computedClasses\"\n :novalidate=\"props.novalidate\"\n v-bind=\"processedAttrs.formAttrs\"\n >\n <slot />\n </form>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownFormProps} from '../../types/ComponentProps'\nimport type {BDropdownFormSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownFormProps>(), {\n formClass: undefined,\n novalidate: undefined,\n validated: undefined,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownForm')\ndefineSlots<BDropdownFormSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...formAttrs} = attrs\n return {wrapperClass, formAttrs}\n})\n\nconst computedClasses = computed(() => [\n props.formClass,\n {\n 'was-validated': props.validated,\n },\n])\n</script>\n","<template>\n <li role=\"presentation\">\n <component\n :is=\"props.headerTag\"\n :id=\"headerId\"\n class=\"dropdown-header\"\n :class=\"computedClasses\"\n :role=\"headerRole\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </component>\n <ul\n :id=\"props.id\"\n role=\"group\"\n class=\"list-unstyled\"\n v-bind=\"$attrs\"\n :aria-describedby=\"props.ariaDescribedby || headerId\"\n >\n <slot />\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownGroupProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport type {BDropdownGroupSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownGroupProps>(), {\n ariaDescribedby: undefined,\n header: undefined,\n headerClass: undefined,\n headerTag: 'header',\n headerVariant: null,\n id: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownGroup')\ndefineSlots<BDropdownGroupSlots>()\n\nconst headerId = computed(() => (props.id ? `${props.id}_group_dd_header` : undefined))\nconst headerRole = computed(() => (props.headerTag === 'header' ? undefined : 'heading'))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.headerVariant,\n }))\n)\nconst computedClasses = computed(() => [props.headerClass, colorClasses.value])\n</script>\n","<template>\n <li role=\"presentation\">\n <component\n :is=\"props.headerTag\"\n :id=\"headerId\"\n class=\"dropdown-header\"\n :class=\"computedClasses\"\n :role=\"headerRole\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </component>\n <ul\n :id=\"props.id\"\n role=\"group\"\n class=\"list-unstyled\"\n v-bind=\"$attrs\"\n :aria-describedby=\"props.ariaDescribedby || headerId\"\n >\n <slot />\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownGroupProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport type {BDropdownGroupSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownGroupProps>(), {\n ariaDescribedby: undefined,\n header: undefined,\n headerClass: undefined,\n headerTag: 'header',\n headerVariant: null,\n id: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownGroup')\ndefineSlots<BDropdownGroupSlots>()\n\nconst headerId = computed(() => (props.id ? `${props.id}_group_dd_header` : undefined))\nconst headerRole = computed(() => (props.headerTag === 'header' ? undefined : 'heading'))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.headerVariant,\n }))\n)\nconst computedClasses = computed(() => [props.headerClass, colorClasses.value])\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-header\"\n :class=\"[colorClasses, props.headerClass]\"\n v-bind=\"processedAttrs.headerAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownHeaderProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownHeaderSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownHeaderProps>(), {\n headerClass: undefined,\n tag: 'h6',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownHeader')\ndefineSlots<BDropdownHeaderSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...headerAttrs} = attrs\n return {wrapperClass, headerAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-header\"\n :class=\"[colorClasses, props.headerClass]\"\n v-bind=\"processedAttrs.headerAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownHeaderProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownHeaderSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownHeaderProps>(), {\n headerClass: undefined,\n tag: 'h6',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownHeader')\ndefineSlots<BDropdownHeaderSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...headerAttrs} = attrs\n return {wrapperClass, headerAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <component\n :is=\"computedTag\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-disabled=\"props.disabled ? true : null\"\n :aria-current=\"props.active ? true : null\"\n :href=\"computedTag === 'a' ? props.href : null\"\n :rel=\"props.rel\"\n role=\"menuitem\"\n :type=\"computedTag === 'button' ? 'button' : null\"\n :target=\"props.target\"\n v-bind=\"{...computedLinkProps, ...processedAttrs.dropdownItemAttrs}\"\n @click=\"clicked\"\n >\n <slot />\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport {computed, inject, useAttrs} from 'vue'\nimport type {BDropdownItemProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {collapseInjectionKey, dropdownInjectionKey, navbarInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownItemEmits, BDropdownItemSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemProps>(), {\n wrapperAttrs: undefined,\n // Link props\n linkClass: undefined,\n variant: null,\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n stretched: false,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n})\nconst props = useDefaults(_props, 'BDropdownItem')\nconst emit = defineEmits<BDropdownItemEmits>()\ndefineSlots<BDropdownItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dropdownItemAttrs} = attrs\n return {wrapperClass, dropdownItemAttrs}\n})\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.linkClass,\n colorClasses.value,\n {\n active: props.active,\n disabled: props.disabled,\n },\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.href ? 'a' : 'button'))\n\nconst collapseData = inject(collapseInjectionKey, null)\nconst dropdownData = inject(dropdownInjectionKey, null)\nconst navbarData = inject(navbarInjectionKey, null)\n\n// Pretty sure this emits if computedTag is not button and is disabled\nconst clicked = (e: Readonly<MouseEvent>): void => {\n emit('click', e)\n if (navbarData !== null && navbarData?.noAutoClose?.value !== true) {\n collapseData?.hide?.()\n }\n dropdownData?.hide?.()\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <component\n :is=\"computedTag\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-disabled=\"props.disabled ? true : null\"\n :aria-current=\"props.active ? true : null\"\n :href=\"computedTag === 'a' ? props.href : null\"\n :rel=\"props.rel\"\n role=\"menuitem\"\n :type=\"computedTag === 'button' ? 'button' : null\"\n :target=\"props.target\"\n v-bind=\"{...computedLinkProps, ...processedAttrs.dropdownItemAttrs}\"\n @click=\"clicked\"\n >\n <slot />\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport {computed, inject, useAttrs} from 'vue'\nimport type {BDropdownItemProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {collapseInjectionKey, dropdownInjectionKey, navbarInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownItemEmits, BDropdownItemSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemProps>(), {\n wrapperAttrs: undefined,\n // Link props\n linkClass: undefined,\n variant: null,\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n stretched: false,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n})\nconst props = useDefaults(_props, 'BDropdownItem')\nconst emit = defineEmits<BDropdownItemEmits>()\ndefineSlots<BDropdownItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dropdownItemAttrs} = attrs\n return {wrapperClass, dropdownItemAttrs}\n})\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.linkClass,\n colorClasses.value,\n {\n active: props.active,\n disabled: props.disabled,\n },\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.href ? 'a' : 'button'))\n\nconst collapseData = inject(collapseInjectionKey, null)\nconst dropdownData = inject(dropdownInjectionKey, null)\nconst navbarData = inject(navbarInjectionKey, null)\n\n// Pretty sure this emits if computedTag is not button and is disabled\nconst clicked = (e: Readonly<MouseEvent>): void => {\n emit('click', e)\n if (navbarData !== null && navbarData?.noAutoClose?.value !== true) {\n collapseData?.hide?.()\n }\n dropdownData?.hide?.()\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <button\n role=\"menu\"\n type=\"button\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n v-bind=\"processedAttrs.buttonAttrs\"\n @click=\"clicked\"\n >\n <slot />\n </button>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BDropdownItemButtonEmits, BDropdownItemButtonSlots} from '../../types'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownItemButtonProps} from '../../types/ComponentProps'\nimport {computed, useAttrs} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemButtonProps>(), {\n active: false,\n activeClass: 'active',\n buttonClass: undefined,\n disabled: false,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownItemButton')\nconst emit = defineEmits<BDropdownItemButtonEmits>()\ndefineSlots<BDropdownItemButtonSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...buttonAttrs} = attrs\n return {wrapperClass, buttonAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.buttonClass,\n colorClasses.value,\n {\n [props.activeClass]: props.active,\n disabled: props.disabled,\n },\n])\n\nconst clicked = (e: Readonly<MouseEvent>) => {\n if (props.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n emit('click', e)\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <button\n role=\"menu\"\n type=\"button\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n v-bind=\"processedAttrs.buttonAttrs\"\n @click=\"clicked\"\n >\n <slot />\n </button>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BDropdownItemButtonEmits, BDropdownItemButtonSlots} from '../../types'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownItemButtonProps} from '../../types/ComponentProps'\nimport {computed, useAttrs} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemButtonProps>(), {\n active: false,\n activeClass: 'active',\n buttonClass: undefined,\n disabled: false,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownItemButton')\nconst emit = defineEmits<BDropdownItemButtonEmits>()\ndefineSlots<BDropdownItemButtonSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...buttonAttrs} = attrs\n return {wrapperClass, buttonAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.buttonClass,\n colorClasses.value,\n {\n [props.activeClass]: props.active,\n disabled: props.disabled,\n },\n])\n\nconst clicked = (e: Readonly<MouseEvent>) => {\n if (props.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n emit('click', e)\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-item-text\"\n :class=\"[colorClasses, props.textClass]\"\n v-bind=\"processedAttrs.textAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownTextProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownTextSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownTextProps>(), {\n textClass: undefined,\n tag: 'span',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownText')\ndefineSlots<BDropdownTextSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...textAttrs} = attrs\n return {wrapperClass, textAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-item-text\"\n :class=\"[colorClasses, props.textClass]\"\n v-bind=\"processedAttrs.textAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownTextProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownTextSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownTextProps>(), {\n textClass: undefined,\n tag: 'span',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownText')\ndefineSlots<BDropdownTextSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...textAttrs} = attrs\n return {wrapperClass, textAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BDropdown-CRIh9xqy.mjs","names":["$attrs"],"sources":["../src/components/BDropdown/BDropdownDivider.vue","../src/components/BDropdown/BDropdownDivider.vue","../src/components/BDropdown/BDropdownForm.vue","../src/components/BDropdown/BDropdownForm.vue","../src/components/BDropdown/BDropdownGroup.vue","../src/components/BDropdown/BDropdownGroup.vue","../src/components/BDropdown/BDropdownHeader.vue","../src/components/BDropdown/BDropdownHeader.vue","../src/components/BDropdown/BDropdownItem.vue","../src/components/BDropdown/BDropdownItem.vue","../src/components/BDropdown/BDropdownItemButton.vue","../src/components/BDropdown/BDropdownItemButton.vue","../src/components/BDropdown/BDropdownText.vue","../src/components/BDropdown/BDropdownText.vue"],"sourcesContent":["<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-divider\"\n :class=\"props.dividerClass\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n v-bind=\"processedAttrs.dividerAttrs\"\n />\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownDividerProps} from '../../types/ComponentProps'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownDividerProps>(), {\n dividerClass: undefined,\n tag: 'hr',\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownDivider')\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dividerAttrs} = attrs\n return {wrapperClass, dividerAttrs}\n})\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-divider\"\n :class=\"props.dividerClass\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n v-bind=\"processedAttrs.dividerAttrs\"\n />\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownDividerProps} from '../../types/ComponentProps'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownDividerProps>(), {\n dividerClass: undefined,\n tag: 'hr',\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownDivider')\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dividerAttrs} = attrs\n return {wrapperClass, dividerAttrs}\n})\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <form\n class=\"dropdown-item-text\"\n :class=\"computedClasses\"\n :novalidate=\"props.novalidate\"\n v-bind=\"processedAttrs.formAttrs\"\n >\n <slot />\n </form>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownFormProps} from '../../types/ComponentProps'\nimport type {BDropdownFormSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownFormProps>(), {\n formClass: undefined,\n novalidate: undefined,\n validated: undefined,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownForm')\ndefineSlots<BDropdownFormSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...formAttrs} = attrs\n return {wrapperClass, formAttrs}\n})\n\nconst computedClasses = computed(() => [\n props.formClass,\n {\n 'was-validated': props.validated,\n },\n])\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <form\n class=\"dropdown-item-text\"\n :class=\"computedClasses\"\n :novalidate=\"props.novalidate\"\n v-bind=\"processedAttrs.formAttrs\"\n >\n <slot />\n </form>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownFormProps} from '../../types/ComponentProps'\nimport type {BDropdownFormSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownFormProps>(), {\n formClass: undefined,\n novalidate: undefined,\n validated: undefined,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownForm')\ndefineSlots<BDropdownFormSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...formAttrs} = attrs\n return {wrapperClass, formAttrs}\n})\n\nconst computedClasses = computed(() => [\n props.formClass,\n {\n 'was-validated': props.validated,\n },\n])\n</script>\n","<template>\n <li role=\"presentation\">\n <component\n :is=\"props.headerTag\"\n :id=\"headerId\"\n class=\"dropdown-header\"\n :class=\"computedClasses\"\n :role=\"headerRole\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </component>\n <ul\n :id=\"props.id\"\n role=\"group\"\n class=\"list-unstyled\"\n v-bind=\"$attrs\"\n :aria-describedby=\"props.ariaDescribedby || headerId\"\n >\n <slot />\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownGroupProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport type {BDropdownGroupSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownGroupProps>(), {\n ariaDescribedby: undefined,\n header: undefined,\n headerClass: undefined,\n headerTag: 'header',\n headerVariant: null,\n id: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownGroup')\ndefineSlots<BDropdownGroupSlots>()\n\nconst headerId = computed(() => (props.id ? `${props.id}_group_dd_header` : undefined))\nconst headerRole = computed(() => (props.headerTag === 'header' ? undefined : 'heading'))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.headerVariant,\n }))\n)\nconst computedClasses = computed(() => [props.headerClass, colorClasses.value])\n</script>\n","<template>\n <li role=\"presentation\">\n <component\n :is=\"props.headerTag\"\n :id=\"headerId\"\n class=\"dropdown-header\"\n :class=\"computedClasses\"\n :role=\"headerRole\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </component>\n <ul\n :id=\"props.id\"\n role=\"group\"\n class=\"list-unstyled\"\n v-bind=\"$attrs\"\n :aria-describedby=\"props.ariaDescribedby || headerId\"\n >\n <slot />\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownGroupProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport type {BDropdownGroupSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownGroupProps>(), {\n ariaDescribedby: undefined,\n header: undefined,\n headerClass: undefined,\n headerTag: 'header',\n headerVariant: null,\n id: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownGroup')\ndefineSlots<BDropdownGroupSlots>()\n\nconst headerId = computed(() => (props.id ? `${props.id}_group_dd_header` : undefined))\nconst headerRole = computed(() => (props.headerTag === 'header' ? undefined : 'heading'))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.headerVariant,\n }))\n)\nconst computedClasses = computed(() => [props.headerClass, colorClasses.value])\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-header\"\n :class=\"[colorClasses, props.headerClass]\"\n v-bind=\"processedAttrs.headerAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownHeaderProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownHeaderSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownHeaderProps>(), {\n headerClass: undefined,\n tag: 'h6',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownHeader')\ndefineSlots<BDropdownHeaderSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...headerAttrs} = attrs\n return {wrapperClass, headerAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-header\"\n :class=\"[colorClasses, props.headerClass]\"\n v-bind=\"processedAttrs.headerAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownHeaderProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownHeaderSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownHeaderProps>(), {\n headerClass: undefined,\n tag: 'h6',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownHeader')\ndefineSlots<BDropdownHeaderSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...headerAttrs} = attrs\n return {wrapperClass, headerAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <component\n :is=\"computedTag\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-disabled=\"props.disabled ? true : null\"\n :aria-current=\"props.active ? true : null\"\n :href=\"computedTag === 'a' ? props.href : null\"\n :rel=\"props.rel\"\n role=\"menuitem\"\n :type=\"computedTag === 'button' ? 'button' : null\"\n :target=\"props.target\"\n v-bind=\"{...computedLinkProps, ...processedAttrs.dropdownItemAttrs}\"\n @click=\"clicked\"\n >\n <slot />\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport {computed, inject, useAttrs} from 'vue'\nimport type {BDropdownItemProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {collapseInjectionKey, dropdownInjectionKey, navbarInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownItemEmits, BDropdownItemSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemProps>(), {\n wrapperAttrs: undefined,\n // Link props\n linkClass: undefined,\n variant: null,\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n stretched: false,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n})\nconst props = useDefaults(_props, 'BDropdownItem')\nconst emit = defineEmits<BDropdownItemEmits>()\ndefineSlots<BDropdownItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dropdownItemAttrs} = attrs\n return {wrapperClass, dropdownItemAttrs}\n})\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.linkClass,\n colorClasses.value,\n {\n active: props.active,\n disabled: props.disabled,\n },\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.href ? 'a' : 'button'))\n\nconst collapseData = inject(collapseInjectionKey, null)\nconst dropdownData = inject(dropdownInjectionKey, null)\nconst navbarData = inject(navbarInjectionKey, null)\n\n// Pretty sure this emits if computedTag is not button and is disabled\nconst clicked = (e: Readonly<MouseEvent>): void => {\n emit('click', e)\n if (navbarData !== null && navbarData?.noAutoClose?.value !== true) {\n collapseData?.hide?.()\n }\n dropdownData?.hide?.()\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <component\n :is=\"computedTag\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-disabled=\"props.disabled ? true : null\"\n :aria-current=\"props.active ? true : null\"\n :href=\"computedTag === 'a' ? props.href : null\"\n :rel=\"props.rel\"\n role=\"menuitem\"\n :type=\"computedTag === 'button' ? 'button' : null\"\n :target=\"props.target\"\n v-bind=\"{...computedLinkProps, ...processedAttrs.dropdownItemAttrs}\"\n @click=\"clicked\"\n >\n <slot />\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport {computed, inject, useAttrs} from 'vue'\nimport type {BDropdownItemProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {collapseInjectionKey, dropdownInjectionKey, navbarInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownItemEmits, BDropdownItemSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemProps>(), {\n wrapperAttrs: undefined,\n // Link props\n linkClass: undefined,\n variant: null,\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n stretched: false,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n})\nconst props = useDefaults(_props, 'BDropdownItem')\nconst emit = defineEmits<BDropdownItemEmits>()\ndefineSlots<BDropdownItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dropdownItemAttrs} = attrs\n return {wrapperClass, dropdownItemAttrs}\n})\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.linkClass,\n colorClasses.value,\n {\n active: props.active,\n disabled: props.disabled,\n },\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.href ? 'a' : 'button'))\n\nconst collapseData = inject(collapseInjectionKey, null)\nconst dropdownData = inject(dropdownInjectionKey, null)\nconst navbarData = inject(navbarInjectionKey, null)\n\n// Pretty sure this emits if computedTag is not button and is disabled\nconst clicked = (e: Readonly<MouseEvent>): void => {\n emit('click', e)\n if (navbarData !== null && navbarData?.noAutoClose?.value !== true) {\n collapseData?.hide?.()\n }\n dropdownData?.hide?.()\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <button\n role=\"menu\"\n type=\"button\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n v-bind=\"processedAttrs.buttonAttrs\"\n @click=\"clicked\"\n >\n <slot />\n </button>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BDropdownItemButtonEmits, BDropdownItemButtonSlots} from '../../types'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownItemButtonProps} from '../../types/ComponentProps'\nimport {computed, useAttrs} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemButtonProps>(), {\n active: false,\n activeClass: 'active',\n buttonClass: undefined,\n disabled: false,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownItemButton')\nconst emit = defineEmits<BDropdownItemButtonEmits>()\ndefineSlots<BDropdownItemButtonSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...buttonAttrs} = attrs\n return {wrapperClass, buttonAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.buttonClass,\n colorClasses.value,\n {\n [props.activeClass]: props.active,\n disabled: props.disabled,\n },\n])\n\nconst clicked = (e: Readonly<MouseEvent>) => {\n if (props.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n emit('click', e)\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <button\n role=\"menu\"\n type=\"button\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n v-bind=\"processedAttrs.buttonAttrs\"\n @click=\"clicked\"\n >\n <slot />\n </button>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BDropdownItemButtonEmits, BDropdownItemButtonSlots} from '../../types'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownItemButtonProps} from '../../types/ComponentProps'\nimport {computed, useAttrs} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemButtonProps>(), {\n active: false,\n activeClass: 'active',\n buttonClass: undefined,\n disabled: false,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownItemButton')\nconst emit = defineEmits<BDropdownItemButtonEmits>()\ndefineSlots<BDropdownItemButtonSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...buttonAttrs} = attrs\n return {wrapperClass, buttonAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.buttonClass,\n colorClasses.value,\n {\n [props.activeClass]: props.active,\n disabled: props.disabled,\n },\n])\n\nconst clicked = (e: Readonly<MouseEvent>) => {\n if (props.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n emit('click', e)\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-item-text\"\n :class=\"[colorClasses, props.textClass]\"\n v-bind=\"processedAttrs.textAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownTextProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownTextSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownTextProps>(), {\n textClass: undefined,\n tag: 'span',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownText')\ndefineSlots<BDropdownTextSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...textAttrs} = attrs\n return {wrapperClass, textAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-item-text\"\n :class=\"[colorClasses, props.textClass]\"\n v-bind=\"processedAttrs.textAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownTextProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownTextSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownTextProps>(), {\n textClass: undefined,\n tag: 'span',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownText')\ndefineSlots<BDropdownTextSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...textAttrs} = attrs\n return {wrapperClass, textAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n"],"mappings":"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"}
|
|
@@ -4,11 +4,11 @@ import { i as getSafeDocument } from "./dom-AhkaSoh8.mjs";
|
|
|
4
4
|
import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
|
|
5
5
|
import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
|
|
6
6
|
import { t as useShowHide } from "./useShowHide-yAK5dhPT.mjs";
|
|
7
|
-
import { t as BButton_default } from "./BButton-
|
|
7
|
+
import { t as BButton_default } from "./BButton-CDo9SRvU.mjs";
|
|
8
8
|
import { t as ConditionalTeleport_default } from "./ConditionalTeleport-BNsziElf.mjs";
|
|
9
9
|
import { a as flip, d as size, i as autoUpdate, l as offset, n as useFloating, u as shift } from "./floating-ui.vue-CAMaNcqI.mjs";
|
|
10
10
|
import { t as ConditionalWrapper_default } from "./ConditionalWrapper-D9ovtbHB.mjs";
|
|
11
|
-
import { a as resolveBootstrapCaret, n as isBoundary, r as isRootBoundary } from "./floatingUi-
|
|
11
|
+
import { a as resolveBootstrapCaret, n as isBoundary, r as isRootBoundary } from "./floatingUi-BAUk171g.mjs";
|
|
12
12
|
import { t as getElement } from "./getElement-0_htvrFw.mjs";
|
|
13
13
|
import { Transition, computed, createBlock, createCommentVNode, createElementVNode, createTextVNode, createVNode, defineComponent, inject, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, openBlock, provide, readonly, ref, renderSlot, toDisplayString, toRef, unref, useModel, useTemplateRef, vShow, watch, withCtx, withDirectives } from "vue";
|
|
14
14
|
//#region src/components/BDropdown/BDropdown.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -63,7 +63,7 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
|
|
|
63
63
|
},
|
|
64
64
|
offset: { default: 0 },
|
|
65
65
|
role: { default: "menu" },
|
|
66
|
-
size: { default:
|
|
66
|
+
size: { default: void 0 },
|
|
67
67
|
noWrapper: {
|
|
68
68
|
type: Boolean,
|
|
69
69
|
default: false
|
|
@@ -83,6 +83,7 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
|
|
|
83
83
|
splitVariant: { default: void 0 },
|
|
84
84
|
strategy: { default: "absolute" },
|
|
85
85
|
text: { default: void 0 },
|
|
86
|
+
toggleAttrs: { default: void 0 },
|
|
86
87
|
toggleClass: { default: void 0 },
|
|
87
88
|
toggleText: { default: "Toggle dropdown" },
|
|
88
89
|
variant: { default: "secondary" },
|
|
@@ -297,12 +298,12 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
|
|
|
297
298
|
role: unref(inButtonGroupAttributes)?.role
|
|
298
299
|
}, {
|
|
299
300
|
default: withCtx(() => [
|
|
300
|
-
createVNode(BButton_default, {
|
|
301
|
+
createVNode(BButton_default, mergeProps({
|
|
301
302
|
id: unref(computedId),
|
|
302
303
|
ref: "_splitButton",
|
|
303
304
|
variant: unref(props).splitVariant || unref(props).variant,
|
|
304
305
|
size: unref(props).size,
|
|
305
|
-
class:
|
|
306
|
+
class: buttonClasses.value,
|
|
306
307
|
disabled: unref(props).splitDisabled || unref(props).disabled,
|
|
307
308
|
type: unref(props).splitButtonType,
|
|
308
309
|
"aria-label": unref(props).ariaLabel,
|
|
@@ -310,12 +311,11 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
|
|
|
310
311
|
"aria-haspopup": unref(props).split ? void 0 : "menu",
|
|
311
312
|
href: unref(props).split ? unref(props).splitHref : void 0,
|
|
312
313
|
icon: unref(props).icon,
|
|
313
|
-
to: unref(props).split && unref(props).splitTo ? unref(props).splitTo : void 0
|
|
314
|
-
|
|
315
|
-
}, {
|
|
314
|
+
to: unref(props).split && unref(props).splitTo ? unref(props).splitTo : void 0
|
|
315
|
+
}, !unref(props).split ? unref(props).toggleAttrs : void 0, { onClick: onSplitClick }), {
|
|
316
316
|
default: withCtx(() => [renderSlot(_ctx.$slots, "button-content", {}, () => [createTextVNode(toDisplayString(unref(props).text), 1)])]),
|
|
317
317
|
_: 3
|
|
318
|
-
},
|
|
318
|
+
}, 16, [
|
|
319
319
|
"id",
|
|
320
320
|
"variant",
|
|
321
321
|
"size",
|
|
@@ -329,21 +329,20 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
|
|
|
329
329
|
"icon",
|
|
330
330
|
"to"
|
|
331
331
|
]),
|
|
332
|
-
unref(props).split ? (openBlock(), createBlock(BButton_default, {
|
|
332
|
+
unref(props).split ? (openBlock(), createBlock(BButton_default, mergeProps({
|
|
333
333
|
key: 0,
|
|
334
334
|
id: unref(computedId) + "-split",
|
|
335
335
|
ref: "_button",
|
|
336
336
|
variant: unref(props).variant,
|
|
337
337
|
size: unref(props).size,
|
|
338
338
|
disabled: unref(props).disabled,
|
|
339
|
-
class:
|
|
339
|
+
class: [[unref(props).toggleClass, { show: unref(showRef) }], "dropdown-toggle-split dropdown-toggle"],
|
|
340
340
|
"aria-expanded": unref(showRef),
|
|
341
|
-
"aria-haspopup": "menu"
|
|
342
|
-
|
|
343
|
-
}, {
|
|
341
|
+
"aria-haspopup": "menu"
|
|
342
|
+
}, unref(props).toggleAttrs, { onClick: onButtonClick }), {
|
|
344
343
|
default: withCtx(() => [createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "toggle-text", {}, () => [createTextVNode(toDisplayString(unref(props).toggleText), 1)])])]),
|
|
345
344
|
_: 3
|
|
346
|
-
},
|
|
345
|
+
}, 16, [
|
|
347
346
|
"id",
|
|
348
347
|
"variant",
|
|
349
348
|
"size",
|
|
@@ -395,4 +394,4 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
|
|
|
395
394
|
//#endregion
|
|
396
395
|
export { BDropdown_default as t };
|
|
397
396
|
|
|
398
|
-
//# sourceMappingURL=BDropdown-
|
|
397
|
+
//# sourceMappingURL=BDropdown-D2pBrZsG.mjs.map
|