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

70 lines (57 loc) 3.07 kB
import { Vue } from '../vue'; import { DEFAULT_BREAKPOINT, PROP_NAME } from '../constants/config'; import { cloneDeep } from './clone-deep'; import { memoize } from './memoize'; // --- Constants --- var 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 config export var getConfig = function getConfig() { var bvConfig = VueProto[PROP_NAME]; return bvConfig ? bvConfig.getConfig() : {}; }; // Method to grab a config value based on a dotted/array notation key export var getConfigValue = function getConfigValue(key) { var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; var bvConfig = VueProto[PROP_NAME]; return bvConfig ? bvConfig.getConfigValue(key, defaultValue) : cloneDeep(defaultValue); }; // Method to grab a config value for a particular component export var getComponentConfig = function getComponentConfig(key) { var propKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; // Return the particular config value for key if specified, // otherwise we return the full config (or an empty object if not found) return propKey ? getConfigValue("".concat(key, ".").concat(propKey), defaultValue) : getConfigValue(key, {}); }; // Get all breakpoint names export var getBreakpoints = function getBreakpoints() { return getConfigValue('breakpoints', DEFAULT_BREAKPOINT); }; // Private method for caching breakpoint names var _getBreakpointsCached = memoize(function () { return getBreakpoints(); }); // Get all breakpoint names (cached) export var getBreakpointsCached = function getBreakpointsCached() { return cloneDeep(_getBreakpointsCached()); }; // Get breakpoints with the smallest breakpoint set as '' // Useful for components that create breakpoint specific props export var getBreakpointsUp = function getBreakpointsUp() { var breakpoints = getBreakpoints(); breakpoints[0] = ''; return breakpoints; }; // Get breakpoints with the smallest breakpoint set as '' (cached) // Useful for components that create breakpoint specific props export var getBreakpointsUpCached = memoize(function () { var breakpoints = getBreakpointsCached(); breakpoints[0] = ''; return breakpoints; }); // Get breakpoints with the largest breakpoint set as '' export var getBreakpointsDown = function getBreakpointsDown() { var breakpoints = getBreakpoints(); breakpoints[breakpoints.length - 1] = ''; return breakpoints; }; // Get breakpoints with the largest breakpoint set as '' (cached) // Useful for components that create breakpoint specific props /* istanbul ignore next: we don't use this method anywhere, yet */ export var getBreakpointsDownCached = function getBreakpointsDownCached() { var breakpoints = getBreakpointsCached(); breakpoints[breakpoints.length - 1] = ''; return breakpoints; };