bootstrap-vue-next
Advanced tools
Comparing version 0.12.2 to 0.12.3
@@ -87,4 +87,4 @@ import { BvTriggerableEvent } from '../../utils'; | ||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onHide?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShown?: (() => any) | undefined; | ||
@@ -91,0 +91,0 @@ onHidden?: (() => any) | undefined; |
@@ -77,4 +77,4 @@ import type { Booleanish } from '../types'; | ||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onHide?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShown?: (() => any) | undefined; | ||
@@ -81,0 +81,0 @@ onHidden?: (() => any) | undefined; |
@@ -328,4 +328,4 @@ import { BvTriggerableEvent } from '../../utils'; | ||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onHide?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShown?: (() => any) | undefined; | ||
@@ -391,3 +391,6 @@ onHidden?: (() => any) | undefined; | ||
}, {}>, { | ||
default?: ((props: Record<string, never>) => any) | undefined; | ||
default?: ((props: { | ||
hide: () => void; | ||
show: () => void; | ||
}) => any) | undefined; | ||
'button-content'?: ((props: Record<string, never>) => any) | undefined; | ||
@@ -394,0 +397,0 @@ 'toggle-text'?: ((props: Record<string, never>) => any) | undefined; |
@@ -32,7 +32,7 @@ import { type RendererElement } from 'vue'; | ||
}; | ||
noFade: { | ||
show: { | ||
type: import("vue").PropType<Booleanish>; | ||
default: boolean; | ||
}; | ||
show: { | ||
noFade: { | ||
type: import("vue").PropType<Booleanish>; | ||
@@ -220,2 +220,3 @@ default: boolean; | ||
show: () => void; | ||
id: string; | ||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { | ||
@@ -253,7 +254,7 @@ 'update:modelValue': (value: boolean) => void; | ||
}; | ||
noFade: { | ||
show: { | ||
type: import("vue").PropType<Booleanish>; | ||
default: boolean; | ||
}; | ||
show: { | ||
noFade: { | ||
type: import("vue").PropType<Booleanish>; | ||
@@ -440,4 +441,4 @@ default: boolean; | ||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onHide?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShown?: ((value: BvTriggerableEvent) => any) | undefined; | ||
@@ -456,4 +457,4 @@ onHidden?: ((value: BvTriggerableEvent) => any) | undefined; | ||
modelValue: Booleanish; | ||
show: Booleanish; | ||
noFade: Booleanish; | ||
show: Booleanish; | ||
bodyBgVariant: keyof import("../types").BaseColorVariant | null; | ||
@@ -460,0 +461,0 @@ bodyTextVariant: keyof import("../types").BaseColorVariant | null; |
@@ -328,4 +328,4 @@ import { BvTriggerableEvent } from '../../utils'; | ||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onHide?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShown?: (() => any) | undefined; | ||
@@ -391,3 +391,6 @@ onHidden?: (() => any) | undefined; | ||
}, {}>, { | ||
default?: ((props: Record<string, never>) => any) | undefined; | ||
default?: ((props: { | ||
hide: () => void; | ||
show: () => void; | ||
}) => any) | undefined; | ||
'toggle-text'?: ((props: Record<string, never>) => any) | undefined; | ||
@@ -394,0 +397,0 @@ 'button-content'?: ((props: Record<string, never>) => any) | undefined; |
@@ -189,4 +189,4 @@ import { type RendererElement } from 'vue'; | ||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onHide?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShown?: ((value: BvTriggerableEvent) => any) | undefined; | ||
@@ -221,4 +221,12 @@ onHidden?: ((value: BvTriggerableEvent) => any) | undefined; | ||
}, {}>, { | ||
default?: ((props: Record<string, never>) => any) | undefined; | ||
title?: ((props: Record<string, never>) => any) | undefined; | ||
default?: ((props: { | ||
visible: boolean; | ||
placement: "top" | "bottom" | "start" | "end"; | ||
hide: (trigger?: string | undefined) => void; | ||
}) => any) | undefined; | ||
title?: ((props: { | ||
visible: boolean; | ||
placement: "top" | "bottom" | "start" | "end"; | ||
hide: (trigger?: string | undefined) => void; | ||
}) => any) | undefined; | ||
header?: ((props: { | ||
@@ -225,0 +233,0 @@ visible: boolean; |
@@ -19,7 +19,7 @@ import type { Booleanish, SpinnerType } from '../../types'; | ||
}; | ||
noFade: { | ||
show: { | ||
type: import("vue").PropType<Booleanish>; | ||
default: boolean; | ||
}; | ||
show: { | ||
noFade: { | ||
type: import("vue").PropType<Booleanish>; | ||
@@ -93,7 +93,7 @@ default: boolean; | ||
}; | ||
noFade: { | ||
show: { | ||
type: import("vue").PropType<Booleanish>; | ||
default: boolean; | ||
}; | ||
show: { | ||
noFade: { | ||
type: import("vue").PropType<Booleanish>; | ||
@@ -155,4 +155,4 @@ default: boolean; | ||
blur: string | null; | ||
show: Booleanish; | ||
noFade: Booleanish; | ||
show: Booleanish; | ||
zIndex: string | number; | ||
@@ -159,0 +159,0 @@ rounded: string | boolean; |
@@ -36,2 +36,6 @@ import { type Placement as OriginalPlacement, type Strategy } from '@floating-ui/vue'; | ||
}; | ||
hide: { | ||
type: import("vue").PropType<Booleanish>; | ||
default: boolean; | ||
}; | ||
container: { | ||
@@ -115,6 +119,2 @@ type: import("vue").PropType<string | HTMLElement | ComponentPublicInstance<HTMLElement>>; | ||
}; | ||
hide: { | ||
type: import("vue").PropType<Booleanish>; | ||
default: boolean; | ||
}; | ||
realtime: { | ||
@@ -175,2 +175,6 @@ type: import("vue").PropType<Booleanish>; | ||
}; | ||
hide: { | ||
type: import("vue").PropType<Booleanish>; | ||
default: boolean; | ||
}; | ||
container: { | ||
@@ -254,6 +258,2 @@ type: import("vue").PropType<string | HTMLElement | ComponentPublicInstance<HTMLElement>>; | ||
}; | ||
hide: { | ||
type: import("vue").PropType<Booleanish>; | ||
default: boolean; | ||
}; | ||
realtime: { | ||
@@ -273,4 +273,4 @@ type: import("vue").PropType<Booleanish>; | ||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onHide?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShow?: ((value: BvTriggerableEvent) => any) | undefined; | ||
onShown?: ((value: BvTriggerableEvent) => any) | undefined; | ||
@@ -290,2 +290,3 @@ onHidden?: ((value: BvTriggerableEvent) => any) | undefined; | ||
modelValue: Booleanish; | ||
hide: Booleanish; | ||
container: string | HTMLElement | ComponentPublicInstance<HTMLElement>; | ||
@@ -324,3 +325,2 @@ reference: string | HTMLElement | HTMLSpanElement | ComponentPublicInstance<HTMLElement> | (() => HTMLElement | VNode<import("vue").RendererNode, import("vue").RendererElement, { | ||
noAutoClose: Booleanish; | ||
hide: Booleanish; | ||
realtime: Booleanish; | ||
@@ -327,0 +327,0 @@ inline: Booleanish; |
@@ -1,1 +0,1 @@ | ||
export { useBreadcrumb, useColorMode } from '..'; | ||
export { useBreadcrumb, useColorMode, useModal, useModalController } from '..'; |
@@ -11,2 +11,4 @@ export { default as useAlignment } from './useAlignment'; | ||
export { default as useId } from './useId'; | ||
export { default as useModal } from './useModal'; | ||
export { default as useModalController } from './useModalController'; | ||
export { default as useModalManager } from './useModalManager'; | ||
@@ -13,0 +15,0 @@ export { default as useSafeScrollLock } from './useSafeScrollLock'; |
@@ -1,3 +0,13 @@ | ||
import { type Ref } from 'vue'; | ||
import { type ComponentInternalInstance, type Ref } from 'vue'; | ||
export declare const useSharedModalStack: () => { | ||
registry: Ref<ComponentInternalInstance[]>; | ||
stack: Ref<ComponentInternalInstance[]>; | ||
last: import("vue").ComputedRef<ComponentInternalInstance>; | ||
count: import("vue").ComputedRef<number>; | ||
push: (modal: ComponentInternalInstance) => number; | ||
pop: () => ComponentInternalInstance | undefined; | ||
remove: (modal: ComponentInternalInstance) => void; | ||
find: (id: string) => ComponentInternalInstance | null; | ||
}; | ||
declare const _default: (modalOpen: Ref<boolean>) => void; | ||
export default _default; |
@@ -1,2 +0,2 @@ | ||
export type { AlignmentCommon, AlignmentContent, AlignmentHorizontal, AlignmentJustifyContent, AlignmentTextHorizontal, AlignmentVertical, BPopoverDelayObject, BreadcrumbItem, Breakpoint, ButtonType, ButtonVariant, ColorVariant, ContainerPosition, InputType, LinkTarget, Position, Size, SpinnerType, TableField, TableItem, TextColorVariant, TransitionMode, VerticalAlign, } from '..'; | ||
export type { AlignmentCommon, AlignmentContent, AlignmentHorizontal, AlignmentJustifyContent, AlignmentTextHorizontal, AlignmentVertical, BModalController, BPopoverDelayObject, BreadcrumbItem, Breakpoint, ButtonType, ButtonVariant, ColorVariant, ContainerPosition, InputType, LinkTarget, Position, Size, SpinnerType, TableField, TableItem, TextColorVariant, TransitionMode, VerticalAlign, } from '..'; | ||
export type { BodyProp } from '../../components/BToast/plugin'; |
@@ -9,2 +9,3 @@ export type { AlignmentCommon } from './AlignmentCommon'; | ||
export type { AriaInvalid } from './AriaInvalid'; | ||
export type { BModalController } from './BModalController'; | ||
export type { BPopoverDelayObject } from './BPopoverDelayObject'; | ||
@@ -11,0 +12,0 @@ export type { BPopoverPlacement } from './BPopoverPlacement'; |
@@ -5,3 +5,3 @@ { | ||
"description": "BootstrapVueNext is an early and lovely component library for Vue 3 & Nuxt 3 based on Bootstrap 5 and Typescript.", | ||
"version": "0.12.2", | ||
"version": "0.12.3", | ||
"license": "MIT", | ||
@@ -8,0 +8,0 @@ "main": "./dist/bootstrap-vue-next.umd.js", |
@@ -1,1 +0,1 @@ | ||
export {useBreadcrumb, useColorMode} from '..' | ||
export {useBreadcrumb, useColorMode, useModal, useModalController} from '..' |
@@ -17,2 +17,4 @@ export {default as useAlignment} from './useAlignment' | ||
export {default as useId} from './useId' | ||
export {default as useModal} from './useModal' | ||
export {default as useModalController} from './useModalController' | ||
export {default as useModalManager} from './useModalManager' | ||
@@ -19,0 +21,0 @@ export {default as useSafeScrollLock} from './useSafeScrollLock' |
@@ -0,14 +1,24 @@ | ||
import {createSharedComposable, getSSRHandler, tryOnScopeDispose, unrefElement} from '@vueuse/core' | ||
import { | ||
createSharedComposable, | ||
getSSRHandler, | ||
tryOnScopeDispose, | ||
unrefElement, | ||
useCounter, | ||
} from '@vueuse/core' | ||
import {type Ref, watch} from 'vue' | ||
type ComponentInternalInstance, | ||
computed, | ||
getCurrentInstance, | ||
ref, | ||
type Ref, | ||
watch, | ||
} from 'vue' | ||
const MODAL_OPEN_CLASS_NAME = 'modal-open' | ||
const useSharedModalCounter = createSharedComposable(() => { | ||
const {count, inc, dec} = useCounter() | ||
export const useSharedModalStack = createSharedComposable(() => { | ||
const registry: Ref<ComponentInternalInstance[]> = ref([]) | ||
const stack: Ref<ComponentInternalInstance[]> = ref([]) | ||
const count = computed(() => stack.value.length) | ||
const last = computed(() => stack.value[stack.value.length - 1]) | ||
const push = (modal: ComponentInternalInstance) => stack.value.push(modal) | ||
const pop = () => stack.value.pop() | ||
const remove = (modal: ComponentInternalInstance): void => { | ||
stack.value = stack.value.filter((item) => item.uid !== modal.uid) | ||
} | ||
const find = (id: string) => registry.value.find((modal) => modal.exposed!.id === id) || null | ||
@@ -37,8 +47,16 @@ const updateHTMLAttrs = getSSRHandler('updateHTMLAttrs', (selector, attribute, value) => { | ||
return {inc, dec} | ||
return {registry, stack, last, count, push, pop, remove, find} | ||
}) | ||
export default (modalOpen: Ref<boolean>): void => { | ||
const {inc, dec} = useSharedModalCounter() | ||
const {registry, push, remove, stack} = useSharedModalStack() | ||
const currentModal = getCurrentInstance() | ||
if (!currentModal || currentModal.type.__name !== 'BModal') { | ||
throw new Error('useModalManager must only use in BModal component') | ||
} | ||
registry.value.push(currentModal) | ||
watch( | ||
@@ -48,5 +66,5 @@ modalOpen, | ||
if (newValue) { | ||
inc() | ||
push(currentModal) | ||
} else if (oldValue && !newValue) { | ||
dec() | ||
remove(currentModal) | ||
} | ||
@@ -53,0 +71,0 @@ }, |
@@ -68,2 +68,3 @@ import {computed, ref, type Ref} from 'vue' | ||
flags: Record<string, Ref<boolean>>, | ||
usesProvider: Ref<boolean>, | ||
sortBy?: Ref<string | undefined> | ||
@@ -73,7 +74,18 @@ ): TableItem[] => { | ||
if ('isFilterableTable' in flags && flags.isFilterableTable.value === true && props.filter) { | ||
mappedItems = filterItems(mappedItems, props.filter, props.filterable) | ||
const isFilterableTable = | ||
'isFilterableTable' in flags && flags.isFilterableTable.value === true && props.filter | ||
if ( | ||
(isFilterableTable && !usesProvider.value) || | ||
(isFilterableTable && usesProvider.value && flags.noProviderFilteringBoolean.value) | ||
) { | ||
mappedItems = filterItems(mappedItems, props.filter as string, props.filterable) | ||
} | ||
if ('isSortable' in flags && flags.isSortable.value === true) { | ||
const isSortable = 'isSortable' in flags && flags.isSortable.value === true | ||
if ( | ||
(isSortable && !usesProvider.value) || | ||
(isSortable && usesProvider.value && flags.noProviderSortingBoolean.value) | ||
) { | ||
mappedItems = sortItems( | ||
@@ -101,10 +113,7 @@ props.fields, | ||
const computedItems = computed<TableItem[]>(() => { | ||
const items = usesProvider.value | ||
const items = flags.requireItemsMapping.value | ||
? mapItems(internalItems, tableProps, flags, usesProvider, sortBy) | ||
: usesProvider.value | ||
? internalItems.value | ||
: flags.requireItemsMapping.value | ||
? mapItems(internalItems, tableProps, flags, sortBy) | ||
: tableProps.items ?? [] | ||
if (usesProvider.value && !flags.noProviderPagingBoolean.value) { | ||
return items | ||
} | ||
@@ -124,5 +133,9 @@ if (tableProps.perPage !== undefined) { | ||
const computedDisplayItems = computed<TableItem[]>(() => { | ||
if (tableProps.perPage === undefined) { | ||
if ( | ||
tableProps.perPage === undefined || | ||
(usesProvider.value && !flags.noProviderPagingBoolean.value) | ||
) { | ||
return computedItems.value | ||
} | ||
return computedItems.value.slice(displayStartEndIdx.value[0], displayStartEndIdx.value[1]) | ||
@@ -129,0 +142,0 @@ }) |
@@ -8,2 +8,3 @@ export type { | ||
AlignmentVertical, | ||
BModalController, | ||
BPopoverDelayObject, | ||
@@ -10,0 +11,0 @@ BreadcrumbItem, |
@@ -9,2 +9,3 @@ export type {AlignmentCommon} from './AlignmentCommon' | ||
export type {AriaInvalid} from './AriaInvalid' | ||
export type {BModalController} from './BModalController' | ||
export type {BPopoverDelayObject} from './BPopoverDelayObject' | ||
@@ -11,0 +12,0 @@ export type {BPopoverPlacement} from './BPopoverPlacement' |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
3934147
454
30492