bootstrap-vue-next 0.24.16 → 0.24.17
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/{BAvatarGroup.vue_vue_type_script_setup_true_lang-BQCUzNG6.mjs → BAvatarGroup.vue_vue_type_script_setup_true_lang-Bnrb5qgN.mjs} +2 -2
- package/dist/{BAvatarGroup.vue_vue_type_script_setup_true_lang-BQCUzNG6.mjs.map → BAvatarGroup.vue_vue_type_script_setup_true_lang-Bnrb5qgN.mjs.map} +1 -1
- package/dist/{BAvatarGroup.vue_vue_type_script_setup_true_lang-KyttEVIS.js → BAvatarGroup.vue_vue_type_script_setup_true_lang-SamdrUf2.js} +2 -2
- package/dist/{BAvatarGroup.vue_vue_type_script_setup_true_lang-KyttEVIS.js.map → BAvatarGroup.vue_vue_type_script_setup_true_lang-SamdrUf2.js.map} +1 -1
- package/dist/{BBadge.vue_vue_type_script_setup_true_lang-DEK8-y8e.mjs → BBadge.vue_vue_type_script_setup_true_lang-C82q38Xl.mjs} +2 -2
- package/dist/{BBadge.vue_vue_type_script_setup_true_lang-DEK8-y8e.mjs.map → BBadge.vue_vue_type_script_setup_true_lang-C82q38Xl.mjs.map} +1 -1
- package/dist/{BBadge.vue_vue_type_script_setup_true_lang-DCsuZiB5.js → BBadge.vue_vue_type_script_setup_true_lang-CtLuETX7.js} +2 -2
- package/dist/{BBadge.vue_vue_type_script_setup_true_lang-DCsuZiB5.js.map → BBadge.vue_vue_type_script_setup_true_lang-CtLuETX7.js.map} +1 -1
- package/dist/{BDropdown.vue_vue_type_script_setup_true_lang-DC2pr_pL.mjs → BDropdown.vue_vue_type_script_setup_true_lang-BBlf_zfN.mjs} +2 -2
- package/dist/{BDropdown.vue_vue_type_script_setup_true_lang-DC2pr_pL.mjs.map → BDropdown.vue_vue_type_script_setup_true_lang-BBlf_zfN.mjs.map} +1 -1
- package/dist/{BDropdown.vue_vue_type_script_setup_true_lang-IkrH9BlP.js → BDropdown.vue_vue_type_script_setup_true_lang-Bttc25Hh.js} +2 -2
- package/dist/{BDropdown.vue_vue_type_script_setup_true_lang-IkrH9BlP.js.map → BDropdown.vue_vue_type_script_setup_true_lang-Bttc25Hh.js.map} +1 -1
- package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-C50reHb2.mjs → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang--YSZ6GxF.mjs} +2 -2
- package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-C50reHb2.mjs.map → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang--YSZ6GxF.mjs.map} +1 -1
- package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-5E4ULH73.js → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-CFYEHWO9.js} +2 -2
- package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-5E4ULH73.js.map → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-CFYEHWO9.js.map} +1 -1
- package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-B5cT1C4w.js → BFormRadioGroup.vue_vue_type_script_setup_true_lang-CLNh6Uit.js} +2 -2
- package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-B5cT1C4w.js.map → BFormRadioGroup.vue_vue_type_script_setup_true_lang-CLNh6Uit.js.map} +1 -1
- package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-DJCILOrN.mjs → BFormRadioGroup.vue_vue_type_script_setup_true_lang-WZzzVs1U.mjs} +2 -2
- package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-DJCILOrN.mjs.map → BFormRadioGroup.vue_vue_type_script_setup_true_lang-WZzzVs1U.mjs.map} +1 -1
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-Exa-2z81.mjs → BNavText.vue_vue_type_script_setup_true_lang-BrRdgZDM.mjs} +2 -2
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-Exa-2z81.mjs.map → BNavText.vue_vue_type_script_setup_true_lang-BrRdgZDM.mjs.map} +1 -1
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-0AcCbocR.js → BNavText.vue_vue_type_script_setup_true_lang-DSyBhH3E.js} +2 -2
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-0AcCbocR.js.map → BNavText.vue_vue_type_script_setup_true_lang-DSyBhH3E.js.map} +1 -1
- package/dist/{BOverlay.vue_vue_type_script_setup_true_lang-B6R5Vd0q.js → BOverlay.vue_vue_type_script_setup_true_lang-2Z6KXqxf.js} +2 -2
- package/dist/{BOverlay.vue_vue_type_script_setup_true_lang-B6R5Vd0q.js.map → BOverlay.vue_vue_type_script_setup_true_lang-2Z6KXqxf.js.map} +1 -1
- package/dist/{BOverlay.vue_vue_type_script_setup_true_lang-QGQlohi6.mjs → BOverlay.vue_vue_type_script_setup_true_lang-BxDX9fPu.mjs} +2 -2
- package/dist/{BOverlay.vue_vue_type_script_setup_true_lang-QGQlohi6.mjs.map → BOverlay.vue_vue_type_script_setup_true_lang-BxDX9fPu.mjs.map} +1 -1
- package/dist/{BTable.vue_vue_type_script_setup_true_lang-mZVbjCrV.mjs → BTable.vue_vue_type_script_setup_true_lang-BxaQZSFR.mjs} +2 -2
- package/dist/{BTable.vue_vue_type_script_setup_true_lang-mZVbjCrV.mjs.map → BTable.vue_vue_type_script_setup_true_lang-BxaQZSFR.mjs.map} +1 -1
- package/dist/{BTable.vue_vue_type_script_setup_true_lang-By6bmbz7.js → BTable.vue_vue_type_script_setup_true_lang-Vf3AQEQS.js} +2 -2
- package/dist/{BTable.vue_vue_type_script_setup_true_lang-By6bmbz7.js.map → BTable.vue_vue_type_script_setup_true_lang-Vf3AQEQS.js.map} +1 -1
- package/dist/{ConditionalWrapper.vue_vue_type_script_lang-C_5wlT3v.mjs → ConditionalWrapper.vue_vue_type_script_lang-B-0cSyYg.mjs} +2 -2
- package/dist/ConditionalWrapper.vue_vue_type_script_lang-B-0cSyYg.mjs.map +1 -0
- package/dist/ConditionalWrapper.vue_vue_type_script_lang-BClbTb87.js +2 -0
- package/dist/ConditionalWrapper.vue_vue_type_script_lang-BClbTb87.js.map +1 -0
- package/dist/bootstrap-vue-next.mjs +9 -9
- package/dist/bootstrap-vue-next.umd.js +1 -1
- package/dist/{index-0aeDM_Nc.mjs → index-CBiGYFOL.mjs} +9 -9
- package/dist/{index-0aeDM_Nc.mjs.map → index-CBiGYFOL.mjs.map} +1 -1
- package/dist/{index-mVKnXTAA.js → index-DI-Lbb7g.js} +2 -2
- package/dist/index-DI-Lbb7g.js.map +1 -0
- package/dist/src/components/BAvatar/index.mjs +1 -1
- package/dist/src/components/BAvatar/index.umd.js +1 -1
- package/dist/src/components/BBadge/index.mjs +1 -1
- package/dist/src/components/BBadge/index.umd.js +1 -1
- package/dist/src/components/BDropdown/index.mjs +1 -1
- package/dist/src/components/BDropdown/index.umd.js +1 -1
- 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/BNav/index.mjs +1 -1
- package/dist/src/components/BNav/index.umd.js +1 -1
- package/dist/src/components/BOverlay/index.mjs +1 -1
- package/dist/src/components/BOverlay/index.umd.js +1 -1
- package/dist/src/components/BTable/index.mjs +1 -1
- package/dist/src/components/BTable/index.umd.js +1 -1
- package/dist/src/components/index.mjs +8 -8
- package/dist/src/components/index.umd.js +1 -1
- package/dist/useRadiusElementClasses-D-ydxJLn.js.map +1 -1
- package/dist/useRadiusElementClasses-DtKYQuWz.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/ConditionalWrapper.vue_vue_type_script_lang-C_5wlT3v.mjs.map +0 -1
- package/dist/ConditionalWrapper.vue_vue_type_script_lang-E5HgRId6.js +0 -2
- package/dist/ConditionalWrapper.vue_vue_type_script_lang-E5HgRId6.js.map +0 -1
- package/dist/index-mVKnXTAA.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, useSlots, inject, computed, openBlock, createBlock, resolveDynamicComponent, mergeProps, unref, withCtx, createElementBlock, renderSlot, createElementVNode, normalizeStyle, toDisplayString, createTextVNode, createCommentVNode, provide, toRef } from "vue";
|
|
2
2
|
import { h as avatarGroupInjectionKey } from "./keys-CLEaYsGj.mjs";
|
|
3
3
|
import { _ as _sfc_main$2 } from "./BLink.vue_vue_type_script_setup_true_lang-C39-ereM.mjs";
|
|
4
|
-
import { _ as _sfc_main$3 } from "./BBadge.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { _ as _sfc_main$3 } from "./BBadge.vue_vue_type_script_setup_true_lang-C82q38Xl.mjs";
|
|
5
5
|
import { u as useBLinkHelper } from "./useBLinkHelper-Bvtov_sk.mjs";
|
|
6
6
|
import { i as isEmptySlot } from "./dom-B-SQyhbA.mjs";
|
|
7
7
|
import { u as useNumberishToStyle } from "./useNumberishToStyle-BWrWARZP.mjs";
|
|
@@ -262,4 +262,4 @@ export {
|
|
|
262
262
|
_sfc_main$1 as _,
|
|
263
263
|
_sfc_main as a
|
|
264
264
|
};
|
|
265
|
-
//# sourceMappingURL=BAvatarGroup.vue_vue_type_script_setup_true_lang-
|
|
265
|
+
//# sourceMappingURL=BAvatarGroup.vue_vue_type_script_setup_true_lang-Bnrb5qgN.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BAvatarGroup.vue_vue_type_script_setup_true_lang-BQCUzNG6.mjs","sources":["../src/components/BAvatar/BAvatar.vue","../src/components/BAvatar/BAvatarGroup.vue"],"sourcesContent":["<template>\n <component\n :is=\"computedTag\"\n class=\"b-avatar\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n v-bind=\"computedLinkProps\"\n :type=\"props.button && !computedLink ? props.buttonType : undefined\"\n :disabled=\"props.disabled || null\"\n @click=\"clicked\"\n >\n <span v-if=\"hasDefaultSlot\" class=\"b-avatar-custom\">\n <slot />\n </span>\n <span v-else-if=\"!!props.src\" class=\"b-avatar-img\">\n <img :src=\"props.src\" :alt=\"props.alt\" @error=\"onImgError\" />\n </span>\n <span v-else-if=\"!!props.text\" class=\"b-avatar-text\" :style=\"textFontStyle\">\n {{ props.text }}\n </span>\n <span v-else class=\"b-avatar-img\"\n ><svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"80%\"\n height=\"80%\"\n fill=\"currentColor\"\n class=\"bi bi-person-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6\" /></svg\n ></span>\n <BBadge\n v-if=\"showBadge\"\n :pill=\"props.badgePill\"\n :dot-indicator=\"props.badgeDotIndicator || badgeImplicitlyDot\"\n :variant=\"props.badgeVariant\"\n :bg-variant=\"props.badgeBgVariant\"\n :text-variant=\"props.badgeTextVariant\"\n :style=\"badgeStyle\"\n :placement=\"props.badgePlacement\"\n >\n <slot name=\"badge\">\n {{ badgeText }}\n </slot>\n </BBadge>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {computed, type CSSProperties, inject, type StyleValue} from 'vue'\nimport type {BAvatarProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport BBadge from '../BBadge/BBadge.vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\nconst props = withDefaults(defineProps<BAvatarProps>(), {\n alt: 'avatar',\n badge: false,\n badgeBgVariant: null,\n badgeTextVariant: null,\n badgeVariant: 'primary',\n badgePlacement: 'bottom-end',\n badgeDotIndicator: false,\n badgePill: false,\n button: false,\n buttonType: 'button',\n size: undefined,\n square: false,\n src: undefined,\n text: undefined,\n // Link props\n variant: 'secondary',\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n opacity: undefined,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n stretched: false,\n routerComponentName: undefined,\n target: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n // ColorExtendables props\n // Variant is here as well\n bgVariant: null,\n textVariant: null,\n // End ColorExtendables props\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\n\nconst emit = defineEmits<{\n 'click': [value: MouseEvent]\n 'img-error': [value: Event]\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n badge?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst parentData = inject(avatarGroupInjectionKey, null)\n\nconst SIZES = ['sm', null, 'lg']\nconst FONT_SIZE_SCALE = 0.4\nconst BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\nconst hasBadgeSlot = computed(() => !isEmptySlot(slots.badge))\n\nconst showBadge = computed(() => !!props.badge || props.badge === '' || hasBadgeSlot.value)\nconst computedSquare = computed(() => parentData?.square.value || props.square)\n\nconst computedPropSize = useNumberishToStyle(() => props.size)\nconst computedParentSize = useNumberishToStyle(() => parentData?.size.value)\nconst computedSize = computed(() => computedParentSize.value ?? computedPropSize.value)\n\nconst computedVariant = computed(() => parentData?.variant.value ?? props.variant)\nconst computedRounded = computed(() => parentData?.rounded.value ?? props.rounded)\nconst computedRoundedTop = computed(() => parentData?.roundedTop.value ?? props.roundedTop)\nconst computedRoundedBottom = computed(() => parentData?.roundedBottom.value ?? props.roundedBottom)\nconst computedRoundedStart = computed(() => parentData?.roundedStart.value ?? props.roundedStart)\nconst computedRoundedEnd = computed(() => parentData?.roundedEnd.value ?? props.roundedEnd)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: computedRounded.value,\n roundedTop: computedRoundedTop.value,\n roundedBottom: computedRoundedBottom.value,\n roundedStart: computedRoundedStart.value,\n roundedEnd: computedRoundedEnd.value,\n}))\n\nconst badgeText = computed(() => (props.badge === true ? '' : props.badge))\nconst badgeImplicitlyDot = computed(() => !badgeText.value && !hasBadgeSlot.value)\n\nconst computedTextVariant = computed(() => parentData?.textVariant.value ?? props.textVariant)\nconst computedBgVariant = computed(() => parentData?.bgVariant.value ?? props.bgVariant)\n\nconst resolvedBackgroundClasses = useColorVariantClasses(() => ({\n bgVariant: computedBgVariant.value,\n textVariant: computedTextVariant.value,\n variant: computedVariant.value,\n}))\n\nconst computedClasses = computed(() => [\n resolvedBackgroundClasses.value,\n // Square overwrites all else\n computedSquare.value === true ? undefined : radiusElementClasses.value,\n {\n [`b-avatar-${props.size}`]:\n !!props.size && SIZES.indexOf(computedPropSize.value as string) !== -1,\n [`btn-${computedVariant.value}`]: props.button ? computedVariant.value !== null : false,\n 'badge': !props.button && computedVariant.value !== null && hasDefaultSlot.value,\n 'btn': props.button,\n // Square is the same as rounded-0 class\n 'rounded-0': computedSquare.value === true,\n },\n])\n\nconst badgeStyle = computed<StyleValue>(() => ({\n fontSize:\n (SIZES.indexOf((computedSize.value as string | undefined) || null) === -1\n ? `calc(${computedSize.value} * ${BADGE_FONT_SIZE_SCALE})`\n : '') || '',\n}))\n\nconst textFontStyle = computed<StyleValue>(() => {\n const fontSize =\n SIZES.indexOf((computedSize.value as string | undefined) || null) === -1\n ? `calc(${computedSize.value} * ${FONT_SIZE_SCALE})`\n : null\n return fontSize ? {fontSize} : {}\n})\n\nconst marginStyle = computed(() => {\n const overlapScale = parentData?.overlapScale?.value || 0\n\n const value =\n computedSize.value && overlapScale ? `calc(${computedSize.value} * -${overlapScale})` : null\n return value ? {marginLeft: value, marginRight: value} : {}\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.button ? 'button' : 'span'))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n ...marginStyle.value,\n width: computedSize.value ?? undefined,\n height: computedSize.value ?? undefined,\n}))\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n if (!props.disabled && (computedLink.value || props.button)) emit('click', e)\n}\n\nconst onImgError = (e: Readonly<Event>) => {\n emit('img-error', e)\n}\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"b-avatar-group\" role=\"group\">\n <div class=\"b-avatar-group-inner\" :style=\"paddingStyle\">\n <slot />\n </div>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, type StyleValue, toRef} from 'vue'\nimport type {BAvatarGroupProps} from '../../types/ComponentProps'\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useToNumber} from '@vueuse/core'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\n\nconst _props = withDefaults(defineProps<BAvatarGroupProps>(), {\n overlap: 0.3,\n size: undefined,\n square: false,\n tag: 'div',\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BAvatarGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst overlapNumber = useToNumber(() => props.overlap)\n\nconst computedSize = useNumberishToStyle(() => props.size)\nconst overlapScale = computed(() => Math.min(Math.max(overlapNumber.value, 0), 1) / 2)\n\nconst paddingStyle = computed<StyleValue>(() => {\n const value = computedSize.value ? `calc(${computedSize.value} * ${overlapScale.value})` : null\n return value ? {paddingLeft: value, paddingRight: value} : {}\n})\n\nprovide(avatarGroupInjectionKey, {\n overlapScale,\n size: toRef(() => props.size),\n square: toRef(() => props.square),\n rounded: toRef(() => props.rounded),\n roundedTop: toRef(() => props.roundedTop),\n roundedBottom: toRef(() => props.roundedBottom),\n roundedStart: toRef(() => props.roundedStart),\n roundedEnd: toRef(() => props.roundedEnd),\n variant: toRef(() => props.variant),\n bgVariant: toRef(() => props.bgVariant),\n textVariant: toRef(() => props.textVariant),\n})\n</script>\n"],"names":["_useSlots","BLink"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BAvatarGroup.vue_vue_type_script_setup_true_lang-Bnrb5qgN.mjs","sources":["../src/components/BAvatar/BAvatar.vue","../src/components/BAvatar/BAvatarGroup.vue"],"sourcesContent":["<template>\n <component\n :is=\"computedTag\"\n class=\"b-avatar\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n v-bind=\"computedLinkProps\"\n :type=\"props.button && !computedLink ? props.buttonType : undefined\"\n :disabled=\"props.disabled || null\"\n @click=\"clicked\"\n >\n <span v-if=\"hasDefaultSlot\" class=\"b-avatar-custom\">\n <slot />\n </span>\n <span v-else-if=\"!!props.src\" class=\"b-avatar-img\">\n <img :src=\"props.src\" :alt=\"props.alt\" @error=\"onImgError\" />\n </span>\n <span v-else-if=\"!!props.text\" class=\"b-avatar-text\" :style=\"textFontStyle\">\n {{ props.text }}\n </span>\n <span v-else class=\"b-avatar-img\"\n ><svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"80%\"\n height=\"80%\"\n fill=\"currentColor\"\n class=\"bi bi-person-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6\" /></svg\n ></span>\n <BBadge\n v-if=\"showBadge\"\n :pill=\"props.badgePill\"\n :dot-indicator=\"props.badgeDotIndicator || badgeImplicitlyDot\"\n :variant=\"props.badgeVariant\"\n :bg-variant=\"props.badgeBgVariant\"\n :text-variant=\"props.badgeTextVariant\"\n :style=\"badgeStyle\"\n :placement=\"props.badgePlacement\"\n >\n <slot name=\"badge\">\n {{ badgeText }}\n </slot>\n </BBadge>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {computed, type CSSProperties, inject, type StyleValue} from 'vue'\nimport type {BAvatarProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport BBadge from '../BBadge/BBadge.vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\nconst props = withDefaults(defineProps<BAvatarProps>(), {\n alt: 'avatar',\n badge: false,\n badgeBgVariant: null,\n badgeTextVariant: null,\n badgeVariant: 'primary',\n badgePlacement: 'bottom-end',\n badgeDotIndicator: false,\n badgePill: false,\n button: false,\n buttonType: 'button',\n size: undefined,\n square: false,\n src: undefined,\n text: undefined,\n // Link props\n variant: 'secondary',\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n opacity: undefined,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n stretched: false,\n routerComponentName: undefined,\n target: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n // ColorExtendables props\n // Variant is here as well\n bgVariant: null,\n textVariant: null,\n // End ColorExtendables props\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\n\nconst emit = defineEmits<{\n 'click': [value: MouseEvent]\n 'img-error': [value: Event]\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n badge?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst parentData = inject(avatarGroupInjectionKey, null)\n\nconst SIZES = ['sm', null, 'lg']\nconst FONT_SIZE_SCALE = 0.4\nconst BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\nconst hasBadgeSlot = computed(() => !isEmptySlot(slots.badge))\n\nconst showBadge = computed(() => !!props.badge || props.badge === '' || hasBadgeSlot.value)\nconst computedSquare = computed(() => parentData?.square.value || props.square)\n\nconst computedPropSize = useNumberishToStyle(() => props.size)\nconst computedParentSize = useNumberishToStyle(() => parentData?.size.value)\nconst computedSize = computed(() => computedParentSize.value ?? computedPropSize.value)\n\nconst computedVariant = computed(() => parentData?.variant.value ?? props.variant)\nconst computedRounded = computed(() => parentData?.rounded.value ?? props.rounded)\nconst computedRoundedTop = computed(() => parentData?.roundedTop.value ?? props.roundedTop)\nconst computedRoundedBottom = computed(() => parentData?.roundedBottom.value ?? props.roundedBottom)\nconst computedRoundedStart = computed(() => parentData?.roundedStart.value ?? props.roundedStart)\nconst computedRoundedEnd = computed(() => parentData?.roundedEnd.value ?? props.roundedEnd)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: computedRounded.value,\n roundedTop: computedRoundedTop.value,\n roundedBottom: computedRoundedBottom.value,\n roundedStart: computedRoundedStart.value,\n roundedEnd: computedRoundedEnd.value,\n}))\n\nconst badgeText = computed(() => (props.badge === true ? '' : props.badge))\nconst badgeImplicitlyDot = computed(() => !badgeText.value && !hasBadgeSlot.value)\n\nconst computedTextVariant = computed(() => parentData?.textVariant.value ?? props.textVariant)\nconst computedBgVariant = computed(() => parentData?.bgVariant.value ?? props.bgVariant)\n\nconst resolvedBackgroundClasses = useColorVariantClasses(() => ({\n bgVariant: computedBgVariant.value,\n textVariant: computedTextVariant.value,\n variant: computedVariant.value,\n}))\n\nconst computedClasses = computed(() => [\n resolvedBackgroundClasses.value,\n // Square overwrites all else\n computedSquare.value === true ? undefined : radiusElementClasses.value,\n {\n [`b-avatar-${props.size}`]:\n !!props.size && SIZES.indexOf(computedPropSize.value as string) !== -1,\n [`btn-${computedVariant.value}`]: props.button ? computedVariant.value !== null : false,\n 'badge': !props.button && computedVariant.value !== null && hasDefaultSlot.value,\n 'btn': props.button,\n // Square is the same as rounded-0 class\n 'rounded-0': computedSquare.value === true,\n },\n])\n\nconst badgeStyle = computed<StyleValue>(() => ({\n fontSize:\n (SIZES.indexOf((computedSize.value as string | undefined) || null) === -1\n ? `calc(${computedSize.value} * ${BADGE_FONT_SIZE_SCALE})`\n : '') || '',\n}))\n\nconst textFontStyle = computed<StyleValue>(() => {\n const fontSize =\n SIZES.indexOf((computedSize.value as string | undefined) || null) === -1\n ? `calc(${computedSize.value} * ${FONT_SIZE_SCALE})`\n : null\n return fontSize ? {fontSize} : {}\n})\n\nconst marginStyle = computed(() => {\n const overlapScale = parentData?.overlapScale?.value || 0\n\n const value =\n computedSize.value && overlapScale ? `calc(${computedSize.value} * -${overlapScale})` : null\n return value ? {marginLeft: value, marginRight: value} : {}\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.button ? 'button' : 'span'))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n ...marginStyle.value,\n width: computedSize.value ?? undefined,\n height: computedSize.value ?? undefined,\n}))\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n if (!props.disabled && (computedLink.value || props.button)) emit('click', e)\n}\n\nconst onImgError = (e: Readonly<Event>) => {\n emit('img-error', e)\n}\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"b-avatar-group\" role=\"group\">\n <div class=\"b-avatar-group-inner\" :style=\"paddingStyle\">\n <slot />\n </div>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, type StyleValue, toRef} from 'vue'\nimport type {BAvatarGroupProps} from '../../types/ComponentProps'\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useToNumber} from '@vueuse/core'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\n\nconst _props = withDefaults(defineProps<BAvatarGroupProps>(), {\n overlap: 0.3,\n size: undefined,\n square: false,\n tag: 'div',\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BAvatarGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst overlapNumber = useToNumber(() => props.overlap)\n\nconst computedSize = useNumberishToStyle(() => props.size)\nconst overlapScale = computed(() => Math.min(Math.max(overlapNumber.value, 0), 1) / 2)\n\nconst paddingStyle = computed<StyleValue>(() => {\n const value = computedSize.value ? `calc(${computedSize.value} * ${overlapScale.value})` : null\n return value ? {paddingLeft: value, paddingRight: value} : {}\n})\n\nprovide(avatarGroupInjectionKey, {\n overlapScale,\n size: toRef(() => props.size),\n square: toRef(() => props.square),\n rounded: toRef(() => props.rounded),\n roundedTop: toRef(() => props.roundedTop),\n roundedBottom: toRef(() => props.roundedBottom),\n roundedStart: toRef(() => props.roundedStart),\n roundedEnd: toRef(() => props.roundedEnd),\n variant: toRef(() => props.variant),\n bgVariant: toRef(() => props.bgVariant),\n textVariant: toRef(() => props.textVariant),\n})\n</script>\n"],"names":["_useSlots","BLink"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),t=require("./keys-BgAe7wbu.js"),a=require("./BLink.vue_vue_type_script_setup_true_lang-CGvuLpmP.js"),l=require("./BBadge.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
//# sourceMappingURL=BAvatarGroup.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
"use strict";const e=require("vue"),t=require("./keys-BgAe7wbu.js"),a=require("./BLink.vue_vue_type_script_setup_true_lang-CGvuLpmP.js"),l=require("./BBadge.vue_vue_type_script_setup_true_lang-CtLuETX7.js"),o=require("./useBLinkHelper-BxI4evA6.js"),u=require("./dom-C-F8jHop.js"),d=require("./useNumberishToStyle-CUqOYwz3.js"),n=require("./useRadiusElementClasses-D-ydxJLn.js"),r=require("./useColorVariantClasses-CnrZmyKT.js"),i=require("./useDefaults-Cd8OVIUI.js"),v=require("./index-BInTFWT4.js"),s={key:0,class:"b-avatar-custom"},c={key:1,class:"b-avatar-img"},p=["src","alt"],m={key:3,class:"b-avatar-img"},f=e.defineComponent({__name:"BAvatar",props:{alt:{default:"avatar"},badge:{type:[Boolean,String],default:!1},badgeBgVariant:{default:null},badgePlacement:{default:"bottom-end"},badgeTextVariant:{default:null},badgeVariant:{default:"primary"},badgePill:{type:Boolean,default:!1},badgeDotIndicator:{type:Boolean,default:!1},button:{type:Boolean,default:!1},buttonType:{default:"button"},size:{default:void 0},square:{type:Boolean,default:!1},src:{default:void 0},text:{default:void 0},active:{type:Boolean,default:void 0},activeClass:{default:void 0},disabled:{type:Boolean,default:void 0},exactActiveClass:{default:void 0},href:{default:void 0},noRel:{type:Boolean},opacity:{default:void 0},opacityHover:{default:void 0},rel:{default:void 0},replace:{type:Boolean,default:void 0},routerComponentName:{default:void 0},stretched:{type:Boolean,default:!1},target:{default:void 0},to:{},underlineOffset:{default:void 0},underlineOffsetHover:{default:void 0},underlineOpacity:{default:void 0},underlineOpacityHover:{default:void 0},underlineVariant:{default:void 0},variant:{default:"secondary"},bgVariant:{default:null},textVariant:{default:null},rounded:{type:[Boolean,String,Number],default:"circle"},roundedTop:{type:[Boolean,String,Number],default:void 0},roundedBottom:{type:[Boolean,String,Number],default:void 0},roundedStart:{type:[Boolean,String,Number],default:void 0},roundedEnd:{type:[Boolean,String,Number],default:void 0}},emits:["click","img-error"],setup(i,{emit:v}){const f=i,b=v,g=e.useSlots(),{computedLink:y,computedLinkProps:B}=o.useBLinkHelper(f),S=e.inject(t.avatarGroupInjectionKey,null),x=["sm",null,"lg"],V=e.computed((()=>!u.isEmptySlot(g.default))),k=e.computed((()=>!u.isEmptySlot(g.badge))),_=e.computed((()=>!!f.badge||""===f.badge||k.value)),N=e.computed((()=>(null==S?void 0:S.square.value)||f.square)),h=d.useNumberishToStyle((()=>f.size)),E=d.useNumberishToStyle((()=>null==S?void 0:S.size.value)),C=e.computed((()=>E.value??h.value)),q=e.computed((()=>(null==S?void 0:S.variant.value)??f.variant)),T=e.computed((()=>(null==S?void 0:S.rounded.value)??f.rounded)),z=e.computed((()=>(null==S?void 0:S.roundedTop.value)??f.roundedTop)),R=e.computed((()=>(null==S?void 0:S.roundedBottom.value)??f.roundedBottom)),j=e.computed((()=>(null==S?void 0:S.roundedStart.value)??f.roundedStart)),$=e.computed((()=>(null==S?void 0:S.roundedEnd.value)??f.roundedEnd)),w=n.useRadiusElementClasses((()=>({rounded:T.value,roundedTop:z.value,roundedBottom:R.value,roundedStart:j.value,roundedEnd:$.value}))),D=e.computed((()=>!0===f.badge?"":f.badge)),L=e.computed((()=>!D.value&&!k.value)),O=e.computed((()=>(null==S?void 0:S.textVariant.value)??f.textVariant)),P=e.computed((()=>(null==S?void 0:S.bgVariant.value)??f.bgVariant)),H=r.useColorVariantClasses((()=>({bgVariant:P.value,textVariant:O.value,variant:q.value}))),A=e.computed((()=>[H.value,!0===N.value?void 0:w.value,{[`b-avatar-${f.size}`]:!!f.size&&-1!==x.indexOf(h.value),[`btn-${q.value}`]:!!f.button&&null!==q.value,badge:!f.button&&null!==q.value&&V.value,btn:f.button,"rounded-0":!0===N.value}])),G=e.computed((()=>({fontSize:(-1===x.indexOf(C.value||null)?`calc(${C.value} * 0.27999999999999997)`:"")||""}))),I=e.computed((()=>{const e=-1===x.indexOf(C.value||null)?`calc(${C.value} * 0.4)`:null;return e?{fontSize:e}:{}})),M=e.computed((()=>{var e;const t=(null==(e=null==S?void 0:S.overlapScale)?void 0:e.value)||0,a=C.value&&t?`calc(${C.value} * -${t})`:null;return a?{marginLeft:a,marginRight:a}:{}})),K=e.computed((()=>y.value?a._sfc_main:f.button?"button":"span")),W=e.computed((()=>({...M.value,width:C.value??void 0,height:C.value??void 0}))),F=e=>{f.disabled||!y.value&&!f.button||b("click",e)},J=e=>{b("img-error",e)};return(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(K.value),e.mergeProps({class:["b-avatar",A.value],style:W.value},e.unref(B),{type:f.button&&!e.unref(y)?f.buttonType:void 0,disabled:f.disabled||null,onClick:F}),{default:e.withCtx((()=>[V.value?(e.openBlock(),e.createElementBlock("span",s,[e.renderSlot(t.$slots,"default")])):f.src?(e.openBlock(),e.createElementBlock("span",c,[e.createElementVNode("img",{src:f.src,alt:f.alt,onError:J},null,40,p)])):f.text?(e.openBlock(),e.createElementBlock("span",{key:2,class:"b-avatar-text",style:e.normalizeStyle(I.value)},e.toDisplayString(f.text),5)):(e.openBlock(),e.createElementBlock("span",m,a[0]||(a[0]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"80%",height:"80%",fill:"currentColor",class:"bi bi-person-fill",viewBox:"0 0 16 16"},[e.createElementVNode("path",{d:"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6"})],-1)]))),_.value?(e.openBlock(),e.createBlock(l._sfc_main,{key:4,pill:f.badgePill,"dot-indicator":f.badgeDotIndicator||L.value,variant:f.badgeVariant,"bg-variant":f.badgeBgVariant,"text-variant":f.badgeTextVariant,style:e.normalizeStyle(G.value),placement:f.badgePlacement},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"badge",{},(()=>[e.createTextVNode(e.toDisplayString(D.value),1)]))])),_:3},8,["pill","dot-indicator","variant","bg-variant","text-variant","style","placement"])):e.createCommentVNode("",!0)])),_:3},16,["class","style","type","disabled"]))}}),b=e.defineComponent({__name:"BAvatarGroup",props:{overlap:{default:.3},size:{default:void 0},square:{type:Boolean,default:!1},tag:{default:"div"},variant:{default:null},bgVariant:{default:null},textVariant:{default:null},rounded:{type:[Boolean,String,Number],default:"circle"},roundedTop:{type:[Boolean,String,Number],default:void 0},roundedBottom:{type:[Boolean,String,Number],default:void 0},roundedStart:{type:[Boolean,String,Number],default:void 0},roundedEnd:{type:[Boolean,String,Number],default:void 0}},setup(a){const l=a,o=i.useDefaults(l,"BAvatarGroup"),u=v.useToNumber((()=>o.overlap)),n=d.useNumberishToStyle((()=>o.size)),r=e.computed((()=>Math.min(Math.max(u.value,0),1)/2)),s=e.computed((()=>{const e=n.value?`calc(${n.value} * ${r.value})`:null;return e?{paddingLeft:e,paddingRight:e}:{}}));return e.provide(t.avatarGroupInjectionKey,{overlapScale:r,size:e.toRef((()=>o.size)),square:e.toRef((()=>o.square)),rounded:e.toRef((()=>o.rounded)),roundedTop:e.toRef((()=>o.roundedTop)),roundedBottom:e.toRef((()=>o.roundedBottom)),roundedStart:e.toRef((()=>o.roundedStart)),roundedEnd:e.toRef((()=>o.roundedEnd)),variant:e.toRef((()=>o.variant)),bgVariant:e.toRef((()=>o.bgVariant)),textVariant:e.toRef((()=>o.textVariant))}),(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(o).tag),{class:"b-avatar-group",role:"group"},{default:e.withCtx((()=>[e.createElementVNode("div",{class:"b-avatar-group-inner",style:e.normalizeStyle(s.value)},[e.renderSlot(t.$slots,"default")],4)])),_:3}))}});exports._sfc_main=f,exports._sfc_main$1=b;
|
|
2
|
+
//# sourceMappingURL=BAvatarGroup.vue_vue_type_script_setup_true_lang-SamdrUf2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BAvatarGroup.vue_vue_type_script_setup_true_lang-KyttEVIS.js","sources":["../src/components/BAvatar/BAvatar.vue","../src/components/BAvatar/BAvatarGroup.vue"],"sourcesContent":["<template>\n <component\n :is=\"computedTag\"\n class=\"b-avatar\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n v-bind=\"computedLinkProps\"\n :type=\"props.button && !computedLink ? props.buttonType : undefined\"\n :disabled=\"props.disabled || null\"\n @click=\"clicked\"\n >\n <span v-if=\"hasDefaultSlot\" class=\"b-avatar-custom\">\n <slot />\n </span>\n <span v-else-if=\"!!props.src\" class=\"b-avatar-img\">\n <img :src=\"props.src\" :alt=\"props.alt\" @error=\"onImgError\" />\n </span>\n <span v-else-if=\"!!props.text\" class=\"b-avatar-text\" :style=\"textFontStyle\">\n {{ props.text }}\n </span>\n <span v-else class=\"b-avatar-img\"\n ><svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"80%\"\n height=\"80%\"\n fill=\"currentColor\"\n class=\"bi bi-person-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6\" /></svg\n ></span>\n <BBadge\n v-if=\"showBadge\"\n :pill=\"props.badgePill\"\n :dot-indicator=\"props.badgeDotIndicator || badgeImplicitlyDot\"\n :variant=\"props.badgeVariant\"\n :bg-variant=\"props.badgeBgVariant\"\n :text-variant=\"props.badgeTextVariant\"\n :style=\"badgeStyle\"\n :placement=\"props.badgePlacement\"\n >\n <slot name=\"badge\">\n {{ badgeText }}\n </slot>\n </BBadge>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {computed, type CSSProperties, inject, type StyleValue} from 'vue'\nimport type {BAvatarProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport BBadge from '../BBadge/BBadge.vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\nconst props = withDefaults(defineProps<BAvatarProps>(), {\n alt: 'avatar',\n badge: false,\n badgeBgVariant: null,\n badgeTextVariant: null,\n badgeVariant: 'primary',\n badgePlacement: 'bottom-end',\n badgeDotIndicator: false,\n badgePill: false,\n button: false,\n buttonType: 'button',\n size: undefined,\n square: false,\n src: undefined,\n text: undefined,\n // Link props\n variant: 'secondary',\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n opacity: undefined,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n stretched: false,\n routerComponentName: undefined,\n target: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n // ColorExtendables props\n // Variant is here as well\n bgVariant: null,\n textVariant: null,\n // End ColorExtendables props\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\n\nconst emit = defineEmits<{\n 'click': [value: MouseEvent]\n 'img-error': [value: Event]\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n badge?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst parentData = inject(avatarGroupInjectionKey, null)\n\nconst SIZES = ['sm', null, 'lg']\nconst FONT_SIZE_SCALE = 0.4\nconst BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\nconst hasBadgeSlot = computed(() => !isEmptySlot(slots.badge))\n\nconst showBadge = computed(() => !!props.badge || props.badge === '' || hasBadgeSlot.value)\nconst computedSquare = computed(() => parentData?.square.value || props.square)\n\nconst computedPropSize = useNumberishToStyle(() => props.size)\nconst computedParentSize = useNumberishToStyle(() => parentData?.size.value)\nconst computedSize = computed(() => computedParentSize.value ?? computedPropSize.value)\n\nconst computedVariant = computed(() => parentData?.variant.value ?? props.variant)\nconst computedRounded = computed(() => parentData?.rounded.value ?? props.rounded)\nconst computedRoundedTop = computed(() => parentData?.roundedTop.value ?? props.roundedTop)\nconst computedRoundedBottom = computed(() => parentData?.roundedBottom.value ?? props.roundedBottom)\nconst computedRoundedStart = computed(() => parentData?.roundedStart.value ?? props.roundedStart)\nconst computedRoundedEnd = computed(() => parentData?.roundedEnd.value ?? props.roundedEnd)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: computedRounded.value,\n roundedTop: computedRoundedTop.value,\n roundedBottom: computedRoundedBottom.value,\n roundedStart: computedRoundedStart.value,\n roundedEnd: computedRoundedEnd.value,\n}))\n\nconst badgeText = computed(() => (props.badge === true ? '' : props.badge))\nconst badgeImplicitlyDot = computed(() => !badgeText.value && !hasBadgeSlot.value)\n\nconst computedTextVariant = computed(() => parentData?.textVariant.value ?? props.textVariant)\nconst computedBgVariant = computed(() => parentData?.bgVariant.value ?? props.bgVariant)\n\nconst resolvedBackgroundClasses = useColorVariantClasses(() => ({\n bgVariant: computedBgVariant.value,\n textVariant: computedTextVariant.value,\n variant: computedVariant.value,\n}))\n\nconst computedClasses = computed(() => [\n resolvedBackgroundClasses.value,\n // Square overwrites all else\n computedSquare.value === true ? undefined : radiusElementClasses.value,\n {\n [`b-avatar-${props.size}`]:\n !!props.size && SIZES.indexOf(computedPropSize.value as string) !== -1,\n [`btn-${computedVariant.value}`]: props.button ? computedVariant.value !== null : false,\n 'badge': !props.button && computedVariant.value !== null && hasDefaultSlot.value,\n 'btn': props.button,\n // Square is the same as rounded-0 class\n 'rounded-0': computedSquare.value === true,\n },\n])\n\nconst badgeStyle = computed<StyleValue>(() => ({\n fontSize:\n (SIZES.indexOf((computedSize.value as string | undefined) || null) === -1\n ? `calc(${computedSize.value} * ${BADGE_FONT_SIZE_SCALE})`\n : '') || '',\n}))\n\nconst textFontStyle = computed<StyleValue>(() => {\n const fontSize =\n SIZES.indexOf((computedSize.value as string | undefined) || null) === -1\n ? `calc(${computedSize.value} * ${FONT_SIZE_SCALE})`\n : null\n return fontSize ? {fontSize} : {}\n})\n\nconst marginStyle = computed(() => {\n const overlapScale = parentData?.overlapScale?.value || 0\n\n const value =\n computedSize.value && overlapScale ? `calc(${computedSize.value} * -${overlapScale})` : null\n return value ? {marginLeft: value, marginRight: value} : {}\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.button ? 'button' : 'span'))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n ...marginStyle.value,\n width: computedSize.value ?? undefined,\n height: computedSize.value ?? undefined,\n}))\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n if (!props.disabled && (computedLink.value || props.button)) emit('click', e)\n}\n\nconst onImgError = (e: Readonly<Event>) => {\n emit('img-error', e)\n}\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"b-avatar-group\" role=\"group\">\n <div class=\"b-avatar-group-inner\" :style=\"paddingStyle\">\n <slot />\n </div>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, type StyleValue, toRef} from 'vue'\nimport type {BAvatarGroupProps} from '../../types/ComponentProps'\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useToNumber} from '@vueuse/core'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\n\nconst _props = withDefaults(defineProps<BAvatarGroupProps>(), {\n overlap: 0.3,\n size: undefined,\n square: false,\n tag: 'div',\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BAvatarGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst overlapNumber = useToNumber(() => props.overlap)\n\nconst computedSize = useNumberishToStyle(() => props.size)\nconst overlapScale = computed(() => Math.min(Math.max(overlapNumber.value, 0), 1) / 2)\n\nconst paddingStyle = computed<StyleValue>(() => {\n const value = computedSize.value ? `calc(${computedSize.value} * ${overlapScale.value})` : null\n return value ? {paddingLeft: value, paddingRight: value} : {}\n})\n\nprovide(avatarGroupInjectionKey, {\n overlapScale,\n size: toRef(() => props.size),\n square: toRef(() => props.square),\n rounded: toRef(() => props.rounded),\n roundedTop: toRef(() => props.roundedTop),\n roundedBottom: toRef(() => props.roundedBottom),\n roundedStart: toRef(() => props.roundedStart),\n roundedEnd: toRef(() => props.roundedEnd),\n variant: toRef(() => props.variant),\n bgVariant: toRef(() => props.bgVariant),\n textVariant: toRef(() => props.textVariant),\n})\n</script>\n"],"names":["props","__props","emit","__emit","slots","_useSlots","computedLink","computedLinkProps","useBLinkHelper","parentData","inject","avatarGroupInjectionKey","SIZES","hasDefaultSlot","computed","isEmptySlot","default","hasBadgeSlot","badge","showBadge","value","computedSquare","square","computedPropSize","useNumberishToStyle","size","computedParentSize","computedSize","computedVariant","variant","computedRounded","rounded","computedRoundedTop","roundedTop","computedRoundedBottom","roundedBottom","computedRoundedStart","roundedStart","computedRoundedEnd","roundedEnd","radiusElementClasses","useRadiusElementClasses","badgeText","badgeImplicitlyDot","computedTextVariant","textVariant","computedBgVariant","bgVariant","resolvedBackgroundClasses","useColorVariantClasses","computedClasses","indexOf","button","btn","badgeStyle","fontSize","textFontStyle","marginStyle","overlapScale","_a","marginLeft","marginRight","computedTag","BLink","computedStyle","width","height","clicked","e","disabled","onImgError","_props","useDefaults","overlapNumber","useToNumber","overlap","Math","min","max","paddingStyle","paddingLeft","paddingRight","provide","toRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BAvatarGroup.vue_vue_type_script_setup_true_lang-SamdrUf2.js","sources":["../src/components/BAvatar/BAvatar.vue","../src/components/BAvatar/BAvatarGroup.vue"],"sourcesContent":["<template>\n <component\n :is=\"computedTag\"\n class=\"b-avatar\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n v-bind=\"computedLinkProps\"\n :type=\"props.button && !computedLink ? props.buttonType : undefined\"\n :disabled=\"props.disabled || null\"\n @click=\"clicked\"\n >\n <span v-if=\"hasDefaultSlot\" class=\"b-avatar-custom\">\n <slot />\n </span>\n <span v-else-if=\"!!props.src\" class=\"b-avatar-img\">\n <img :src=\"props.src\" :alt=\"props.alt\" @error=\"onImgError\" />\n </span>\n <span v-else-if=\"!!props.text\" class=\"b-avatar-text\" :style=\"textFontStyle\">\n {{ props.text }}\n </span>\n <span v-else class=\"b-avatar-img\"\n ><svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"80%\"\n height=\"80%\"\n fill=\"currentColor\"\n class=\"bi bi-person-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6\" /></svg\n ></span>\n <BBadge\n v-if=\"showBadge\"\n :pill=\"props.badgePill\"\n :dot-indicator=\"props.badgeDotIndicator || badgeImplicitlyDot\"\n :variant=\"props.badgeVariant\"\n :bg-variant=\"props.badgeBgVariant\"\n :text-variant=\"props.badgeTextVariant\"\n :style=\"badgeStyle\"\n :placement=\"props.badgePlacement\"\n >\n <slot name=\"badge\">\n {{ badgeText }}\n </slot>\n </BBadge>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {computed, type CSSProperties, inject, type StyleValue} from 'vue'\nimport type {BAvatarProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport BBadge from '../BBadge/BBadge.vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\nconst props = withDefaults(defineProps<BAvatarProps>(), {\n alt: 'avatar',\n badge: false,\n badgeBgVariant: null,\n badgeTextVariant: null,\n badgeVariant: 'primary',\n badgePlacement: 'bottom-end',\n badgeDotIndicator: false,\n badgePill: false,\n button: false,\n buttonType: 'button',\n size: undefined,\n square: false,\n src: undefined,\n text: undefined,\n // Link props\n variant: 'secondary',\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n opacity: undefined,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n stretched: false,\n routerComponentName: undefined,\n target: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n // ColorExtendables props\n // Variant is here as well\n bgVariant: null,\n textVariant: null,\n // End ColorExtendables props\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\n\nconst emit = defineEmits<{\n 'click': [value: MouseEvent]\n 'img-error': [value: Event]\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n badge?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst parentData = inject(avatarGroupInjectionKey, null)\n\nconst SIZES = ['sm', null, 'lg']\nconst FONT_SIZE_SCALE = 0.4\nconst BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\nconst hasBadgeSlot = computed(() => !isEmptySlot(slots.badge))\n\nconst showBadge = computed(() => !!props.badge || props.badge === '' || hasBadgeSlot.value)\nconst computedSquare = computed(() => parentData?.square.value || props.square)\n\nconst computedPropSize = useNumberishToStyle(() => props.size)\nconst computedParentSize = useNumberishToStyle(() => parentData?.size.value)\nconst computedSize = computed(() => computedParentSize.value ?? computedPropSize.value)\n\nconst computedVariant = computed(() => parentData?.variant.value ?? props.variant)\nconst computedRounded = computed(() => parentData?.rounded.value ?? props.rounded)\nconst computedRoundedTop = computed(() => parentData?.roundedTop.value ?? props.roundedTop)\nconst computedRoundedBottom = computed(() => parentData?.roundedBottom.value ?? props.roundedBottom)\nconst computedRoundedStart = computed(() => parentData?.roundedStart.value ?? props.roundedStart)\nconst computedRoundedEnd = computed(() => parentData?.roundedEnd.value ?? props.roundedEnd)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: computedRounded.value,\n roundedTop: computedRoundedTop.value,\n roundedBottom: computedRoundedBottom.value,\n roundedStart: computedRoundedStart.value,\n roundedEnd: computedRoundedEnd.value,\n}))\n\nconst badgeText = computed(() => (props.badge === true ? '' : props.badge))\nconst badgeImplicitlyDot = computed(() => !badgeText.value && !hasBadgeSlot.value)\n\nconst computedTextVariant = computed(() => parentData?.textVariant.value ?? props.textVariant)\nconst computedBgVariant = computed(() => parentData?.bgVariant.value ?? props.bgVariant)\n\nconst resolvedBackgroundClasses = useColorVariantClasses(() => ({\n bgVariant: computedBgVariant.value,\n textVariant: computedTextVariant.value,\n variant: computedVariant.value,\n}))\n\nconst computedClasses = computed(() => [\n resolvedBackgroundClasses.value,\n // Square overwrites all else\n computedSquare.value === true ? undefined : radiusElementClasses.value,\n {\n [`b-avatar-${props.size}`]:\n !!props.size && SIZES.indexOf(computedPropSize.value as string) !== -1,\n [`btn-${computedVariant.value}`]: props.button ? computedVariant.value !== null : false,\n 'badge': !props.button && computedVariant.value !== null && hasDefaultSlot.value,\n 'btn': props.button,\n // Square is the same as rounded-0 class\n 'rounded-0': computedSquare.value === true,\n },\n])\n\nconst badgeStyle = computed<StyleValue>(() => ({\n fontSize:\n (SIZES.indexOf((computedSize.value as string | undefined) || null) === -1\n ? `calc(${computedSize.value} * ${BADGE_FONT_SIZE_SCALE})`\n : '') || '',\n}))\n\nconst textFontStyle = computed<StyleValue>(() => {\n const fontSize =\n SIZES.indexOf((computedSize.value as string | undefined) || null) === -1\n ? `calc(${computedSize.value} * ${FONT_SIZE_SCALE})`\n : null\n return fontSize ? {fontSize} : {}\n})\n\nconst marginStyle = computed(() => {\n const overlapScale = parentData?.overlapScale?.value || 0\n\n const value =\n computedSize.value && overlapScale ? `calc(${computedSize.value} * -${overlapScale})` : null\n return value ? {marginLeft: value, marginRight: value} : {}\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.button ? 'button' : 'span'))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n ...marginStyle.value,\n width: computedSize.value ?? undefined,\n height: computedSize.value ?? undefined,\n}))\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n if (!props.disabled && (computedLink.value || props.button)) emit('click', e)\n}\n\nconst onImgError = (e: Readonly<Event>) => {\n emit('img-error', e)\n}\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"b-avatar-group\" role=\"group\">\n <div class=\"b-avatar-group-inner\" :style=\"paddingStyle\">\n <slot />\n </div>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, type StyleValue, toRef} from 'vue'\nimport type {BAvatarGroupProps} from '../../types/ComponentProps'\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useToNumber} from '@vueuse/core'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\n\nconst _props = withDefaults(defineProps<BAvatarGroupProps>(), {\n overlap: 0.3,\n size: undefined,\n square: false,\n tag: 'div',\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BAvatarGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst overlapNumber = useToNumber(() => props.overlap)\n\nconst computedSize = useNumberishToStyle(() => props.size)\nconst overlapScale = computed(() => Math.min(Math.max(overlapNumber.value, 0), 1) / 2)\n\nconst paddingStyle = computed<StyleValue>(() => {\n const value = computedSize.value ? `calc(${computedSize.value} * ${overlapScale.value})` : null\n return value ? {paddingLeft: value, paddingRight: value} : {}\n})\n\nprovide(avatarGroupInjectionKey, {\n overlapScale,\n size: toRef(() => props.size),\n square: toRef(() => props.square),\n rounded: toRef(() => props.rounded),\n roundedTop: toRef(() => props.roundedTop),\n roundedBottom: toRef(() => props.roundedBottom),\n roundedStart: toRef(() => props.roundedStart),\n roundedEnd: toRef(() => props.roundedEnd),\n variant: toRef(() => props.variant),\n bgVariant: toRef(() => props.bgVariant),\n textVariant: toRef(() => props.textVariant),\n})\n</script>\n"],"names":["props","__props","emit","__emit","slots","_useSlots","computedLink","computedLinkProps","useBLinkHelper","parentData","inject","avatarGroupInjectionKey","SIZES","hasDefaultSlot","computed","isEmptySlot","default","hasBadgeSlot","badge","showBadge","value","computedSquare","square","computedPropSize","useNumberishToStyle","size","computedParentSize","computedSize","computedVariant","variant","computedRounded","rounded","computedRoundedTop","roundedTop","computedRoundedBottom","roundedBottom","computedRoundedStart","roundedStart","computedRoundedEnd","roundedEnd","radiusElementClasses","useRadiusElementClasses","badgeText","badgeImplicitlyDot","computedTextVariant","textVariant","computedBgVariant","bgVariant","resolvedBackgroundClasses","useColorVariantClasses","computedClasses","indexOf","button","btn","badgeStyle","fontSize","textFontStyle","marginStyle","overlapScale","_a","marginLeft","marginRight","computedTag","BLink","computedStyle","width","height","clicked","e","disabled","onImgError","_props","useDefaults","overlapNumber","useToNumber","overlap","Math","min","max","paddingStyle","paddingLeft","paddingRight","provide","toRef"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { u as useBLinkHelper } from "./useBLinkHelper-Bvtov_sk.mjs";
|
|
|
3
3
|
import { u as useColorVariantClasses } from "./useColorVariantClasses-WMXe7khu.mjs";
|
|
4
4
|
import { u as useDefaults } from "./useDefaults-BYx9NNxn.mjs";
|
|
5
5
|
import { _ as _sfc_main$1 } from "./BLink.vue_vue_type_script_setup_true_lang-C39-ereM.mjs";
|
|
6
|
-
import { _ as _sfc_main$2 } from "./ConditionalWrapper.vue_vue_type_script_lang-
|
|
6
|
+
import { _ as _sfc_main$2 } from "./ConditionalWrapper.vue_vue_type_script_lang-B-0cSyYg.mjs";
|
|
7
7
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
8
8
|
__name: "BBadge",
|
|
9
9
|
props: {
|
|
@@ -111,4 +111,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
111
111
|
export {
|
|
112
112
|
_sfc_main as _
|
|
113
113
|
};
|
|
114
|
-
//# sourceMappingURL=BBadge.vue_vue_type_script_setup_true_lang-
|
|
114
|
+
//# sourceMappingURL=BBadge.vue_vue_type_script_setup_true_lang-C82q38Xl.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BBadge.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"BBadge.vue_vue_type_script_setup_true_lang-C82q38Xl.mjs","sources":["../src/components/BBadge/BBadge.vue"],"sourcesContent":["<template>\n <component :is=\"computedTag\" class=\"badge\" :class=\"computedClasses\" v-bind=\"computedLinkProps\">\n <ConditionalWrapper\n :skip=\"props.dotIndicator !== true\"\n tag=\"span\"\n v-bind=\"props.dotIndicator ? {class: 'visually-hidden'} : {}\"\n >\n <slot />\n </ConditionalWrapper>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BBadgeProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst _props = withDefaults(defineProps<BBadgeProps>(), {\n dotIndicator: false,\n pill: false,\n tag: 'span',\n placement: undefined,\n // Link props\n variant: 'secondary',\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 opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n stretched: false,\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 // ColorExtendables props\n // Variant is here as well\n textVariant: null,\n bgVariant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BBadge')\n\nconst resolvedBackgroundClasses = useColorVariantClasses(props)\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props, [\n 'active',\n 'activeClass',\n 'append',\n 'disabled',\n 'href',\n 'rel',\n 'replace',\n 'routerComponentName',\n 'target',\n 'to',\n 'opacity',\n 'opacityHover',\n 'underlineVariant',\n 'underlineOffset',\n 'underlineOffsetHover',\n 'underlineOpacity',\n 'underlineOpacityHover',\n 'icon',\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.tag))\n\nconst placementClasses = computed(() => {\n // dotindicator is implicitly top-end if no placement is set\n const pos = props.placement ?? (props.dotIndicator ? 'top-end' : undefined)\n return [\n 'position-absolute',\n 'translate-middle',\n {\n 'start-0 top-0': pos === 'top-start',\n 'start-0 top-50': pos === 'start',\n 'start-0 top-100': pos === 'bottom-start',\n 'start-50 top-0': pos === 'top',\n 'start-50 top-100': pos === 'bottom',\n 'start-100 top-0': pos === 'top-end',\n 'start-100 top-50': pos === 'end',\n 'start-100 top-100': pos === 'bottom-end',\n },\n ]\n})\n\nconst computedClasses = computed(() => [\n resolvedBackgroundClasses.value,\n props.placement !== undefined || props.dotIndicator === true ? placementClasses.value : undefined,\n {\n 'active': props.active,\n 'disabled': props.disabled,\n 'rounded-pill': props.pill,\n 'p-2 border border-light rounded-circle': props.dotIndicator,\n 'text-decoration-none': computedLink.value,\n },\n])\n</script>\n"],"names":["BLink"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,UAAM,SAAS;AAkCT,UAAA,QAAQ,YAAY,QAAQ,QAAQ;AAEpC,UAAA,4BAA4B,uBAAuB,KAAK;AAE9D,UAAM,EAAC,cAAc,sBAAqB,eAAe,OAAO;AAAA,MAC9D;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAED,UAAM,cAAc,SAAS,MAAO,aAAa,QAAQA,cAAQ,MAAM,GAAI;AAErE,UAAA,mBAAmB,SAAS,MAAM;AAEtC,YAAM,MAAM,MAAM,cAAc,MAAM,eAAe,YAAY;AAC1D,aAAA;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,UACE,iBAAiB,QAAQ;AAAA,UACzB,kBAAkB,QAAQ;AAAA,UAC1B,mBAAmB,QAAQ;AAAA,UAC3B,kBAAkB,QAAQ;AAAA,UAC1B,oBAAoB,QAAQ;AAAA,UAC5B,mBAAmB,QAAQ;AAAA,UAC3B,oBAAoB,QAAQ;AAAA,UAC5B,qBAAqB,QAAQ;AAAA,QAC/B;AAAA,MAAA;AAAA,IACF,CACD;AAEK,UAAA,kBAAkB,SAAS,MAAM;AAAA,MACrC,0BAA0B;AAAA,MAC1B,MAAM,cAAc,UAAa,MAAM,iBAAiB,OAAO,iBAAiB,QAAQ;AAAA,MACxF;AAAA,QACE,UAAU,MAAM;AAAA,QAChB,YAAY,MAAM;AAAA,QAClB,gBAAgB,MAAM;AAAA,QACtB,0CAA0C,MAAM;AAAA,QAChD,wBAAwB,aAAa;AAAA,MACvC;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),t=require("./useBLinkHelper-BxI4evA6.js"),a=require("./useColorVariantClasses-CnrZmyKT.js"),o=require("./useDefaults-Cd8OVIUI.js"),d=require("./BLink.vue_vue_type_script_setup_true_lang-CGvuLpmP.js"),l=require("./ConditionalWrapper.vue_vue_type_script_lang-
|
|
2
|
-
//# sourceMappingURL=BBadge.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
"use strict";const e=require("vue"),t=require("./useBLinkHelper-BxI4evA6.js"),a=require("./useColorVariantClasses-CnrZmyKT.js"),o=require("./useDefaults-Cd8OVIUI.js"),d=require("./BLink.vue_vue_type_script_setup_true_lang-CGvuLpmP.js"),l=require("./ConditionalWrapper.vue_vue_type_script_lang-BClbTb87.js"),r=e.defineComponent({__name:"BBadge",props:{dotIndicator:{type:Boolean,default:!1},pill:{type:Boolean,default:!1},placement:{default:void 0},tag:{default:"span"},active:{type:Boolean,default:void 0},activeClass:{default:void 0},disabled:{type:Boolean,default:void 0},exactActiveClass:{default:void 0},href:{default:void 0},icon:{type:Boolean,default:void 0},noRel:{type:Boolean},opacity:{default:void 0},opacityHover:{default:void 0},rel:{default:void 0},replace:{type:Boolean,default:void 0},routerComponentName:{default:void 0},stretched:{type:Boolean,default:!1},target:{default:void 0},to:{default:void 0},underlineOffset:{default:void 0},underlineOffsetHover:{default:void 0},underlineOpacity:{default:void 0},underlineOpacityHover:{default:void 0},underlineVariant:{default:void 0},variant:{default:"secondary"},bgVariant:{default:null},textVariant:{default:null}},setup(r){const i=r,n=o.useDefaults(i,"BBadge"),u=a.useColorVariantClasses(n),{computedLink:s,computedLinkProps:p}=t.useBLinkHelper(n,["active","activeClass","append","disabled","href","rel","replace","routerComponentName","target","to","opacity","opacityHover","underlineVariant","underlineOffset","underlineOffsetHover","underlineOpacity","underlineOpacityHover","icon"]),c=e.computed((()=>s.value?d._sfc_main:n.tag)),v=e.computed((()=>{const e=n.placement??(n.dotIndicator?"top-end":void 0);return["position-absolute","translate-middle",{"start-0 top-0":"top-start"===e,"start-0 top-50":"start"===e,"start-0 top-100":"bottom-start"===e,"start-50 top-0":"top"===e,"start-50 top-100":"bottom"===e,"start-100 top-0":"top-end"===e,"start-100 top-50":"end"===e,"start-100 top-100":"bottom-end"===e}]})),f=e.computed((()=>[u.value,void 0!==n.placement||!0===n.dotIndicator?v.value:void 0,{active:n.active,disabled:n.disabled,"rounded-pill":n.pill,"p-2 border border-light rounded-circle":n.dotIndicator,"text-decoration-none":s.value}]));return(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),e.mergeProps({class:["badge",f.value]},e.unref(p)),{default:e.withCtx((()=>[e.createVNode(l._sfc_main,e.mergeProps({skip:!0!==e.unref(n).dotIndicator,tag:"span"},e.unref(n).dotIndicator?{class:"visually-hidden"}:{}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},16,["skip"])])),_:3},16,["class"]))}});exports._sfc_main=r;
|
|
2
|
+
//# sourceMappingURL=BBadge.vue_vue_type_script_setup_true_lang-CtLuETX7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BBadge.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"BBadge.vue_vue_type_script_setup_true_lang-CtLuETX7.js","sources":["../src/components/BBadge/BBadge.vue"],"sourcesContent":["<template>\n <component :is=\"computedTag\" class=\"badge\" :class=\"computedClasses\" v-bind=\"computedLinkProps\">\n <ConditionalWrapper\n :skip=\"props.dotIndicator !== true\"\n tag=\"span\"\n v-bind=\"props.dotIndicator ? {class: 'visually-hidden'} : {}\"\n >\n <slot />\n </ConditionalWrapper>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BBadgeProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst _props = withDefaults(defineProps<BBadgeProps>(), {\n dotIndicator: false,\n pill: false,\n tag: 'span',\n placement: undefined,\n // Link props\n variant: 'secondary',\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 opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n stretched: false,\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 // ColorExtendables props\n // Variant is here as well\n textVariant: null,\n bgVariant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BBadge')\n\nconst resolvedBackgroundClasses = useColorVariantClasses(props)\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props, [\n 'active',\n 'activeClass',\n 'append',\n 'disabled',\n 'href',\n 'rel',\n 'replace',\n 'routerComponentName',\n 'target',\n 'to',\n 'opacity',\n 'opacityHover',\n 'underlineVariant',\n 'underlineOffset',\n 'underlineOffsetHover',\n 'underlineOpacity',\n 'underlineOpacityHover',\n 'icon',\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.tag))\n\nconst placementClasses = computed(() => {\n // dotindicator is implicitly top-end if no placement is set\n const pos = props.placement ?? (props.dotIndicator ? 'top-end' : undefined)\n return [\n 'position-absolute',\n 'translate-middle',\n {\n 'start-0 top-0': pos === 'top-start',\n 'start-0 top-50': pos === 'start',\n 'start-0 top-100': pos === 'bottom-start',\n 'start-50 top-0': pos === 'top',\n 'start-50 top-100': pos === 'bottom',\n 'start-100 top-0': pos === 'top-end',\n 'start-100 top-50': pos === 'end',\n 'start-100 top-100': pos === 'bottom-end',\n },\n ]\n})\n\nconst computedClasses = computed(() => [\n resolvedBackgroundClasses.value,\n props.placement !== undefined || props.dotIndicator === true ? placementClasses.value : undefined,\n {\n 'active': props.active,\n 'disabled': props.disabled,\n 'rounded-pill': props.pill,\n 'p-2 border border-light rounded-circle': props.dotIndicator,\n 'text-decoration-none': computedLink.value,\n },\n])\n</script>\n"],"names":["_props","__props","props","useDefaults","resolvedBackgroundClasses","useColorVariantClasses","computedLink","computedLinkProps","useBLinkHelper","computedTag","computed","value","BLink","tag","placementClasses","pos","placement","dotIndicator","computedClasses","active","disabled","pill"],"mappings":"mqCA0BA,MAAMA,EAASC,EAkCTC,EAAQC,EAAAA,YAAYH,EAAQ,UAE5BI,EAA4BC,yBAAuBH,IAEnDI,aAACA,EAAcC,kBAAAA,GAAqBC,EAAAA,eAAeN,EAAO,CAC9D,SACA,cACA,SACA,WACA,OACA,MACA,UACA,sBACA,SACA,KACA,UACA,eACA,mBACA,kBACA,uBACA,mBACA,wBACA,SAGIO,EAAcC,EAASA,UAAA,IAAOJ,EAAaK,MAAQC,YAAQV,EAAMW,MAEjEC,EAAmBJ,EAAAA,UAAS,KAEhC,MAAMK,EAAMb,EAAMc,YAAcd,EAAMe,aAAe,eAAY,GAC1D,MAAA,CACL,oBACA,mBACA,CACE,gBAAyB,cAARF,EACjB,iBAA0B,UAARA,EAClB,kBAA2B,iBAARA,EACnB,iBAA0B,QAARA,EAClB,mBAA4B,WAARA,EACpB,kBAA2B,YAARA,EACnB,mBAA4B,QAARA,EACpB,oBAA6B,eAARA,GACvB,IAIEG,EAAkBR,EAAAA,UAAS,IAAM,CACrCN,EAA0BO,WACN,IAApBT,EAAMc,YAAkD,IAAvBd,EAAMe,aAAwBH,EAAiBH,WAAQ,EACxF,CACEQ,OAAUjB,EAAMiB,OAChBC,SAAYlB,EAAMkB,SAClB,eAAgBlB,EAAMmB,KACtB,yCAA0CnB,EAAMe,aAChD,uBAAwBX,EAAaK"}
|
|
@@ -5,7 +5,7 @@ import { u as useDefaults } from "./useDefaults-BYx9NNxn.mjs";
|
|
|
5
5
|
import { u as useId } from "./useId-BrAgQfKM.mjs";
|
|
6
6
|
import { a as BvTriggerableEvent } from "./classes-IC0yVJlq.mjs";
|
|
7
7
|
import { _ as _sfc_main$2 } from "./BButton.vue_vue_type_script_setup_true_lang-VSdlVuWr.mjs";
|
|
8
|
-
import { _ as _sfc_main$1 } from "./ConditionalWrapper.vue_vue_type_script_lang-
|
|
8
|
+
import { _ as _sfc_main$1 } from "./ConditionalWrapper.vue_vue_type_script_lang-B-0cSyYg.mjs";
|
|
9
9
|
import { _ as _sfc_main$3 } from "./ConditionalTeleport.vue_vue_type_script_lang-CBHk9gJ3.mjs";
|
|
10
10
|
import { i as inputGroupKey, e as dropdownInjectionKey } from "./keys-CLEaYsGj.mjs";
|
|
11
11
|
import { u as useToNumber } from "./index-DlGgXMQF.mjs";
|
|
@@ -336,4 +336,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
336
336
|
export {
|
|
337
337
|
_sfc_main as _
|
|
338
338
|
};
|
|
339
|
-
//# sourceMappingURL=BDropdown.vue_vue_type_script_setup_true_lang-
|
|
339
|
+
//# sourceMappingURL=BDropdown.vue_vue_type_script_setup_true_lang-BBlf_zfN.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BDropdown.vue_vue_type_script_setup_true_lang-DC2pr_pL.mjs","sources":["../src/components/BDropdown/BDropdown.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n ref=\"wrapper\"\n :skip=\"inInputGroup || props.skipWrapper\"\n :class=\"computedClasses\"\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 : modelValue\"\n :aria-haspopup=\"props.split ? undefined : 'menu'\"\n :href=\"props.split ? props.splitHref : undefined\"\n :to=\"props.split && props.splitTo ? props.splitTo : undefined\"\n @click=\"onSplitClick\"\n >\n <slot name=\"button-content\">\n {{ props.text }}\n </slot>\n </BButton>\n <BButton\n v-if=\"props.split\"\n ref=\"button\"\n :variant=\"props.variant\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n :class=\"[props.toggleClass, {show: modelValue}]\"\n class=\"dropdown-toggle-split dropdown-toggle\"\n :aria-expanded=\"modelValue\"\n aria-haspopup=\"menu\"\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 <ul\n v-if=\"!props.lazy || modelValue\"\n v-show=\"props.lazy || modelValue\"\n ref=\"floating\"\n :style=\"[floatingStyles, sizeStyles]\"\n class=\"dropdown-menu overflow-auto\"\n :class=\"[props.menuClass, {show: modelValue}]\"\n :aria-labelledby=\"computedId\"\n :role=\"props.role\"\n @click=\"onClickInside\"\n >\n <slot :hide=\"hide\" :show=\"show\" />\n </ul>\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 RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, onKeyStroke, useToNumber} from '@vueuse/core'\nimport {computed, type CSSProperties, inject, nextTick, provide, ref, toRef, watch} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BDropdownProps} from '../../types/ComponentProps'\nimport {BvTriggerableEvent} from '../../utils'\nimport BButton from '../BButton/BButton.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {isBoundary, isRootBoundary, resolveFloatingPlacement} from '../../utils/floatingUi'\nimport {dropdownInjectionKey, inputGroupKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<Omit<BDropdownProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n autoClose: true,\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n center: false,\n teleportTo: undefined,\n teleportDisabled: false,\n disabled: false,\n dropend: false,\n dropstart: false,\n dropup: false,\n end: false,\n floatingMiddleware: undefined,\n id: undefined,\n isNav: false,\n lazy: false,\n menuClass: undefined,\n noCaret: false,\n noFlip: false,\n noShift: false,\n noSize: false,\n offset: 0,\n role: 'menu',\n size: 'md',\n skipWrapper: false,\n split: false,\n splitButtonType: 'button',\n splitClass: undefined,\n splitDisabled: undefined,\n splitHref: undefined,\n splitTo: undefined,\n splitVariant: undefined,\n strategy: 'absolute',\n text: undefined,\n toggleClass: undefined,\n toggleText: 'Toggle dropdown',\n variant: 'secondary',\n wrapperClass: undefined,\n})\nconst props = useDefaults(_props, 'BDropdown')\n\nconst emit = defineEmits<{\n 'click': [event: MouseEvent]\n 'hidden': []\n 'hide': [value: BvTriggerableEvent]\n 'hide-prevented': []\n 'show': [value: BvTriggerableEvent]\n 'show-prevented': []\n 'shown': []\n 'toggle': []\n}>()\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'button-content'?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'default'?: (props: {hide: () => void; show: () => void}) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'toggle-text'?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'dropdown')\n\nconst modelValue = defineModel<Exclude<BDropdownProps['modelValue'], undefined>>({default: false})\n\nconst inInputGroup = inject(inputGroupKey, false)\n\nconst computedOffset = computed(() =>\n typeof props.offset === 'string' || typeof props.offset === 'number' ? props.offset : NaN\n)\nconst offsetToNumber = useToNumber(computedOffset)\n\nconst floating = ref<HTMLElement | null>(null)\nconst button = ref<HTMLElement | null>(null)\nconst splitButton = ref<HTMLElement | null>(null)\nconst wrapper = ref<HTMLElement | null>(null)\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 referencePlacement = computed(() => (!props.split ? splitButton.value : button.value))\n\nonKeyStroke(\n 'Escape',\n () => {\n modelValue.value = !modelValue.value\n },\n {target: referencePlacement}\n)\nonKeyStroke(\n 'Escape',\n () => {\n modelValue.value = !modelValue.value\n },\n {target: floating}\n)\n\nconst keynav = (e: Readonly<Event>, v: number) => {\n if (floating.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 (!modelValue.value) {\n open()\n nextTick(() => keynav(e, v))\n return\n }\n const list = floating.value?.querySelectorAll('.dropdown-item:not(.disabled):not(:disabled)')\n if (!list) return\n if (floating.value?.contains(document.activeElement)) {\n const active = floating.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: referencePlacement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: referencePlacement})\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: floating})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: floating})\n\nconst floatingPlacement = computed(() =>\n resolveFloatingPlacement({\n top: props.dropup,\n start: props.dropstart,\n end: props.dropend,\n alignCenter: props.center,\n alignEnd: props.end,\n })\n)\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<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 maxHeight: availableHeight && modelValue.value ? `${availableHeight}px` : undefined,\n maxWidth: availableWidth && modelValue.value ? `${availableWidth}px` : undefined,\n }\n },\n })\n )\n }\n return arr\n})\nconst {update, floatingStyles} = useFloating(referencePlacement, floating, {\n placement: floatingPlacement,\n middleware: floatingMiddleware,\n strategy: toRef(() => props.strategy),\n whileElementsMounted: autoUpdate,\n})\n\nconst computedClasses = computed(() => [\n props.wrapperClass,\n {\n 'btn-group': !props.wrapperClass && props.split,\n 'dropdown': !props.wrapperClass && !props.split,\n 'dropup': props.dropup,\n 'dropend': props.dropend,\n 'dropstart': props.dropstart,\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 : modelValue.value,\n },\n])\n\nconst onButtonClick = () => {\n toggle()\n}\n\nconst onSplitClick = (event: Readonly<MouseEvent>) => {\n props.split ? emit('click', event) : onButtonClick()\n}\n\nonClickOutside(\n floating,\n () => {\n if (modelValue.value && (props.autoClose === true || props.autoClose === 'outside')) {\n toggle()\n }\n },\n {ignore: [button, splitButton]}\n)\nconst onClickInside = () => {\n if (modelValue.value && (props.autoClose === true || props.autoClose === 'inside')) {\n toggle()\n }\n}\n\nconst hide = () => {\n modelValue.value && toggle()\n}\nconst show = () => {\n modelValue.value || toggle()\n}\nconst toggle = () => {\n emit('toggle')\n const currentModelValue = modelValue.value\n const e = new BvTriggerableEvent(currentModelValue ? 'hide' : 'show')\n currentModelValue ? emit('hide', e) : emit('show', e)\n if (e.defaultPrevented) {\n currentModelValue ? emit('hide-prevented') : emit('show-prevented')\n return\n }\n modelValue.value = !currentModelValue\n currentModelValue ? emit('hidden') : emit('shown')\n wrapper.value?.dispatchEvent?.(new Event('forceHide'))\n}\n\nwatch(modelValue, () => {\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: toRef(() => modelValue.value),\n isNav: toRef(() => props.isNav),\n})\n</script>\n"],"names":["_useModel","offsetMiddleware","sizeMiddleware","autoUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BDropdown.vue_vue_type_script_setup_true_lang-BBlf_zfN.mjs","sources":["../src/components/BDropdown/BDropdown.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n ref=\"wrapper\"\n :skip=\"inInputGroup || props.skipWrapper\"\n :class=\"computedClasses\"\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 : modelValue\"\n :aria-haspopup=\"props.split ? undefined : 'menu'\"\n :href=\"props.split ? props.splitHref : undefined\"\n :to=\"props.split && props.splitTo ? props.splitTo : undefined\"\n @click=\"onSplitClick\"\n >\n <slot name=\"button-content\">\n {{ props.text }}\n </slot>\n </BButton>\n <BButton\n v-if=\"props.split\"\n ref=\"button\"\n :variant=\"props.variant\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n :class=\"[props.toggleClass, {show: modelValue}]\"\n class=\"dropdown-toggle-split dropdown-toggle\"\n :aria-expanded=\"modelValue\"\n aria-haspopup=\"menu\"\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 <ul\n v-if=\"!props.lazy || modelValue\"\n v-show=\"props.lazy || modelValue\"\n ref=\"floating\"\n :style=\"[floatingStyles, sizeStyles]\"\n class=\"dropdown-menu overflow-auto\"\n :class=\"[props.menuClass, {show: modelValue}]\"\n :aria-labelledby=\"computedId\"\n :role=\"props.role\"\n @click=\"onClickInside\"\n >\n <slot :hide=\"hide\" :show=\"show\" />\n </ul>\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 RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, onKeyStroke, useToNumber} from '@vueuse/core'\nimport {computed, type CSSProperties, inject, nextTick, provide, ref, toRef, watch} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BDropdownProps} from '../../types/ComponentProps'\nimport {BvTriggerableEvent} from '../../utils'\nimport BButton from '../BButton/BButton.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {isBoundary, isRootBoundary, resolveFloatingPlacement} from '../../utils/floatingUi'\nimport {dropdownInjectionKey, inputGroupKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<Omit<BDropdownProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n autoClose: true,\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n center: false,\n teleportTo: undefined,\n teleportDisabled: false,\n disabled: false,\n dropend: false,\n dropstart: false,\n dropup: false,\n end: false,\n floatingMiddleware: undefined,\n id: undefined,\n isNav: false,\n lazy: false,\n menuClass: undefined,\n noCaret: false,\n noFlip: false,\n noShift: false,\n noSize: false,\n offset: 0,\n role: 'menu',\n size: 'md',\n skipWrapper: false,\n split: false,\n splitButtonType: 'button',\n splitClass: undefined,\n splitDisabled: undefined,\n splitHref: undefined,\n splitTo: undefined,\n splitVariant: undefined,\n strategy: 'absolute',\n text: undefined,\n toggleClass: undefined,\n toggleText: 'Toggle dropdown',\n variant: 'secondary',\n wrapperClass: undefined,\n})\nconst props = useDefaults(_props, 'BDropdown')\n\nconst emit = defineEmits<{\n 'click': [event: MouseEvent]\n 'hidden': []\n 'hide': [value: BvTriggerableEvent]\n 'hide-prevented': []\n 'show': [value: BvTriggerableEvent]\n 'show-prevented': []\n 'shown': []\n 'toggle': []\n}>()\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'button-content'?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'default'?: (props: {hide: () => void; show: () => void}) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'toggle-text'?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'dropdown')\n\nconst modelValue = defineModel<Exclude<BDropdownProps['modelValue'], undefined>>({default: false})\n\nconst inInputGroup = inject(inputGroupKey, false)\n\nconst computedOffset = computed(() =>\n typeof props.offset === 'string' || typeof props.offset === 'number' ? props.offset : NaN\n)\nconst offsetToNumber = useToNumber(computedOffset)\n\nconst floating = ref<HTMLElement | null>(null)\nconst button = ref<HTMLElement | null>(null)\nconst splitButton = ref<HTMLElement | null>(null)\nconst wrapper = ref<HTMLElement | null>(null)\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 referencePlacement = computed(() => (!props.split ? splitButton.value : button.value))\n\nonKeyStroke(\n 'Escape',\n () => {\n modelValue.value = !modelValue.value\n },\n {target: referencePlacement}\n)\nonKeyStroke(\n 'Escape',\n () => {\n modelValue.value = !modelValue.value\n },\n {target: floating}\n)\n\nconst keynav = (e: Readonly<Event>, v: number) => {\n if (floating.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 (!modelValue.value) {\n open()\n nextTick(() => keynav(e, v))\n return\n }\n const list = floating.value?.querySelectorAll('.dropdown-item:not(.disabled):not(:disabled)')\n if (!list) return\n if (floating.value?.contains(document.activeElement)) {\n const active = floating.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: referencePlacement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: referencePlacement})\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: floating})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: floating})\n\nconst floatingPlacement = computed(() =>\n resolveFloatingPlacement({\n top: props.dropup,\n start: props.dropstart,\n end: props.dropend,\n alignCenter: props.center,\n alignEnd: props.end,\n })\n)\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<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 maxHeight: availableHeight && modelValue.value ? `${availableHeight}px` : undefined,\n maxWidth: availableWidth && modelValue.value ? `${availableWidth}px` : undefined,\n }\n },\n })\n )\n }\n return arr\n})\nconst {update, floatingStyles} = useFloating(referencePlacement, floating, {\n placement: floatingPlacement,\n middleware: floatingMiddleware,\n strategy: toRef(() => props.strategy),\n whileElementsMounted: autoUpdate,\n})\n\nconst computedClasses = computed(() => [\n props.wrapperClass,\n {\n 'btn-group': !props.wrapperClass && props.split,\n 'dropdown': !props.wrapperClass && !props.split,\n 'dropup': props.dropup,\n 'dropend': props.dropend,\n 'dropstart': props.dropstart,\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 : modelValue.value,\n },\n])\n\nconst onButtonClick = () => {\n toggle()\n}\n\nconst onSplitClick = (event: Readonly<MouseEvent>) => {\n props.split ? emit('click', event) : onButtonClick()\n}\n\nonClickOutside(\n floating,\n () => {\n if (modelValue.value && (props.autoClose === true || props.autoClose === 'outside')) {\n toggle()\n }\n },\n {ignore: [button, splitButton]}\n)\nconst onClickInside = () => {\n if (modelValue.value && (props.autoClose === true || props.autoClose === 'inside')) {\n toggle()\n }\n}\n\nconst hide = () => {\n modelValue.value && toggle()\n}\nconst show = () => {\n modelValue.value || toggle()\n}\nconst toggle = () => {\n emit('toggle')\n const currentModelValue = modelValue.value\n const e = new BvTriggerableEvent(currentModelValue ? 'hide' : 'show')\n currentModelValue ? emit('hide', e) : emit('show', e)\n if (e.defaultPrevented) {\n currentModelValue ? emit('hide-prevented') : emit('show-prevented')\n return\n }\n modelValue.value = !currentModelValue\n currentModelValue ? emit('hidden') : emit('shown')\n wrapper.value?.dispatchEvent?.(new Event('forceHide'))\n}\n\nwatch(modelValue, () => {\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: toRef(() => modelValue.value),\n isNav: toRef(() => props.isNav),\n})\n</script>\n"],"names":["_useModel","offsetMiddleware","sizeMiddleware","autoUpdate"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),t=require("./floatingUi-CJBfCpXa.js"),o=require("./index-CnY1um_J.js"),a=require("./useDefaults-Cd8OVIUI.js"),l=require("./useId-z7cQCT28.js"),r=require("./classes-CXBJXuVd.js"),n=require("./BButton.vue_vue_type_script_setup_true_lang-Ce8NKGox.js"),d=require("./ConditionalWrapper.vue_vue_type_script_lang-
|
|
2
|
-
//# sourceMappingURL=BDropdown.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
"use strict";const e=require("vue"),t=require("./floatingUi-CJBfCpXa.js"),o=require("./index-CnY1um_J.js"),a=require("./useDefaults-Cd8OVIUI.js"),l=require("./useId-z7cQCT28.js"),r=require("./classes-CXBJXuVd.js"),n=require("./BButton.vue_vue_type_script_setup_true_lang-Ce8NKGox.js"),d=require("./ConditionalWrapper.vue_vue_type_script_lang-BClbTb87.js"),i=require("./ConditionalTeleport.vue_vue_type_script_lang-nP1ZUfLS.js"),u=require("./keys-BgAe7wbu.js"),s=require("./index-BInTFWT4.js"),p={class:"visually-hidden"},f=["aria-labelledby","role"],v=e.defineComponent({__name:"BDropdown",props:e.mergeModels({ariaLabel:{default:void 0},autoClose:{type:[Boolean,String],default:!0},boundary:{default:"clippingAncestors"},boundaryPadding:{default:void 0},center:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},dropend:{type:Boolean,default:!1},dropstart:{type:Boolean,default:!1},dropup:{type:Boolean,default:!1},end:{type:Boolean,default:!1},floatingMiddleware:{default:void 0},id:{default:void 0},isNav:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1},menuClass:{default:void 0},noCaret:{type:Boolean,default:!1},noFlip:{type:Boolean,default:!1},noShift:{type:Boolean,default:!1},noSize:{type:Boolean,default:!1},offset:{default:0},role:{default:"menu"},size:{default:"md"},skipWrapper:{type:Boolean,default:!1},split:{type:Boolean,default:!1},splitButtonType:{default:"button"},splitClass:{default:void 0},splitDisabled:{type:Boolean,default:void 0},splitHref:{default:void 0},splitTo:{default:void 0},splitVariant:{default:void 0},strategy:{default:"absolute"},text:{default:void 0},toggleClass:{default:void 0},toggleText:{default:"Toggle dropdown"},variant:{default:"secondary"},wrapperClass:{default:void 0},teleportDisabled:{type:Boolean,default:!1},teleportTo:{default:void 0}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:e.mergeModels(["click","hidden","hide","hide-prevented","show","show-prevented","shown","toggle"],["update:modelValue"]),setup(v,{expose:c,emit:y}){const g=v,m=a.useDefaults(g,"BDropdown"),w=y,h=l.useId((()=>m.id),"dropdown"),b=e.useModel(v,"modelValue"),B=e.inject(u.inputGroupKey,!1),C=e.computed((()=>"string"==typeof m.offset||"number"==typeof m.offset?m.offset:NaN)),_=s.useToNumber(C),k=e.ref(null),x=e.ref(null),S=e.ref(null),z=e.ref(null),T=e.computed((()=>t.isBoundary(m.boundary)?m.boundary:void 0)),N=e.computed((()=>t.isRootBoundary(m.boundary)?m.boundary:void 0)),D=e.computed((()=>m.split?x.value:S.value));o.onKeyStroke("Escape",(()=>{b.value=!b.value}),{target:D}),o.onKeyStroke("Escape",(()=>{b.value=!b.value}),{target:k});const q=(t,o)=>{var a,l,r,n,d,i,u;if(null==(l=k.value)?void 0:l.contains(null==(a=t.target)?void 0:a.closest("form")))return;if(/input|select|option|textarea|form/i.test(null==(r=t.target)?void 0:r.tagName))return;if(t.preventDefault(),!b.value)return open(),void e.nextTick((()=>q(t,o)));const s=null==(n=k.value)?void 0:n.querySelectorAll(".dropdown-item:not(.disabled):not(:disabled)");if(s)if(null==(d=k.value)?void 0:d.contains(document.activeElement)){const e=k.value.querySelector(".dropdown-item:focus"),t=Array.prototype.indexOf.call(s,e)+o;t>=0&&t<(null==s?void 0:s.length)&&(null==(i=s[t])||i.focus())}else null==(u=s[-1===o?s.length-1:0])||u.focus()};o.onKeyStroke("ArrowUp",(e=>q(e,-1)),{target:D}),o.onKeyStroke("ArrowDown",(e=>q(e,1)),{target:D}),o.onKeyStroke("ArrowUp",(e=>q(e,-1)),{target:k}),o.onKeyStroke("ArrowDown",(e=>q(e,1)),{target:k});const V=e.computed((()=>t.resolveFloatingPlacement({top:m.dropup,start:m.dropstart,end:m.dropend,alignCenter:m.center,alignEnd:m.end}))),j=e.ref({}),E=e.computed((()=>{if(void 0!==m.floatingMiddleware)return m.floatingMiddleware;const e="string"==typeof m.offset||"number"==typeof m.offset?_.value:m.offset,o=[t.offset(e)];return!1===m.noFlip&&o.push(t.flip({boundary:T.value,rootBoundary:N.value,padding:m.boundaryPadding})),!1===m.noShift&&o.push(t.shift({boundary:T.value,rootBoundary:N.value,padding:m.boundaryPadding})),!1===m.noSize&&o.push(t.size({boundary:T.value,rootBoundary:N.value,padding:m.boundaryPadding,apply({availableWidth:e,availableHeight:t}){j.value={maxHeight:t&&b.value?`${t}px`:void 0,maxWidth:e&&b.value?`${e}px`:void 0}}})),o})),{update:A,floatingStyles:K}=t.useFloating(D,k,{placement:V,middleware:E,strategy:e.toRef((()=>m.strategy)),whileElementsMounted:t.z}),M=e.computed((()=>[m.wrapperClass,{"btn-group":!m.wrapperClass&&m.split,dropdown:!m.wrapperClass&&!m.split,dropup:m.dropup,dropend:m.dropend,dropstart:m.dropstart,"position-static":"clippingAncestors"!==m.boundary&&!m.isNav}])),P=e.computed((()=>[m.split?m.splitClass:m.toggleClass,{"nav-link":m.isNav,"dropdown-toggle":!m.split,"dropdown-toggle-no-caret":m.noCaret&&!m.split,show:m.split?void 0:b.value}])),W=()=>{I()},H=e=>{m.split?w("click",e):W()};o.onClickOutside(k,(()=>{!b.value||!0!==m.autoClose&&"outside"!==m.autoClose||I()}),{ignore:[x,S]});const $=()=>{!b.value||!0!==m.autoClose&&"inside"!==m.autoClose||I()},F=()=>{b.value&&I()},R=()=>{b.value||I()},I=()=>{var e,t;w("toggle");const o=b.value,a=new r.BvTriggerableEvent(o?"hide":"show");w(o?"hide":"show",a),a.defaultPrevented?w(o?"hide-prevented":"show-prevented"):(b.value=!o,w(o?"hidden":"shown"),null==(t=null==(e=z.value)?void 0:e.dispatchEvent)||t.call(e,new Event("forceHide")))};return e.watch(b,(()=>{A()})),c({hide:F,show:R,toggle:I}),e.provide(u.dropdownInjectionKey,{id:h,show:R,hide:F,toggle:I,visible:e.toRef((()=>b.value)),isNav:e.toRef((()=>m.isNav))}),(t,o)=>(e.openBlock(),e.createBlock(d._sfc_main,{ref_key:"wrapper",ref:z,skip:e.unref(B)||e.unref(m).skipWrapper,class:e.normalizeClass(M.value)},{default:e.withCtx((()=>[e.createVNode(n._sfc_main,{id:e.unref(h),ref_key:"splitButton",ref:S,variant:e.unref(m).splitVariant||e.unref(m).variant,size:e.unref(m).size,class:e.normalizeClass(P.value),disabled:e.unref(m).splitDisabled||e.unref(m).disabled,type:e.unref(m).splitButtonType,"aria-label":e.unref(m).ariaLabel,"aria-expanded":e.unref(m).split?void 0:b.value,"aria-haspopup":e.unref(m).split?void 0:"menu",href:e.unref(m).split?e.unref(m).splitHref:void 0,to:e.unref(m).split&&e.unref(m).splitTo?e.unref(m).splitTo:void 0,onClick:H},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"button-content",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(m).text),1)]))])),_:3},8,["id","variant","size","class","disabled","type","aria-label","aria-expanded","aria-haspopup","href","to"]),e.unref(m).split?(e.openBlock(),e.createBlock(n._sfc_main,{key:0,ref_key:"button",ref:x,variant:e.unref(m).variant,size:e.unref(m).size,disabled:e.unref(m).disabled,class:e.normalizeClass([[e.unref(m).toggleClass,{show:b.value}],"dropdown-toggle-split dropdown-toggle"]),"aria-expanded":b.value,"aria-haspopup":"menu",onClick:W},{default:e.withCtx((()=>[e.createElementVNode("span",p,[e.renderSlot(t.$slots,"toggle-text",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(m).toggleText),1)]))])])),_:3},8,["variant","size","disabled","class","aria-expanded"])):e.createCommentVNode("",!0),e.createVNode(i._sfc_main,{to:e.unref(m).teleportTo,disabled:!e.unref(m).teleportTo||e.unref(m).teleportDisabled},{default:e.withCtx((()=>[!e.unref(m).lazy||b.value?e.withDirectives((e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"floating",ref:k,style:e.normalizeStyle([e.unref(K),j.value]),class:e.normalizeClass(["dropdown-menu overflow-auto",[e.unref(m).menuClass,{show:b.value}]]),"aria-labelledby":e.unref(h),role:e.unref(m).role,onClick:$},[e.renderSlot(t.$slots,"default",{hide:F,show:R})],14,f)),[[e.vShow,e.unref(m).lazy||b.value]]):e.createCommentVNode("",!0)])),_:3},8,["to","disabled"])])),_:3},8,["skip","class"]))}});exports._sfc_main=v;
|
|
2
|
+
//# sourceMappingURL=BDropdown.vue_vue_type_script_setup_true_lang-Bttc25Hh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BDropdown.vue_vue_type_script_setup_true_lang-IkrH9BlP.js","sources":["../src/components/BDropdown/BDropdown.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n ref=\"wrapper\"\n :skip=\"inInputGroup || props.skipWrapper\"\n :class=\"computedClasses\"\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 : modelValue\"\n :aria-haspopup=\"props.split ? undefined : 'menu'\"\n :href=\"props.split ? props.splitHref : undefined\"\n :to=\"props.split && props.splitTo ? props.splitTo : undefined\"\n @click=\"onSplitClick\"\n >\n <slot name=\"button-content\">\n {{ props.text }}\n </slot>\n </BButton>\n <BButton\n v-if=\"props.split\"\n ref=\"button\"\n :variant=\"props.variant\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n :class=\"[props.toggleClass, {show: modelValue}]\"\n class=\"dropdown-toggle-split dropdown-toggle\"\n :aria-expanded=\"modelValue\"\n aria-haspopup=\"menu\"\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 <ul\n v-if=\"!props.lazy || modelValue\"\n v-show=\"props.lazy || modelValue\"\n ref=\"floating\"\n :style=\"[floatingStyles, sizeStyles]\"\n class=\"dropdown-menu overflow-auto\"\n :class=\"[props.menuClass, {show: modelValue}]\"\n :aria-labelledby=\"computedId\"\n :role=\"props.role\"\n @click=\"onClickInside\"\n >\n <slot :hide=\"hide\" :show=\"show\" />\n </ul>\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 RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, onKeyStroke, useToNumber} from '@vueuse/core'\nimport {computed, type CSSProperties, inject, nextTick, provide, ref, toRef, watch} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BDropdownProps} from '../../types/ComponentProps'\nimport {BvTriggerableEvent} from '../../utils'\nimport BButton from '../BButton/BButton.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {isBoundary, isRootBoundary, resolveFloatingPlacement} from '../../utils/floatingUi'\nimport {dropdownInjectionKey, inputGroupKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<Omit<BDropdownProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n autoClose: true,\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n center: false,\n teleportTo: undefined,\n teleportDisabled: false,\n disabled: false,\n dropend: false,\n dropstart: false,\n dropup: false,\n end: false,\n floatingMiddleware: undefined,\n id: undefined,\n isNav: false,\n lazy: false,\n menuClass: undefined,\n noCaret: false,\n noFlip: false,\n noShift: false,\n noSize: false,\n offset: 0,\n role: 'menu',\n size: 'md',\n skipWrapper: false,\n split: false,\n splitButtonType: 'button',\n splitClass: undefined,\n splitDisabled: undefined,\n splitHref: undefined,\n splitTo: undefined,\n splitVariant: undefined,\n strategy: 'absolute',\n text: undefined,\n toggleClass: undefined,\n toggleText: 'Toggle dropdown',\n variant: 'secondary',\n wrapperClass: undefined,\n})\nconst props = useDefaults(_props, 'BDropdown')\n\nconst emit = defineEmits<{\n 'click': [event: MouseEvent]\n 'hidden': []\n 'hide': [value: BvTriggerableEvent]\n 'hide-prevented': []\n 'show': [value: BvTriggerableEvent]\n 'show-prevented': []\n 'shown': []\n 'toggle': []\n}>()\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'button-content'?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'default'?: (props: {hide: () => void; show: () => void}) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'toggle-text'?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'dropdown')\n\nconst modelValue = defineModel<Exclude<BDropdownProps['modelValue'], undefined>>({default: false})\n\nconst inInputGroup = inject(inputGroupKey, false)\n\nconst computedOffset = computed(() =>\n typeof props.offset === 'string' || typeof props.offset === 'number' ? props.offset : NaN\n)\nconst offsetToNumber = useToNumber(computedOffset)\n\nconst floating = ref<HTMLElement | null>(null)\nconst button = ref<HTMLElement | null>(null)\nconst splitButton = ref<HTMLElement | null>(null)\nconst wrapper = ref<HTMLElement | null>(null)\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 referencePlacement = computed(() => (!props.split ? splitButton.value : button.value))\n\nonKeyStroke(\n 'Escape',\n () => {\n modelValue.value = !modelValue.value\n },\n {target: referencePlacement}\n)\nonKeyStroke(\n 'Escape',\n () => {\n modelValue.value = !modelValue.value\n },\n {target: floating}\n)\n\nconst keynav = (e: Readonly<Event>, v: number) => {\n if (floating.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 (!modelValue.value) {\n open()\n nextTick(() => keynav(e, v))\n return\n }\n const list = floating.value?.querySelectorAll('.dropdown-item:not(.disabled):not(:disabled)')\n if (!list) return\n if (floating.value?.contains(document.activeElement)) {\n const active = floating.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: referencePlacement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: referencePlacement})\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: floating})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: floating})\n\nconst floatingPlacement = computed(() =>\n resolveFloatingPlacement({\n top: props.dropup,\n start: props.dropstart,\n end: props.dropend,\n alignCenter: props.center,\n alignEnd: props.end,\n })\n)\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<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 maxHeight: availableHeight && modelValue.value ? `${availableHeight}px` : undefined,\n maxWidth: availableWidth && modelValue.value ? `${availableWidth}px` : undefined,\n }\n },\n })\n )\n }\n return arr\n})\nconst {update, floatingStyles} = useFloating(referencePlacement, floating, {\n placement: floatingPlacement,\n middleware: floatingMiddleware,\n strategy: toRef(() => props.strategy),\n whileElementsMounted: autoUpdate,\n})\n\nconst computedClasses = computed(() => [\n props.wrapperClass,\n {\n 'btn-group': !props.wrapperClass && props.split,\n 'dropdown': !props.wrapperClass && !props.split,\n 'dropup': props.dropup,\n 'dropend': props.dropend,\n 'dropstart': props.dropstart,\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 : modelValue.value,\n },\n])\n\nconst onButtonClick = () => {\n toggle()\n}\n\nconst onSplitClick = (event: Readonly<MouseEvent>) => {\n props.split ? emit('click', event) : onButtonClick()\n}\n\nonClickOutside(\n floating,\n () => {\n if (modelValue.value && (props.autoClose === true || props.autoClose === 'outside')) {\n toggle()\n }\n },\n {ignore: [button, splitButton]}\n)\nconst onClickInside = () => {\n if (modelValue.value && (props.autoClose === true || props.autoClose === 'inside')) {\n toggle()\n }\n}\n\nconst hide = () => {\n modelValue.value && toggle()\n}\nconst show = () => {\n modelValue.value || toggle()\n}\nconst toggle = () => {\n emit('toggle')\n const currentModelValue = modelValue.value\n const e = new BvTriggerableEvent(currentModelValue ? 'hide' : 'show')\n currentModelValue ? emit('hide', e) : emit('show', e)\n if (e.defaultPrevented) {\n currentModelValue ? emit('hide-prevented') : emit('show-prevented')\n return\n }\n modelValue.value = !currentModelValue\n currentModelValue ? emit('hidden') : emit('shown')\n wrapper.value?.dispatchEvent?.(new Event('forceHide'))\n}\n\nwatch(modelValue, () => {\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: toRef(() => modelValue.value),\n isNav: toRef(() => props.isNav),\n})\n</script>\n"],"names":["_props","__props","props","useDefaults","emit","__emit","computedId","useId","id","modelValue","_useModel","inInputGroup","inject","inputGroupKey","computedOffset","computed","offset","NaN","offsetToNumber","useToNumber","floating","ref","button","splitButton","wrapper","boundary","isBoundary","rootBoundary","isRootBoundary","referencePlacement","split","value","index$1","onKeyStroke","target","keynav","e","v","_b","contains","_a","closest","test","_c","tagName","preventDefault","nextTick","list","_d","querySelectorAll","_e","document","activeElement","active","querySelector","index","Array","prototype","indexOf","call","length","_f","focus","_g","floatingPlacement","resolveFloatingPlacement","top","dropup","start","dropstart","end","dropend","alignCenter","center","alignEnd","sizeStyles","floatingMiddleware","localOffset","arr","offsetMiddleware","noFlip","push","flip","padding","boundaryPadding","noShift","shift","noSize","sizeMiddleware","apply","availableWidth","availableHeight","maxHeight","maxWidth","update","floatingStyles","useFloating","placement","middleware","strategy","toRef","whileElementsMounted","autoUpdate","z","computedClasses","wrapperClass","dropdown","isNav","buttonClasses","splitClass","toggleClass","noCaret","show","onButtonClick","onSplitClick","event","onClickOutside","autoClose","ignore","onClickInside","hide","toggle","currentModelValue","BvTriggerableEvent","defaultPrevented","dispatchEvent","Event","vue","watch","__expose","provide","dropdownInjectionKey","visible"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BDropdown.vue_vue_type_script_setup_true_lang-Bttc25Hh.js","sources":["../src/components/BDropdown/BDropdown.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n ref=\"wrapper\"\n :skip=\"inInputGroup || props.skipWrapper\"\n :class=\"computedClasses\"\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 : modelValue\"\n :aria-haspopup=\"props.split ? undefined : 'menu'\"\n :href=\"props.split ? props.splitHref : undefined\"\n :to=\"props.split && props.splitTo ? props.splitTo : undefined\"\n @click=\"onSplitClick\"\n >\n <slot name=\"button-content\">\n {{ props.text }}\n </slot>\n </BButton>\n <BButton\n v-if=\"props.split\"\n ref=\"button\"\n :variant=\"props.variant\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n :class=\"[props.toggleClass, {show: modelValue}]\"\n class=\"dropdown-toggle-split dropdown-toggle\"\n :aria-expanded=\"modelValue\"\n aria-haspopup=\"menu\"\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 <ul\n v-if=\"!props.lazy || modelValue\"\n v-show=\"props.lazy || modelValue\"\n ref=\"floating\"\n :style=\"[floatingStyles, sizeStyles]\"\n class=\"dropdown-menu overflow-auto\"\n :class=\"[props.menuClass, {show: modelValue}]\"\n :aria-labelledby=\"computedId\"\n :role=\"props.role\"\n @click=\"onClickInside\"\n >\n <slot :hide=\"hide\" :show=\"show\" />\n </ul>\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 RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, onKeyStroke, useToNumber} from '@vueuse/core'\nimport {computed, type CSSProperties, inject, nextTick, provide, ref, toRef, watch} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BDropdownProps} from '../../types/ComponentProps'\nimport {BvTriggerableEvent} from '../../utils'\nimport BButton from '../BButton/BButton.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {isBoundary, isRootBoundary, resolveFloatingPlacement} from '../../utils/floatingUi'\nimport {dropdownInjectionKey, inputGroupKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<Omit<BDropdownProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n autoClose: true,\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n center: false,\n teleportTo: undefined,\n teleportDisabled: false,\n disabled: false,\n dropend: false,\n dropstart: false,\n dropup: false,\n end: false,\n floatingMiddleware: undefined,\n id: undefined,\n isNav: false,\n lazy: false,\n menuClass: undefined,\n noCaret: false,\n noFlip: false,\n noShift: false,\n noSize: false,\n offset: 0,\n role: 'menu',\n size: 'md',\n skipWrapper: false,\n split: false,\n splitButtonType: 'button',\n splitClass: undefined,\n splitDisabled: undefined,\n splitHref: undefined,\n splitTo: undefined,\n splitVariant: undefined,\n strategy: 'absolute',\n text: undefined,\n toggleClass: undefined,\n toggleText: 'Toggle dropdown',\n variant: 'secondary',\n wrapperClass: undefined,\n})\nconst props = useDefaults(_props, 'BDropdown')\n\nconst emit = defineEmits<{\n 'click': [event: MouseEvent]\n 'hidden': []\n 'hide': [value: BvTriggerableEvent]\n 'hide-prevented': []\n 'show': [value: BvTriggerableEvent]\n 'show-prevented': []\n 'shown': []\n 'toggle': []\n}>()\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'button-content'?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'default'?: (props: {hide: () => void; show: () => void}) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'toggle-text'?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'dropdown')\n\nconst modelValue = defineModel<Exclude<BDropdownProps['modelValue'], undefined>>({default: false})\n\nconst inInputGroup = inject(inputGroupKey, false)\n\nconst computedOffset = computed(() =>\n typeof props.offset === 'string' || typeof props.offset === 'number' ? props.offset : NaN\n)\nconst offsetToNumber = useToNumber(computedOffset)\n\nconst floating = ref<HTMLElement | null>(null)\nconst button = ref<HTMLElement | null>(null)\nconst splitButton = ref<HTMLElement | null>(null)\nconst wrapper = ref<HTMLElement | null>(null)\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 referencePlacement = computed(() => (!props.split ? splitButton.value : button.value))\n\nonKeyStroke(\n 'Escape',\n () => {\n modelValue.value = !modelValue.value\n },\n {target: referencePlacement}\n)\nonKeyStroke(\n 'Escape',\n () => {\n modelValue.value = !modelValue.value\n },\n {target: floating}\n)\n\nconst keynav = (e: Readonly<Event>, v: number) => {\n if (floating.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 (!modelValue.value) {\n open()\n nextTick(() => keynav(e, v))\n return\n }\n const list = floating.value?.querySelectorAll('.dropdown-item:not(.disabled):not(:disabled)')\n if (!list) return\n if (floating.value?.contains(document.activeElement)) {\n const active = floating.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: referencePlacement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: referencePlacement})\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: floating})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: floating})\n\nconst floatingPlacement = computed(() =>\n resolveFloatingPlacement({\n top: props.dropup,\n start: props.dropstart,\n end: props.dropend,\n alignCenter: props.center,\n alignEnd: props.end,\n })\n)\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<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 maxHeight: availableHeight && modelValue.value ? `${availableHeight}px` : undefined,\n maxWidth: availableWidth && modelValue.value ? `${availableWidth}px` : undefined,\n }\n },\n })\n )\n }\n return arr\n})\nconst {update, floatingStyles} = useFloating(referencePlacement, floating, {\n placement: floatingPlacement,\n middleware: floatingMiddleware,\n strategy: toRef(() => props.strategy),\n whileElementsMounted: autoUpdate,\n})\n\nconst computedClasses = computed(() => [\n props.wrapperClass,\n {\n 'btn-group': !props.wrapperClass && props.split,\n 'dropdown': !props.wrapperClass && !props.split,\n 'dropup': props.dropup,\n 'dropend': props.dropend,\n 'dropstart': props.dropstart,\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 : modelValue.value,\n },\n])\n\nconst onButtonClick = () => {\n toggle()\n}\n\nconst onSplitClick = (event: Readonly<MouseEvent>) => {\n props.split ? emit('click', event) : onButtonClick()\n}\n\nonClickOutside(\n floating,\n () => {\n if (modelValue.value && (props.autoClose === true || props.autoClose === 'outside')) {\n toggle()\n }\n },\n {ignore: [button, splitButton]}\n)\nconst onClickInside = () => {\n if (modelValue.value && (props.autoClose === true || props.autoClose === 'inside')) {\n toggle()\n }\n}\n\nconst hide = () => {\n modelValue.value && toggle()\n}\nconst show = () => {\n modelValue.value || toggle()\n}\nconst toggle = () => {\n emit('toggle')\n const currentModelValue = modelValue.value\n const e = new BvTriggerableEvent(currentModelValue ? 'hide' : 'show')\n currentModelValue ? emit('hide', e) : emit('show', e)\n if (e.defaultPrevented) {\n currentModelValue ? emit('hide-prevented') : emit('show-prevented')\n return\n }\n modelValue.value = !currentModelValue\n currentModelValue ? emit('hidden') : emit('shown')\n wrapper.value?.dispatchEvent?.(new Event('forceHide'))\n}\n\nwatch(modelValue, () => {\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: toRef(() => modelValue.value),\n isNav: toRef(() => props.isNav),\n})\n</script>\n"],"names":["_props","__props","props","useDefaults","emit","__emit","computedId","useId","id","modelValue","_useModel","inInputGroup","inject","inputGroupKey","computedOffset","computed","offset","NaN","offsetToNumber","useToNumber","floating","ref","button","splitButton","wrapper","boundary","isBoundary","rootBoundary","isRootBoundary","referencePlacement","split","value","index$1","onKeyStroke","target","keynav","e","v","_b","contains","_a","closest","test","_c","tagName","preventDefault","nextTick","list","_d","querySelectorAll","_e","document","activeElement","active","querySelector","index","Array","prototype","indexOf","call","length","_f","focus","_g","floatingPlacement","resolveFloatingPlacement","top","dropup","start","dropstart","end","dropend","alignCenter","center","alignEnd","sizeStyles","floatingMiddleware","localOffset","arr","offsetMiddleware","noFlip","push","flip","padding","boundaryPadding","noShift","shift","noSize","sizeMiddleware","apply","availableWidth","availableHeight","maxHeight","maxWidth","update","floatingStyles","useFloating","placement","middleware","strategy","toRef","whileElementsMounted","autoUpdate","z","computedClasses","wrapperClass","dropdown","isNav","buttonClasses","splitClass","toggleClass","noCaret","show","onButtonClick","onSplitClick","event","onClickOutside","autoClose","ignore","onClickInside","hide","toggle","currentModelValue","BvTriggerableEvent","defaultPrevented","dispatchEvent","Event","vue","watch","__expose","provide","dropdownInjectionKey","visible"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { defineComponent, mergeModels, useAttrs, useSlots, useModel, inject, ref
|
|
|
2
2
|
import { e as useFocus } from "./index-DngH9Pjm.mjs";
|
|
3
3
|
import { g as getClasses, a as getInputClasses, b as getLabelClasses, c as getGroupAttr, d as getGroupClasses } from "./useFormCheck-Bcx8Ea7M.mjs";
|
|
4
4
|
import { j as checkboxGroupKey } from "./keys-CLEaYsGj.mjs";
|
|
5
|
-
import { _ as _sfc_main$2 } from "./ConditionalWrapper.vue_vue_type_script_lang-
|
|
5
|
+
import { _ as _sfc_main$2 } from "./ConditionalWrapper.vue_vue_type_script_lang-B-0cSyYg.mjs";
|
|
6
6
|
import { i as isEmptySlot } from "./dom-B-SQyhbA.mjs";
|
|
7
7
|
import { u as useDefaults } from "./useDefaults-BYx9NNxn.mjs";
|
|
8
8
|
import { u as useId } from "./useId-BrAgQfKM.mjs";
|
|
@@ -280,4 +280,4 @@ export {
|
|
|
280
280
|
_sfc_main$1 as _,
|
|
281
281
|
_sfc_main as a
|
|
282
282
|
};
|
|
283
|
-
//# sourceMappingURL=BFormCheckboxGroup.vue_vue_type_script_setup_true_lang
|
|
283
|
+
//# sourceMappingURL=BFormCheckboxGroup.vue_vue_type_script_setup_true_lang--YSZ6GxF.mjs.map
|