bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
1 lines • 15.3 kB
Source Map (JSON)
{"version":3,"file":"BNavbar-DALgesyZ.mjs","names":[],"sources":["../src/composables/useContainerClasses.ts","../src/components/BNavbar/BNavbar.vue","../src/components/BNavbar/BNavbar.vue","../src/components/BNavbar/BNavbarBrand.vue","../src/components/BNavbar/BNavbarBrand.vue","../src/components/BNavbar/BNavbarNav.vue","../src/components/BNavbar/BNavbarNav.vue","../src/components/BNavbar/BNavbarToggle.vue","../src/components/BNavbar/BNavbarToggle.vue"],"sourcesContent":["import type {Breakpoint} from '../types/BreakpointProps'\nimport {computed, type MaybeRefOrGetter, toValue} from 'vue'\n\nexport const useContainerClasses = (value: MaybeRefOrGetter<boolean | Breakpoint | 'fluid'>) =>\n computed(() => {\n const resolvedValue = toValue(value)\n return {\n container: resolvedValue === true,\n [`container-${resolvedValue}`]: typeof resolvedValue === 'string',\n }\n })\n","<template>\n <component :is=\"props.tag\" class=\"navbar\" :class=\"computedClasses\" :role=\"computedRole\">\n <div v-if=\"props.container !== false\" :class=\"containerClass\">\n <slot />\n </div>\n <slot v-else />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, toRef} from 'vue'\nimport type {BNavbarProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useContainerClasses} from '../../composables/useContainerClasses'\nimport {navbarInjectionKey} from '../../utils/keys'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BNavbarSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarProps>(), {\n container: 'fluid',\n fixed: undefined,\n noAutoClose: false,\n print: false,\n sticky: undefined,\n tag: 'nav',\n toggleable: false,\n variant: null,\n})\nconst props = useDefaults(_props, 'BNavbar')\ndefineSlots<BNavbarSlots>()\n\nconst computedRole = computed(() => (props.tag === 'nav' ? undefined : 'navigation'))\n\nconst containerClass = useContainerClasses(() => props.container)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n 'd-print': props.print,\n [`sticky-${props.sticky}`]: props.sticky !== undefined,\n [`fixed-${props.fixed}`]: props.fixed !== undefined,\n 'navbar-expand': props.toggleable === false,\n [`navbar-expand-${props.toggleable}`]: typeof props.toggleable === 'string',\n },\n])\n\nprovide(navbarInjectionKey, {\n tag: toRef(() => props.tag),\n noAutoClose: toRef(() => props.noAutoClose),\n})\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"navbar\" :class=\"computedClasses\" :role=\"computedRole\">\n <div v-if=\"props.container !== false\" :class=\"containerClass\">\n <slot />\n </div>\n <slot v-else />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, toRef} from 'vue'\nimport type {BNavbarProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useContainerClasses} from '../../composables/useContainerClasses'\nimport {navbarInjectionKey} from '../../utils/keys'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BNavbarSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarProps>(), {\n container: 'fluid',\n fixed: undefined,\n noAutoClose: false,\n print: false,\n sticky: undefined,\n tag: 'nav',\n toggleable: false,\n variant: null,\n})\nconst props = useDefaults(_props, 'BNavbar')\ndefineSlots<BNavbarSlots>()\n\nconst computedRole = computed(() => (props.tag === 'nav' ? undefined : 'navigation'))\n\nconst containerClass = useContainerClasses(() => props.container)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n 'd-print': props.print,\n [`sticky-${props.sticky}`]: props.sticky !== undefined,\n [`fixed-${props.fixed}`]: props.fixed !== undefined,\n 'navbar-expand': props.toggleable === false,\n [`navbar-expand-${props.toggleable}`]: typeof props.toggleable === 'string',\n },\n])\n\nprovide(navbarInjectionKey, {\n tag: toRef(() => props.tag),\n noAutoClose: toRef(() => props.noAutoClose),\n})\n</script>\n","<template>\n <component :is=\"computedTag\" class=\"navbar-brand\" v-bind=\"computedLinkProps\">\n <slot />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport type {BNavbarBrandProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BNavbarBrandSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarBrandProps>(), {\n tag: 'div',\n // Link props\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n stretched: false,\n icon: undefined,\n opacity: undefined,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n variant: undefined,\n // End link props\n})\nconst props = useDefaults(_props, 'BNavbarBrand')\ndefineSlots<BNavbarBrandSlots>()\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.tag))\n</script>\n","<template>\n <component :is=\"computedTag\" class=\"navbar-brand\" v-bind=\"computedLinkProps\">\n <slot />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport type {BNavbarBrandProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BNavbarBrandSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarBrandProps>(), {\n tag: 'div',\n // Link props\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n stretched: false,\n icon: undefined,\n opacity: undefined,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n variant: undefined,\n // End link props\n})\nconst props = useDefaults(_props, 'BNavbarBrand')\ndefineSlots<BNavbarBrandSlots>()\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.tag))\n</script>\n","<template>\n <ul class=\"navbar-nav\" :class=\"computedClasses\">\n <slot />\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BNavbarNavProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BNavbarNavSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarNavProps>(), {\n align: undefined,\n fill: false,\n justified: false,\n small: false,\n tag: 'ul',\n})\nconst props = useDefaults(_props, 'BNavbarNav')\ndefineSlots<BNavbarNavSlots>()\n\nconst alignment = useAlignment(() => props.align)\n\nconst computedClasses = computed(() => ({\n 'nav-fill': props.fill,\n 'nav-justified': props.justified,\n [alignment.value]: props.align !== undefined,\n 'small': props.small,\n}))\n</script>\n","<template>\n <ul class=\"navbar-nav\" :class=\"computedClasses\">\n <slot />\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BNavbarNavProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BNavbarNavSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarNavProps>(), {\n align: undefined,\n fill: false,\n justified: false,\n small: false,\n tag: 'ul',\n})\nconst props = useDefaults(_props, 'BNavbarNav')\ndefineSlots<BNavbarNavSlots>()\n\nconst alignment = useAlignment(() => props.align)\n\nconst computedClasses = computed(() => ({\n 'nav-fill': props.fill,\n 'nav-justified': props.justified,\n [alignment.value]: props.align !== undefined,\n 'small': props.small,\n}))\n</script>\n","<template>\n <button\n class=\"navbar-toggler\"\n type=\"button\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-label=\"props.label\"\n @click=\"onClick\"\n >\n <slot :expanded=\"collapseExpanded\">\n <span class=\"navbar-toggler-icon\" />\n </slot>\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BNavbarToggleProps} from '../../types/ComponentProps'\nimport {computed, inject} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {showHideRegistryKey} from '../../utils/keys'\nimport {getActiveShowHide, getShowHideValue} from '../../utils/registryAccess'\nimport type {BNavbarToggleEmits, BNavbarToggleSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarToggleProps>(), {\n label: 'Toggle navigation',\n disabled: false,\n target: undefined,\n})\nconst props = useDefaults(_props, 'BNavbarToggle')\nconst emit = defineEmits<BNavbarToggleEmits>()\ndefineSlots<BNavbarToggleSlots>()\n\nconst computedClasses = computed(() => ({\n disabled: props.disabled,\n}))\n\nconst showHideData = inject(showHideRegistryKey, null)\n\nconst collapseExpanded = computed(() => {\n if (!props.target || !showHideData) return false\n if (typeof props.target === 'string') {\n return getShowHideValue(showHideData.values, props.target)\n }\n return props.target.some((target) => getShowHideValue(showHideData.values, target))\n})\nconst toggleExpand = () => {\n if (!props.target || !showHideData) return\n if (typeof props.target === 'string') {\n getActiveShowHide(showHideData.values, props.target)?.toggle()\n return\n }\n props.target.forEach((target) => {\n getActiveShowHide(showHideData.values, target)?.toggle()\n })\n}\n\nconst onClick = (e: Readonly<MouseEvent>): void => {\n if (!props.disabled) {\n emit('click', e)\n toggleExpand()\n }\n}\n</script>\n","<template>\n <button\n class=\"navbar-toggler\"\n type=\"button\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-label=\"props.label\"\n @click=\"onClick\"\n >\n <slot :expanded=\"collapseExpanded\">\n <span class=\"navbar-toggler-icon\" />\n </slot>\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BNavbarToggleProps} from '../../types/ComponentProps'\nimport {computed, inject} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {showHideRegistryKey} from '../../utils/keys'\nimport {getActiveShowHide, getShowHideValue} from '../../utils/registryAccess'\nimport type {BNavbarToggleEmits, BNavbarToggleSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarToggleProps>(), {\n label: 'Toggle navigation',\n disabled: false,\n target: undefined,\n})\nconst props = useDefaults(_props, 'BNavbarToggle')\nconst emit = defineEmits<BNavbarToggleEmits>()\ndefineSlots<BNavbarToggleSlots>()\n\nconst computedClasses = computed(() => ({\n disabled: props.disabled,\n}))\n\nconst showHideData = inject(showHideRegistryKey, null)\n\nconst collapseExpanded = computed(() => {\n if (!props.target || !showHideData) return false\n if (typeof props.target === 'string') {\n return getShowHideValue(showHideData.values, props.target)\n }\n return props.target.some((target) => getShowHideValue(showHideData.values, target))\n})\nconst toggleExpand = () => {\n if (!props.target || !showHideData) return\n if (typeof props.target === 'string') {\n getActiveShowHide(showHideData.values, props.target)?.toggle()\n return\n }\n props.target.forEach((target) => {\n getActiveShowHide(showHideData.values, target)?.toggle()\n })\n}\n\nconst onClick = (e: Readonly<MouseEvent>): void => {\n if (!props.disabled) {\n emit('click', e)\n toggleExpand()\n }\n}\n</script>\n"],"mappings":"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"}