bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
1 lines • 22.2 kB
Source Map (JSON)
{"version":3,"file":"BToast-B2rFKhLD.mjs","names":[],"sources":["../src/components/BToast/BToast.vue","../src/components/BToast/BToast.vue"],"sourcesContent":["<template>\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"!!modelValue || props.visible\"\n >\n <div\n v-show=\"isToastVisible\"\n :id=\"props.id\"\n ref=\"_element\"\n class=\"toast\"\n :class=\"[props.toastClass, computedClasses]\"\n tabindex=\"0\"\n style=\"display: block\"\n :role=\"!isToastVisible ? undefined : props.isStatus ? 'status' : 'alert'\"\n :aria-live=\"!isToastVisible ? undefined : props.isStatus ? 'polite' : 'assertive'\"\n :aria-atomic=\"!isToastVisible ? undefined : true\"\n >\n <component\n :is=\"props.headerTag\"\n v-if=\"contentShowing && (slots.title || props.title)\"\n class=\"toast-header\"\n :class=\"props.headerClass\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n <strong>\n {{ props.title }}\n </strong>\n </slot>\n <template v-if=\"!props.noCloseButton\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n class=\"ms-auto\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n <!-- <BCloseButton class=\"ms-auto\" @click=\"hide('close')\" /> -->\n </component>\n <template v-if=\"contentShowing && (slots.default || props.body)\">\n <div class=\"d-flex\">\n <component\n :is=\"computedTag\"\n class=\"toast-body\"\n :class=\"props.bodyClass\"\n v-bind=\"computedLinkProps\"\n @click=\"computedLink ? hide() : () => {}\"\n >\n <slot v-bind=\"sharedSlots\">\n {{ props.body }}\n </slot>\n </component>\n\n <template v-if=\"!props.noCloseButton && !(slots.title || props.title)\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n class=\"ms-auto btn-close-custom\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </div>\n </template>\n <BProgress\n v-if=\"typeof modelValue === 'number' && !props.noProgress\"\n :animated=\"props.progressProps?.animated\"\n :precision=\"props.progressProps?.precision\"\n :show-progress=\"props.progressProps?.showProgress\"\n :show-value=\"props.progressProps?.showValue\"\n :striped=\"props.progressProps?.striped\"\n :variant=\"props.progressProps?.variant\"\n :max=\"modelValue\"\n :value=\"remainingMs\"\n height=\"4px\"\n />\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type EmitFn, useTemplateRef, watch, watchEffect} from 'vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport type {BToastProps} from '../../types/ComponentProps'\nimport type {BToastEmits} from '../../types/ComponentEmits'\nimport type {BToastSlots, ShowHideSlotsData} from '../../types/ComponentSlots'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport BLink from '../BLink/BLink.vue'\nimport BProgress from '../BProgress/BProgress.vue'\nimport {useCountdown} from '../../composables/useCountdown'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useCountdownHover} from '../../composables/useCountdownHover'\nimport {useId} from '../../composables/useId'\nimport {useShowHide} from '../../composables/useShowHide'\n\nconst _props = withDefaults(defineProps<Omit<BToastProps, 'modelValue'>>(), {\n bgVariant: null,\n body: undefined,\n bodyClass: undefined,\n closeClass: undefined,\n closeContent: undefined,\n closeLabel: 'Close',\n closeVariant: 'secondary',\n headerClass: undefined,\n headerTag: 'div',\n id: undefined,\n initialAnimation: false,\n interval: 'requestAnimationFrame',\n isStatus: false,\n lazy: false,\n noCloseButton: false,\n noFade: false,\n noHoverPause: false,\n noProgress: false,\n noResumeOnHoverLeave: false,\n progressProps: undefined,\n unmountLazy: false,\n showOnPause: true,\n show: false,\n solid: false,\n textVariant: null,\n title: undefined,\n toastClass: undefined,\n transProps: undefined,\n visible: false,\n // Link props\n // All others use defaults\n noRel: undefined,\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 stretched: false,\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, 'BToast')\nconst emit = defineEmits<BToastEmits>()\nconst slots = defineSlots<BToastSlots>()\n\nconst element = useTemplateRef('_element')\n\nconst modelValue = defineModel<Exclude<BToastProps['modelValue'], undefined>>({default: false})\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedId = useId(() => props.id, 'toast')\n\nconst {\n showRef,\n renderRef,\n hide,\n toggle,\n show,\n buildTriggerableEvent,\n computedNoAnimation,\n isVisible,\n transitionProps,\n contentShowing,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId)\n\n// TODO solid is never used\nconst countdownLength = computed(() =>\n typeof modelValue.value === 'boolean' ? 0 : modelValue.value\n)\n\nconst {\n isActive,\n pause,\n restart,\n resume,\n stop,\n isPaused,\n value: remainingMs,\n} = useCountdown(countdownLength, props.interval, {\n immediate: typeof modelValue.value === 'number' && !!modelValue.value,\n})\nuseCountdownHover(\n element,\n {\n noHoverPause: () => props.noHoverPause || typeof modelValue.value !== 'number',\n noResumeOnHoverLeave: () => props.noResumeOnHoverLeave || typeof modelValue.value !== 'number',\n modelValueIgnoresHover: () => typeof modelValue.value === 'boolean',\n },\n {pause, resume}\n)\n\nwatchEffect(() => {\n emit('close-countdown', remainingMs.value)\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : 'div'))\n\nconst isToastVisible = computed(\n () => showRef.value || isActive.value || (props.showOnPause && isPaused.value)\n)\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n show: isVisible.value,\n fade: !computedNoAnimation.value,\n },\n])\n\nwatch(modelValue, (newValue, oldValue) => {\n if (typeof newValue === 'number' && newValue > 0) {\n const event = buildTriggerableEvent('show', {cancelable: true, trigger: 'model'})\n emit('show', event)\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n } else {\n restart()\n }\n }\n if (typeof newValue === 'number' && newValue === 0) {\n stop()\n }\n if (newValue === false && typeof oldValue === 'number' && oldValue > 0) {\n stop()\n }\n})\n\n// isActive in the composable will cause the toast to hide when the countdown is done\nwatch(isActive, (newValue) => {\n if (newValue === false && isPaused.value === false) {\n hide()\n modelValue.value = 0\n stop()\n }\n})\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: showRef.value,\n active: isActive.value,\n}))\n\ndefineExpose({\n show,\n hide,\n toggle,\n pause,\n restart,\n resume,\n stop,\n})\n</script>\n","<template>\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"!!modelValue || props.visible\"\n >\n <div\n v-show=\"isToastVisible\"\n :id=\"props.id\"\n ref=\"_element\"\n class=\"toast\"\n :class=\"[props.toastClass, computedClasses]\"\n tabindex=\"0\"\n style=\"display: block\"\n :role=\"!isToastVisible ? undefined : props.isStatus ? 'status' : 'alert'\"\n :aria-live=\"!isToastVisible ? undefined : props.isStatus ? 'polite' : 'assertive'\"\n :aria-atomic=\"!isToastVisible ? undefined : true\"\n >\n <component\n :is=\"props.headerTag\"\n v-if=\"contentShowing && (slots.title || props.title)\"\n class=\"toast-header\"\n :class=\"props.headerClass\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n <strong>\n {{ props.title }}\n </strong>\n </slot>\n <template v-if=\"!props.noCloseButton\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n class=\"ms-auto\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n <!-- <BCloseButton class=\"ms-auto\" @click=\"hide('close')\" /> -->\n </component>\n <template v-if=\"contentShowing && (slots.default || props.body)\">\n <div class=\"d-flex\">\n <component\n :is=\"computedTag\"\n class=\"toast-body\"\n :class=\"props.bodyClass\"\n v-bind=\"computedLinkProps\"\n @click=\"computedLink ? hide() : () => {}\"\n >\n <slot v-bind=\"sharedSlots\">\n {{ props.body }}\n </slot>\n </component>\n\n <template v-if=\"!props.noCloseButton && !(slots.title || props.title)\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n class=\"ms-auto btn-close-custom\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </div>\n </template>\n <BProgress\n v-if=\"typeof modelValue === 'number' && !props.noProgress\"\n :animated=\"props.progressProps?.animated\"\n :precision=\"props.progressProps?.precision\"\n :show-progress=\"props.progressProps?.showProgress\"\n :show-value=\"props.progressProps?.showValue\"\n :striped=\"props.progressProps?.striped\"\n :variant=\"props.progressProps?.variant\"\n :max=\"modelValue\"\n :value=\"remainingMs\"\n height=\"4px\"\n />\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type EmitFn, useTemplateRef, watch, watchEffect} from 'vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport type {BToastProps} from '../../types/ComponentProps'\nimport type {BToastEmits} from '../../types/ComponentEmits'\nimport type {BToastSlots, ShowHideSlotsData} from '../../types/ComponentSlots'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport BLink from '../BLink/BLink.vue'\nimport BProgress from '../BProgress/BProgress.vue'\nimport {useCountdown} from '../../composables/useCountdown'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useCountdownHover} from '../../composables/useCountdownHover'\nimport {useId} from '../../composables/useId'\nimport {useShowHide} from '../../composables/useShowHide'\n\nconst _props = withDefaults(defineProps<Omit<BToastProps, 'modelValue'>>(), {\n bgVariant: null,\n body: undefined,\n bodyClass: undefined,\n closeClass: undefined,\n closeContent: undefined,\n closeLabel: 'Close',\n closeVariant: 'secondary',\n headerClass: undefined,\n headerTag: 'div',\n id: undefined,\n initialAnimation: false,\n interval: 'requestAnimationFrame',\n isStatus: false,\n lazy: false,\n noCloseButton: false,\n noFade: false,\n noHoverPause: false,\n noProgress: false,\n noResumeOnHoverLeave: false,\n progressProps: undefined,\n unmountLazy: false,\n showOnPause: true,\n show: false,\n solid: false,\n textVariant: null,\n title: undefined,\n toastClass: undefined,\n transProps: undefined,\n visible: false,\n // Link props\n // All others use defaults\n noRel: undefined,\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 stretched: false,\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, 'BToast')\nconst emit = defineEmits<BToastEmits>()\nconst slots = defineSlots<BToastSlots>()\n\nconst element = useTemplateRef('_element')\n\nconst modelValue = defineModel<Exclude<BToastProps['modelValue'], undefined>>({default: false})\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedId = useId(() => props.id, 'toast')\n\nconst {\n showRef,\n renderRef,\n hide,\n toggle,\n show,\n buildTriggerableEvent,\n computedNoAnimation,\n isVisible,\n transitionProps,\n contentShowing,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId)\n\n// TODO solid is never used\nconst countdownLength = computed(() =>\n typeof modelValue.value === 'boolean' ? 0 : modelValue.value\n)\n\nconst {\n isActive,\n pause,\n restart,\n resume,\n stop,\n isPaused,\n value: remainingMs,\n} = useCountdown(countdownLength, props.interval, {\n immediate: typeof modelValue.value === 'number' && !!modelValue.value,\n})\nuseCountdownHover(\n element,\n {\n noHoverPause: () => props.noHoverPause || typeof modelValue.value !== 'number',\n noResumeOnHoverLeave: () => props.noResumeOnHoverLeave || typeof modelValue.value !== 'number',\n modelValueIgnoresHover: () => typeof modelValue.value === 'boolean',\n },\n {pause, resume}\n)\n\nwatchEffect(() => {\n emit('close-countdown', remainingMs.value)\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : 'div'))\n\nconst isToastVisible = computed(\n () => showRef.value || isActive.value || (props.showOnPause && isPaused.value)\n)\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n show: isVisible.value,\n fade: !computedNoAnimation.value,\n },\n])\n\nwatch(modelValue, (newValue, oldValue) => {\n if (typeof newValue === 'number' && newValue > 0) {\n const event = buildTriggerableEvent('show', {cancelable: true, trigger: 'model'})\n emit('show', event)\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n } else {\n restart()\n }\n }\n if (typeof newValue === 'number' && newValue === 0) {\n stop()\n }\n if (newValue === false && typeof oldValue === 'number' && oldValue > 0) {\n stop()\n }\n})\n\n// isActive in the composable will cause the toast to hide when the countdown is done\nwatch(isActive, (newValue) => {\n if (newValue === false && isPaused.value === false) {\n hide()\n modelValue.value = 0\n stop()\n }\n})\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: showRef.value,\n active: isActive.value,\n}))\n\ndefineExpose({\n show,\n hide,\n toggle,\n pause,\n restart,\n resume,\n stop,\n})\n</script>\n"],"mappings":"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"}