UNPKG

bootstrap-view

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

1,429 lines (1,335 loc) 2.22 MB
/*! * BootstrapVue 2.24.0 * * @link https://bootstrap-vue.org * @source https://github.com/bootstrap-vue/bootstrap-vue * @copyright (c) 2016-2025 BootstrapVue * @license MIT * https://github.com/bootstrap-vue/bootstrap-vue/blob/master/LICENSE */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var Vue = require('vue'); var vueFunctionalDataMerge = require('vue-functional-data-merge'); var Popper = require('popper.js'); var portalVue = require('portal-vue'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var Vue__default = /*#__PURE__*/_interopDefaultLegacy(Vue); var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper); function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _get() { return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); } function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } function _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]"); } catch (n) { return "function" == typeof t; } } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); } function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } function _possibleConstructorReturn(t, e) { if (e && ("object" == typeof e || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));); return t; } function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function (t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); } var _excluded = ["attrs", "props"]; // --- Constants --- var COMPONENT_UID_KEY = '_uid'; var isVue3 = Vue__default["default"].version.startsWith('3'); var REF_FOR_KEY = isVue3 ? 'ref_for' : 'refInFor'; var ALLOWED_FIELDS_IN_DATA = ['class', 'staticClass', 'style', 'attrs', 'props', 'domProps', 'on', 'nativeOn', 'directives', 'scopedSlots', 'slot', 'key', 'ref', 'refInFor']; var extend = Vue__default["default"].extend.bind(Vue__default["default"]); if (isVue3) { var originalExtend = Vue__default["default"].extend; var KNOWN_COMPONENTS = ['router-link', 'transition', 'transition-group']; var originalVModelDynamicCreated = Vue__default["default"].vModelDynamic.created; var originalVModelDynamicBeforeUpdate = Vue__default["default"].vModelDynamic.beforeUpdate; // See https://github.com/vuejs/vue-next/pull/4121 for details Vue__default["default"].vModelDynamic.created = function (el, binding, vnode) { originalVModelDynamicCreated.call(this, el, binding, vnode); if (!el._assign) { el._assign = function () {}; } }; Vue__default["default"].vModelDynamic.beforeUpdate = function (el, binding, vnode) { originalVModelDynamicBeforeUpdate.call(this, el, binding, vnode); if (!el._assign) { el._assign = function () {}; } }; extend = function patchedBootstrapVueExtend(definition) { if (_typeof(definition) === 'object' && definition.render && !definition.__alreadyPatched) { var originalRender = definition.render; definition.__alreadyPatched = true; definition.render = function (h) { var patchedH = function patchedH(tag, dataObjOrChildren, rawSlots) { var slots = rawSlots === undefined ? [] : [Array.isArray(rawSlots) ? rawSlots.filter(Boolean) : rawSlots]; var isTag = typeof tag === 'string' && !KNOWN_COMPONENTS.includes(tag); var isSecondArgumentDataObject = dataObjOrChildren && _typeof(dataObjOrChildren) === 'object' && !Array.isArray(dataObjOrChildren); if (!isSecondArgumentDataObject) { return h.apply(void 0, [tag, dataObjOrChildren].concat(slots)); } var attrs = dataObjOrChildren.attrs, props = dataObjOrChildren.props, restData = _objectWithoutProperties(dataObjOrChildren, _excluded); var normalizedData = _objectSpread2(_objectSpread2({}, restData), {}, { attrs: attrs, props: isTag ? {} : props }); if (tag === 'router-link' && !normalizedData.slots && !normalizedData.scopedSlots) { // terrible workaround to fix router-link rendering with compat vue-router normalizedData.scopedSlots = { $hasNormal: function $hasNormal() {} }; } return h.apply(void 0, [tag, normalizedData].concat(slots)); }; if (definition.functional) { var _ctx$children, _ctx$children$default; var ctx = arguments[1]; var patchedCtx = _objectSpread2({}, ctx); patchedCtx.data = { attrs: _objectSpread2({}, ctx.data.attrs || {}), props: _objectSpread2({}, ctx.data.props || {}) }; Object.keys(ctx.data || {}).forEach(function (key) { if (ALLOWED_FIELDS_IN_DATA.includes(key)) { patchedCtx.data[key] = ctx.data[key]; } else if (key in ctx.props) { patchedCtx.data.props[key] = ctx.data[key]; } else if (!key.startsWith('on')) { patchedCtx.data.attrs[key] = ctx.data[key]; } }); var IGNORED_CHILDREN_KEYS = ['_ctx']; var children = ((_ctx$children = ctx.children) === null || _ctx$children === void 0 || (_ctx$children$default = _ctx$children.default) === null || _ctx$children$default === void 0 ? void 0 : _ctx$children$default.call(_ctx$children)) || ctx.children; if (children && Object.keys(patchedCtx.children).filter(function (k) { return !IGNORED_CHILDREN_KEYS.includes(k); }).length === 0) { delete patchedCtx.children; } else { patchedCtx.children = children; } patchedCtx.data.on = ctx.listeners; return originalRender.call(this, patchedH, patchedCtx); } return originalRender.call(this, patchedH); }; } return originalExtend.call(this, definition); }.bind(Vue__default["default"]); } var nextTick = Vue__default["default"].nextTick; var HAS_WINDOW_SUPPORT = typeof window !== 'undefined'; var HAS_DOCUMENT_SUPPORT = typeof document !== 'undefined'; var HAS_NAVIGATOR_SUPPORT = typeof navigator !== 'undefined'; var HAS_PROMISE_SUPPORT = typeof Promise !== 'undefined'; /* istanbul ignore next: JSDOM always returns false */ var HAS_MUTATION_OBSERVER_SUPPORT = typeof MutationObserver !== 'undefined' || typeof WebKitMutationObserver !== 'undefined' || typeof MozMutationObserver !== 'undefined'; var IS_BROWSER = HAS_WINDOW_SUPPORT && HAS_DOCUMENT_SUPPORT && HAS_NAVIGATOR_SUPPORT; var WINDOW = HAS_WINDOW_SUPPORT ? window : {}; var DOCUMENT = HAS_DOCUMENT_SUPPORT ? document : {}; var NAVIGATOR = HAS_NAVIGATOR_SUPPORT ? navigator : {}; var USER_AGENT = (NAVIGATOR.userAgent || '').toLowerCase(); var IS_JSDOM = USER_AGENT.indexOf('jsdom') > 0; /msie|trident/.test(USER_AGENT); // Determine if the browser supports the option passive for events var HAS_PASSIVE_EVENT_SUPPORT = function () { var passiveEventSupported = false; if (IS_BROWSER) { try { var options = { // This function will be called when the browser // attempts to access the passive property get passive() { /* istanbul ignore next: will never be called in JSDOM */ passiveEventSupported = true; } }; WINDOW.addEventListener('test', options, options); WINDOW.removeEventListener('test', options, options); } catch (_unused) { /* istanbul ignore next: will never be called in JSDOM */ passiveEventSupported = false; } } return passiveEventSupported; }(); var HAS_TOUCH_SUPPORT = IS_BROWSER && ('ontouchstart' in DOCUMENT.documentElement || NAVIGATOR.maxTouchPoints > 0); var HAS_POINTER_EVENT_SUPPORT = IS_BROWSER && Boolean(WINDOW.PointerEvent || WINDOW.MSPointerEvent); /* istanbul ignore next: JSDOM only checks for 'IntersectionObserver' */ var HAS_INTERACTION_OBSERVER_SUPPORT = IS_BROWSER && 'IntersectionObserver' in WINDOW && 'IntersectionObserverEntry' in WINDOW && // Edge 15 and UC Browser lack support for `isIntersecting` // but we an use `intersectionRatio > 0` instead // 'isIntersecting' in window.IntersectionObserverEntry.prototype && 'intersectionRatio' in WINDOW.IntersectionObserverEntry.prototype; var NAME$2 = 'BvConfig'; var PROP_NAME$2 = '$bvConfig'; var DEFAULT_BREAKPOINT = ['xs', 'sm', 'md', 'lg', 'xl']; // --- General --- var RX_ARRAY_NOTATION = /\[(\d+)]/g; var RX_BV_PREFIX = /^(BV?)/; var RX_DIGITS = /^\d+$/; var RX_EXTENSION = /^\..+/; var RX_HASH = /^#/; var RX_HASH_ID = /^#[A-Za-z]+[\w\-:.]*$/; var RX_HTML_TAGS = /(<([^>]+)>)/gi; var RX_HYPHENATE = /\B([A-Z])/g; var RX_LOWER_UPPER = /([a-z])([A-Z])/g; var RX_NUMBER = /^[-]?[0-9]*\.?[0-9]+$/; var RX_PLUS = /\+/g; var RX_REGEXP_REPLACE = /[-/\\^$*+?.()|[\]{}]/g; var RX_SPACES = /[\s\uFEFF\xA0]+/g; var RX_SPACE_SPLIT = /\s+/; var RX_STAR = /\/\*$/; var RX_START_SPACE_WORD = /(\s|^)(\w)/g; var RX_TRIM_LEFT = /^\s+/; var RX_UNDERSCORE = /_/g; var RX_UN_KEBAB = /-(\w)/g; // --- Date --- // Loose YYYY-MM-DD matching, ignores any appended time inforation // Matches '1999-12-20', '1999-1-1', '1999-01-20T22:51:49.118Z', '1999-01-02 13:00:00' var RX_DATE = /^\d+-\d\d?-\d\d?(?:\s|T|$)/; // Used to split off the date parts of the YYYY-MM-DD string var RX_DATE_SPLIT = /-|\s|T/; // Time string RegEx (optional seconds) var RX_TIME = /^([0-1]?[0-9]|2[0-3]):[0-5]?[0-9](:[0-5]?[0-9])?$/; // --- URL --- // HREFs must end with a hash followed by at least one non-hash character var RX_HREF = /^.*(#[^#]+)$/; var RX_ENCODED_COMMA = /%2C/g; var RX_ENCODE_REVERSE = /[!'()*]/g; var RX_QUERY_START = /^(\?|#|&)/; // --- Aspect --- var RX_ASPECT = /^\d+(\.\d*)?[/:]\d+(\.\d*)?$/; var RX_ASPECT_SEPARATOR = /[/:]/; // --- Grid --- var RX_COL_CLASS = /^col-/; // --- Icon --- var RX_ICON_PREFIX = /^BIcon/; // --- Locale --- var RX_STRIP_LOCALE_MODS = /-u-.+/; /* istanbul ignore next */ var Element = HAS_WINDOW_SUPPORT ? WINDOW.Element : /*#__PURE__*/function (_Object) { function Element() { _classCallCheck(this, Element); return _callSuper(this, Element, arguments); } _inherits(Element, _Object); return _createClass(Element); }(/*#__PURE__*/_wrapNativeSuper(Object)); /* istanbul ignore next */ var HTMLElement = HAS_WINDOW_SUPPORT ? WINDOW.HTMLElement : /*#__PURE__*/function (_Element) { function HTMLElement() { _classCallCheck(this, HTMLElement); return _callSuper(this, HTMLElement, arguments); } _inherits(HTMLElement, _Element); return _createClass(HTMLElement); }(Element); /* istanbul ignore next */ var SVGElement = HAS_WINDOW_SUPPORT ? WINDOW.SVGElement : /*#__PURE__*/function (_Element2) { function SVGElement() { _classCallCheck(this, SVGElement); return _callSuper(this, SVGElement, arguments); } _inherits(SVGElement, _Element2); return _createClass(SVGElement); }(Element); /* istanbul ignore next */ var File = HAS_WINDOW_SUPPORT ? WINDOW.File : /*#__PURE__*/function (_Object2) { function File() { _classCallCheck(this, File); return _callSuper(this, File, arguments); } _inherits(File, _Object2); return _createClass(File); }(/*#__PURE__*/_wrapNativeSuper(Object)); // --- Convenience inspection utilities --- var toType$1 = function toType(value) { return _typeof(value); }; var toRawType = function toRawType(value) { return Object.prototype.toString.call(value).slice(8, -1); }; var isUndefined = function isUndefined(value) { return value === undefined; }; var isNull = function isNull(value) { return value === null; }; var isUndefinedOrNull = function isUndefinedOrNull(value) { return isUndefined(value) || isNull(value); }; var isFunction = function isFunction(value) { return toType$1(value) === 'function'; }; var isBoolean = function isBoolean(value) { return toType$1(value) === 'boolean'; }; var isString = function isString(value) { return toType$1(value) === 'string'; }; var isNumber = function isNumber(value) { return toType$1(value) === 'number'; }; var isNumeric = function isNumeric(value) { return RX_NUMBER.test(String(value)); }; var isArray = function isArray(value) { return Array.isArray(value); }; // Quick object check // This is primarily used to tell Objects from primitive values // when we know the value is a JSON-compliant type // Note object could be a complex type like array, Date, etc. var isObject = function isObject(obj) { return obj !== null && _typeof(obj) === 'object'; }; // Strict object type check // Only returns true for plain JavaScript objects var isPlainObject = function isPlainObject(obj) { return Object.prototype.toString.call(obj) === '[object Object]'; }; var isDate = function isDate(value) { return value instanceof Date; }; var isEvent = function isEvent(value) { return value instanceof Event; }; var isFile = function isFile(value) { return value instanceof File; }; var isRegExp = function isRegExp(value) { return toRawType(value) === 'RegExp'; }; var isPromise = function isPromise(value) { return !isUndefinedOrNull(value) && isFunction(value.then) && isFunction(value.catch); }; // --- Static --- var assign = function assign() { return Object.assign.apply(Object, arguments); }; var create = function create(proto, optionalProps) { return Object.create(proto, optionalProps); }; var defineProperties = function defineProperties(obj, props) { return Object.defineProperties(obj, props); }; var defineProperty = function defineProperty(obj, prop, descriptor) { return Object.defineProperty(obj, prop, descriptor); }; var getOwnPropertyNames = function getOwnPropertyNames(obj) { return Object.getOwnPropertyNames(obj); }; var keys = function keys(obj) { return Object.keys(obj); }; // --- "Instance" --- var hasOwnProperty = function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }; var toString$1 = function toString(obj) { return Object.prototype.toString.call(obj); }; // --- Utilities --- // Shallow copy an object var clone = function clone(obj) { return _objectSpread2({}, obj); }; // Return a shallow copy of object with the specified properties only // See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc var pick = function pick(obj, props) { return keys(obj).filter(function (key) { return props.indexOf(key) !== -1; }).reduce(function (result, key) { return _objectSpread2(_objectSpread2({}, result), {}, _defineProperty({}, key, obj[key])); }, {}); }; // Return a shallow copy of object with the specified properties omitted // See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc var omit = function omit(obj, props) { return keys(obj).filter(function (key) { return props.indexOf(key) === -1; }).reduce(function (result, key) { return _objectSpread2(_objectSpread2({}, result), {}, _defineProperty({}, key, obj[key])); }, {}); }; // Merges two object deeply together // See: https://gist.github.com/Salakar/1d7137de9cb8b704e48a var _mergeDeep = function mergeDeep(target, source) { if (isObject(target) && isObject(source)) { keys(source).forEach(function (key) { if (isObject(source[key])) { if (!target[key] || !isObject(target[key])) { target[key] = source[key]; } _mergeDeep(target[key], source[key]); } else { assign(target, _defineProperty({}, key, source[key])); } }); } return target; }; var sortKeys = function sortKeys(obj) { return keys(obj).sort().reduce(function (result, key) { return _objectSpread2(_objectSpread2({}, result), {}, _defineProperty({}, key, obj[key])); }, {}); }; // Convenience method to create a read-only descriptor var readonlyDescriptor = function readonlyDescriptor() { return { enumerable: true, configurable: false, writable: false }; }; var _cloneDeep = function cloneDeep(obj) { var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : obj; if (isArray(obj)) { return obj.reduce(function (result, val) { return [].concat(_toConsumableArray(result), [_cloneDeep(val, val)]); }, []); } if (isPlainObject(obj)) { return keys(obj).reduce(function (result, key) { return _objectSpread2(_objectSpread2({}, result), {}, _defineProperty({}, key, _cloneDeep(obj[key], obj[key]))); }, {}); } return defaultValue; }; var identity = function identity(x) { return x; }; /** * Get property defined by dot/array notation in string, returns undefined if not found * * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901 * * @param {Object} obj * @param {string|Array} path * @return {*} */ var getRaw = function getRaw(obj, path) { var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; // Handle array of path values path = isArray(path) ? path.join('.') : path; // If no path or no object passed if (!path || !isObject(obj)) { return defaultValue; } // Handle edge case where user has dot(s) in top-level item field key // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762 // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463 if (path in obj) { return obj[path]; } // Handle string array notation (numeric indices only) path = String(path).replace(RX_ARRAY_NOTATION, '.$1'); var steps = path.split('.').filter(identity); // Handle case where someone passes a string of only dots if (steps.length === 0) { return defaultValue; } // Traverse path in object to find result // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463 return steps.every(function (step) { return isObject(obj) && step in obj && !isUndefinedOrNull(obj = obj[step]); }) ? obj : isNull(obj) ? null : defaultValue; }; /** * Get property defined by dot/array notation in string. * * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901 * * @param {Object} obj * @param {string|Array} path * @param {*} defaultValue (optional) * @return {*} */ var get = function get(obj, path) { var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; var value = getRaw(obj, path); return isUndefinedOrNull(value) ? defaultValue : value; }; /** * Utilities to get information about the current environment */ var getEnv = function getEnv(key) { var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var env = typeof process !== 'undefined' && process ? process.env || {} : {}; if (!key) { /* istanbul ignore next */ return env; } return env[key] || fallback; }; var getNoWarn = function getNoWarn() { return getEnv('BOOTSTRAP_VUE_NO_WARN') || getEnv('NODE_ENV') === 'production'; }; /** * Log a warning message to the console with BootstrapVue formatting * @param {string} message */ var warn = function warn(message) /* istanbul ignore next */{ var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; if (!getNoWarn()) { console.warn("[BootstrapVue warn]: ".concat(source ? "".concat(source, " - ") : '').concat(message)); } }; /** * Warn when no Promise support is given * @param {string} source * @returns {boolean} warned */ var warnNotClient = function warnNotClient(source) { /* istanbul ignore else */ if (IS_BROWSER) { return false; } else { warn("".concat(source, ": Can not be called during SSR.")); return true; } }; /** * Warn when no Promise support is given * @param {string} source * @returns {boolean} warned */ var warnNoPromiseSupport = function warnNoPromiseSupport(source) { /* istanbul ignore else */ if (HAS_PROMISE_SUPPORT) { return false; } else { warn("".concat(source, ": Requires Promise support.")); return true; } }; /** * Warn when no MutationObserver support is given * @param {string} source * @returns {boolean} warned */ var warnNoMutationObserverSupport = function warnNoMutationObserverSupport(source) { /* istanbul ignore else */ if (HAS_MUTATION_OBSERVER_SUPPORT) { return false; } else { warn("".concat(source, ": Requires MutationObserver support.")); return true; } }; // Config manager class var BvConfig = /*#__PURE__*/function () { function BvConfig() { _classCallCheck(this, BvConfig); this.$_config = {}; } // Method to merge in user config parameters return _createClass(BvConfig, [{ key: "setConfig", value: function setConfig() { var _this = this; var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; /* istanbul ignore next */ if (!isPlainObject(config)) { return; } var configKeys = getOwnPropertyNames(config); configKeys.forEach(function (key) { /* istanbul ignore next */ var subConfig = config[key]; if (key === 'breakpoints') { /* istanbul ignore if */ if (!isArray(subConfig) || subConfig.length < 2 || subConfig.some(function (b) { return !isString(b) || b.length === 0; })) { warn('"breakpoints" must be an array of at least 2 breakpoint names', NAME$2); } else { _this.$_config[key] = _cloneDeep(subConfig); } } else if (isPlainObject(subConfig)) { // Component prop defaults _this.$_config[key] = getOwnPropertyNames(subConfig).reduce(function (config, prop) { if (!isUndefined(subConfig[prop])) { config[prop] = _cloneDeep(subConfig[prop]); } return config; }, _this.$_config[key] || {}); } }); } // Clear the config }, { key: "resetConfig", value: function resetConfig() { this.$_config = {}; } // Returns a deep copy of the user config }, { key: "getConfig", value: function getConfig() { return _cloneDeep(this.$_config); } // Returns a deep copy of the config value }, { key: "getConfigValue", value: function getConfigValue(key) { var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; return _cloneDeep(getRaw(this.$_config, key, defaultValue)); } }]); }(); // Method for applying a global config var setConfig = function setConfig() { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var Vue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Vue__default["default"]; // Ensure we have a `$bvConfig` Object on the Vue prototype // We set on Vue and OurVue just in case consumer has not set an alias of `vue` Vue.prototype[PROP_NAME$2] = Vue__default["default"].prototype[PROP_NAME$2] = Vue.prototype[PROP_NAME$2] || Vue__default["default"].prototype[PROP_NAME$2] || new BvConfig(); // Apply the config values Vue.prototype[PROP_NAME$2].setConfig(config); }; /** * Checks if there are multiple instances of Vue, and warns (once) about possible issues. * @param {object} Vue */ var checkMultipleVue = function () { var checkMultipleVueWarned = false; var MULTIPLE_VUE_WARNING = ['Multiple instances of Vue detected!', 'You may need to set up an alias for Vue in your bundler config.', 'See: https://bootstrap-vue.org/docs#using-module-bundlers'].join('\n'); return function (Vue) { /* istanbul ignore next */ if (!checkMultipleVueWarned && Vue__default["default"] !== Vue && !IS_JSDOM) { warn(MULTIPLE_VUE_WARNING); } checkMultipleVueWarned = true; }; }(); /** * Plugin install factory function. * @param {object} { components, directives } * @returns {function} plugin install function */ var installFactory = function installFactory() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, components = _ref.components, directives = _ref.directives, plugins = _ref.plugins; var _install = function install(Vue) { var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (_install.installed) { /* istanbul ignore next */ return; } _install.installed = true; checkMultipleVue(Vue); setConfig(config, Vue); registerComponents(Vue, components); registerDirectives(Vue, directives); registerPlugins(Vue, plugins); }; _install.installed = false; return _install; }; /** * Plugin install factory function (no plugin config option). * @param {object} { components, directives } * @returns {function} plugin install function */ var installFactoryNoConfig = function installFactoryNoConfig() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, components = _ref2.components, directives = _ref2.directives, plugins = _ref2.plugins; var _install2 = function install(Vue) { if (_install2.installed) { /* istanbul ignore next */ return; } _install2.installed = true; checkMultipleVue(Vue); registerComponents(Vue, components); registerDirectives(Vue, directives); registerPlugins(Vue, plugins); }; _install2.installed = false; return _install2; }; /** * Plugin object factory function. * @param {object} { components, directives, plugins } * @returns {object} plugin install object */ var pluginFactory = function pluginFactory() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return _objectSpread2(_objectSpread2({}, extend), {}, { install: installFactory(options) }); }; /** * Plugin object factory function (no config option). * @param {object} { components, directives, plugins } * @returns {object} plugin install object */ var pluginFactoryNoConfig = function pluginFactoryNoConfig() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return _objectSpread2(_objectSpread2({}, extend), {}, { install: installFactoryNoConfig(options) }); }; /** * Load a group of plugins. * @param {object} Vue * @param {object} Plugin definitions */ var registerPlugins = function registerPlugins(Vue) { var plugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; for (var plugin in plugins) { if (plugin && plugins[plugin]) { Vue.use(plugins[plugin]); } } }; /** * Load a component. * @param {object} Vue * @param {string} Component name * @param {object} Component definition */ var registerComponent = function registerComponent(Vue, name, def) { if (Vue && name && def) { Vue.component(name, def); } }; /** * Load a group of components. * @param {object} Vue * @param {object} Object of component definitions */ var registerComponents = function registerComponents(Vue) { var components = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; for (var component in components) { registerComponent(Vue, component, components[component]); } }; /** * Load a directive. * @param {object} Vue * @param {string} Directive name * @param {object} Directive definition */ var registerDirective = function registerDirective(Vue, name, def) { if (Vue && name && def) { // Ensure that any leading V is removed from the // name, as Vue adds it automatically Vue.directive(name.replace(/^VB/, 'B'), def); } }; /** * Load a group of directives. * @param {object} Vue * @param {object} Object of directive definitions */ var registerDirectives = function registerDirectives(Vue) { var directives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; for (var directive in directives) { registerDirective(Vue, directive, directives[directive]); } }; // Component names var NAME_ALERT = 'BAlert'; var NAME_ASPECT = 'BAspect'; var NAME_AVATAR = 'BAvatar'; var NAME_AVATAR_GROUP = 'BAvatarGroup'; var NAME_BADGE = 'BBadge'; var NAME_BREADCRUMB = 'BBreadcrumb'; var NAME_BREADCRUMB_ITEM = 'BBreadcrumbItem'; var NAME_BREADCRUMB_LINK = 'BBreadcrumbLink'; var NAME_BUTTON = 'BButton'; var NAME_BUTTON_CLOSE = 'BButtonClose'; var NAME_BUTTON_GROUP = 'BButtonGroup'; var NAME_BUTTON_TOOLBAR = 'BButtonToolbar'; var NAME_CALENDAR = 'BCalendar'; var NAME_CARD = 'BCard'; var NAME_CARD_BODY = 'BCardBody'; var NAME_CARD_FOOTER = 'BCardFooter'; var NAME_CARD_GROUP = 'BCardGroup'; var NAME_CARD_HEADER = 'BCardHeader'; var NAME_CARD_IMG = 'BCardImg'; var NAME_CARD_IMG_LAZY = 'BCardImgLazy'; var NAME_CARD_SUB_TITLE = 'BCardSubTitle'; var NAME_CARD_TEXT = 'BCardText'; var NAME_CARD_TITLE = 'BCardTitle'; var NAME_CAROUSEL = 'BCarousel'; var NAME_CAROUSEL_SLIDE = 'BCarouselSlide'; var NAME_COL = 'BCol'; var NAME_COLLAPSE = 'BCollapse'; var NAME_CONTAINER = 'BContainer'; var NAME_DROPDOWN = 'BDropdown'; var NAME_DROPDOWN_DIVIDER = 'BDropdownDivider'; var NAME_DROPDOWN_FORM = 'BDropdownForm'; var NAME_DROPDOWN_GROUP = 'BDropdownGroup'; var NAME_DROPDOWN_HEADER = 'BDropdownHeader'; var NAME_DROPDOWN_ITEM = 'BDropdownItem'; var NAME_DROPDOWN_ITEM_BUTTON = 'BDropdownItemButton'; var NAME_DROPDOWN_TEXT = 'BDropdownText'; var NAME_EMBED = 'BEmbed'; var NAME_FORM = 'BForm'; var NAME_FORM_CHECKBOX = 'BFormCheckbox'; var NAME_FORM_CHECKBOX_GROUP = 'BFormCheckboxGroup'; var NAME_FORM_DATALIST = 'BFormDatalist'; var NAME_FORM_DATEPICKER = 'BFormDatepicker'; var NAME_FORM_FILE = 'BFormFile'; var NAME_FORM_GROUP = 'BFormGroup'; var NAME_FORM_INPUT = 'BFormInput'; var NAME_FORM_INVALID_FEEDBACK = 'BFormInvalidFeedback'; var NAME_FORM_RADIO = 'BFormRadio'; var NAME_FORM_RADIO_GROUP = 'BFormRadioGroup'; var NAME_FORM_RATING = 'BFormRating'; var NAME_FORM_ROW = 'BFormRow'; var NAME_FORM_SELECT = 'BFormSelect'; var NAME_FORM_SELECT_OPTION = 'BFormSelectOption'; var NAME_FORM_SELECT_OPTION_GROUP = 'BFormSelectOptionGroup'; var NAME_FORM_SPINBUTTON = 'BFormSpinbutton'; var NAME_FORM_TAG = 'BFormTag'; var NAME_FORM_TAGS = 'BFormTags'; var NAME_FORM_TEXT = 'BFormText'; var NAME_FORM_TEXTAREA = 'BFormTextarea'; var NAME_FORM_TIMEPICKER = 'BFormTimepicker'; var NAME_FORM_VALID_FEEDBACK = 'BFormValidFeedback'; var NAME_ICON = 'BIcon'; var NAME_ICONSTACK = 'BIconstack'; var NAME_ICON_BASE = 'BIconBase'; var NAME_IMG = 'BImg'; var NAME_IMG_LAZY = 'BImgLazy'; var NAME_INPUT_GROUP = 'BInputGroup'; var NAME_INPUT_GROUP_ADDON = 'BInputGroupAddon'; var NAME_INPUT_GROUP_APPEND = 'BInputGroupAppend'; var NAME_INPUT_GROUP_PREPEND = 'BInputGroupPrepend'; var NAME_INPUT_GROUP_TEXT = 'BInputGroupText'; var NAME_JUMBOTRON = 'BJumbotron'; var NAME_LINK = 'BLink'; var NAME_LIST_GROUP = 'BListGroup'; var NAME_LIST_GROUP_ITEM = 'BListGroupItem'; var NAME_MEDIA = 'BMedia'; var NAME_MEDIA_ASIDE = 'BMediaAside'; var NAME_MEDIA_BODY = 'BMediaBody'; var NAME_MODAL = 'BModal'; var NAME_MSG_BOX = 'BMsgBox'; var NAME_NAV = 'BNav'; var NAME_NAVBAR = 'BNavbar'; var NAME_NAVBAR_BRAND = 'BNavbarBrand'; var NAME_NAVBAR_NAV = 'BNavbarNav'; var NAME_NAVBAR_TOGGLE = 'BNavbarToggle'; var NAME_NAV_FORM = 'BNavForm'; var NAME_NAV_ITEM = 'BNavItem'; var NAME_NAV_ITEM_DROPDOWN = 'BNavItemDropdown'; var NAME_NAV_TEXT = 'BNavText'; var NAME_OVERLAY = 'BOverlay'; var NAME_PAGINATION = 'BPagination'; var NAME_PAGINATION_NAV = 'BPaginationNav'; var NAME_POPOVER = 'BPopover'; var NAME_PROGRESS = 'BProgress'; var NAME_PROGRESS_BAR = 'BProgressBar'; var NAME_ROW = 'BRow'; var NAME_SIDEBAR = 'BSidebar'; var NAME_SKELETON = 'BSkeleton'; var NAME_SKELETON_ICON = 'BSkeletonIcon'; var NAME_SKELETON_IMG = 'BSkeletonImg'; var NAME_SKELETON_TABLE = 'BSkeletonTable'; var NAME_SKELETON_WRAPPER = 'BSkeletonWrapper'; var NAME_SPINNER = 'BSpinner'; var NAME_TAB = 'BTab'; var NAME_TABLE = 'BTable'; var NAME_TABLE_CELL = 'BTableCell'; var NAME_TABLE_LITE = 'BTableLite'; var NAME_TABLE_SIMPLE = 'BTableSimple'; var NAME_TABS = 'BTabs'; var NAME_TBODY = 'BTbody'; var NAME_TFOOT = 'BTfoot'; var NAME_TH = 'BTh'; var NAME_THEAD = 'BThead'; var NAME_TIME = 'BTime'; var NAME_TOAST = 'BToast'; var NAME_TOASTER = 'BToaster'; var NAME_TOOLTIP = 'BTooltip'; var NAME_TR = 'BTr'; // Helper component names var NAME_COLLAPSE_HELPER = 'BVCollapse'; var NAME_FORM_BUTTON_LABEL_CONTROL = 'BVFormBtnLabelControl'; var NAME_FORM_RATING_STAR = 'BVFormRatingStar'; var NAME_POPOVER_HELPER = 'BVPopover'; var NAME_POPOVER_TEMPLATE = 'BVPopoverTemplate'; var NAME_POPPER = 'BVPopper'; var NAME_TAB_BUTTON_HELPER = 'BVTabButton'; var NAME_TOAST_POP = 'BVToastPop'; var NAME_TOOLTIP_HELPER = 'BVTooltip'; var NAME_TOOLTIP_TEMPLATE = 'BVTooltipTemplate'; var NAME_TRANSITION = 'BVTransition'; var NAME_TRANSPORTER = 'BVTransporter'; var NAME_TRANSPORTER_TARGET = 'BVTransporterTarget'; var EVENT_NAME_ACTIVATE_TAB = 'activate-tab'; var EVENT_NAME_BLUR = 'blur'; var EVENT_NAME_CANCEL = 'cancel'; var EVENT_NAME_CHANGE = 'change'; var EVENT_NAME_CHANGED = 'changed'; var EVENT_NAME_CLICK = 'click'; var EVENT_NAME_CLOSE = 'close'; var EVENT_NAME_CONTEXT = 'context'; var EVENT_NAME_CONTEXT_CHANGED = 'context-changed'; var EVENT_NAME_DESTROYED = 'destroyed'; var EVENT_NAME_DISABLE = 'disable'; var EVENT_NAME_DISABLED = 'disabled'; var EVENT_NAME_DISMISSED = 'dismissed'; var EVENT_NAME_DISMISS_COUNT_DOWN = 'dismiss-count-down'; var EVENT_NAME_ENABLE = 'enable'; var EVENT_NAME_ENABLED = 'enabled'; var EVENT_NAME_FILTERED = 'filtered'; var EVENT_NAME_FIRST = 'first'; var EVENT_NAME_FOCUS = 'focus'; var EVENT_NAME_FOCUSIN = 'focusin'; var EVENT_NAME_FOCUSOUT = 'focusout'; var EVENT_NAME_HEAD_CLICKED = 'head-clicked'; var EVENT_NAME_HIDDEN = 'hidden'; var EVENT_NAME_HIDE = 'hide'; var EVENT_NAME_IMG_ERROR = 'img-error'; var EVENT_NAME_INPUT = 'input'; var EVENT_NAME_LAST = 'last'; var EVENT_NAME_MOUSEENTER = 'mouseenter'; var EVENT_NAME_MOUSELEAVE = 'mouseleave'; var EVENT_NAME_NEXT = 'next'; var EVENT_NAME_OK = 'ok'; var EVENT_NAME_OPEN = 'open'; var EVENT_NAME_PAGE_CLICK = 'page-click'; var EVENT_NAME_PAUSED = 'paused'; var EVENT_NAME_PREV = 'prev'; var EVENT_NAME_REFRESH = 'refresh'; var EVENT_NAME_REFRESHED = 'refreshed'; var EVENT_NAME_REMOVE = 'remove'; var EVENT_NAME_ROW_CLICKED = 'row-clicked'; var EVENT_NAME_ROW_CONTEXTMENU = 'row-contextmenu'; var EVENT_NAME_ROW_DBLCLICKED = 'row-dblclicked'; var EVENT_NAME_ROW_HOVERED = 'row-hovered'; var EVENT_NAME_ROW_MIDDLE_CLICKED = 'row-middle-clicked'; var EVENT_NAME_ROW_SELECTED = 'row-selected'; var EVENT_NAME_ROW_UNHOVERED = 'row-unhovered'; var EVENT_NAME_SELECTED = 'selected'; var EVENT_NAME_SHOW = 'show'; var EVENT_NAME_SHOWN = 'shown'; var EVENT_NAME_SLIDING_END = 'sliding-end'; var EVENT_NAME_SLIDING_START = 'sliding-start'; var EVENT_NAME_SORT_CHANGED = 'sort-changed'; var EVENT_NAME_TAG_STATE = 'tag-state'; var EVENT_NAME_TOGGLE = 'toggle'; var EVENT_NAME_UNPAUSED = 'unpaused'; var EVENT_NAME_UPDATE = 'update'; var HOOK_EVENT_NAME_BEFORE_DESTROY = isVue3 ? 'vnodeBeforeUnmount' : 'hook:beforeDestroy'; var HOOK_EVENT_NAME_DESTROYED = isVue3 ? 'vNodeUnmounted' : 'hook:destroyed'; var MODEL_EVENT_NAME_PREFIX = 'update:'; var ROOT_EVENT_NAME_PREFIX = 'bv'; var ROOT_EVENT_NAME_SEPARATOR = '::'; var EVENT_OPTIONS_PASSIVE = { passive: true }; var EVENT_OPTIONS_NO_CAPTURE = { passive: true, capture: false }; // General types var PROP_TYPE_ANY = undefined; var PROP_TYPE_ARRAY = Array; var PROP_TYPE_BOOLEAN = Boolean; var PROP_TYPE_DATE = Date; var PROP_TYPE_FUNCTION = Function; var PROP_TYPE_NUMBER = Number; var PROP_TYPE_OBJECT = Object; var PROP_TYPE_REG_EXP = RegExp; var PROP_TYPE_STRING = String; // Multiple types var PROP_TYPE_ARRAY_FUNCTION = [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION]; var PROP_TYPE_ARRAY_OBJECT = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT]; var PROP_TYPE_ARRAY_OBJECT_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING]; var PROP_TYPE_ARRAY_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_STRING]; var PROP_TYPE_BOOLEAN_NUMBER = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER]; var PROP_TYPE_BOOLEAN_NUMBER_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING]; var PROP_TYPE_BOOLEAN_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING]; var PROP_TYPE_DATE_STRING = [PROP_TYPE_DATE, PROP_TYPE_STRING]; var PROP_TYPE_FUNCTION_STRING = [PROP_TYPE_FUNCTION, PROP_TYPE_STRING]; var PROP_TYPE_NUMBER_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_STRING]; var PROP_TYPE_NUMBER_OBJECT_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING]; var PROP_TYPE_OBJECT_FUNCTION = [PROP_TYPE_OBJECT, PROP_TYPE_FUNCTION]; var PROP_TYPE_OBJECT_STRING = [PROP_TYPE_OBJECT, PROP_TYPE_STRING]; var SLOT_NAME_ADD_BUTTON_TEXT = 'add-button-text'; var SLOT_NAME_APPEND = 'append'; var SLOT_NAME_ASIDE = 'aside'; var SLOT_NAME_BADGE = 'badge'; var SLOT_NAME_BOTTOM_ROW = 'bottom-row'; var SLOT_NAME_BUTTON_CONTENT = 'button-content'; var SLOT_NAME_CUSTOM_FOOT = 'custom-foot'; var SLOT_NAME_DECREMENT = 'decrement'; var SLOT_NAME_DEFAULT = 'default'; var SLOT_NAME_DESCRIPTION = 'description'; var SLOT_NAME_DISMISS = 'dismiss'; var SLOT_NAME_DROP_PLACEHOLDER = 'drop-placeholder'; var SLOT_NAME_ELLIPSIS_TEXT = 'ellipsis-text'; var SLOT_NAME_EMPTY = 'empty'; var SLOT_NAME_EMPTYFILTERED = 'emptyfiltered'; var SLOT_NAME_FILE_NAME = 'file-name'; var SLOT_NAME_FIRST = 'first'; var SLOT_NAME_FIRST_TEXT = 'first-text'; var SLOT_NAME_FOOTER = 'footer'; var SLOT_NAME_HEADER = 'header'; var SLOT_NAME_HEADER_CLOSE = 'header-close'; var SLOT_NAME_ICON_CLEAR = 'icon-clear'; var SLOT_NAME_ICON_EMPTY = 'icon-empty'; var SLOT_NAME_ICON_FULL = 'icon-full'; var SLOT_NAME_ICON_HALF = 'icon-half'; var SLOT_NAME_IMG = 'img'; var SLOT_NAME_INCREMENT = 'increment'; var SLOT_NAME_INVALID_FEEDBACK = 'invalid-feedback'; var SLOT_NAME_LABEL = 'label'; var SLOT_NAME_LAST_TEXT = 'last-text'; var SLOT_NAME_LEAD = 'lead'; var SLOT_NAME_LOADING = 'loading'; var SLOT_NAME_MODAL_BACKDROP = 'modal-backdrop'; var SLOT_NAME_MODAL_CANCEL = 'modal-cancel'; var SLOT_NAME_MODAL_FOOTER = 'modal-footer'; var SLOT_NAME_MODAL_HEADER = 'modal-header'; var SLOT_NAME_MODAL_HEADER_CLOSE = 'modal-header-close'; var SLOT_NAME_MODAL_OK = 'modal-ok'; var SLOT_NAME_MODAL_TITLE = 'modal-title'; var SLOT_NAME_NAV_NEXT_DECADE = 'nav-next-decade'; var SLOT_NAME_NAV_NEXT_MONTH = 'nav-next-month'; var SLOT_NAME_NAV_NEXT_YEAR = 'nav-next-year'; var SLOT_NAME_NAV_PEV_DECADE = 'nav-prev-decade'; var SLOT_NAME_NAV_PEV_MONTH = 'nav-prev-month'; var SLOT_NAME_NAV_PEV_YEAR = 'nav-prev-year'; var SLOT_NAME_NAV_THIS_MONTH = 'nav-this-month'; var SLOT_NAME_NEXT_TEXT = 'next-text'; var SLOT_NAME_OVERLAY = 'overlay'; var SLOT_NAME_PAGE = 'page'; var SLOT_NAME_PLACEHOLDER = 'placeholder'; var SLOT_NAME_PREPEND = 'prepend'; var SLOT_NAME_PREV_TEXT = 'prev-text'; var SLOT_NAME_ROW_DETAILS = 'row-details'; var SLOT_NAME_TABLE_BUSY = 'table-busy'; var SLOT_NAME_TABLE_CAPTION = 'table-caption'; var SLOT_NAME_TABLE_COLGROUP = 'table-colgroup'; var SLOT_NAME_TABS_END = 'tabs-end'; var SLOT_NAME_TABS_START = 'tabs-start'; var SLOT_NAME_TEXT = 'text'; var SLOT_NAME_THEAD_TOP = 'thead-top'; var SLOT_NAME_TITLE = 'title'; var SLOT_NAME_TOAST_TITLE = 'toast-title'; var SLOT_NAME_TOP_ROW = 'top-row'; var SLOT_NAME_VALID_FEEDBACK = 'valid-feedback'; // --- Static --- var from = function from() { return Array.from.apply(Array, arguments); }; // --- Instance --- var arrayIncludes = function arrayIncludes(array, value) { return array.indexOf(value) !== -1; }; var concat = function concat() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return Array.prototype.concat.apply([], args); }; // --- Utilities --- var createArray = function createArray(length, fillFn) { var mapFn = isFunction(fillFn) ? fillFn : function () { return fillFn; }; return Array.apply(null, { length: length }).map(mapFn); }; var flatten = function flatten(array) { return array.reduce(function (result, item) { return concat(result, item); }, []); }; var _flattenDeep = function flattenDeep(array) { return array.reduce(function (result, item) { return concat(result, Array.isArray(item) ? _flattenDeep(item) : item); }, []); }; // Note for functional components: // In functional components, `slots` is a function so it must be called // first before passing to the below methods. `scopedSlots` is always an // object and may be undefined (for Vue < 2.6.x) /** * Returns true if either scoped or unscoped named slot exists * * @param {String, Array} name or name[] * @param {Object} scopedSlots * @param {Object} slots * @returns {Array|undefined} VNodes */ var hasNormalizedSlot = function hasNormalizedSlot(names) { var $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; // Ensure names is an array names = concat(names).filter(identity); // Returns true if the either a $scopedSlot or $slot exists with the specified name return names.some(function (name) { return $scopedSlots[name] || $slots[name]; }); }; /** * Returns VNodes for named slot either scoped or unscoped * * @param {String, Array} name or name[] * @param {String} scope * @param {Object} scopedSlots * @param {Object} slots * @returns {Array|undefined} VNodes */ var normalizeSlot = function normalizeSlot(names) { var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; // Ensure names is an array names = concat(names).filter(identity); var slot; for (var i = 0; i < names.length && !slot; i++) { var name = names[i]; slot = $scopedSlots[name] || $slots[name]; } // Note: in Vue 2.6.x, all named slots are also scoped slots return isFunction(slot) ? slot(scope) : slot; }; // @vue/component var norma