bootstrap-vue-next
Version:
BootstrapVueNext is an early and lovely component library for Vue 3 & Nuxt 3 based on Bootstrap 5 and Typescript.
1 lines • 20 kB
Source Map (JSON)
{"version":3,"file":"index-DkI9t_-4.mjs","sources":["../src/types/BootstrapVueOptions.ts","../src/resolvers/index.ts"],"sourcesContent":["import type * as ExportedComponents from '../components'\nimport type * as ExportedDirectives from '../directives'\nimport type * as ExportedComposables from '../composables'\nimport type * as ComponentProps from './ComponentProps'\n\ntype AllComponentsTyped = typeof ExportedComponents\n\nexport type ComponentType = keyof AllComponentsTyped\nexport type DirectiveType = keyof typeof ExportedDirectives\nexport type ComposableType = keyof typeof ExportedComposables\n\nexport type BvnComponents = {\n [K in ComponentType]: AllComponentsTyped[K]\n}\n\nexport const componentsWithExternalPath = {\n BAccordion: '/components/BAccordion',\n BAccordionItem: '/components/BAccordion',\n BAlert: '/components/BAlert',\n BAvatar: '/components/BAvatar',\n BAvatarGroup: '/components/BAvatar',\n BBadge: '/components/BBadge',\n BBreadcrumb: '/components/BBreadcrumb',\n BBreadcrumbItem: '/components/BBreadcrumb',\n BButton: '/components/BButton',\n BButtonGroup: '/components/BButton',\n BButtonToolbar: '/components/BButton',\n BCloseButton: '/components/BButton',\n BCard: '/components/BCard',\n BCardBody: '/components/BCard',\n BCardFooter: '/components/BCard',\n BCardGroup: '/components/BCard',\n BCardHeader: '/components/BCard',\n BCardImg: '/components/BCard',\n BCardSubtitle: '/components/BCard',\n BCardText: '/components/BCard',\n BCardTitle: '/components/BCard',\n BCarousel: '/components/BCarousel',\n BCarouselSlide: '/components/BCarousel',\n BCol: '/components/BContainer',\n BCollapse: '/components/BCollapse',\n BContainer: '/components/BContainer',\n BDropdown: '/components/BDropdown',\n BDropdownDivider: '/components/BDropdown',\n BDropdownForm: '/components/BDropdown',\n BDropdownGroup: '/components/BDropdown',\n BDropdownHeader: '/components/BDropdown',\n BDropdownItem: '/components/BDropdown',\n BDropdownItemButton: '/components/BDropdown',\n BDropdownText: '/components/BDropdown',\n BForm: '/components/BForm',\n BFormCheckbox: '/components/BFormCheckbox',\n BFormCheckboxGroup: '/components/BFormCheckbox',\n BFormDatalist: '/components/BForm',\n BFormFile: '/components/BFormFile',\n BFormFloatingLabel: '/components/BForm',\n BFormGroup: '/components/BFormGroup',\n BFormInput: '/components/BFormInput',\n BFormInvalidFeedback: '/components/BForm',\n BFormRadio: '/components/BFormRadio',\n BFormRadioGroup: '/components/BFormRadio',\n BFormRow: '/components/BForm',\n BFormSelect: '/components/BFormSelect',\n BFormSelectOption: '/components/BFormSelect',\n BFormSelectOptionGroup: '/components/BFormSelect',\n BFormSpinbutton: '/components/BFormSpinbutton',\n BFormTag: '/components/BFormTags',\n BFormTags: '/components/BFormTags',\n BFormText: '/components/BForm',\n BFormTextarea: '/components/BFormTextarea',\n BFormValidFeedback: '/components/BForm',\n BImg: '/components/BImg',\n BInput: '/components/BFormInput',\n BInputGroup: '/components/BInputGroup',\n BInputGroupText: '/components/BInputGroup',\n BListGroup: '/components/BListGroup',\n BListGroupItem: '/components/BListGroup',\n BModal: '/components/BModal',\n BModalOrchestrator: '/components/BModal',\n BNav: '/components/BNav',\n BNavForm: '/components/BNav',\n BNavItem: '/components/BNav',\n BNavItemDropdown: '/components/BNav',\n BNavText: '/components/BNav',\n BNavbar: '/components/BNavbar',\n BNavbarBrand: '/components/BNavbar',\n BNavbarNav: '/components/BNavbar',\n BNavbarToggle: '/components/BNavbar',\n BOffcanvas: '/components/BOffcanvas',\n BOverlay: '/components/BOverlay',\n BPagination: '/components/BPagination',\n BPlaceholder: '/components/BPlaceholder',\n BPlaceholderButton: '/components/BPlaceholder',\n BPlaceholderCard: '/components/BPlaceholder',\n BPlaceholderTable: '/components/BPlaceholder',\n BPlaceholderWrapper: '/components/BPlaceholder',\n BPopover: '/components/BPopover',\n BProgress: '/components/BProgress',\n BRow: '/components/BContainer',\n BSpinner: '/components/BSpinner',\n BTab: '/components/BTabs',\n BTabs: '/components/BTabs',\n BToast: '/components/BToast',\n BToastOrchestrator: '/components/BToast',\n BTooltip: '/components/BTooltip',\n BLink: '/components/BLink',\n BProgressBar: '/components/BProgress',\n BTableSimple: '/components/BTable',\n BTableLite: '/components/BTable',\n BTable: '/components/BTable',\n BTbody: '/components/BTable',\n BTd: '/components/BTable',\n BTh: '/components/BTable',\n BThead: '/components/BTable',\n BTfoot: '/components/BTable',\n BTr: '/components/BTable',\n BPopoverOrchestrator: '/components/BPopover',\n} as const satisfies Record<ComponentType, string>\nexport const componentNames = Object.freeze(\n Object.keys(componentsWithExternalPath) as ComponentType[]\n)\n\nexport const directivesWithExternalPath = {\n vBColorMode: '/directives/BColorMode',\n vBModal: '/directives/BModal',\n vBPopover: '/directives/BPopover',\n vBScrollspy: '/directives/BScrollspy',\n vBToggle: '/directives/BToggle',\n vBTooltip: '/directives/BTooltip',\n} as const satisfies Record<DirectiveType, string>\nexport const directiveNames = Object.freeze(\n Object.keys(directivesWithExternalPath) as DirectiveType[]\n)\n\nexport const composablesWithExternalPath = {\n useBreadcrumb: '/composables/useBreadcrumb',\n useColorMode: '/composables/useColorMode',\n useModal: '/composables/useModal',\n useModalController: '/composables/useModalController',\n useScrollspy: '/composables/useScrollspy',\n useToastController: '/composables/useToastController',\n useToggle: '/composables/useToggle',\n usePopoverController: '/composables/usePopoverController',\n} as const satisfies Record<ComposableType, string>\nexport const composableNames = Object.freeze(\n Object.keys(composablesWithExternalPath) as ComposableType[]\n)\n\nexport type ConfigurationOption<T extends string> = Partial<Record<T, boolean>> & {all: boolean}\nexport interface BootstrapVueOptions {\n /**\n * @default true\n */\n breadcrumb?: boolean\n /**\n * @default true\n */\n modalController?: boolean\n /**\n * @default true\n */\n modalManager?: boolean\n /**\n * @default true\n */\n rtl?:\n | boolean\n | {\n /**\n * @default false\n */\n rtlInitial: boolean\n /**\n * @default undefined\n */\n localeInitial: string | undefined\n }\n /**\n * @default true\n */\n toast?: boolean\n components?: Partial<\n BvnComponentProps & {\n /**\n * @hint Globally sets all props with the matching name\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n global: Record<string, any>\n }\n >\n tooltip?: boolean\n popover?: boolean\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype UnmappedComponentProps<BFormSelectOption = any, BTableLite = any, BTable = any> = {\n BLink: ComponentProps.BLinkProps\n BAccordion: ComponentProps.BAccordionProps\n BDropdownDivider: ComponentProps.BDropdownDividerProps\n BDropdownGroup: ComponentProps.BDropdownGroupProps\n BDropdownItem: ComponentProps.BDropdownItemProps\n BDropdownItemButton: ComponentProps.BDropdownItemButtonProps\n BDropdownText: ComponentProps.BDropdownTextProps\n BFormFloatingLabel: ComponentProps.BFormFloatingLabelProps\n BFormRow: ComponentProps.BFormRowProps\n BFormText: ComponentProps.BFormTextProps\n BFormCheckbox: ComponentProps.BFormCheckboxProps\n BFormCheckboxGroup: ComponentProps.BFormCheckboxGroupProps\n BFormDatalist: ComponentProps.BFormDatalistProps\n BFormFile: ComponentProps.BFormFileProps\n BFormInput: ComponentProps.BFormInputProps\n BFormRadio: ComponentProps.BFormRadioProps\n BFormRadioGroup: ComponentProps.BFormRadioGroupProps\n BFormSelect: ComponentProps.BFormSelectProps\n BFormSelectOption: ComponentProps.BFormSelectOptionProps<BFormSelectOption>\n BFormSelectOptionGroup: ComponentProps.BFormSelectOptionGroupProps\n BFormSpinbutton: ComponentProps.BFormSpinbuttonProps\n BFormTag: ComponentProps.BFormTagProps\n BFormTags: ComponentProps.BFormTagsProps\n BFormTextarea: ComponentProps.BFormTextareaProps\n BInputGroup: ComponentProps.BInputGroupProps\n BInputGroupText: ComponentProps.BInputGroupTextProps\n BListGroup: ComponentProps.BListGroupProps\n BListGroupItem: ComponentProps.BListGroupItemProps\n BModalOrchestrator: ComponentProps.BModalOrchestratorProps\n BNav: ComponentProps.BNavProps\n BNavForm: ComponentProps.BNavFormProps\n BNavItem: ComponentProps.BNavItemProps\n BNavText: ComponentProps.BNavTextProps\n BNavbar: ComponentProps.BNavbarProps\n BNavbarBrand: ComponentProps.BNavbarBrandProps\n BNavbarNav: ComponentProps.BNavbarNavProps\n BNavbarToggle: ComponentProps.BNavbarToggleProps\n BOffcanvas: ComponentProps.BOffcanvasProps\n BOverlay: ComponentProps.BOverlayProps\n BPagination: ComponentProps.BPaginationProps\n BPlaceholder: ComponentProps.BPlaceholderProps\n BPlaceholderButton: ComponentProps.BPlaceholderButtonProps\n BPlaceholderCard: ComponentProps.BPlaceholderCardProps\n BPlaceholderTable: ComponentProps.BPlaceholderTableProps\n BPlaceholderWrapper: ComponentProps.BPlaceholderWrapperProps\n BProgress: ComponentProps.BProgressProps\n BTab: ComponentProps.BTabProps\n BTabs: ComponentProps.BTabsProps\n BToastOrchestrator: ComponentProps.BToastOrchestratorProps\n BCollapse: ComponentProps.BCollapseProps\n BContainer: ComponentProps.BContainerProps\n BSpinner: ComponentProps.BSpinnerProps\n BAccordionItem: ComponentProps.BAccordionItemProps\n BAlert: ComponentProps.BAlertProps\n BAvatar: ComponentProps.BAvatarProps\n BAvatarGroup: ComponentProps.BAvatarGroupProps\n BBadge: ComponentProps.BBadgeProps\n BBreadcrumb: ComponentProps.BBreadcrumbProps\n BBreadcrumbItem: ComponentProps.BBreadcrumbItemProps\n BButton: ComponentProps.BButtonProps\n BButtonGroup: ComponentProps.BButtonGroupProps\n BButtonToolbar: ComponentProps.BButtonToolbarProps\n BCloseButton: ComponentProps.BCloseButtonProps\n BCard: ComponentProps.BCardProps\n BCardBody: ComponentProps.BCardBodyProps\n BCardGroup: ComponentProps.BCardGroupProps\n BCardSubtitle: ComponentProps.BCardSubtitleProps\n BCardText: ComponentProps.BCardTextProps\n BCardTitle: ComponentProps.BCardTitleProps\n BCarousel: ComponentProps.BCarouselProps\n BCarouselSlide: ComponentProps.BCarouselSlideProps\n BImg: ComponentProps.BImgProps\n BForm: ComponentProps.BFormProps\n BTableSimple: ComponentProps.BTableSimpleProps\n BTableLite: ComponentProps.BTableLiteProps<BTableLite>\n BTable: ComponentProps.BTableProps<BTable>\n BTr: ComponentProps.BTrProps\n BThead: ComponentProps.BTheadProps\n BTfoot: ComponentProps.BTfootProps\n BTd: ComponentProps.BTdProps\n BTbody: ComponentProps.BTbodyProps\n BTh: ComponentProps.BThProps\n BProgressBar: ComponentProps.BProgressBarProps\n BInputGroupAddon: ComponentProps.BInputGroupAddonProps\n BDropdown: ComponentProps.BDropdownProps\n BToast: ComponentProps.BToastProps\n BPopover: ComponentProps.BPopoverProps\n BTooltip: ComponentProps.BTooltipProps\n BModal: ComponentProps.BModalProps\n BCardFooter: ComponentProps.BCardHeadFootProps\n BCardHeader: ComponentProps.BCardHeadFootProps\n BCardImg: ComponentProps.BCardImgProps\n BCol: ComponentProps.BColProps\n BDropdownForm: never\n BDropdownHeader: never\n BFormInvalidFeedback: ComponentProps.BFormFeedbackSharedProps\n BFormValidFeedback: ComponentProps.BFormFeedbackSharedProps\n BFormGroup: ComponentProps.BFormGroupProps\n BNavItemDropdown: ComponentProps.BDropdownProps\n BRow: ComponentProps.BRowProps\n BInput: ComponentProps.BFormInputProps\n BTooltipOrchestrator: never\n BPopoverOrchestrator: never\n showHide: ComponentProps.ShowHideProps\n}\n\nexport type BvnComponentProps = {\n [K in ComponentType]: UnmappedComponentProps[K]\n}\n\nexport type showHide = ComponentProps.ShowHideProps\n","import type {ComponentResolver} from 'unplugin-vue-components'\nimport {\n componentNames,\n componentsWithExternalPath,\n type ComponentType,\n type ConfigurationOption,\n directiveNames,\n directivesWithExternalPath,\n type DirectiveType,\n} from '../types/BootstrapVueOptions'\n\nconst bvKey = 'bootstrap-vue-next'\n\nconst parseActiveImports = <Type extends string, Base extends ConfigurationOption<Type>>(\n options: Readonly<Base>,\n values: readonly Type[]\n): Type[] => {\n const {all, ...others} = options\n const valuesCopy: Partial<Record<keyof Base, boolean>> = {}\n if (all) {\n values.forEach((el) => {\n valuesCopy[el] = all\n })\n }\n const merge: Record<string, boolean> = {...valuesCopy, ...others}\n return (\n Object.entries(merge)\n // filtering possible invalid keys\n .filter(([name, value]) => !!value && values.includes(name as Type))\n .map(([name]) => name as Type)\n )\n}\n\nconst usedComponents = new Set<string>()\nconst usedDirectives = new Set<string>()\n\n/**\n * Resolver for unplugin-vue-components\n *\n * Contains two hidden properties `__usedComponents` and `__usedDirectives` (both are `Set<string>`)\n * which are used to get the list of used components and directives.. You can use this list of used components.\n * It may not be fully accurate. It can be used to get a list of stuff to trim down, like css\n * @example\n * ```ts\n * const bootstrapVueNextResolver = BootstrapVueNextResolver()\n * console.info(bootstrapVueNextResolver.__usedComponents)\n * console.info(bootstrapVueNextResolver.__usedDirectives)\n *\n * // ... blah blah blah, `plugins: [Components({resolvers: [bootstrapVueNextResolver]})]` ...\n * ```\n */\nexport const BootstrapVueNextResolver = Object.assign(\n ({\n aliases = {},\n directives = true,\n components = true,\n }: Readonly<{\n components?: boolean | ConfigurationOption<ComponentType>\n directives?: boolean | ConfigurationOption<DirectiveType>\n aliases?: Record<string, ComponentType>\n }> = {}): ComponentResolver[] => {\n const selectedComponents = typeof components === 'boolean' ? {all: components} : components\n // <ComponentType, ImportPath>\n const compImports = parseActiveImports(selectedComponents, componentNames).reduce(\n (map, name) => {\n map.set(name, `${bvKey}${componentsWithExternalPath[name]}`)\n return map\n },\n new Map<string, string>()\n )\n\n const selectedDirectives = typeof directives === 'boolean' ? {all: directives} : directives\n // <DirectiveType, ImportPath>\n const dirImports = parseActiveImports(selectedDirectives, directiveNames).reduce(\n (map, directive) => {\n const key = (\n directive.toLowerCase().startsWith('v') ? directive : `v${directive}`\n ) as DirectiveType\n map.set(key, `${bvKey}${directivesWithExternalPath[key]}`)\n return map\n },\n new Map<string, string>()\n )\n\n const resolvers: ComponentResolver[] = [\n {\n type: 'component',\n resolve(name) {\n const destination = compImports.get(name)\n const aliasDestination = compImports.get(aliases[name])\n if (aliasDestination) {\n const val = aliases[name]\n usedComponents.add(val)\n return {\n name: val,\n from: aliasDestination,\n }\n }\n\n if (destination) {\n usedComponents.add(name)\n return {\n name,\n from: destination,\n }\n }\n },\n },\n {\n type: 'directive',\n resolve(name) {\n const prefixedName = `v${name}`\n const destination = dirImports.get(prefixedName)\n if (destination) {\n usedDirectives.add(prefixedName)\n return {\n name: prefixedName,\n from: destination,\n }\n }\n },\n },\n ]\n return resolvers\n },\n {\n __usedComponents: usedComponents,\n __usedDirectives: usedDirectives,\n }\n)\n"],"names":[],"mappings":"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"}