bootstrap-vue-next 0.46.4 → 1.0.1

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"BFormRating-AEiF8K8T.js","names":[],"sources":["../src/components/BFormRating/BFormRating.vue","../src/components/BFormRating/BFormRating.vue"],"sourcesContent":["<template>\n <output\n :id=\"computedId\"\n :class=\"computedClasses\"\n :dir=\"computedRtl ? 'rtl' : 'ltr'\"\n :form=\"props.form ? props.form : undefined\"\n role=\"slider\"\n :aria-valuemin=\"0\"\n :aria-valuemax=\"clampedStars\"\n :aria-valuenow=\"displayValue\"\n :aria-valuetext=\"props.labelValueCurrent(displayValue, clampedStars)\"\n :aria-disabled=\"props.disabled ? true : undefined\"\n :aria-readonly=\"props.readonly ? true : undefined\"\n :tabindex=\"props.disabled ? undefined : '0'\"\n @keydown=\"onKeydown\"\n >\n <input\n v-if=\"props.name && !props.disabled\"\n key=\"hidden\"\n type=\"hidden\"\n :name=\"props.name\"\n :form=\"props.form\"\n :value=\"modelValue\"\n />\n <span\n v-if=\"props.showClear && !props.readonly && !props.disabled\"\n class=\"clear-button-spacing\"\n @click=\"clearRating\"\n >\n <slot name=\"icon-clear\">\n <svg\n viewBox=\"0 0 16 16\"\n role=\"img\"\n :aria-label=\"props.clearLabel\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"clear-icon\"\n >\n <g>\n <path\n d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708\"\n />\n </g>\n </svg>\n </slot>\n </span>\n <span\n v-for=\"(starIndex, index) in clampedStars\"\n :key=\"starIndex\"\n class=\"star\"\n @click=\"selectRating(starIndex)\"\n >\n <slot :star-index=\"starIndex\" :is-filled=\"isIconFull(index)\" :is-half=\"isIconHalf(index)\">\n <span class=\"b-form-rating-star\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n :width=\"computedSize\"\n :height=\"computedSize\"\n fill=\"currentColor\"\n :class=\"[iconColors[index]?.class]\"\n :style=\"iconColors[index]?.style\"\n class=\"star-spacing\"\n viewBox=\"0 0 16 16\"\n >\n <path\n v-if=\"isIconFull(index)\"\n d=\"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z\"\n />\n <path\n v-else-if=\"isIconHalf(index)\"\n d=\"M5.354 5.119 7.538.792A.52.52 0 0 1 8 .5c.183 0 .366.097.465.292l2.184 4.327 4.898.696A.54.54 0 0 1 16 6.32a.55.55 0 0 1-.17.445l-3.523 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256a.5.5 0 0 1-.146.05c-.342.06-.668-.254-.6-.642l.83-4.73L.173 6.765a.55.55 0 0 1-.172-.403.6.6 0 0 1 .085-.302.51.51 0 0 1 .37-.245zM8 12.027a.5.5 0 0 1 .232.056l3.686 1.894-.694-3.957a.56.56 0 0 1 .162-.505l2.907-2.77-4.052-.576a.53.53 0 0 1-.393-.288L8.001 2.223 8 2.226z\"\n />\n <path\n v-else\n d=\"M2.866 14.85c-.078.444.36.791.746.593l4.39-2.256 4.389 2.256c.386.198.824-.149.746-.592l-.83-4.73 3.522-3.356c.33-.314.16-.888-.282-.95l-4.898-.696L8.465.792a.513.513 0 0 0-.927 0L5.354 5.12l-4.898.696c-.441.062-.612.636-.283.95l3.522 3.356-.83 4.73zm4.905-2.767-3.686 1.894.694-3.957a.56.56 0 0 0-.163-.505L1.71 6.745l4.052-.576a.53.53 0 0 0 .393-.288L8 2.223l1.847 3.658a.53.53 0 0 0 .393.288l4.052.575-2.906 2.77a.56.56 0 0 0-.163.506l.694 3.957-3.686-1.894a.5.5 0 0 0-.461 0z\"\n />\n </svg>\n </span>\n </slot>\n </span>\n\n <span\n v-if=\"props.showValue || props.showValueMax\"\n :style=\"{fontSize: computedSize}\"\n class=\"rating-value-text\"\n >\n {{ displayValueText }}\n </span>\n </output>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, ref} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useRtl} from '../../composables/useRtl'\nimport type {BFormRatingProps, BFormRatingSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<Omit<BFormRatingProps, 'modelValue'>>(), {\n clearLabel: 'Clear rating',\n color: '',\n id: undefined,\n inline: false,\n labelValueCurrent: (current: number, max: number) => `${current} of ${max}`,\n locale: undefined,\n noBorder: false,\n precision: 0,\n readonly: false,\n disabled: false,\n form: undefined,\n name: undefined,\n showClear: false,\n showValue: false,\n showValueMax: false,\n size: '1rem',\n stars: 5,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BFormRating')\ndefineSlots<BFormRatingSlots>()\n\nconst modelValue = defineModel<Exclude<BFormRatingProps['modelValue'], undefined>>({default: 0})\n\nconst computedId = useId(() => props.id, 'form-rating')\n\nconst {isRtl, locale: globalLocale} = useRtl()\n\nconst computedLocale = computed(() => {\n const loc = (props.locale ?? globalLocale?.value) || undefined\n const nf = new Intl.NumberFormat(loc)\n return nf.resolvedOptions().locale\n})\n\nconst computedRtl = computed(() => {\n const locale = computedLocale.value\n try {\n const localeObj = new Intl.Locale(locale)\n const {textInfo} = localeObj as Intl.Locale & {textInfo?: {direction: string}}\n if (textInfo) {\n return textInfo.direction === 'rtl'\n }\n } catch {\n // Fallback\n }\n return isRtl?.value ?? false\n})\n\nconst computedClasses = computed(() => ({\n 'form-control': true,\n 'is-readonly': props.readonly,\n 'is-disabled': props.disabled,\n 'no-border': props.noBorder,\n 'b-form-rating': true,\n 'd-inline-flex': props.inline,\n}))\n\nfunction isIconFull(index: number): boolean {\n return displayValue.value - index >= 1\n}\n\nfunction isIconHalf(index: number): boolean {\n const diff = displayValue.value - index\n return diff >= 0.5 && diff < 1\n}\n\nconst hoverValue = ref<number | null>(null)\n\nconst displayValue = computed(() =>\n hoverValue.value !== null ? hoverValue.value : modelValue.value\n)\n\n// Set the minimum amount of star can be rendered to 3\nconst clampedStars = computed(() => Math.max(3, props.stars))\n\nconst computedSize = computed(() => {\n if (props.size === 'sm') return '.875rem'\n if (props.size === 'lg') return '1.25rem'\n return props.size\n})\n\nconst computedFormatter = computed(\n () =>\n new Intl.NumberFormat(computedLocale.value, {\n style: 'decimal',\n useGrouping: false,\n minimumFractionDigits: props.precision > 0 ? props.precision : 0,\n maximumFractionDigits: props.precision > 0 ? props.precision : 0,\n notation: 'standard',\n })\n)\n\nconst displayValueText = computed(() => {\n const val = props.precision > 0 ? roundedValue.value : displayValue.value\n const formattedValue = computedFormatter.value.format(val)\n if (props.showValueMax) {\n const formattedMax = computedFormatter.value.format(clampedStars.value)\n return `${formattedValue}/${formattedMax}`\n }\n if (props.showValue) {\n return formattedValue\n }\n return ''\n})\n\nconst roundedValue = computed(() => {\n const val = displayValue.value\n const factor = 10 ** props.precision\n return Math.round((val + Number.EPSILON) * factor) / factor\n})\n\nconst iconColors = computed(() =>\n Array.from({length: clampedStars.value}, () => {\n if (props.disabled) {\n return {class: 'is-disabled', style: {}}\n }\n if (props.variant) {\n return {class: `text-${props.variant}`, style: {}}\n }\n if (props.color) {\n return {class: '', style: {color: props.color}}\n }\n return {class: '', style: {}}\n })\n)\n\n//add keyboard support\nfunction onKeydown(e: KeyboardEvent) {\n if (props.readonly || props.disabled) return\n\n let newValue = modelValue.value\n\n const isRtlMode = computedRtl.value\n\n switch (e.key) {\n case 'ArrowRight':\n newValue = isRtlMode ? Math.max(newValue - 1, 0) : Math.min(newValue + 1, clampedStars.value)\n break\n case 'ArrowUp':\n newValue = Math.min(newValue + 1, clampedStars.value)\n break\n case 'ArrowLeft':\n newValue = isRtlMode ? Math.min(newValue + 1, clampedStars.value) : Math.max(newValue - 1, 0)\n break\n case 'ArrowDown':\n newValue = Math.max(newValue - 1, 0)\n break\n default:\n return\n }\n\n e.preventDefault()\n modelValue.value = newValue\n}\n\nfunction selectRating(starIndex: number) {\n if (props.readonly || props.disabled) return\n modelValue.value = hoverValue.value !== null ? hoverValue.value : starIndex\n}\n\n// clear\nfunction clearRating() {\n hoverValue.value = null\n modelValue.value = 0\n}\n\ndefineExpose({\n hoverValue,\n})\n</script>\n","<template>\n <output\n :id=\"computedId\"\n :class=\"computedClasses\"\n :dir=\"computedRtl ? 'rtl' : 'ltr'\"\n :form=\"props.form ? props.form : undefined\"\n role=\"slider\"\n :aria-valuemin=\"0\"\n :aria-valuemax=\"clampedStars\"\n :aria-valuenow=\"displayValue\"\n :aria-valuetext=\"props.labelValueCurrent(displayValue, clampedStars)\"\n :aria-disabled=\"props.disabled ? true : undefined\"\n :aria-readonly=\"props.readonly ? true : undefined\"\n :tabindex=\"props.disabled ? undefined : '0'\"\n @keydown=\"onKeydown\"\n >\n <input\n v-if=\"props.name && !props.disabled\"\n key=\"hidden\"\n type=\"hidden\"\n :name=\"props.name\"\n :form=\"props.form\"\n :value=\"modelValue\"\n />\n <span\n v-if=\"props.showClear && !props.readonly && !props.disabled\"\n class=\"clear-button-spacing\"\n @click=\"clearRating\"\n >\n <slot name=\"icon-clear\">\n <svg\n viewBox=\"0 0 16 16\"\n role=\"img\"\n :aria-label=\"props.clearLabel\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"clear-icon\"\n >\n <g>\n <path\n d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708\"\n />\n </g>\n </svg>\n </slot>\n </span>\n <span\n v-for=\"(starIndex, index) in clampedStars\"\n :key=\"starIndex\"\n class=\"star\"\n @click=\"selectRating(starIndex)\"\n >\n <slot :star-index=\"starIndex\" :is-filled=\"isIconFull(index)\" :is-half=\"isIconHalf(index)\">\n <span class=\"b-form-rating-star\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n :width=\"computedSize\"\n :height=\"computedSize\"\n fill=\"currentColor\"\n :class=\"[iconColors[index]?.class]\"\n :style=\"iconColors[index]?.style\"\n class=\"star-spacing\"\n viewBox=\"0 0 16 16\"\n >\n <path\n v-if=\"isIconFull(index)\"\n d=\"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z\"\n />\n <path\n v-else-if=\"isIconHalf(index)\"\n d=\"M5.354 5.119 7.538.792A.52.52 0 0 1 8 .5c.183 0 .366.097.465.292l2.184 4.327 4.898.696A.54.54 0 0 1 16 6.32a.55.55 0 0 1-.17.445l-3.523 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256a.5.5 0 0 1-.146.05c-.342.06-.668-.254-.6-.642l.83-4.73L.173 6.765a.55.55 0 0 1-.172-.403.6.6 0 0 1 .085-.302.51.51 0 0 1 .37-.245zM8 12.027a.5.5 0 0 1 .232.056l3.686 1.894-.694-3.957a.56.56 0 0 1 .162-.505l2.907-2.77-4.052-.576a.53.53 0 0 1-.393-.288L8.001 2.223 8 2.226z\"\n />\n <path\n v-else\n d=\"M2.866 14.85c-.078.444.36.791.746.593l4.39-2.256 4.389 2.256c.386.198.824-.149.746-.592l-.83-4.73 3.522-3.356c.33-.314.16-.888-.282-.95l-4.898-.696L8.465.792a.513.513 0 0 0-.927 0L5.354 5.12l-4.898.696c-.441.062-.612.636-.283.95l3.522 3.356-.83 4.73zm4.905-2.767-3.686 1.894.694-3.957a.56.56 0 0 0-.163-.505L1.71 6.745l4.052-.576a.53.53 0 0 0 .393-.288L8 2.223l1.847 3.658a.53.53 0 0 0 .393.288l4.052.575-2.906 2.77a.56.56 0 0 0-.163.506l.694 3.957-3.686-1.894a.5.5 0 0 0-.461 0z\"\n />\n </svg>\n </span>\n </slot>\n </span>\n\n <span\n v-if=\"props.showValue || props.showValueMax\"\n :style=\"{fontSize: computedSize}\"\n class=\"rating-value-text\"\n >\n {{ displayValueText }}\n </span>\n </output>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, ref} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useRtl} from '../../composables/useRtl'\nimport type {BFormRatingProps, BFormRatingSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<Omit<BFormRatingProps, 'modelValue'>>(), {\n clearLabel: 'Clear rating',\n color: '',\n id: undefined,\n inline: false,\n labelValueCurrent: (current: number, max: number) => `${current} of ${max}`,\n locale: undefined,\n noBorder: false,\n precision: 0,\n readonly: false,\n disabled: false,\n form: undefined,\n name: undefined,\n showClear: false,\n showValue: false,\n showValueMax: false,\n size: '1rem',\n stars: 5,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BFormRating')\ndefineSlots<BFormRatingSlots>()\n\nconst modelValue = defineModel<Exclude<BFormRatingProps['modelValue'], undefined>>({default: 0})\n\nconst computedId = useId(() => props.id, 'form-rating')\n\nconst {isRtl, locale: globalLocale} = useRtl()\n\nconst computedLocale = computed(() => {\n const loc = (props.locale ?? globalLocale?.value) || undefined\n const nf = new Intl.NumberFormat(loc)\n return nf.resolvedOptions().locale\n})\n\nconst computedRtl = computed(() => {\n const locale = computedLocale.value\n try {\n const localeObj = new Intl.Locale(locale)\n const {textInfo} = localeObj as Intl.Locale & {textInfo?: {direction: string}}\n if (textInfo) {\n return textInfo.direction === 'rtl'\n }\n } catch {\n // Fallback\n }\n return isRtl?.value ?? false\n})\n\nconst computedClasses = computed(() => ({\n 'form-control': true,\n 'is-readonly': props.readonly,\n 'is-disabled': props.disabled,\n 'no-border': props.noBorder,\n 'b-form-rating': true,\n 'd-inline-flex': props.inline,\n}))\n\nfunction isIconFull(index: number): boolean {\n return displayValue.value - index >= 1\n}\n\nfunction isIconHalf(index: number): boolean {\n const diff = displayValue.value - index\n return diff >= 0.5 && diff < 1\n}\n\nconst hoverValue = ref<number | null>(null)\n\nconst displayValue = computed(() =>\n hoverValue.value !== null ? hoverValue.value : modelValue.value\n)\n\n// Set the minimum amount of star can be rendered to 3\nconst clampedStars = computed(() => Math.max(3, props.stars))\n\nconst computedSize = computed(() => {\n if (props.size === 'sm') return '.875rem'\n if (props.size === 'lg') return '1.25rem'\n return props.size\n})\n\nconst computedFormatter = computed(\n () =>\n new Intl.NumberFormat(computedLocale.value, {\n style: 'decimal',\n useGrouping: false,\n minimumFractionDigits: props.precision > 0 ? props.precision : 0,\n maximumFractionDigits: props.precision > 0 ? props.precision : 0,\n notation: 'standard',\n })\n)\n\nconst displayValueText = computed(() => {\n const val = props.precision > 0 ? roundedValue.value : displayValue.value\n const formattedValue = computedFormatter.value.format(val)\n if (props.showValueMax) {\n const formattedMax = computedFormatter.value.format(clampedStars.value)\n return `${formattedValue}/${formattedMax}`\n }\n if (props.showValue) {\n return formattedValue\n }\n return ''\n})\n\nconst roundedValue = computed(() => {\n const val = displayValue.value\n const factor = 10 ** props.precision\n return Math.round((val + Number.EPSILON) * factor) / factor\n})\n\nconst iconColors = computed(() =>\n Array.from({length: clampedStars.value}, () => {\n if (props.disabled) {\n return {class: 'is-disabled', style: {}}\n }\n if (props.variant) {\n return {class: `text-${props.variant}`, style: {}}\n }\n if (props.color) {\n return {class: '', style: {color: props.color}}\n }\n return {class: '', style: {}}\n })\n)\n\n//add keyboard support\nfunction onKeydown(e: KeyboardEvent) {\n if (props.readonly || props.disabled) return\n\n let newValue = modelValue.value\n\n const isRtlMode = computedRtl.value\n\n switch (e.key) {\n case 'ArrowRight':\n newValue = isRtlMode ? Math.max(newValue - 1, 0) : Math.min(newValue + 1, clampedStars.value)\n break\n case 'ArrowUp':\n newValue = Math.min(newValue + 1, clampedStars.value)\n break\n case 'ArrowLeft':\n newValue = isRtlMode ? Math.min(newValue + 1, clampedStars.value) : Math.max(newValue - 1, 0)\n break\n case 'ArrowDown':\n newValue = Math.max(newValue - 1, 0)\n break\n default:\n return\n }\n\n e.preventDefault()\n modelValue.value = newValue\n}\n\nfunction selectRating(starIndex: number) {\n if (props.readonly || props.disabled) return\n modelValue.value = hoverValue.value !== null ? hoverValue.value : starIndex\n}\n\n// clear\nfunction clearRating() {\n hoverValue.value = null\n modelValue.value = 0\n}\n\ndefineExpose({\n hoverValue,\n})\n</script>\n"],"mappings":"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"}