UNPKG

bootstrap-vue

Version:

With more than 85 components, over 45 available plugins, several directives, and 1000+ icons, BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4 component and grid system available for Vue.js v2.6, complete with extens

89 lines (75 loc) 2.96 kB
import Vue from '../vue' import cloneDeep from './clone-deep' import { getRaw } from './get' import memoize from './memoize' import DEFAULTS from './config-defaults' // --- Constants --- const PROP_NAME = '$bvConfig' const VueProto = Vue.prototype // --- Getter methods --- // All methods return a deep clone (immutable) copy of the config // value, to prevent mutation of the user config object. // Get the current user config. For testing purposes only export const getConfig = () => { return VueProto[PROP_NAME] ? VueProto[PROP_NAME].getConfig() : {} } // Method to grab a config value based on a dotted/array notation key export const getConfigValue = key => { return VueProto[PROP_NAME] ? VueProto[PROP_NAME].getConfigValue(key) : cloneDeep(getRaw(DEFAULTS, key)) } // Method to grab a config value for a particular component export const getComponentConfig = (cmpName, key = null) => { // Return the particular config value for key for if specified, // otherwise we return the full config (or an empty object if not found) return key ? getConfigValue(`${cmpName}.${key}`) : getConfigValue(cmpName) || {} } // Convenience method for getting all breakpoint names export const getBreakpoints = () => { return getConfigValue('breakpoints') } // Private function for caching / locking-in breakpoint names const _getBreakpointsCached = memoize(() => { return getBreakpoints() }) // Convenience method for getting all breakpoint names. // Caches the results after first access. export const getBreakpointsCached = () => { return cloneDeep(_getBreakpointsCached()) } // Convenience method for getting breakpoints with // the smallest breakpoint set as ''. // Useful for components that create breakpoint specific props. export const getBreakpointsUp = () => { const breakpoints = getBreakpoints() breakpoints[0] = '' return breakpoints } // Convenience method for getting breakpoints with // the smallest breakpoint set as ''. // Useful for components that create breakpoint specific props. // Caches the results after first access. export const getBreakpointsUpCached = memoize(() => { const breakpoints = getBreakpointsCached() breakpoints[0] = '' return breakpoints }) // Convenience method for getting breakpoints with // the largest breakpoint set as ''. // Useful for components that create breakpoint specific props. export const getBreakpointsDown = () => { const breakpoints = getBreakpoints() breakpoints[breakpoints.length - 1] = '' return breakpoints } // Convenience method for getting breakpoints with // the largest breakpoint set as ''. // Useful for components that create breakpoint specific props. // Caches the results after first access. /* istanbul ignore next: we don't use this method anywhere, yet */ export const getBreakpointsDownCached = () => /* istanbul ignore next */ { const breakpoints = getBreakpointsCached() breakpoints[breakpoints.length - 1] = '' return breakpoints }