UNPKG

bootstrap-vue-next

Version:

Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development

1 lines 10.9 kB
{"version":3,"file":"BBreadcrumb-CjPr1FWj.mjs","names":[],"sources":["../src/components/BBreadcrumb/BBreadcrumbItem.vue","../src/components/BBreadcrumb/BBreadcrumbItem.vue","../src/components/BBreadcrumb/BBreadcrumb.vue","../src/components/BBreadcrumb/BBreadcrumb.vue"],"sourcesContent":["<template>\n <li class=\"breadcrumb-item\" :class=\"computedClasses\">\n <component\n :is=\"computedTag\"\n :aria-current=\"computedAriaCurrent\"\n v-bind=\"computedLinkProps\"\n @click=\"clicked\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {pick} from '../../utils/object'\nimport {computed} from 'vue'\nimport BLink from '../BLink/BLink.vue'\nimport type {BBreadcrumbItemProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BBreadcrumbItemEmits, BBreadcrumbItemSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BBreadcrumbItemProps>(), {\n ariaCurrent: 'location',\n text: undefined,\n // Link props\n active: false, // Why is this active: false?\n // All others use defaults\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n opacityHover: undefined,\n stretched: false,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n routerTag: 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, 'BBreadcrumbItem')\nconst emit = defineEmits<BBreadcrumbItemEmits>()\ndefineSlots<BBreadcrumbItemSlots>()\n\nconst computedClasses = computed(() => ({\n active: props.active,\n}))\n\nconst computedTag = computed(() => (props.active ? 'span' : BLink))\n\nconst computedAriaCurrent = computed(() => (props.active ? props.ariaCurrent : undefined))\n\nconst computedLinkProps = computed(() =>\n computedTag.value !== 'span'\n ? pick(props, [\n 'active',\n 'activeClass',\n 'disabled',\n 'exactActiveClass',\n 'href',\n 'icon',\n 'noRel',\n 'opacity',\n 'opacityHover',\n 'noPrefetch',\n 'prefetch',\n 'prefetchOn',\n 'prefetchedClass',\n 'rel',\n 'replace',\n 'routerComponentName',\n 'stretched',\n 'target',\n 'to',\n 'underlineOffset',\n 'underlineOffsetHover',\n 'underlineOpacity',\n 'underlineOpacityHover',\n 'underlineVariant',\n 'variant',\n ])\n : {}\n)\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n if (props.disabled || props.active) {\n e.preventDefault()\n e.stopImmediatePropagation()\n return\n }\n if (!props.disabled) emit('click', e)\n}\n</script>\n","<template>\n <li class=\"breadcrumb-item\" :class=\"computedClasses\">\n <component\n :is=\"computedTag\"\n :aria-current=\"computedAriaCurrent\"\n v-bind=\"computedLinkProps\"\n @click=\"clicked\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {pick} from '../../utils/object'\nimport {computed} from 'vue'\nimport BLink from '../BLink/BLink.vue'\nimport type {BBreadcrumbItemProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BBreadcrumbItemEmits, BBreadcrumbItemSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BBreadcrumbItemProps>(), {\n ariaCurrent: 'location',\n text: undefined,\n // Link props\n active: false, // Why is this active: false?\n // All others use defaults\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n opacityHover: undefined,\n stretched: false,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n routerTag: 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, 'BBreadcrumbItem')\nconst emit = defineEmits<BBreadcrumbItemEmits>()\ndefineSlots<BBreadcrumbItemSlots>()\n\nconst computedClasses = computed(() => ({\n active: props.active,\n}))\n\nconst computedTag = computed(() => (props.active ? 'span' : BLink))\n\nconst computedAriaCurrent = computed(() => (props.active ? props.ariaCurrent : undefined))\n\nconst computedLinkProps = computed(() =>\n computedTag.value !== 'span'\n ? pick(props, [\n 'active',\n 'activeClass',\n 'disabled',\n 'exactActiveClass',\n 'href',\n 'icon',\n 'noRel',\n 'opacity',\n 'opacityHover',\n 'noPrefetch',\n 'prefetch',\n 'prefetchOn',\n 'prefetchedClass',\n 'rel',\n 'replace',\n 'routerComponentName',\n 'stretched',\n 'target',\n 'to',\n 'underlineOffset',\n 'underlineOffsetHover',\n 'underlineOpacity',\n 'underlineOpacityHover',\n 'underlineVariant',\n 'variant',\n ])\n : {}\n)\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n if (props.disabled || props.active) {\n e.preventDefault()\n e.stopImmediatePropagation()\n return\n }\n if (!props.disabled) emit('click', e)\n}\n</script>\n","<template>\n <nav :id=\"props.id\" aria-label=\"breadcrumb\">\n <ol class=\"breadcrumb\" :class=\"props.olClass\" v-bind=\"props.olAttrs\">\n <slot name=\"prepend\" />\n <BBreadcrumbItem v-for=\"(item, i) in breadcrumbItemObjects\" :key=\"i\" v-bind=\"item\">\n {{ item.text }}\n </BBreadcrumbItem>\n <slot />\n <slot name=\"append\" />\n </ol>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useBreadcrumb} from '../../composables/useBreadcrumb'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BBreadcrumbProps} from '../../types/ComponentProps'\nimport BBreadcrumbItem from './BBreadcrumbItem.vue'\nimport type {BreadcrumbItem} from '../../types/BreadcrumbTypes'\nimport type {BBreadcrumbSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BBreadcrumbProps>(), {\n items: undefined,\n id: undefined,\n olAttrs: undefined,\n olClass: undefined,\n})\nconst props = useDefaults(_props, 'BBreadcrumb')\ndefineSlots<BBreadcrumbSlots>()\n\nconst breadcrumb = useBreadcrumb(() => props.id || null)\n\nconst breadcrumbItemObjects = computed<BreadcrumbItem[]>(() => {\n const localItems = props.items || breadcrumb.items?.value || []\n let activeDefined = false\n const items = localItems.map((item, idx) => {\n if (typeof item === 'string') {\n item = {text: item}\n if (idx < localItems.length - 1) item.href = '#'\n }\n if (item.active) activeDefined = true\n\n // Auto-detect active by position in list\n if (!item.active && !activeDefined) {\n item.active = idx + 1 === localItems.length\n }\n return item\n })\n return items\n})\n</script>\n","<template>\n <nav :id=\"props.id\" aria-label=\"breadcrumb\">\n <ol class=\"breadcrumb\" :class=\"props.olClass\" v-bind=\"props.olAttrs\">\n <slot name=\"prepend\" />\n <BBreadcrumbItem v-for=\"(item, i) in breadcrumbItemObjects\" :key=\"i\" v-bind=\"item\">\n {{ item.text }}\n </BBreadcrumbItem>\n <slot />\n <slot name=\"append\" />\n </ol>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useBreadcrumb} from '../../composables/useBreadcrumb'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BBreadcrumbProps} from '../../types/ComponentProps'\nimport BBreadcrumbItem from './BBreadcrumbItem.vue'\nimport type {BreadcrumbItem} from '../../types/BreadcrumbTypes'\nimport type {BBreadcrumbSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BBreadcrumbProps>(), {\n items: undefined,\n id: undefined,\n olAttrs: undefined,\n olClass: undefined,\n})\nconst props = useDefaults(_props, 'BBreadcrumb')\ndefineSlots<BBreadcrumbSlots>()\n\nconst breadcrumb = useBreadcrumb(() => props.id || null)\n\nconst breadcrumbItemObjects = computed<BreadcrumbItem[]>(() => {\n const localItems = props.items || breadcrumb.items?.value || []\n let activeDefined = false\n const items = localItems.map((item, idx) => {\n if (typeof item === 'string') {\n item = {text: item}\n if (idx < localItems.length - 1) item.href = '#'\n }\n if (item.active) activeDefined = true\n\n // Auto-detect active by position in list\n if (!item.active && !activeDefined) {\n item.active = idx + 1 === localItems.length\n }\n return item\n })\n return items\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDA,MAAM,QAAQ,YA5BC,SA4BmB,kBAAiB;EACnD,MAAM,OAAO;EAGb,MAAM,kBAAkB,gBAAgB,EACtC,QAAQ,MAAM,QACf,EAAC;EAEF,MAAM,cAAc,eAAgB,MAAM,SAAS,SAAS,cAAM;EAElE,MAAM,sBAAsB,eAAgB,MAAM,SAAS,MAAM,cAAc,KAAA,EAAU;EAEzF,MAAM,oBAAoB,eACxB,YAAY,UAAU,SAClB,KAAK,OAAO;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAA,GACD,EAAC,CACP;EAEA,MAAM,WAAW,MAAkC;AACjD,OAAI,MAAM,YAAY,MAAM,QAAQ;AAClC,MAAE,gBAAe;AACjB,MAAE,0BAAyB;AAC3B;;AAEF,OAAI,CAAC,MAAM,SAAU,MAAK,SAAS,EAAC;;;uBApGpC,mBAWK,MAAA,EAXD,OAAK,eAAA,CAAC,mBAA0B,gBAAA,MAAe,CAAA,EAAA,EAAA,EAAA,WAAA,EACjD,YASY,wBARL,YAAA,MAAW,EADlB,WASY,EAPT,gBAAc,oBAAA,OAAmB,EAC1B,kBAAA,OAAiB,EACxB,SAAO,SAAO,CAAA,EAAA;2BAIR,CAFP,WAEO,KAAA,QAAA,WAAA,EAAA,QAAA,CAAA,gBAAA,gBADF,MAAA,MAAK,CAAC,KAAI,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;EEmBrB,MAAM,QAAQ,YANC,SAMmB,cAAa;EAG/C,MAAM,aAAa,oBAAoB,MAAM,MAAM,KAAI;EAEvD,MAAM,wBAAwB,eAAiC;GAC7D,MAAM,aAAa,MAAM,SAAS,WAAW,OAAO,SAAS,EAAC;GAC9D,IAAI,gBAAgB;AAcpB,UAbc,WAAW,KAAK,MAAM,QAAQ;AAC1C,QAAI,OAAO,SAAS,UAAU;AAC5B,YAAO,EAAC,MAAM,MAAI;AAClB,SAAI,MAAM,WAAW,SAAS,EAAG,MAAK,OAAO;;AAE/C,QAAI,KAAK,OAAQ,iBAAgB;AAGjC,QAAI,CAAC,KAAK,UAAU,CAAC,cACnB,MAAK,SAAS,MAAM,MAAM,WAAW;AAEvC,WAAO;KACR;IAEF;;uBAjDC,mBASM,OAAA;IATA,IAAI,MAAA,MAAK,CAAC;IAAI,cAAW;OAC7B,mBAOK,MAPL,WAOK,EAPD,OAAK,CAAC,cAAqB,MAAA,MAAK,CAAC,QAAO,EAAA,EAAU,MAAA,MAAK,CAAC,QAAO,EAAA;IACjE,WAAuB,KAAA,QAAA,UAAA;sBACvB,mBAEkB,UAAA,MAAA,WAFmB,sBAAA,QAAZ,MAAM,MAAC;yBAAhC,YAEkB,yBAFlB,WAEkB,EAF2C,KAAK,GAAC,EAAA,EAAA,SAAA,MAAA,EAAU,KAAI,EAAA;6BAChE,CAAA,gBAAA,gBAAZ,KAAK,KAAI,EAAA,EAAA,CAAA,CAAA;;;;IAEd,WAAQ,KAAA,QAAA,UAAA;IACR,WAAsB,KAAA,QAAA,SAAA"}