bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
1 lines • 15.5 kB
Source Map (JSON)
{"version":3,"file":"BApp-DJWC2mB8.mjs","names":["$attrs","$attrs"],"sources":["../src/utils/positionClasses.ts","../src/components/BApp/BOrchestrator.vue","../src/components/BApp/BOrchestrator.vue","../src/components/BApp/BApp.vue","../src/components/BApp/BApp.vue"],"sourcesContent":["import type {ContainerPosition} from '../types/Alignment'\n\nexport const positionClasses = {\n 'top-start': 'top-0 start-0',\n 'top-center': 'top-0 start-50 translate-middle-x',\n 'top-end': 'top-0 end-0',\n 'middle-start': 'top-50 start-0 translate-middle-y',\n 'middle-center': 'top-50 start-50 translate-middle',\n 'middle-end': 'top-50 end-0 translate-middle-y',\n 'bottom-start': 'bottom-0 start-0',\n 'bottom-center': 'bottom-0 start-50 translate-middle-x',\n 'bottom-end': 'bottom-0 end-0',\n} as const satisfies Record<ContainerPosition, string>\n","<template>\n <ConditionalTeleport :to=\"teleportTo\" :disabled=\"!teleportTo\">\n <div class=\"orchestrator-container\" v-bind=\"$attrs\">\n <div\n v-for=\"(value, key) in ComputedPositionClasses\"\n :key=\"key\"\n :class=\"value.class\"\n :style=\"value.style\"\n >\n <TransitionGroup\n :name=\"\n items?.filter((el) => el.position === key)?.some((el) => el.type === 'toast')\n ? 'b-list'\n : undefined\n \"\n >\n <!-- eslint-disable vue/no-unused-vars -->\n <span\n v-for=\"{\n _self,\n type,\n position,\n slots,\n promise,\n options,\n _component,\n ...val\n } in items?.filter((el) => el.position === key) || []\"\n :key=\"_self\"\n >\n <component\n :is=\"_component\"\n v-bind=\"val\"\n :ref=\"(ref: ComponentPublicInstance) => (promise.value.ref = ref)\"\n initial-animation\n :teleport-disabled=\"true\"\n @hide=\"\n (e: BvTriggerableEvent) => {\n setEventOk(e)\n val.onHide?.(e)\n if (e.defaultPrevented) {\n return\n }\n promise.stop?.()\n if (options?.resolveOnHide) {\n promise.resolve(e)\n }\n }\n \"\n @hidden=\"\n (e: BvTriggerableEvent) => {\n setEventOk(e)\n val.onHidden?.(e)\n if (e.defaultPrevented) {\n return\n }\n if (!options?.resolveOnHide) {\n promise.resolve(e)\n }\n if (!options?.keep) {\n promise.value.destroy?.()\n }\n }\n \"\n >\n <template v-for=\"(comp, slot) in slots\" #[slot]=\"scope\" :key=\"slot\">\n <component :is=\"comp\" v-bind=\"scope\" />\n </template>\n </component>\n </span>\n </TransitionGroup>\n </div>\n </div>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {type ComponentPublicInstance, computed, inject, watch} from 'vue'\nimport {orchestratorRegistryKey} from '../../utils/keys'\nimport {positionClasses} from '../../utils/positionClasses'\nimport type {BvTriggerableEvent} from '../../utils'\nimport type {BOrchestratorProps} from '../../types/ComponentProps'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\n\nfunction setEventOk(event: BvTriggerableEvent): void {\n event.ok = event.trigger === 'ok' ? true : event.trigger === 'cancel' ? false : null\n}\n\nconst props = withDefaults(defineProps<BOrchestratorProps>(), {\n noPopovers: false,\n noToasts: false,\n noModals: false,\n appendToast: false,\n filter: () => true,\n})\n\nconst orchestratorRegistry = inject(orchestratorRegistryKey, null)\n\nif (orchestratorRegistry) {\n if (!orchestratorRegistry._isOrchestratorInstalled.value) {\n orchestratorRegistry._isOrchestratorInstalled.value = true\n }\n} else {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n '[BOrchestrator] The orchestrator registry not found. Please use BApp, useRegistry or provide the plugin.'\n )\n }\n}\n\nwatch(\n () => props.appendToast,\n (value) => {\n if (orchestratorRegistry && value !== undefined) {\n orchestratorRegistry._isToastAppend.value = value\n }\n },\n {immediate: true}\n)\n\nconst ComputedPositionClasses = computed(() => {\n const positionsActive = items.value?.reduce(\n (acc, item) => {\n if (item.position) {\n acc[item.position] = true\n }\n return acc\n },\n {} as Record<string, boolean>\n )\n const classes: Record<string, {class: string; style: string}> = {}\n for (const position in positionClasses) {\n if (positionsActive?.[position]) {\n classes[position] = {\n class: `${\n positionClasses[position as keyof typeof positionClasses]\n } toast-container position-fixed p-3`,\n style:\n 'width: calc(var(--bs-toast-max-width, 350px) + var(--bs-toast-padding-x, 1rem) * 2)',\n }\n }\n }\n if (positionsActive?.['modal']) {\n classes['modal'] = {\n class: '',\n style: '',\n }\n }\n if (positionsActive?.['popover']) {\n classes['popover'] = {\n class: '',\n style: '',\n }\n }\n return classes\n})\n\nconst items = computed(() => {\n const store = orchestratorRegistry?.store.value ?? []\n return store\n .filter((el) => !props.noPopovers || el.type !== 'popover')\n .filter((el) => !props.noToasts || el.type !== 'toast')\n .filter((el) => !props.noModals || el.type !== 'modal')\n .filter(props.filter)\n})\n</script>\n","<template>\n <ConditionalTeleport :to=\"teleportTo\" :disabled=\"!teleportTo\">\n <div class=\"orchestrator-container\" v-bind=\"$attrs\">\n <div\n v-for=\"(value, key) in ComputedPositionClasses\"\n :key=\"key\"\n :class=\"value.class\"\n :style=\"value.style\"\n >\n <TransitionGroup\n :name=\"\n items?.filter((el) => el.position === key)?.some((el) => el.type === 'toast')\n ? 'b-list'\n : undefined\n \"\n >\n <!-- eslint-disable vue/no-unused-vars -->\n <span\n v-for=\"{\n _self,\n type,\n position,\n slots,\n promise,\n options,\n _component,\n ...val\n } in items?.filter((el) => el.position === key) || []\"\n :key=\"_self\"\n >\n <component\n :is=\"_component\"\n v-bind=\"val\"\n :ref=\"(ref: ComponentPublicInstance) => (promise.value.ref = ref)\"\n initial-animation\n :teleport-disabled=\"true\"\n @hide=\"\n (e: BvTriggerableEvent) => {\n setEventOk(e)\n val.onHide?.(e)\n if (e.defaultPrevented) {\n return\n }\n promise.stop?.()\n if (options?.resolveOnHide) {\n promise.resolve(e)\n }\n }\n \"\n @hidden=\"\n (e: BvTriggerableEvent) => {\n setEventOk(e)\n val.onHidden?.(e)\n if (e.defaultPrevented) {\n return\n }\n if (!options?.resolveOnHide) {\n promise.resolve(e)\n }\n if (!options?.keep) {\n promise.value.destroy?.()\n }\n }\n \"\n >\n <template v-for=\"(comp, slot) in slots\" #[slot]=\"scope\" :key=\"slot\">\n <component :is=\"comp\" v-bind=\"scope\" />\n </template>\n </component>\n </span>\n </TransitionGroup>\n </div>\n </div>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {type ComponentPublicInstance, computed, inject, watch} from 'vue'\nimport {orchestratorRegistryKey} from '../../utils/keys'\nimport {positionClasses} from '../../utils/positionClasses'\nimport type {BvTriggerableEvent} from '../../utils'\nimport type {BOrchestratorProps} from '../../types/ComponentProps'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\n\nfunction setEventOk(event: BvTriggerableEvent): void {\n event.ok = event.trigger === 'ok' ? true : event.trigger === 'cancel' ? false : null\n}\n\nconst props = withDefaults(defineProps<BOrchestratorProps>(), {\n noPopovers: false,\n noToasts: false,\n noModals: false,\n appendToast: false,\n filter: () => true,\n})\n\nconst orchestratorRegistry = inject(orchestratorRegistryKey, null)\n\nif (orchestratorRegistry) {\n if (!orchestratorRegistry._isOrchestratorInstalled.value) {\n orchestratorRegistry._isOrchestratorInstalled.value = true\n }\n} else {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n '[BOrchestrator] The orchestrator registry not found. Please use BApp, useRegistry or provide the plugin.'\n )\n }\n}\n\nwatch(\n () => props.appendToast,\n (value) => {\n if (orchestratorRegistry && value !== undefined) {\n orchestratorRegistry._isToastAppend.value = value\n }\n },\n {immediate: true}\n)\n\nconst ComputedPositionClasses = computed(() => {\n const positionsActive = items.value?.reduce(\n (acc, item) => {\n if (item.position) {\n acc[item.position] = true\n }\n return acc\n },\n {} as Record<string, boolean>\n )\n const classes: Record<string, {class: string; style: string}> = {}\n for (const position in positionClasses) {\n if (positionsActive?.[position]) {\n classes[position] = {\n class: `${\n positionClasses[position as keyof typeof positionClasses]\n } toast-container position-fixed p-3`,\n style:\n 'width: calc(var(--bs-toast-max-width, 350px) + var(--bs-toast-padding-x, 1rem) * 2)',\n }\n }\n }\n if (positionsActive?.['modal']) {\n classes['modal'] = {\n class: '',\n style: '',\n }\n }\n if (positionsActive?.['popover']) {\n classes['popover'] = {\n class: '',\n style: '',\n }\n }\n return classes\n})\n\nconst items = computed(() => {\n const store = orchestratorRegistry?.store.value ?? []\n return store\n .filter((el) => !props.noPopovers || el.type !== 'popover')\n .filter((el) => !props.noToasts || el.type !== 'toast')\n .filter((el) => !props.noModals || el.type !== 'modal')\n .filter(props.filter)\n})\n</script>\n","<template>\n <BOrchestrator v-if=\"!noOrchestrator\" :append-toast=\"appendToast\" :teleport-to=\"teleportTo\" />\n <slot v-bind=\"$attrs\" />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BAppProps} from '../../types/ComponentProps'\nimport BOrchestrator from './BOrchestrator.vue'\nimport {useProvideDefaults} from '../../composables/useProvideDefaults'\nimport {useRegistry} from '../../composables/useRegistry'\nimport {useOrchestratorRegistry} from '../../composables/orchestratorShared'\nimport {toRef} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<BAppProps>(), {\n appendToast: false,\n teleportTo: undefined,\n defaults: undefined,\n mergeDefaults: false,\n noOrchestrator: false,\n rtl: false,\n})\n\nuseProvideDefaults(\n toRef(() => props.defaults),\n props.mergeDefaults\n)\nuseRegistry(props.rtl)\nif (!props.noOrchestrator) {\n useOrchestratorRegistry()\n}\n</script>\n","<template>\n <BOrchestrator v-if=\"!noOrchestrator\" :append-toast=\"appendToast\" :teleport-to=\"teleportTo\" />\n <slot v-bind=\"$attrs\" />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BAppProps} from '../../types/ComponentProps'\nimport BOrchestrator from './BOrchestrator.vue'\nimport {useProvideDefaults} from '../../composables/useProvideDefaults'\nimport {useRegistry} from '../../composables/useRegistry'\nimport {useOrchestratorRegistry} from '../../composables/orchestratorShared'\nimport {toRef} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<BAppProps>(), {\n appendToast: false,\n teleportTo: undefined,\n defaults: undefined,\n mergeDefaults: false,\n noOrchestrator: false,\n rtl: false,\n})\n\nuseProvideDefaults(\n toRef(() => props.defaults),\n props.mergeDefaults\n)\nuseRegistry(props.rtl)\nif (!props.noOrchestrator) {\n useOrchestratorRegistry()\n}\n</script>\n"],"mappings":"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"}