1 | {"version":3,"file":"bootstrap-vue.esm.js","sources":["../src/utils/vue.js","../src/utils/env.js","../src/utils/warn.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_has.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_wks.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/_iter-call.js","../node_modules/core-js/library/modules/_is-array-iter.js","../node_modules/core-js/library/modules/_create-property.js","../node_modules/core-js/library/modules/_classof.js","../node_modules/core-js/library/modules/core.get-iterator-method.js","../node_modules/core-js/library/modules/_iter-detect.js","../node_modules/core-js/library/modules/es6.array.from.js","../node_modules/core-js/library/fn/array/from.js","../node_modules/core-js/library/modules/_is-array.js","../node_modules/core-js/library/modules/es6.array.is-array.js","../node_modules/core-js/library/fn/array/is-array.js","../src/utils/array.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/modules/_same-value.js","../node_modules/core-js/library/modules/es6.object.is.js","../node_modules/core-js/library/fn/object/is.js","../src/utils/object.js","../src/utils/inspect.js","../src/utils/clone-deep.js","../src/utils/get.js","../src/utils/config-defaults.js","../src/utils/config-set.js","../src/utils/plugins.js","../src/utils/memoize.js","../src/utils/config.js","../src/utils/dom.js","../src/utils/bv-transition.js","../src/utils/normalize-slot.js","../src/mixins/normalize-slot.js","../src/components/button/button-close.js","../src/components/alert/alert.js","../src/components/alert/index.js","../src/utils/identity.js","../src/utils/pluck-props.js","../src/utils/to-string.js","../src/utils/router.js","../src/components/link/link.js","../src/components/badge/badge.js","../src/components/badge/index.js","../src/utils/html.js","../src/components/breadcrumb/breadcrumb-link.js","../src/components/breadcrumb/breadcrumb-item.js","../src/components/breadcrumb/breadcrumb.js","../src/components/breadcrumb/index.js","../src/components/button/button.js","../src/components/button/index.js","../src/components/button-group/button-group.js","../src/components/button-group/index.js","../src/utils/key-codes.js","../src/components/button-toolbar/button-toolbar.js","../src/components/button-toolbar/index.js","../src/utils/upper-first.js","../src/utils/prefix-prop-name.js","../src/utils/lower-first.js","../src/utils/unprefix-prop-name.js","../src/utils/copy-props.js","../src/mixins/card-mixin.js","../src/components/card/card-title.js","../src/components/card/card-sub-title.js","../src/components/card/card-body.js","../src/components/card/card-header.js","../src/components/card/card-footer.js","../src/components/card/card-img.js","../src/components/card/card.js","../src/components/image/img.js","../src/components/image/img-lazy.js","../src/components/card/card-img-lazy.js","../src/components/card/card-text.js","../src/components/card/card-group.js","../src/components/card/index.js","../src/utils/noop.js","../src/utils/observe-dom.js","../src/mixins/id.js","../src/components/carousel/carousel.js","../src/components/carousel/carousel-slide.js","../src/components/carousel/index.js","../src/mixins/listen-on-root.js","../src/components/collapse/collapse.js","../src/utils/loose-equal.js","../src/utils/target.js","../src/directives/toggle/toggle.js","../src/components/collapse/index.js","../src/utils/safe-types.js","../src/utils/bv-event.class.js","../src/mixins/click-out.js","../src/mixins/focus-in.js","../src/mixins/dropdown.js","../src/components/dropdown/dropdown.js","../src/components/dropdown/dropdown-item.js","../src/components/dropdown/dropdown-item-button.js","../src/components/dropdown/dropdown-header.js","../src/components/dropdown/dropdown-divider.js","../src/components/form/form.js","../src/components/dropdown/dropdown-form.js","../src/components/dropdown/dropdown-text.js","../src/components/dropdown/dropdown-group.js","../src/components/dropdown/index.js","../src/components/embed/embed.js","../src/components/embed/index.js","../src/mixins/form-options.js","../src/components/form/form-datalist.js","../src/components/form/form-text.js","../src/components/form/form-invalid-feedback.js","../src/components/form/form-valid-feedback.js","../src/components/layout/form-row.js","../src/components/form/index.js","../src/mixins/form-state.js","../src/utils/suffix-prop-name.js","../src/components/layout/col.js","../src/components/form-group/form-group.js","../src/components/form-group/index.js","../src/utils/loose-index-of.js","../src/mixins/form.js","../src/mixins/form-radio-check.js","../src/mixins/form-size.js","../src/components/form-checkbox/form-checkbox.js","../src/components/form-radio/form-radio.js","../src/mixins/form-radio-check-group.js","../src/components/form-checkbox/form-checkbox-group.js","../src/components/form-checkbox/index.js","../src/components/form-radio/form-radio-group.js","../src/components/form-radio/index.js","../src/mixins/form-text.js","../src/mixins/form-selection.js","../src/mixins/form-validity.js","../src/components/form-input/form-input.js","../src/components/form-input/index.js","../src/components/form-textarea/form-textarea.js","../src/components/form-textarea/index.js","../src/mixins/form-custom.js","../src/components/form-file/form-file.js","../src/components/form-file/index.js","../src/components/form-select/form-select.js","../src/components/form-select/index.js","../src/components/image/index.js","../src/components/input-group/input-group-text.js","../src/components/input-group/input-group-addon.js","../src/components/input-group/input-group-prepend.js","../src/components/input-group/input-group-append.js","../src/components/input-group/input-group.js","../src/components/input-group/index.js","../src/components/layout/container.js","../src/components/jumbotron/jumbotron.js","../src/components/jumbotron/index.js","../src/components/layout/row.js","../src/components/layout/index.js","../src/components/link/index.js","../src/components/list-group/list-group.js","../src/components/list-group/list-group-item.js","../src/components/list-group/index.js","../src/components/media/media-body.js","../src/components/media/media-aside.js","../src/components/media/media.js","../src/components/media/index.js","../src/components/modal/helpers/modal-manager.js","../src/components/modal/helpers/bv-modal-event.class.js","../src/utils/transporter.js","../src/components/modal/modal.js","../src/directives/modal/modal.js","../src/components/modal/helpers/bv-modal.js","../src/components/modal/index.js","../src/components/nav/nav.js","../src/components/nav/nav-item.js","../src/components/nav/nav-text.js","../src/components/nav/nav-form.js","../src/components/nav/nav-item-dropdown.js","../src/components/nav/index.js","../src/components/navbar/navbar.js","../src/components/navbar/navbar-nav.js","../src/components/navbar/navbar-brand.js","../src/components/navbar/navbar-toggle.js","../src/components/navbar/index.js","../src/utils/range.js","../src/mixins/pagination.js","../src/components/pagination/pagination.js","../src/components/pagination/index.js","../src/components/pagination-nav/pagination-nav.js","../src/components/pagination-nav/index.js","../src/utils/tooltip.class.js","../src/utils/popover.class.js","../src/mixins/toolpop.js","../src/components/popover/popover.js","../src/directives/popover/popover.js","../src/components/popover/index.js","../src/components/progress/progress-bar.js","../src/components/progress/progress.js","../src/components/progress/index.js","../src/components/spinner/spinner.js","../src/components/spinner/index.js","../src/utils/startcase.js","../src/components/table/helpers/constants.js","../src/components/table/helpers/normalize-fields.js","../src/components/table/helpers/mixin-items.js","../src/components/table/helpers/sanitize-row.js","../src/components/table/helpers/stringify-object-values.js","../src/components/table/helpers/stringify-record-values.js","../src/components/table/helpers/mixin-filtering.js","../src/utils/stable-sort.js","../src/components/table/helpers/default-sort-compare.js","../src/components/table/helpers/mixin-sorting.js","../src/components/table/helpers/mixin-pagination.js","../src/components/table/helpers/mixin-caption.js","../src/components/table/helpers/mixin-colgroup.js","../src/components/table/helpers/filter-event.js","../src/components/table/helpers/text-selection-active.js","../src/components/table/helpers/mixin-thead.js","../src/components/table/helpers/mixin-tfoot.js","../src/components/table/helpers/mixin-tbody-row.js","../src/components/table/helpers/mixin-tbody.js","../src/components/table/helpers/mixin-empty.js","../src/components/table/helpers/mixin-top-row.js","../src/components/table/helpers/mixin-bottom-row.js","../src/components/table/helpers/mixin-busy.js","../src/components/table/helpers/mixin-selectable.js","../src/components/table/helpers/mixin-provider.js","../src/components/table/helpers/mixin-table-renderer.js","../src/components/table/table.js","../src/components/table/table-lite.js","../src/components/table/index.js","../src/components/tabs/tabs.js","../src/components/tabs/tab.js","../src/components/tabs/index.js","../src/components/toast/toaster.js","../src/components/toast/toast.js","../src/components/toast/helpers/bv-toast.js","../src/components/toast/index.js","../src/components/tooltip/tooltip.js","../src/directives/tooltip/tooltip.js","../src/components/tooltip/index.js","../src/components/index.esm.js","../src/directives/modal/index.js","../src/directives/popover/index.js","../src/directives/scrollspy/scrollspy.class.js","../src/directives/scrollspy/scrollspy.js","../src/directives/scrollspy/index.js","../src/directives/toggle/index.js","../src/directives/tooltip/index.js","../src/directives/index.esm.js","../src/bv-config.js","../src/index.js"],"sourcesContent":["//\n// Single point of contact for Vue\n//\n// TODO:\n// Conditionally import Vue if no global Vue\n//\nimport Vue from 'vue'\n\nexport default Vue\n","/**\n * Utilities to get information about the current environment\n */\n\n// --- Constants ---\n\nexport const hasWindowSupport = typeof window !== 'undefined'\nexport const hasDocumentSupport = typeof document !== 'undefined'\nexport const hasNavigatorSupport = typeof navigator !== 'undefined'\nexport const hasPromiseSupport = typeof Promise !== 'undefined'\nexport const hasMutationObserverSupport =\n typeof MutationObserver !== 'undefined' ||\n typeof WebKitMutationObserver !== 'undefined' ||\n typeof MozMutationObserver !== 'undefined'\n\nexport const isBrowser = hasWindowSupport && hasDocumentSupport && hasNavigatorSupport\n\n// Browser type sniffing\nexport const userAgent = isBrowser ? window.navigator.userAgent.toLowerCase() : ''\n\nexport const isJSDOM = userAgent.indexOf('jsdom') > 0\nexport const isIE = /msie|trident/.test(userAgent)\n\n// Determine if the browser supports the option passive for events\nexport const hasPassiveEventSupport = (() => {\n let passiveEventSupported = false\n if (isBrowser) {\n try {\n const options = {\n get passive() {\n // This function will be called when the browser\n // attempts to access the passive property.\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = true\n }\n }\n window.addEventListener('test', options, options)\n window.removeEventListener('test', options, options)\n } catch (err) {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = false\n }\n }\n return passiveEventSupported\n})()\n\nexport const hasTouchSupport =\n isBrowser && ('ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0)\n\nexport const hasPointerEventSupport =\n isBrowser && Boolean(window.PointerEvent || window.MSPointerEvent)\n\nexport const hasIntersectionObserverSupport =\n isBrowser &&\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n // Edge 15 and UC Browser lack support for `isIntersecting`\n // but we an use intersectionRatio > 0 instead\n // 'isIntersecting' in window.IntersectionObserverEntry.prototype &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype\n\n// --- Getters ---\n\nexport const getEnv = (key, fallback = null) => {\n const env = typeof process !== 'undefined' && process ? process.env || {} : {}\n if (!key) {\n /* istanbul ignore next */\n return env\n }\n return env[key] || fallback\n}\n\nexport const getNoWarn = () => getEnv('BOOTSTRAP_VUE_NO_WARN')\n","import { isBrowser, hasPromiseSupport, hasMutationObserverSupport, getNoWarn } from './env'\n\n/**\n * Log a warning message to the console with BootstrapVue formatting\n * @param {string} message\n */\nexport const warn = message => /* istanbul ignore next */ {\n if (!getNoWarn()) {\n console.warn(`[BootstrapVue warn]: ${message}`)\n }\n}\n\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\nexport const warnNotClient = source => {\n /* istanbul ignore else */\n if (isBrowser) {\n return false\n } else {\n warn(`${source}: Can not be called during SSR.`)\n return true\n }\n}\n\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\nexport const warnNoPromiseSupport = source => {\n /* istanbul ignore else */\n if (hasPromiseSupport) {\n return false\n } else {\n warn(`${source}: Requires Promise support.`)\n return true\n }\n}\n\n/**\n * Warn when no MutationObserver support is given\n * @param {string} source\n * @returns {boolean} warned\n */\nexport const warnNoMutationObserverSupport = source => {\n /* istanbul ignore else */\n if (hasMutationObserverSupport) {\n return false\n } else {\n warn(`${source}: Requires MutationObserver support.`)\n return true\n }\n}\n\n// Default export\nexport default warn\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = require('./_hide');\n","module.exports = {};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","require('../../modules/es6.array.is-array');\nmodule.exports = require('../../modules/_core').Array.isArray;\n","import fromPolyfill from 'core-js/library/fn/array/from'\nimport isArrayPolyfill from 'core-js/library/fn/array/is-array'\n\n// --- Static ---\n\nexport const from = Array.from || fromPolyfill\nexport const isArray = Array.isArray || isArrayPolyfill\n\n// --- Instance ---\n\nexport const arrayIncludes = (array, value) => array.indexOf(value) !== -1\nexport const concat = (...args) => Array.prototype.concat.apply([], args)\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","require('../../modules/es6.object.is');\nmodule.exports = require('../../modules/_core').Object.is;\n","import assignPolyfill from 'core-js/library/fn/object/assign'\nimport isPolyfill from 'core-js/library/fn/object/is'\n\n// --- Static ---\n\nexport const assign = Object.assign || assignPolyfill\nexport const getOwnPropertyNames = Object.getOwnPropertyNames\nexport const keys = Object.keys\nexport const defineProperties = Object.defineProperties\nexport const defineProperty = Object.defineProperty\nexport const freeze = Object.freeze\nexport const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nexport const getOwnPropertySymbols = Object.getOwnPropertySymbols\nexport const getPrototypeOf = Object.getPrototypeOf\nexport const create = Object.create\nexport const isFrozen = Object.isFrozen\nexport const is = Object.is || isPolyfill\n\n// --- \"Instance\" ---\n\nexport const hasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)\n\n// --- Utilities ---\n\n/**\n * Deep-freezes and object, making it immutable / read-only.\n * Returns the same object passed-in, but frozen.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nexport const deepFreeze = obj => {\n // Retrieve the property names defined on object\n const props = getOwnPropertyNames(obj)\n // Freeze properties before freezing self\n for (let prop of props) {\n let value = obj[prop]\n obj[prop] = value && isObject(value) ? deepFreeze(value) : value\n }\n return freeze(obj)\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n * Note object could be a complex type like array, date, etc.\n */\nexport const isObject = obj => obj !== null && typeof obj === 'object'\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nexport const isPlainObject = obj => Object.prototype.toString.call(obj) === '[object Object]'\n\n// @link https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\nexport const omit = (obj, props) =>\n keys(obj)\n .filter(key => props.indexOf(key) === -1)\n .reduce((result, key) => ({ ...result, [key]: obj[key] }), {})\n\nexport const readonlyDescriptor = () => ({ enumerable: true, configurable: false, writable: false })\n","/**\n * Convenience inspection utilities\n */\n\nimport { isArray } from './array'\nimport { isObject, isPlainObject } from './object'\n\nexport const toType = val => typeof val\n\nexport const toRawType = val => Object.prototype.toString.call(val).slice(8, -1)\n\nexport const toRawTypeLC = val => toRawType(val).toLowerCase()\n\nexport const isUndefined = val => val === undefined\n\nexport const isNull = val => val === null\n\nexport const isFunction = val => toType(val) === 'function'\n\nexport const isBoolean = val => toType(val) === 'boolean'\n\nexport const isString = val => toType(val) === 'string'\n\nexport const isNumber = val => toType(val) === 'number'\n\nexport const isPrimitive = val => isBoolean(val) || isString(val) || isNumber(val)\n\nexport const isDate = val => val instanceof Date\n\nexport const isRegExp = val => toRawType(val) === 'RegExp'\n\nexport const isPromise = val =>\n !isUndefined(val) && !isNull(val) && isFunction(val.then) && isFunction(val.catch)\n\n// Extra convenience named re-exports\nexport { isArray, isObject, isPlainObject }\n","import { isArray, isPlainObject } from './inspect'\nimport { keys } from './object'\n\nexport const cloneDeep = (obj, defaultValue = obj) => {\n if (isArray(obj)) {\n return obj.reduce((result, val) => [...result, cloneDeep(val, val)], [])\n }\n if (isPlainObject(obj)) {\n return keys(obj).reduce(\n (result, key) => ({ ...result, [key]: cloneDeep(obj[key], obj[key]) }),\n {}\n )\n }\n return defaultValue\n}\n\nexport default cloneDeep\n","import { isArray, isObject } from './inspect'\n\n/**\n * Get property defined by dot/array notation in string.\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @param {*} defaultValue (optional)\n * @return {*}\n */\nconst get = (obj, path, defaultValue = null) => {\n // Handle array of path values\n path = isArray(path) ? path.join('.') : path\n\n // If no path or no object passed\n if (!path || !isObject(obj)) {\n return defaultValue\n }\n\n // Handle edge case where user has dot(s) in top-level item field key\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n if (path in obj) {\n return obj[path]\n }\n\n // Handle string array notation (numeric indices only)\n path = String(path).replace(/\\[(\\d+)]/g, '.$1')\n\n const steps = path.split('.').filter(Boolean)\n\n // Handle case where someone passes a string of only dots\n if (steps.length === 0) {\n return defaultValue\n }\n\n // Traverse path in object to find result\n // We use `!=` vs `!==` to test for both `null` and `undefined`\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n return steps.every(step => isObject(obj) && step in obj && (obj = obj[step]) != null)\n ? obj\n : defaultValue\n}\n\nexport default get\n","import { deepFreeze } from './object'\n\n// General BootstrapVue configuration\n//\n// BREAKPOINT DEFINITIONS\n//\n// Some components (BCol and BFormGroup) generate props based on breakpoints, and this\n// occurs when the component is first loaded (evaluated), which may happen before the\n// config is created/modified\n//\n// To get around this we make these components async (lazy evaluation)\n// The component definition is only called/executed when the first access to the\n// component is used (and cached on subsequent uses)\n//\n// See: https://vuejs.org/v2/guide/components-dynamic-async.html#Async-Components\n//\n// PROP DEFAULTS\n//\n// For default values on props, we use the default value factory function approach so\n// so that the default values are pulled in at each component instantiation\n//\n// props: {\n// variant: {\n// type: String,\n// default: () => getConfigComponent('BAlert', 'variant')\n// }\n// }\n\n// prettier-ignore\nexport default deepFreeze({\n // Breakpoints\n breakpoints: ['xs', 'sm', 'md', 'lg', 'xl'],\n\n // Component Specific defaults are keyed by the component\n // name (PascalCase) and prop name (camelCase)\n BAlert: {\n dismissLabel: 'Close',\n variant: 'info'\n },\n BBadge: {\n variant: 'secondary'\n },\n BButton: {\n variant: 'secondary'\n },\n BButtonClose: {\n // `textVariant` is `null` to inherit the current text color\n textVariant: null,\n ariaLabel: 'Close'\n },\n BCardSubTitle: {\n // BCard and BCardBody also inherit this prop\n subTitleTextVariant: 'muted'\n },\n BCarousel: {\n labelPrev: 'Previous Slide',\n labelNext: 'Next Slide',\n labelGotoSlide: 'Goto Slide',\n labelIndicators: 'Select a slide to display'\n },\n BDropdown: {\n toggleText: 'Toggle Dropdown',\n variant: 'secondary',\n splitVariant: null\n },\n BFormFile: {\n browseText: 'Browse',\n // Chrome default file prompt\n placeholder: 'No file chosen',\n dropPlaceholder: 'Drop files here'\n },\n BFormText: {\n textVariant: 'muted'\n },\n BImg: {\n blankColor: 'transparent'\n },\n BImgLazy: {\n blankColor: 'transparent'\n },\n BJumbotron: {\n bgVariant: null,\n borderVariant: null,\n textVariant: null\n },\n BListGroupItem: {\n variant: null\n },\n BModal: {\n titleTag: 'h5',\n size: 'md',\n headerBgVariant: null,\n headerBorderVariant: null,\n headerTextVariant: null,\n headerCloseVariant: null,\n bodyBgVariant: null,\n bodyTextVariant: null,\n footerBgVariant: null,\n footerBorderVariant: null,\n footerTextVariant: null,\n cancelTitle: 'Cancel',\n cancelVariant: 'secondary',\n okTitle: 'OK',\n okVariant: 'primary',\n headerCloseLabel: 'Close'\n },\n BNavbar: {\n variant: null\n },\n BNavbarToggle: {\n label: 'Toggle navigation'\n },\n BProgress: {\n variant: null\n },\n BProgressBar: {\n variant: null\n },\n BSpinner: {\n variant: null\n },\n BTable: {\n selectedVariant: 'primary',\n headVariant: null,\n footVariant: null\n },\n BToast: {\n toaster: 'b-toaster-top-right',\n autoHideDelay: 5000,\n variant: null,\n toastClass: null,\n headerClass: null,\n bodyClass: null,\n solid: false\n },\n BToaster: {\n ariaLive: null,\n ariaAtomic: null,\n role: null\n },\n BTooltip: {\n delay: 0,\n boundary: 'scrollParent',\n boundaryPadding: 5\n },\n BPopover: {\n delay: 0,\n boundary: 'scrollParent',\n boundaryPadding: 5\n }\n})\n","import OurVue from './vue'\nimport cloneDeep from './clone-deep'\nimport get from './get'\nimport warn from './warn'\nimport { isArray, isPlainObject, isString, isUndefined } from './inspect'\nimport { getOwnPropertyNames, hasOwnProperty } from './object'\nimport DEFAULTS from './config-defaults'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvConfig'\n\n// Config manager class\nclass BvConfig {\n constructor() {\n // TODO: pre-populate with default config values (needs updated tests)\n // this.$_config = cloneDeep(DEFAULTS)\n this.$_config = {}\n this.$_cachedBreakpoints = null\n }\n\n static get Defaults() /* istanbul ignore next */ {\n return DEFAULTS\n }\n\n get defaults() /* istanbul ignore next */ {\n return DEFAULTS\n }\n\n // Returns the defaults\n getDefaults() /* istanbul ignore next */ {\n return this.defaults\n }\n\n // Method to merge in user config parameters\n setConfig(config = {}) {\n if (!isPlainObject(config)) {\n /* istanbul ignore next */\n return\n }\n const configKeys = getOwnPropertyNames(config)\n for (let cmpName of configKeys) {\n /* istanbul ignore next */\n if (!hasOwnProperty(DEFAULTS, cmpName)) {\n warn(`config: unknown config property \"${cmpName}\"`)\n return\n }\n const cmpConfig = config[cmpName]\n if (cmpName === 'breakpoints') {\n // Special case for breakpoints\n const breakpoints = config.breakpoints\n /* istanbul ignore if */\n if (\n !isArray(breakpoints) ||\n breakpoints.length < 2 ||\n breakpoints.some(b => !isString(b) || b.length === 0)\n ) {\n warn('config: \"breakpoints\" must be an array of at least 2 breakpoint names')\n } else {\n this.$_config.breakpoints = cloneDeep(breakpoints)\n }\n } else if (isPlainObject(cmpConfig)) {\n // Component prop defaults\n const props = getOwnPropertyNames(cmpConfig)\n for (let prop of props) {\n /* istanbul ignore if */\n if (!hasOwnProperty(DEFAULTS[cmpName], prop)) {\n warn(`config: unknown config property \"${cmpName}.{$prop}\"`)\n } else {\n // TODO: If we pre-populate the config with defaults, we can skip this line\n this.$_config[cmpName] = this.$_config[cmpName] || {}\n if (!isUndefined(cmpConfig[prop])) {\n this.$_config[cmpName][prop] = cloneDeep(cmpConfig[prop])\n }\n }\n }\n }\n }\n }\n\n // Clear the config. For testing purposes only\n resetConfig() {\n this.$_config = {}\n }\n\n // Returns a deep copy of the user config\n getConfig() {\n return cloneDeep(this.$_config)\n }\n\n getConfigValue(key) {\n // First we try the user config, and if key not found we fall back to default value\n // NOTE: If we deep clone DEFAULTS into config, then we can skip the fallback for get\n return cloneDeep(get(this.$_config, key, get(DEFAULTS, key)))\n }\n}\n\n// Method for applying a global config\nexport const setConfig = (config = {}, Vue = OurVue) => {\n // Ensure we have a $bvConfig Object on the Vue prototype.\n // We set on Vue and OurVue just in case consumer has not set an alias of `vue`.\n Vue.prototype[PROP_NAME] = OurVue.prototype[PROP_NAME] =\n Vue.prototype[PROP_NAME] || OurVue.prototype[PROP_NAME] || new BvConfig()\n // Apply the config values\n Vue.prototype[PROP_NAME].setConfig(config)\n}\n\n// Method for resetting the user config. Exported for testing purposes only.\nexport const resetConfig = () => {\n if (OurVue.prototype[PROP_NAME] && OurVue.prototype[PROP_NAME].resetConfig) {\n OurVue.prototype[PROP_NAME].resetConfig()\n }\n}\n","import OurVue from './vue'\nimport warn from './warn'\nimport { setConfig } from './config-set'\nimport { hasWindowSupport, isJSDOM } from './env'\n\n/**\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\n * @param {object} Vue\n */\nexport const checkMultipleVue = (() => {\n let checkMultipleVueWarned = false\n\n const MULTIPLE_VUE_WARNING = [\n 'Multiple instances of Vue detected!',\n 'You may need to set up an alias for Vue in your bundler config.',\n 'See: https://bootstrap-vue.js.org/docs#using-module-bundlers'\n ].join('\\n')\n\n return Vue => {\n /* istanbul ignore next */\n if (!checkMultipleVueWarned && OurVue !== Vue && !isJSDOM) {\n warn(MULTIPLE_VUE_WARNING)\n }\n checkMultipleVueWarned = true\n }\n})()\n\n/**\n * Plugin install factory function.\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\nexport const installFactory = ({ components, directives, plugins } = {}) => {\n const install = (Vue, config = {}) => {\n if (install.installed) {\n /* istanbul ignore next */\n return\n }\n install.installed = true\n checkMultipleVue(Vue)\n setConfig(config, Vue)\n registerComponents(Vue, components)\n registerDirectives(Vue, directives)\n registerPlugins(Vue, plugins)\n }\n\n install.installed = false\n\n return install\n}\n\n/**\n * Plugin object factory function.\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\nexport const pluginFactory = (opts = {}, extend = {}) => {\n return {\n ...extend,\n install: installFactory(opts)\n }\n}\n\n/**\n * Load a group of plugins.\n * @param {object} Vue\n * @param {object} Plugin definitions\n */\nexport const registerPlugins = (Vue, plugins = {}) => {\n for (let plugin in plugins) {\n if (plugin && plugins[plugin]) {\n Vue.use(plugins[plugin])\n }\n }\n}\n\n/**\n * Load a component.\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\nexport const registerComponent = (Vue, name, def) => {\n if (Vue && name && def) {\n Vue.component(name, def)\n }\n}\n\n/**\n * Load a group of components.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\nexport const registerComponents = (Vue, components = {}) => {\n for (let component in components) {\n registerComponent(Vue, component, components[component])\n }\n}\n\n/**\n * Load a directive.\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\nexport const registerDirective = (Vue, name, def) => {\n if (Vue && name && def) {\n // Ensure that any leading V is removed from the\n // name, as Vue adds it automatically\n Vue.directive(name.replace(/^VB/, 'B'), def)\n }\n}\n\n/**\n * Load a group of directives.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\nexport const registerDirectives = (Vue, directives = {}) => {\n for (let directive in directives) {\n registerDirective(Vue, directive, directives[directive])\n }\n}\n\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\nexport const vueUse = VuePlugin => {\n /* istanbul ignore next */\n if (hasWindowSupport && window.Vue) {\n window.Vue.use(VuePlugin)\n }\n}\n","import { create } from './object'\n\nconst memoize = fn => {\n const cache = create(null)\n\n return (...args) => {\n const argsKey = JSON.stringify(args)\n return (cache[argsKey] = cache[argsKey] || fn.apply(null, args))\n }\n}\n\nexport default memoize\n","import Vue from './vue'\nimport cloneDeep from './clone-deep'\nimport get from './get'\nimport memoize from './memoize'\nimport DEFAULTS from './config-defaults'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvConfig'\nconst VueProto = Vue.prototype\n\n// --- Getter methods ---\n// All methods return a deep clone (immutable) copy of the config\n// value, to prevent mutation of the user config object.\n\n// Get the current user config. For testing purposes only\nexport const getConfig = () => {\n return VueProto[PROP_NAME] ? VueProto[PROP_NAME].getConfig() : {}\n}\n\n// Method to grab a config value based on a dotted/array notation key\nexport const getConfigValue = key => {\n return VueProto[PROP_NAME]\n ? VueProto[PROP_NAME].getConfigValue(key)\n : cloneDeep(get(DEFAULTS, key))\n}\n\n// Method to grab a config value for a particular component\nexport const getComponentConfig = (cmpName, key = null) => {\n // Return the particular config value for key for if specified,\n // otherwise we return the full config (or an empty object if not found)\n return key ? getConfigValue(`${cmpName}.${key}`) : getConfigValue(cmpName) || {}\n}\n\n// Convenience method for getting all breakpoint names\nexport const getBreakpoints = () => {\n return getConfigValue('breakpoints')\n}\n\n// Private function for caching / locking-in breakpoint names\nconst _getBreakpointsCached = memoize(() => {\n return getBreakpoints()\n})\n\n// Convenience method for getting all breakpoint names.\n// Caches the results after first access.\nexport const getBreakpointsCached = () => {\n return cloneDeep(_getBreakpointsCached())\n}\n\n// Convenience method for getting breakpoints with\n// the smallest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\nexport const getBreakpointsUp = () => {\n const breakpoints = getBreakpoints()\n breakpoints[0] = ''\n return breakpoints\n}\n\n// Convenience method for getting breakpoints with\n// the smallest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n// Caches the results after first access.\nexport const getBreakpointsUpCached = memoize(() => {\n const breakpoints = getBreakpointsCached()\n breakpoints[0] = ''\n return breakpoints\n})\n\n// Convenience method for getting breakpoints with\n// the largest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\nexport const getBreakpointsDown = () => {\n const breakpoints = getBreakpoints()\n breakpoints[breakpoints.length - 1] = ''\n return breakpoints\n}\n\n// Convenience method for getting breakpoints with\n// the largest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n// Caches the results after first access.\n/* istanbul ignore next: we don't use this method anywhere, yet */\nexport const getBreakpointsDownCached = () => /* istanbul ignore next */ {\n const breakpoints = getBreakpointsCached()\n breakpoints[breakpoints.length - 1] = ''\n return breakpoints\n}\n","import { from as arrayFrom } from './array'\nimport { hasWindowSupport, hasDocumentSupport, hasPassiveEventSupport } from './env'\nimport { isFunction, isNull, isObject } from '../utils/inspect'\n\n// --- Constants ---\n\nconst w = hasWindowSupport ? window : {}\nconst d = hasDocumentSupport ? document : {}\nconst elProto = typeof Element !== 'undefined' ? Element.prototype : {}\n\n// --- Normalization utils ---\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n/* istanbul ignore next */\nexport const matchesEl =\n elProto.matches || elProto.msMatchesSelector || elProto.webkitMatchesSelector\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n/* istanbul ignore next */\nexport const closestEl =\n elProto.closest ||\n function(sel) /* istanbul ignore next */ {\n let el = this\n do {\n // Use our \"patched\" matches function\n if (matches(el, sel)) {\n return el\n }\n el = el.parentElement || el.parentNode\n } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE)\n return null\n }\n\n// `requestAnimationFrame()` convenience method\n// We don't have a version for cancelAnimationFrame, but we don't call it anywhere\nexport const requestAF =\n w.requestAnimationFrame ||\n w.webkitRequestAnimationFrame ||\n w.mozRequestAnimationFrame ||\n w.msRequestAnimationFrame ||\n w.oRequestAnimationFrame ||\n (cb => {\n // Fallback, but not a true polyfill\n // All browsers we support (other than Opera Mini) support\n // `requestAnimationFrame()` without a polyfill\n /* istanbul ignore next */\n return setTimeout(cb, 16)\n })\n\nexport const MutationObs =\n w.MutationObserver || w.WebKitMutationObserver || w.MozMutationObserver || null\n\n// --- Utils ---\n\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\nexport const parseEventOptions = options => {\n /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n if (hasPassiveEventSupport) {\n return isObject(options) ? options : { useCapture: Boolean(options || false) }\n } else {\n // Need to translate to actual Boolean value\n return Boolean(isObject(options) ? options.useCapture : options)\n }\n}\n\n// Attach an event listener to an element\nexport const eventOn = (el, evtName, handler, options) => {\n if (el && el.addEventListener) {\n el.addEventListener(evtName, handler, parseEventOptions(options))\n }\n}\n\n// Remove an event listener from an element\nexport const eventOff = (el, evtName, handler, options) => {\n if (el && el.removeEventListener) {\n el.removeEventListener(evtName, handler, parseEventOptions(options))\n }\n}\n\n// Determine if an element is an HTML Element\nexport const isElement = el => Boolean(el && el.nodeType === Node.ELEMENT_NODE)\n\n// Determine if an HTML element is visible - Faster than CSS check\nexport const isVisible = el => {\n if (!isElement(el) || !contains(d.body, el)) {\n return false\n }\n if (el.style.display === 'none') {\n // We do this check to help with vue-test-utils when using v-show\n /* istanbul ignore next */\n return false\n }\n // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n // So any tests that need isVisible will fail in JSDOM\n // Except when we override the getBCR prototype in some tests\n const bcr = getBCR(el)\n return Boolean(bcr && bcr.height > 0 && bcr.width > 0)\n}\n\n// Determine if an element is disabled\nexport const isDisabled = el =>\n !isElement(el) || el.disabled || Boolean(getAttr(el, 'disabled')) || hasClass(el, 'disabled')\n\n// Cause/wait-for an element to reflow it's content (adjusting it's height/width)\nexport const reflow = el => {\n // Requesting an elements offsetHight will trigger a reflow of the element content\n /* istanbul ignore next: reflow doesn't happen in JSDOM */\n return isElement(el) && el.offsetHeight\n}\n\n// Select all elements matching selector. Returns `[]` if none found\nexport const selectAll = (selector, root) =>\n arrayFrom((isElement(root) ? root : d).querySelectorAll(selector))\n\n// Select a single element, returns `null` if not found\nexport const select = (selector, root) =>\n (isElement(root) ? root : d).querySelector(selector) || null\n\n// Determine if an element matches a selector\nexport const matches = (el, selector) => {\n if (!isElement(el)) {\n return false\n }\n return matchesEl.call(el, selector)\n}\n\n// Finds closest element matching selector. Returns `null` if not found\nexport const closest = (selector, root) => {\n if (!isElement(root)) {\n return null\n }\n const el = closestEl.call(root, selector)\n // Emulate jQuery closest and return `null` if match is the passed in element (root)\n return el === root ? null : el\n}\n\n// Returns true if the parent element contains the child element\nexport const contains = (parent, child) => {\n if (!parent || !isFunction(parent.contains)) {\n return false\n }\n return parent.contains(child)\n}\n\n// Get an element given an ID\nexport const getById = id => d.getElementById(/^#/.test(id) ? id.slice(1) : id) || null\n\n// Add a class to an element\nexport const addClass = (el, className) => {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.add(className)\n }\n}\n\n// Remove a class from an element\nexport const removeClass = (el, className) => {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.remove(className)\n }\n}\n\n// Test if an element has a class\nexport const hasClass = (el, className) => {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n return el.classList.contains(className)\n }\n return false\n}\n\n// Set an attribute on an element\nexport const setAttr = (el, attr, value) => {\n if (attr && isElement(el)) {\n el.setAttribute(attr, value)\n }\n}\n\n// Remove an attribute from an element\nexport const removeAttr = (el, attr) => {\n if (attr && isElement(el)) {\n el.removeAttribute(attr)\n }\n}\n\n// Get an attribute value from an element\n// Returns `null` if not found\nexport const getAttr = (el, attr) => (attr && isElement(el) ? el.getAttribute(attr) : null)\n\n// Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\nexport const hasAttr = (el, attr) => (attr && isElement(el) ? el.hasAttribute(attr) : null)\n\n// Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\nexport const getBCR = el => (isElement(el) ? el.getBoundingClientRect() : null)\n\n// Get computed style object for an element\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\nexport const getCS = el => (hasWindowSupport && isElement(el) ? w.getComputedStyle(el) : {})\n\n// Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\nexport const offset = el => /* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */ {\n let _offset = { top: 0, left: 0 }\n if (!isElement(el) || el.getClientRects().length === 0) {\n return _offset\n }\n const bcr = getBCR(el)\n if (bcr) {\n const win = el.ownerDocument.defaultView\n _offset.top = bcr.top + win.pageYOffset\n _offset.left = bcr.left + win.pageXOffset\n }\n return _offset\n}\n\n// Return an element's offset with respect to to it's offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\nexport const position = el => /* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */ {\n let _offset = { top: 0, left: 0 }\n if (!isElement(el)) {\n return _offset\n }\n let parentOffset = { top: 0, left: 0 }\n const elStyles = getCS(el)\n if (elStyles.position === 'fixed') {\n _offset = getBCR(el) || _offset\n } else {\n _offset = offset(el)\n const doc = el.ownerDocument\n let offsetParent = el.offsetParent || doc.documentElement\n while (\n offsetParent &&\n (offsetParent === doc.body || offsetParent === doc.documentElement) &&\n getCS(offsetParent).position === 'static'\n ) {\n offsetParent = offsetParent.parentNode\n }\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n parentOffset = offset(offsetParent)\n const offsetParentStyles = getCS(offsetParent)\n parentOffset.top += parseFloat(offsetParentStyles.borderTopWidth)\n parentOffset.left += parseFloat(offsetParentStyles.borderLeftWidth)\n }\n }\n return {\n top: _offset.top - parentOffset.top - parseFloat(elStyles.marginTop),\n left: _offset.left - parentOffset.left - parseFloat(elStyles.marginLeft)\n }\n}\n","// Generic Bootstrap V4 fade (no-fade) transition component\n\nimport Vue from './vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { isPlainObject } from './inspect'\n\nconst NO_FADE_PROPS = {\n name: '',\n enterClass: '',\n enterActiveClass: '',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: '',\n leaveToClass: ''\n}\n\nconst FADE_PROPS = {\n ...NO_FADE_PROPS,\n enterActiveClass: 'fade',\n leaveActiveClass: 'fade'\n}\n\nexport const BVTransition = /*#__PURE__*/ Vue.extend({\n name: 'BVTransition',\n functional: true,\n props: {\n noFade: {\n // Only applicable to the built in transition\n // Has no effect if `trans-props` provided\n type: Boolean,\n default: false\n },\n mode: {\n type: String\n // default: undefined\n },\n // For user supplied transitions (if needed)\n transProps: {\n type: Object,\n default: null\n }\n },\n render(h, { children, data, listeners, props }) {\n let transProps = props.transProps\n if (!isPlainObject(transProps)) {\n transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS\n }\n transProps = {\n mode: props.mode,\n ...transProps,\n // We always need `css` true\n css: true\n }\n return h(\n 'transition',\n // Any listeners will get merged here\n mergeData(data, { props: transProps }),\n children\n )\n }\n})\n\nexport default BVTransition\n","import { isFunction } from './inspect'\n\n// Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot eists\n *\n * @param {String} name\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} vNodes\n */\nconst hasNormalizedSlot = (name, $scopedSlots = {}, $slots = {}) => {\n // Returns true if the either a $scopedSlot or $slot exists with the specified name\n return Boolean($scopedSlots[name] || $slots[name])\n}\n\n/**\n * Returns vNodes for named slot either scoped or unscoped\n *\n * @param {String} name\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} vNodes\n */\nconst normalizeSlot = (name, scope = {}, $scopedSlots = {}, $slots = {}) => {\n // Note: in Vue 2.6.x, all names slots are also scoped slots\n const slot = $scopedSlots[name] || $slots[name]\n return isFunction(slot) ? slot(scope) : slot\n}\n\n// Named exports\nexport { hasNormalizedSlot, normalizeSlot }\n\n// Default export (backwards compatability)\nexport default normalizeSlot\n","import { hasNormalizedSlot, normalizeSlot } from '../utils/normalize-slot'\nimport { concat } from '../utils/array'\n\nexport default {\n methods: {\n hasNormalizedSlot(name) {\n // Returns true if the either a $scopedSlot or $slot exists with the specified name\n return hasNormalizedSlot(name, this.$scopedSlots, this.$slots)\n },\n normalizeSlot(name, scope = {}) {\n // Returns an array of rendered vNodes if slot found.\n // Returns undefined if not found.\n const vNodes = normalizeSlot(name, scope, this.$scopedSlots, this.$slots)\n return vNodes ? concat(vNodes) : vNodes\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\n\nconst NAME = 'BButtonClose'\n\nconst props = {\n disabled: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: () => getComponentConfig(NAME, 'ariaLabel')\n },\n textVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'textVariant')\n }\n}\n\n// @vue/component\nexport const BButtonClose = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props,\n render(h, { props, data, listeners, slots, scopedSlots }) {\n const $slots = slots()\n const $scopedSlots = scopedSlots || {}\n\n const componentData = {\n staticClass: 'close',\n class: {\n [`text-${props.textVariant}`]: props.textVariant\n },\n attrs: {\n type: 'button',\n disabled: props.disabled,\n 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n },\n on: {\n click(e) {\n // Ensure click on button HTML content is also disabled\n /* istanbul ignore if: bug in JSDOM still emits click on inner element */\n if (props.disabled && e instanceof Event) {\n e.stopPropagation()\n e.preventDefault()\n }\n }\n }\n }\n // Careful not to override the default slot with innerHTML\n if (!hasNormalizedSlot('default', $scopedSlots, $slots)) {\n componentData.domProps = { innerHTML: '×' }\n }\n return h(\n 'button',\n mergeData(data, componentData),\n normalizeSlot('default', {}, $scopedSlots, $slots)\n )\n }\n})\n\nexport default BButtonClose\n","import Vue from '../../utils/vue'\nimport { getComponentConfig } from '../../utils/config'\nimport { requestAF } from '../../utils/dom'\nimport { isBoolean } from '../../utils/inspect'\nimport BVTransition from '../../utils/bv-transition'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BButtonClose } from '../button/button-close'\n\nconst NAME = 'BAlert'\n\n// Convert `show` value to a number\nconst parseCountDown = show => {\n if (show === '' || isBoolean(show)) {\n return 0\n }\n show = parseInt(show, 10)\n return show > 0 ? show : 0\n}\n\n// Convert `show` value to a boolean\nconst parseShow = show => {\n if (show === '' || show === true) {\n return true\n }\n if (parseInt(show, 10) < 1) {\n // Boolean will always return false for the above comparison\n return false\n }\n return Boolean(show)\n}\n\n// Is a value number like (i.e. a number or a number as string)\nconst isNumericLike = value => !isNaN(parseInt(value, 10))\n\n// @vue/component\nexport const BAlert = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [normalizeSlotMixin],\n model: {\n prop: 'show',\n event: 'input'\n },\n props: {\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n dismissible: {\n type: Boolean,\n default: false\n },\n dismissLabel: {\n type: String,\n default: () => getComponentConfig(NAME, 'dismissLabel')\n },\n show: {\n type: [Boolean, Number, String],\n default: false\n },\n fade: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n countDownTimerId: null,\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this.show)\n }\n },\n watch: {\n show(newVal) {\n this.countDown = parseCountDown(newVal)\n this.localShow = parseShow(newVal)\n },\n countDown(newVal) {\n this.clearTimer()\n if (isNumericLike(this.show)) {\n // Ignore if this.show transitions to a boolean value.\n this.$emit('dismiss-count-down', newVal)\n if (this.show !== newVal) {\n // Update the v-model if needed\n this.$emit('input', newVal)\n }\n if (newVal > 0) {\n this.localShow = true\n this.countDownTimerId = setTimeout(() => {\n this.countDown--\n }, 1000)\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(() => {\n requestAF(() => {\n this.localShow = false\n })\n })\n }\n }\n },\n localShow(newVal) {\n if (!newVal && (this.dismissible || isNumericLike(this.show))) {\n // Only emit dismissed events for dismissible or auto dismissing alerts\n this.$emit('dismissed')\n }\n if (!isNumericLike(this.show) && this.show !== newVal) {\n // Only emit booleans if we weren't passed a number via `this.show`\n this.$emit('input', newVal)\n }\n }\n },\n created() {\n this.countDown = parseCountDown(this.show)\n this.localShow = parseShow(this.show)\n },\n mounted() {\n this.countDown = parseCountDown(this.show)\n this.localShow = parseShow(this.show)\n },\n beforeDestroy() {\n this.clearTimer()\n },\n methods: {\n dismiss() {\n this.clearTimer()\n this.countDown = 0\n this.localShow = false\n },\n clearTimer() {\n if (this.countDownTimerId) {\n clearInterval(this.countDownTimerId)\n this.countDownTimerId = null\n }\n }\n },\n render(h) {\n let $alert // undefined\n if (this.localShow) {\n let $dismissBtn = h(false)\n if (this.dismissible) {\n // Add dismiss button\n $dismissBtn = h(\n BButtonClose,\n { attrs: { 'aria-label': this.dismissLabel }, on: { click: this.dismiss } },\n [this.normalizeSlot('dismiss')]\n )\n }\n $alert = h(\n 'div',\n {\n key: this._uid,\n staticClass: 'alert',\n class: {\n 'alert-dismissible': this.dismissible,\n [`alert-${this.variant}`]: this.variant\n },\n attrs: { role: 'alert', 'aria-live': 'polite', 'aria-atomic': true }\n },\n [$dismissBtn, this.normalizeSlot('default')]\n )\n $alert = [$alert]\n }\n return h(BVTransition, { props: { noFade: !this.fade } }, $alert)\n }\n})\n\nexport default BAlert\n","import { BAlert } from './alert'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst AlertPlugin = /*#__PURE__*/ pluginFactory({\n components: { BAlert }\n})\n\nexport { AlertPlugin, BAlert }\n\nexport default AlertPlugin\n","const identity = x => x\n\nexport default identity\n","import identity from './identity'\nimport { isArray } from './inspect'\nimport { keys } from './object'\n\n/**\n * Given an array of properties or an object of property keys,\n * plucks all the values off the target object, returning a new object\n * that has props that reference the original prop values\n *\n * @param {{}|string[]} keysToPluck\n * @param {{}} objToPluck\n * @param {Function} transformFn\n * @return {{}}\n */\nconst pluckProps = (keysToPluck, objToPluck, transformFn = identity) => {\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce((memo, prop) => {\n memo[transformFn(prop)] = objToPluck[prop]\n return memo\n }, {})\n}\n\nexport default pluckProps\n","import { isArray, isNull, isPlainObject, isUndefined } from './inspect'\n\n/**\n * Convert a value to a string that can be rendered.\n */\nconst toString = (val, spaces = 2) => {\n return isUndefined(val) || isNull(val)\n ? ''\n : isArray(val) || (isPlainObject(val) && val.toString === Object.prototype.toString)\n ? JSON.stringify(val, null, spaces)\n : String(val)\n}\n\nexport default toString\n","import toString from './to-string'\nimport { isArray, isNull, isPlainObject, isString, isUndefined } from './inspect'\nimport { keys } from './object'\n\nconst ANCHOR_TAG = 'a'\n\n// Precompile RegExp\nconst commaRE = /%2C/g\nconst encodeReserveRE = /[!'()*]/g\n// Method to replace reserved chars\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16)\n\n// Fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nconst encode = str =>\n encodeURIComponent(toString(str))\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ',')\n\nconst decode = decodeURIComponent\n\n// Stringifies an object of query parameters\n// See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js\nexport const stringifyQueryObj = obj => {\n if (!isPlainObject(obj)) {\n return ''\n }\n\n const query = keys(obj)\n .map(key => {\n const val = obj[key]\n if (isUndefined(val)) {\n return ''\n } else if (isNull(val)) {\n return encode(key)\n } else if (isArray(val)) {\n return val\n .reduce((results, val2) => {\n if (isNull(val2)) {\n results.push(encode(key))\n } else if (!isUndefined(val2)) {\n // Faster than string interpolation\n results.push(encode(key) + '=' + encode(val2))\n }\n return results\n }, [])\n .join('&')\n }\n // Faster than string interpolation\n return encode(key) + '=' + encode(val)\n })\n /* must check for length, as we only want to filter empty strings, not things that look falsey! */\n .filter(x => x.length > 0)\n .join('&')\n\n return query ? `?${query}` : ''\n}\n\nexport const parseQuery = query => {\n const parsed = {}\n query = toString(query)\n .trim()\n .replace(/^(\\?|#|&)/, '')\n\n if (!query) {\n return parsed\n }\n\n query.split('&').forEach(param => {\n const parts = param.replace(/\\+/g, ' ').split('=')\n const key = decode(parts.shift())\n const val = parts.length > 0 ? decode(parts.join('=')) : null\n\n if (isUndefined(parsed[key])) {\n parsed[key] = val\n } else if (isArray(parsed[key])) {\n parsed[key].push(val)\n } else {\n parsed[key] = [parsed[key], val]\n }\n })\n\n return parsed\n}\n\nexport const isRouterLink = tag => tag !== ANCHOR_TAG\n\nexport const computeTag = ({ to, disabled } = {}, thisOrParent) => {\n return thisOrParent.$router && to && !disabled\n ? thisOrParent.$nuxt\n ? 'nuxt-link'\n : 'router-link'\n : ANCHOR_TAG\n}\n\nexport const computeRel = ({ target, rel } = {}) => {\n if (target === '_blank' && isNull(rel)) {\n return 'noopener'\n }\n return rel || null\n}\n\nexport const computeHref = (\n { href, to } = {},\n tag = ANCHOR_TAG,\n fallback = '#',\n toFallback = '/'\n) => {\n // We've already checked the $router in computeTag(), so isRouterLink() indicates a live router.\n // When deferring to Vue Router's router-link, don't use the href attribute at all.\n // We return null, and then remove href from the attributes passed to router-link\n if (isRouterLink(tag)) {\n return null\n }\n\n // Return `href` when explicitly provided\n if (href) {\n return href\n }\n\n // Reconstruct `href` when `to` used, but no router\n if (to) {\n // Fallback to `to` prop (if `to` is a string)\n if (isString(to)) {\n return to || toFallback\n }\n // Fallback to `to.path + to.query + to.hash` prop (if `to` is an object)\n if (isPlainObject(to) && (to.path || to.query || to.hash)) {\n const path = toString(to.path)\n const query = stringifyQueryObj(to.query)\n let hash = toString(to.hash)\n hash = !hash || hash.charAt(0) === '#' ? hash : `#${hash}`\n return `${path}${query}${hash}` || toFallback\n }\n }\n\n // If nothing is provided return the fallback\n return fallback\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { arrayIncludes, concat } from '../../utils/array'\nimport { isFunction } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\nimport { isRouterLink, computeTag, computeRel, computeHref } from '../../utils/router'\n\n/**\n * The Link component is used in many other BV components.\n * As such, sharing its props makes supporting all its features easier.\n * However, some components need to modify the defaults for their own purpose.\n * Prefer sharing a fresh copy of the props to ensure mutations\n * do not affect other component references to the props.\n *\n * https://github.com/vuejs/vue-router/blob/dev/src/components/link.js\n * @return {{}}\n */\nexport const propsFactory = () => {\n return {\n href: {\n type: String,\n default: null\n },\n rel: {\n type: String,\n default: null\n },\n target: {\n type: String,\n default: '_self'\n },\n active: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n // router-link specific props\n to: {\n type: [String, Object],\n default: null\n },\n append: {\n type: Boolean,\n default: false\n },\n replace: {\n type: Boolean,\n default: false\n },\n event: {\n type: [String, Array],\n default: 'click'\n },\n activeClass: {\n type: String\n // default: undefined\n },\n exact: {\n type: Boolean,\n default: false\n },\n exactActiveClass: {\n type: String\n // default: undefined\n },\n routerTag: {\n type: String,\n default: 'a'\n },\n // nuxt-link specific prop(s)\n noPrefetch: {\n type: Boolean,\n default: false\n }\n }\n}\n\nexport const props = propsFactory()\n\n// Return a fresh copy of <b-link> props\n// Containing only the specified prop(s)\nexport const pickLinkProps = propsToPick => {\n const freshLinkProps = propsFactory()\n // Normalize everything to array.\n propsToPick = concat(propsToPick)\n\n return keys(freshLinkProps).reduce((memo, prop) => {\n if (arrayIncludes(propsToPick, prop)) {\n memo[prop] = freshLinkProps[prop]\n }\n\n return memo\n }, {})\n}\n\n// Return a fresh copy of <b-link> props\n// Keeping all but the specified omitting prop(s)\nexport const omitLinkProps = propsToOmit => {\n const freshLinkProps = propsFactory()\n // Normalize everything to array.\n propsToOmit = concat(propsToOmit)\n\n return keys(props).reduce((memo, prop) => {\n if (!arrayIncludes(propsToOmit, prop)) {\n memo[prop] = freshLinkProps[prop]\n }\n\n return memo\n }, {})\n}\n\nconst clickHandlerFactory = ({ disabled, tag, href, suppliedHandler, parent }) => {\n return function onClick(evt) {\n if (disabled && evt instanceof Event) {\n // Stop event from bubbling up.\n evt.stopPropagation()\n // Kill the event loop attached to this specific EventTarget.\n // Needed to prevent vue-router for doing its thing\n evt.stopImmediatePropagation()\n } else {\n if (isRouterLink(tag) && evt.currentTarget.__vue__) {\n // Router links do not emit instance 'click' events, so we\n // add in an $emit('click', evt) on it's vue instance\n /* istanbul ignore next: difficult to test, but we know it works */\n evt.currentTarget.__vue__.$emit('click', evt)\n }\n // Call the suppliedHandler(s), if any provided\n concat(suppliedHandler)\n .filter(h => isFunction(h))\n .forEach(handler => {\n handler(...arguments)\n })\n parent.$root.$emit('clicked::link', evt)\n }\n\n if ((!isRouterLink(tag) && href === '#') || disabled) {\n // Stop scroll-to-top behavior or navigation on regular links\n // when href is just '#'\n evt.preventDefault()\n }\n }\n}\n\n// @vue/component\nexport const BLink = /*#__PURE__*/ Vue.extend({\n name: 'BLink',\n functional: true,\n props: propsFactory(),\n render(h, { props, data, parent, children }) {\n const tag = computeTag(props, parent)\n const rel = computeRel(props)\n const href = computeHref(props, tag)\n const eventType = isRouterLink(tag) ? 'nativeOn' : 'on'\n const suppliedHandler = (data[eventType] || {}).click\n const handlers = {\n click: clickHandlerFactory({ tag, href, disabled: props.disabled, suppliedHandler, parent })\n }\n\n const componentData = mergeData(data, {\n class: { active: props.active, disabled: props.disabled },\n attrs: {\n rel,\n target: props.target,\n tabindex: props.disabled ? '-1' : data.attrs ? data.attrs.tabindex : null,\n 'aria-disabled': props.disabled ? 'true' : null\n },\n props: { ...props, tag: props.routerTag }\n })\n\n // If href attribute exists on router-link (even undefined or null) it fails working on SSR\n // So we explicitly add it here if needed (i.e. if computeHref() is truthy)\n if (href) {\n componentData.attrs.href = href\n } else {\n // Ensure the prop HREF does not exist for router links\n delete componentData.props.href\n }\n\n // We want to overwrite any click handler since our callback\n // will invoke the user supplied handler if !props.disabled\n componentData[eventType] = { ...(componentData[eventType] || {}), ...handlers }\n\n return h(tag, componentData, children)\n }\n})\n\nexport default BLink\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport pluckProps from '../../utils/pluck-props'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nconst NAME = 'BBadge'\n\nlet linkProps = linkPropsFactory()\ndelete linkProps.href.default\ndelete linkProps.to.default\n\nexport const props = {\n ...linkProps,\n tag: {\n type: String,\n default: 'span'\n },\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n pill: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BBadge = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props,\n render(h, { props, data, children }) {\n const tag = !props.href && !props.to ? props.tag : BLink\n\n const componentData = {\n staticClass: 'badge',\n class: [\n props.variant ? `badge-${props.variant}` : 'badge-secondary',\n {\n 'badge-pill': Boolean(props.pill),\n active: props.active,\n disabled: props.disabled\n }\n ],\n props: pluckProps(linkProps, props)\n }\n\n return h(tag, mergeData(data, componentData), children)\n }\n})\n\nexport default BBadge\n","import { BBadge } from './badge'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst BadgePlugin = /*#__PURE__*/ pluginFactory({\n components: { BBadge }\n})\n\nexport { BadgePlugin, BBadge }\n\nexport default BadgePlugin\n","const stripTagsRegex = /(<([^>]+)>)/gi\n\n// Removes any thing that looks like an HTML tag from the supplied string\nexport const stripTags = (text = '') => String(text).replace(stripTagsRegex, '')\n\n// Generate a domProps object for either innerHTML, textContent or nothing\nexport const htmlOrText = (innerHTML, textContent) => {\n return innerHTML ? { innerHTML } : textContent ? { textContent } : {}\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { htmlOrText } from '../../utils/html'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nexport const props = {\n ...linkPropsFactory(),\n text: {\n type: String,\n default: null\n },\n html: {\n type: String,\n default: null\n },\n ariaCurrent: {\n type: String,\n default: 'location'\n }\n}\n\n// @vue/component\nexport const BBreadcrumbLink = /*#__PURE__*/ Vue.extend({\n name: 'BBreadcrumbLink',\n functional: true,\n props,\n render(h, { props: suppliedProps, data, children }) {\n const tag = suppliedProps.active ? 'span' : BLink\n\n let componentData = { props: pluckProps(props, suppliedProps) }\n if (suppliedProps.active) {\n componentData.attrs = { 'aria-current': suppliedProps.ariaCurrent }\n }\n\n if (!children) {\n componentData.domProps = htmlOrText(suppliedProps.html, suppliedProps.text)\n }\n\n return h(tag, mergeData(data, componentData), children)\n }\n})\n\nexport default BBreadcrumbLink\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BBreadcrumbLink, props } from './breadcrumb-link'\n\n// @vue/component\nexport const BBreadcrumbItem = /*#__PURE__*/ Vue.extend({\n name: 'BBreadcrumbItem',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n 'li',\n mergeData(data, {\n staticClass: 'breadcrumb-item',\n class: { active: props.active }\n }),\n [h(BBreadcrumbLink, { props }, children)]\n )\n }\n})\n\nexport default BBreadcrumbItem\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport toString from '../../utils/to-string'\nimport { isArray, isObject } from '../../utils/inspect'\nimport { BBreadcrumbItem } from './breadcrumb-item'\n\nexport const props = {\n items: {\n type: Array,\n default: null\n }\n}\n\n// @vue/component\nexport const BBreadcrumb = /*#__PURE__*/ Vue.extend({\n name: 'BBreadcrumb',\n functional: true,\n props,\n render(h, { props, data, children }) {\n let childNodes = children\n // Build child nodes from items if given.\n if (isArray(props.items)) {\n let activeDefined = false\n childNodes = props.items.map((item, idx) => {\n if (!isObject(item)) {\n item = { text: toString(item) }\n }\n // Copy the value here so we can normalize it.\n let active = item.active\n if (active) {\n activeDefined = true\n }\n if (!active && !activeDefined) {\n // Auto-detect active by position in list.\n active = idx + 1 === props.items.length\n }\n\n return h(BBreadcrumbItem, { props: { ...item, active } })\n })\n }\n\n return h('ol', mergeData(data, { staticClass: 'breadcrumb' }), childNodes)\n }\n})\n\nexport default BBreadcrumb\n","import { BBreadcrumb } from './breadcrumb'\nimport { BBreadcrumbItem } from './breadcrumb-item'\nimport { BBreadcrumbLink } from './breadcrumb-link'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst BreadcrumbPlugin = /*#__PURE__*/ pluginFactory({\n components: { BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink }\n})\n\nexport { BreadcrumbPlugin, BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink }\n\nexport default BreadcrumbPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { concat } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { addClass, removeClass } from '../../utils/dom'\nimport { isBoolean, isFunction } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\n// --- Constants --\n\nconst NAME = 'BButton'\n\nconst btnProps = {\n block: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null\n },\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n type: {\n type: String,\n default: 'button'\n },\n tag: {\n type: String,\n default: 'button'\n },\n pill: {\n type: Boolean,\n default: false\n },\n squared: {\n type: Boolean,\n default: false\n },\n pressed: {\n // tri-state prop: true, false or null\n // => on, off, not a toggle\n type: Boolean,\n default: null\n }\n}\n\nlet linkProps = linkPropsFactory()\ndelete linkProps.href.default\ndelete linkProps.to.default\nconst linkPropKeys = keys(linkProps)\n\nexport const props = { ...linkProps, ...btnProps }\n\n// --- Helper methods ---\n\n// Focus handler for toggle buttons. Needs class of 'focus' when focused.\nconst handleFocus = evt => {\n if (evt.type === 'focusin') {\n addClass(evt.target, 'focus')\n } else if (evt.type === 'focusout') {\n removeClass(evt.target, 'focus')\n }\n}\n\n// Is the requested button a link?\nconst isLink = props => {\n // If tag prop is set to `a`, we use a b-link to get proper disabled handling\n return Boolean(props.href || props.to || (props.tag && String(props.tag).toLowerCase() === 'a'))\n}\n\n// Is the button to be a toggle button?\nconst isToggle = props => isBoolean(props.pressed)\n\n// Is the button \"really\" a button?\nconst isButton = props => {\n if (isLink(props)) {\n return false\n } else if (props.tag && String(props.tag).toLowerCase() !== 'button') {\n return false\n }\n return true\n}\n\n// Is the requested tag not a button or link?\nconst isNonStandardTag = props => !isLink(props) && !isButton(props)\n\n// Compute required classes (non static classes)\nconst computeClass = props => [\n `btn-${props.variant || getComponentConfig(NAME, 'variant')}`,\n {\n [`btn-${props.size}`]: Boolean(props.size),\n 'btn-block': props.block,\n 'rounded-pill': props.pill,\n 'rounded-0': props.squared && !props.pill,\n disabled: props.disabled,\n active: props.pressed\n }\n]\n\n// Compute the link props to pass to b-link (if required)\nconst computeLinkProps = props => (isLink(props) ? pluckProps(linkPropKeys, props) : null)\n\n// Compute the attributes for a button\nconst computeAttrs = (props, data) => {\n const button = isButton(props)\n const link = isLink(props)\n const toggle = isToggle(props)\n const nonStdTag = isNonStandardTag(props)\n const role = data.attrs && data.attrs['role'] ? data.attrs['role'] : null\n let tabindex = data.attrs ? data.attrs['tabindex'] : null\n if (nonStdTag) {\n tabindex = '0'\n }\n return {\n // Type only used for \"real\" buttons\n type: button && !link ? props.type : null,\n // Disabled only set on \"real\" buttons\n disabled: button ? props.disabled : null,\n // We add a role of button when the tag is not a link or button for ARIA.\n // Don't bork any role provided in data.attrs when isLink or isButton\n role: nonStdTag ? 'button' : role,\n // We set the aria-disabled state for non-standard tags\n 'aria-disabled': nonStdTag ? String(props.disabled) : null,\n // For toggles, we need to set the pressed state for ARIA\n 'aria-pressed': toggle ? String(props.pressed) : null,\n // autocomplete off is needed in toggle mode to prevent some browsers from\n // remembering the previous setting when using the back button.\n autocomplete: toggle ? 'off' : null,\n // Tab index is used when the component is not a button.\n // Links are tabbable, but don't allow disabled, while non buttons or links\n // are not tabbable, so we mimic that functionality by disabling tabbing\n // when disabled, and adding a tabindex of '0' to non buttons or non links.\n tabindex: props.disabled && !button ? '-1' : tabindex\n }\n}\n\n// @vue/component\nexport const BButton = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props,\n render(h, { props, data, listeners, children }) {\n const toggle = isToggle(props)\n const link = isLink(props)\n const on = {\n click(e) {\n /* istanbul ignore if: blink/button disabled should handle this */\n if (props.disabled && e instanceof Event) {\n e.stopPropagation()\n e.preventDefault()\n } else if (toggle && listeners && listeners['update:pressed']) {\n // Send .sync updates to any \"pressed\" prop (if .sync listeners)\n // Concat will normalize the value to an array\n // without double wrapping an array value in an array.\n concat(listeners['update:pressed']).forEach(fn => {\n if (isFunction(fn)) {\n fn(!props.pressed)\n }\n })\n }\n }\n }\n\n if (toggle) {\n on.focusin = handleFocus\n on.focusout = handleFocus\n }\n\n const componentData = {\n staticClass: 'btn',\n class: computeClass(props),\n props: computeLinkProps(props),\n attrs: computeAttrs(props, data),\n on\n }\n\n return h(link ? BLink : props.tag, mergeData(data, componentData), children)\n }\n})\n\nexport default BButton\n","import { BButton } from './button'\nimport { BButtonClose } from './button-close'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ButtonPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BButton,\n BBtn: BButton,\n BButtonClose,\n BBtnClose: BButtonClose\n }\n})\n\nexport { ButtonPlugin, BButton, BButtonClose }\n\nexport default ButtonPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n vertical: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n ariaRole: {\n type: String,\n default: 'group'\n }\n}\n\n// @vue/component\nexport const BButtonGroup = /*#__PURE__*/ Vue.extend({\n name: 'BButtonGroup',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n class: {\n 'btn-group': !props.vertical,\n 'btn-group-vertical': props.vertical,\n [`btn-group-${props.size}`]: Boolean(props.size)\n },\n attrs: { role: props.ariaRole }\n }),\n children\n )\n }\n})\n\nexport default BButtonGroup\n","import { BButtonGroup } from './button-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ButtonGroupPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BButtonGroup,\n BBtnGroup: BButtonGroup\n }\n})\n\nexport { ButtonGroupPlugin, BButtonGroup }\n\nexport default ButtonGroupPlugin\n","/*\n * Key Codes (events)\n */\n\nconst KEY_CODES = {\n SPACE: 32,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n PAGEUP: 33,\n PAGEDOWN: 34,\n HOME: 36,\n END: 35,\n TAB: 9,\n SHIFT: 16,\n CTRL: 17,\n BACKSPACE: 8,\n ALT: 18,\n PAUSE: 19,\n BREAK: 19,\n INSERT: 45,\n INS: 45,\n DELETE: 46\n}\n\nexport default KEY_CODES\n","import Vue from '../../utils/vue'\nimport { isVisible, selectAll } from '../../utils/dom'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport KeyCodes from '../../utils/key-codes'\n\nconst ITEM_SELECTOR = [\n '.btn:not(.disabled):not([disabled]):not(.dropdown-item)',\n '.form-control:not(.disabled):not([disabled])',\n 'select:not(.disabled):not([disabled])',\n 'input[type=\"checkbox\"]:not(.disabled)',\n 'input[type=\"radio\"]:not(.disabled)'\n].join(',')\n\n// @vue/component\nexport const BButtonToolbar = /*#__PURE__*/ Vue.extend({\n name: 'BButtonToolbar',\n mixins: [normalizeSlotMixin],\n props: {\n justify: {\n type: Boolean,\n default: false\n },\n keyNav: {\n type: Boolean,\n default: false\n }\n },\n mounted() {\n if (this.keyNav) {\n // Pre-set the tabindexes if the markup does not include tabindex=\"-1\" on the toolbar items\n this.getItems()\n }\n },\n methods: {\n onFocusin(evt) {\n if (evt.target === this.$el) {\n evt.preventDefault()\n evt.stopPropagation()\n this.focusFirst(evt)\n }\n },\n stop(evt) {\n evt.preventDefault()\n evt.stopPropagation()\n },\n onKeydown(evt) {\n if (!this.keyNav) {\n /* istanbul ignore next: should never happen */\n return\n }\n const key = evt.keyCode\n const shift = evt.shiftKey\n if (key === KeyCodes.UP || key === KeyCodes.LEFT) {\n this.stop(evt)\n shift ? this.focusFirst(evt) : this.focusPrev(evt)\n } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT) {\n this.stop(evt)\n shift ? this.focusLast(evt) : this.focusNext(evt)\n }\n },\n setItemFocus(item) {\n item && item.focus && item.focus()\n },\n focusFirst(evt) {\n const items = this.getItems()\n this.setItemFocus(items[0])\n },\n focusPrev(evt) {\n let items = this.getItems()\n const index = items.indexOf(evt.target)\n if (index > -1) {\n items = items.slice(0, index).reverse()\n this.setItemFocus(items[0])\n }\n },\n focusNext(evt) {\n let items = this.getItems()\n const index = items.indexOf(evt.target)\n if (index > -1) {\n items = items.slice(index + 1)\n this.setItemFocus(items[0])\n }\n },\n focusLast(evt) {\n const items = this.getItems().reverse()\n this.setItemFocus(items[0])\n },\n getItems() {\n let items = selectAll(ITEM_SELECTOR, this.$el)\n items.forEach(item => {\n // Ensure tabfocus is -1 on any new elements\n item.tabIndex = -1\n })\n return items.filter(el => isVisible(el))\n }\n },\n render(h) {\n return h(\n 'div',\n {\n staticClass: 'btn-toolbar',\n class: { 'justify-content-between': this.justify },\n attrs: {\n role: 'toolbar',\n tabindex: this.keyNav ? '0' : null\n },\n on: this.keyNav\n ? {\n focusin: this.onFocusin,\n keydown: this.onKeydown\n }\n : {}\n },\n [this.normalizeSlot('default')]\n )\n }\n})\n\nexport default BButtonToolbar\n","import { BButtonToolbar } from './button-toolbar'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ButtonToolbarPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BButtonToolbar,\n BBtnToolbar: BButtonToolbar\n }\n})\n\nexport { ButtonToolbarPlugin, BButtonToolbar }\n\nexport default ButtonToolbarPlugin\n","import { isString } from './inspect'\n\n/**\n * Transform the first character to uppercase\n * @param {string} str\n */\nconst upperFirst = str => {\n if (!isString(str)) {\n str = String(str)\n }\n str = str.trim()\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport default upperFirst\n","import upperFirst from './upper-first'\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nconst prefixPropName = (prefix, value) => prefix + upperFirst(value)\n\nexport default prefixPropName\n","/**\n * @param {string} str\n */\nconst lowerFirst = str => {\n str = String(str)\n return str.charAt(0).toLowerCase() + str.slice(1)\n}\n\nexport default lowerFirst\n","import lowerFirst from './lower-first'\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nconst unprefixPropName = (prefix, value) => lowerFirst(value.replace(prefix, ''))\n\nexport default unprefixPropName\n","import identity from './identity'\nimport { isArray, isObject } from './inspect'\n\n/**\n * Copies props from one array/object to a new array/object. Prop values\n * are also cloned as new references to prevent possible mutation of original\n * prop object values. Optionally accepts a function to transform the prop name.\n *\n * @param {[]|{}} props\n * @param {Function} transformFn\n */\nconst copyProps = (props, transformFn = identity) => {\n if (isArray(props)) {\n return props.map(transformFn)\n }\n // Props as an object.\n const copied = {}\n\n for (const prop in props) {\n /* istanbul ignore else */\n if (props.hasOwnProperty(prop)) {\n // If the prop value is an object, do a shallow clone to prevent\n // potential mutations to the original object.\n copied[transformFn(prop)] = isObject(props[prop]) ? { ...props[prop] } : props[prop]\n }\n }\n\n return copied\n}\n\nexport default copyProps\n","// @vue/component\nexport default {\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n bgVariant: {\n type: String,\n default: null\n },\n borderVariant: {\n type: String,\n default: null\n },\n textVariant: {\n type: String,\n default: null\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n title: {\n type: String,\n default: ''\n },\n titleTag: {\n type: String,\n default: 'h4'\n }\n}\n\n// @vue/component\nexport const BCardTitle = /*#__PURE__*/ Vue.extend({\n name: 'BCardTitle',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.titleTag,\n mergeData(data, {\n staticClass: 'card-title'\n }),\n children || props.title\n )\n }\n})\n\nexport default BCardTitle\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\n\nconst NAME = 'BCardSubTitle'\n\nexport const props = {\n subTitle: {\n type: String,\n default: ''\n },\n subTitleTag: {\n type: String,\n default: 'h6'\n },\n subTitleTextVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'subTitleTextVariant')\n }\n}\n\n// @vue/component\nexport const BCardSubTitle = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.subTitleTag,\n mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? `text-${props.subTitleTextVariant}` : null]\n }),\n children || props.subTitle\n )\n }\n})\n\nexport default BCardSubTitle\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport pluckProps from '../../utils/pluck-props'\nimport cardMixin from '../../mixins/card-mixin'\nimport { BCardTitle, props as titleProps } from './card-title'\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'\n\nexport const props = {\n // Import common card props and prefix them with `body-`\n ...copyProps(cardMixin.props, prefixPropName.bind(null, 'body')),\n bodyClass: {\n type: [String, Object, Array],\n default: null\n },\n ...titleProps,\n ...subTitleProps,\n overlay: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BCardBody = /*#__PURE__*/ Vue.extend({\n name: 'BCardBody',\n functional: true,\n props,\n render(h, { props, data, children }) {\n let cardTitle = h(false)\n let cardSubTitle = h(false)\n let cardContent = children || [h(false)]\n\n if (props.title) {\n cardTitle = h(BCardTitle, { props: pluckProps(titleProps, props) })\n }\n\n if (props.subTitle) {\n cardSubTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n })\n }\n\n return h(\n props.bodyTag,\n mergeData(data, {\n staticClass: 'card-body',\n class: [\n {\n 'card-img-overlay': props.overlay,\n [`bg-${props.bodyBgVariant}`]: Boolean(props.bodyBgVariant),\n [`border-${props.bodyBorderVariant}`]: Boolean(props.bodyBorderVariant),\n [`text-${props.bodyTextVariant}`]: Boolean(props.bodyTextVariant)\n },\n props.bodyClass || {}\n ]\n }),\n [cardTitle, cardSubTitle, ...cardContent]\n )\n }\n})\n\nexport default BCardBody\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport { htmlOrText } from '../../utils/html'\nimport cardMixin from '../../mixins/card-mixin'\n\nexport const props = {\n ...copyProps(cardMixin.props, prefixPropName.bind(null, 'header')),\n header: {\n type: String,\n default: null\n },\n headerHtml: {\n type: String,\n default: null\n },\n headerClass: {\n type: [String, Object, Array],\n default: null\n }\n}\n\n// @vue/component\nexport const BCardHeader = /*#__PURE__*/ Vue.extend({\n name: 'BCardHeader',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.headerTag,\n mergeData(data, {\n staticClass: 'card-header',\n class: [\n props.headerClass,\n {\n [`bg-${props.headerBgVariant}`]: Boolean(props.headerBgVariant),\n [`border-${props.headerBorderVariant}`]: Boolean(props.headerBorderVariant),\n [`text-${props.headerTextVariant}`]: Boolean(props.headerTextVariant)\n }\n ]\n }),\n children || [h('div', { domProps: htmlOrText(props.headerHtml, props.header) })]\n )\n }\n})\n\nexport default BCardHeader\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport { htmlOrText } from '../../utils/html'\nimport cardMixin from '../../mixins/card-mixin'\n\nexport const props = {\n ...copyProps(cardMixin.props, prefixPropName.bind(null, 'footer')),\n footer: {\n type: String,\n default: null\n },\n footerHtml: {\n type: String,\n default: null\n },\n footerClass: {\n type: [String, Object, Array],\n default: null\n }\n}\n\n// @vue/component\nexport const BCardFooter = /*#__PURE__*/ Vue.extend({\n name: 'BCardFooter',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.footerTag,\n mergeData(data, {\n staticClass: 'card-footer',\n class: [\n props.footerClass,\n {\n [`bg-${props.footerBgVariant}`]: Boolean(props.footerBgVariant),\n [`border-${props.footerBorderVariant}`]: Boolean(props.footerBorderVariant),\n [`text-${props.footerTextVariant}`]: Boolean(props.footerTextVariant)\n }\n ]\n }),\n children || [h('div', { domProps: htmlOrText(props.footerHtml, props.footer) })]\n )\n }\n})\n\nexport default BCardFooter\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n src: {\n type: String,\n default: null,\n required: true\n },\n alt: {\n type: String,\n default: null\n },\n top: {\n type: Boolean,\n default: false\n },\n bottom: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n start: {\n type: Boolean,\n default: false\n // alias of 'left'\n },\n right: {\n type: Boolean,\n default: false\n },\n end: {\n type: Boolean,\n default: false\n // alias of 'right'\n },\n height: {\n type: String,\n default: null\n },\n width: {\n type: String,\n default: null\n }\n}\n\n// @vue/component\nexport const BCardImg = /*#__PURE__*/ Vue.extend({\n name: 'BCardImg',\n functional: true,\n props,\n render(h, { props, data }) {\n let baseClass = 'card-img'\n if (props.top) {\n baseClass += '-top'\n } else if (props.right || props.end) {\n baseClass += '-right'\n } else if (props.bottom) {\n baseClass += '-bottom'\n } else if (props.left || props.start) {\n baseClass += '-left'\n }\n\n return h(\n 'img',\n mergeData(data, {\n class: [baseClass],\n attrs: {\n src: props.src,\n alt: props.alt,\n height: props.height,\n width: props.width\n }\n })\n )\n }\n})\n\nexport default BCardImg\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport unPrefixPropName from '../../utils/unprefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport pluckProps from '../../utils/pluck-props'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\nimport cardMixin from '../../mixins/card-mixin'\nimport { BCardBody, props as bodyProps } from './card-body'\nimport { BCardHeader, props as headerProps } from './card-header'\nimport { BCardFooter, props as footerProps } from './card-footer'\nimport { BCardImg, props as imgProps } from './card-img'\n\nconst cardImgProps = copyProps(imgProps, prefixPropName.bind(null, 'img'))\ncardImgProps.imgSrc.required = false\n\nexport const props = {\n ...bodyProps,\n ...headerProps,\n ...footerProps,\n ...cardImgProps,\n ...copyProps(cardMixin.props),\n align: {\n type: String,\n default: null\n },\n noBody: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BCard = /*#__PURE__*/ Vue.extend({\n name: 'BCard',\n functional: true,\n props,\n render(h, { props, data, slots, scopedSlots }) {\n const $slots = slots()\n // Vue < 2.6.x may return undefined for scopedSlots\n const $scopedSlots = scopedSlots || {}\n\n // Create placeholder elements for each section\n let imgFirst = h(false)\n let header = h(false)\n let content = h(false)\n let footer = h(false)\n let imgLast = h(false)\n\n if (props.imgSrc) {\n let img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unPrefixPropName.bind(null, 'img'))\n })\n if (props.imgBottom) {\n imgLast = img\n } else {\n imgFirst = img\n }\n }\n\n if (props.header || hasNormalizedSlot('header', $scopedSlots, $slots)) {\n header = h(\n BCardHeader,\n { props: pluckProps(headerProps, props) },\n normalizeSlot('header', {}, $scopedSlots, $slots)\n )\n }\n\n content = normalizeSlot('default', {}, $scopedSlots, $slots) || []\n if (!props.noBody) {\n // Wrap content in card-body\n content = [h(BCardBody, { props: pluckProps(bodyProps, props) }, [...content])]\n }\n\n if (props.footer || hasNormalizedSlot('footer', $scopedSlots, $slots)) {\n footer = h(\n BCardFooter,\n {\n props: pluckProps(footerProps, props)\n },\n normalizeSlot('footer', {}, $scopedSlots, $slots)\n )\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'card',\n class: {\n 'flex-row': props.imgLeft || props.imgStart,\n 'flex-row-reverse':\n (props.imgRight || props.imgEnd) && !(props.imgLeft || props.imgStart),\n [`text-${props.align}`]: Boolean(props.align),\n [`bg-${props.bgVariant}`]: Boolean(props.bgVariant),\n [`border-${props.borderVariant}`]: Boolean(props.borderVariant),\n [`text-${props.textVariant}`]: Boolean(props.textVariant)\n }\n }),\n [imgFirst, header, ...content, footer, imgLast]\n )\n }\n})\n\nexport default BCard\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { isString } from '../../utils/inspect'\n\n// --- Constants --\n\nconst NAME = 'BImg'\n\n// Blank image with fill template\nconst BLANK_TEMPLATE =\n '<svg width=\"%{w}\" height=\"%{h}\" ' +\n 'xmlns=\"http://www.w3.org/2000/svg\" ' +\n 'viewBox=\"0 0 %{w} %{h}\" preserveAspectRatio=\"none\">' +\n '<rect width=\"100%\" height=\"100%\" style=\"fill:%{f};\"></rect>' +\n '</svg>'\n\nexport const props = {\n src: {\n type: String,\n default: null\n },\n alt: {\n type: String,\n default: null\n },\n width: {\n type: [Number, String],\n default: null\n },\n height: {\n type: [Number, String],\n default: null\n },\n block: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n fluidGrow: {\n // Gives fluid images class `w-100` to make them grow to fit container\n type: Boolean,\n default: false\n },\n rounded: {\n // rounded can be:\n // false: no rounding of corners\n // true: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n type: [Boolean, String],\n default: false\n },\n thumbnail: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n center: {\n type: Boolean,\n default: false\n },\n blank: {\n type: Boolean,\n default: false\n },\n blankColor: {\n type: String,\n default: () => getComponentConfig(NAME, 'blankColor')\n }\n}\n\n// --- Helper methods ---\n\nfunction makeBlankImgSrc(width, height, color) {\n const src = encodeURIComponent(\n BLANK_TEMPLATE.replace('%{w}', String(width))\n .replace('%{h}', String(height))\n .replace('%{f}', color)\n )\n return `data:image/svg+xml;charset=UTF-8,${src}`\n}\n\n// @vue/component\nexport const BImg = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props,\n render(h, { props, data }) {\n let src = props.src\n let width = parseInt(props.width, 10) ? parseInt(props.width, 10) : null\n let height = parseInt(props.height, 10) ? parseInt(props.height, 10) : null\n let align = null\n let block = props.block\n if (props.blank) {\n if (!height && Boolean(width)) {\n height = width\n } else if (!width && Boolean(height)) {\n width = height\n }\n if (!width && !height) {\n width = 1\n height = 1\n }\n // Make a blank SVG image\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent')\n }\n if (props.left) {\n align = 'float-left'\n } else if (props.right) {\n align = 'float-right'\n } else if (props.center) {\n align = 'mx-auto'\n block = true\n }\n return h(\n 'img',\n mergeData(data, {\n attrs: {\n src: src,\n alt: props.alt,\n width: width ? String(width) : null,\n height: height ? String(height) : null\n },\n class: {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || props.fluidGrow,\n 'w-100': props.fluidGrow,\n rounded: props.rounded === '' || props.rounded === true,\n [`rounded-${props.rounded}`]: isString(props.rounded) && props.rounded !== '',\n [align]: Boolean(align),\n 'd-block': block\n }\n })\n )\n }\n})\n\nexport default BImg\n","import Vue from '../../utils/vue'\nimport { BImg } from './img'\nimport { getComponentConfig } from '../../utils/config'\nimport { getBCR, eventOn, eventOff } from '../../utils/dom'\nimport { hasIntersectionObserverSupport } from '../../utils/env'\n\nconst NAME = 'BImgLazy'\n\nconst THROTTLE = 100\nconst EVENT_OPTIONS = { passive: true, capture: false }\n\nexport const props = {\n src: {\n type: String,\n default: null,\n required: true\n },\n alt: {\n type: String,\n default: null\n },\n width: {\n type: [Number, String],\n default: null\n },\n height: {\n type: [Number, String],\n default: null\n },\n blankSrc: {\n // If null, a blank image is generated\n type: String,\n default: null\n },\n blankColor: {\n type: String,\n default: () => getComponentConfig(NAME, 'blankColor')\n },\n blankWidth: {\n type: [Number, String],\n default: null\n },\n blankHeight: {\n type: [Number, String],\n default: null\n },\n show: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n fluidGrow: {\n type: Boolean,\n default: false\n },\n block: {\n type: Boolean,\n default: false\n },\n thumbnail: {\n type: Boolean,\n default: false\n },\n rounded: {\n type: [Boolean, String],\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n center: {\n type: Boolean,\n default: false\n },\n offset: {\n type: [Number, String],\n default: 360\n },\n throttle: {\n type: [Number, String],\n default: THROTTLE\n }\n}\n\n// @vue/component\nexport const BImgLazy = /*#__PURE__*/ Vue.extend({\n name: NAME,\n props,\n data() {\n return {\n isShown: false,\n scrollTimeout: null,\n observer: null\n }\n },\n computed: {\n computedSrc() {\n return !this.blankSrc || this.isShown ? this.src : this.blankSrc\n },\n computedBlank() {\n return !(this.isShown || this.blankSrc)\n },\n computedWidth() {\n return this.isShown ? this.width : this.blankWidth || this.width\n },\n computedHeight() {\n return this.isShown ? this.height : this.blankHeight || this.height\n }\n },\n watch: {\n show(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.isShown = newVal\n if (!newVal) {\n // Make sure listeners are re-enabled if img is force set to blank\n this.setListeners(true)\n }\n }\n },\n isShown(newVal, oldVal) {\n if (newVal !== oldVal) {\n // Update synched show prop\n this.$emit('update:show', newVal)\n }\n }\n },\n created() {\n this.isShown = this.show\n },\n mounted() {\n if (this.isShown) {\n this.setListeners(false)\n } else {\n this.setListeners(true)\n }\n },\n activated() /* istanbul ignore next */ {\n if (!this.isShown) {\n this.setListeners(true)\n }\n },\n deactivated() /* istanbul ignore next */ {\n this.setListeners(false)\n },\n beforeDestroy() {\n this.setListeners(false)\n },\n methods: {\n setListeners(on) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout)\n this.scrollTimeout = null\n }\n /* istanbul ignore next: JSDOM doen't support IntersectionObserver */\n if (this.observer) {\n this.observer.unobserve(this.$el)\n this.observer.disconnect()\n this.observer = null\n }\n const winEvts = ['scroll', 'resize', 'orientationchange']\n winEvts.forEach(evt => eventOff(window, evt, this.onScroll, EVENT_OPTIONS))\n eventOff(this.$el, 'load', this.checkView, EVENT_OPTIONS)\n eventOff(document, 'transitionend', this.onScroll, EVENT_OPTIONS)\n if (on) {\n /* istanbul ignore if: JSDOM doen't support IntersectionObserver */\n if (hasIntersectionObserverSupport) {\n this.observer = new IntersectionObserver(this.doShow, {\n root: null, // viewport\n rootMargin: `${parseInt(this.offset, 10) || 0}px`,\n threshold: 0 // percent intersection\n })\n this.observer.observe(this.$el)\n } else {\n // Fallback to scroll/etc events\n winEvts.forEach(evt => eventOn(window, evt, this.onScroll, EVENT_OPTIONS))\n eventOn(this.$el, 'load', this.checkView, EVENT_OPTIONS)\n eventOn(document, 'transitionend', this.onScroll, EVENT_OPTIONS)\n }\n }\n },\n doShow(entries) {\n if (entries && (entries[0].isIntersecting || entries[0].intersectionRatio > 0.0)) {\n this.isShown = true\n this.setListeners(false)\n }\n },\n checkView() {\n // check bounding box + offset to see if we should show\n /* istanbul ignore next: should rarely occur */\n if (this.isShown) {\n this.setListeners(false)\n return\n }\n const offset = parseInt(this.offset, 10) || 0\n const docElement = document.documentElement\n const view = {\n l: 0 - offset,\n t: 0 - offset,\n b: docElement.clientHeight + offset,\n r: docElement.clientWidth + offset\n }\n // JSDOM Doesn't support BCR, but we fake it in the tests\n const box = getBCR(this.$el)\n if (box.right >= view.l && box.bottom >= view.t && box.left <= view.r && box.top <= view.b) {\n // image is in view (or about to be in view)\n this.doShow([{ isIntersecting: true }])\n }\n },\n onScroll() {\n /* istanbul ignore if: should rarely occur */\n if (this.isShown) {\n this.setListeners(false)\n } else {\n clearTimeout(this.scrollTimeout)\n this.scrollTimeout = setTimeout(this.checkView, parseInt(this.throttle, 10) || THROTTLE)\n }\n }\n },\n render(h) {\n return h(BImg, {\n props: {\n // Computed value props\n src: this.computedSrc,\n blank: this.computedBlank,\n width: this.computedWidth,\n height: this.computedHeight,\n // Passthough props\n alt: this.alt,\n blankColor: this.blankColor,\n fluid: this.fluid,\n fluidGrow: this.fluidGrow,\n block: this.block,\n thumbnail: this.thumbnail,\n rounded: this.rounded,\n left: this.left,\n right: this.right,\n center: this.center\n }\n })\n }\n})\n\nexport default BImgLazy\n","import Vue from '../../utils/vue'\nimport { omit } from '../../utils/object'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BImgLazy, props as imgLazyProps } from '../image/img-lazy'\n\n// Copy of `<b-img-lazy>` props, and remove conflicting/non-applicable props\n// The `omit()` util creates a new object, so we can just pass the original props\nconst lazyProps = omit(imgLazyProps, [\n 'left',\n 'right',\n 'center',\n 'block',\n 'rounded',\n 'thumbnail',\n 'fluid',\n 'fluidGrow'\n])\n\nexport const props = {\n ...lazyProps,\n top: {\n type: Boolean,\n default: false\n },\n bottom: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n start: {\n type: Boolean,\n default: false\n // alias of 'left'\n },\n right: {\n type: Boolean,\n default: false\n },\n end: {\n type: Boolean,\n default: false\n // alias of 'right'\n }\n}\n\n// @vue/component\nexport const BCardImgLazy = /*#__PURE__*/ Vue.extend({\n name: 'BCardImgLazy',\n functional: true,\n props,\n render(h, { props, data }) {\n let baseClass = 'card-img'\n if (props.top) {\n baseClass += '-top'\n } else if (props.right || props.end) {\n baseClass += '-right'\n } else if (props.bottom) {\n baseClass += '-bottom'\n } else if (props.left || props.start) {\n baseClass += '-left'\n }\n\n // False out the left/center/right props before passing to b-img-lazy\n const lazyProps = { ...props, left: false, right: false, center: false }\n return h(\n BImgLazy,\n mergeData(data, {\n class: [baseClass],\n props: lazyProps\n })\n )\n }\n})\n\nexport default BCardImgLazy\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n textTag: {\n type: String,\n default: 'p'\n }\n}\n\n// @vue/component\nexport const BCardText = /*#__PURE__*/ Vue.extend({\n name: 'BCardText',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(props.textTag, mergeData(data, { staticClass: 'card-text' }), children)\n }\n})\n\nexport default BCardText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n },\n deck: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BCardGroup = /*#__PURE__*/ Vue.extend({\n name: 'BCardGroup',\n functional: true,\n props,\n render(h, { props, data, children }) {\n let baseClass = 'card-group'\n if (props.deck) {\n baseClass = 'card-deck'\n } else if (props.columns) {\n baseClass = 'card-columns'\n }\n\n return h(props.tag, mergeData(data, { class: baseClass }), children)\n }\n})\n\nexport default BCardGroup\n","import { BCard } from './card'\nimport { BCardHeader } from './card-header'\nimport { BCardBody } from './card-body'\nimport { BCardTitle } from './card-title'\nimport { BCardSubTitle } from './card-sub-title'\nimport { BCardFooter } from './card-footer'\nimport { BCardImg } from './card-img'\nimport { BCardImgLazy } from './card-img-lazy'\nimport { BCardText } from './card-text'\nimport { BCardGroup } from './card-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst CardPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BCard,\n BCardHeader,\n BCardBody,\n BCardTitle,\n BCardSubTitle,\n BCardFooter,\n BCardImg,\n BCardImgLazy,\n BCardText,\n BCardGroup\n }\n})\n\nexport {\n CardPlugin,\n BCard,\n BCardHeader,\n BCardBody,\n BCardTitle,\n BCardSubTitle,\n BCardFooter,\n BCardImg,\n BCardImgLazy,\n BCardText,\n BCardGroup\n}\n\nexport default CardPlugin\n","const noop = () => {}\n\nexport default noop\n","import { MutationObs, isElement } from './dom'\nimport { warnNoMutationObserverSupport } from './warn'\n\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [opts={childList: true, subtree: true}] observe options\n * @see http://stackoverflow.com/questions/3219758\n */\nconst observeDom = (el, callback, opts) => /* istanbul ignore next: difficult to test in JSDOM */ {\n // Handle cases where we might be passed a Vue instance\n el = el ? el.$el || el : null\n\n // Early exit when we have no element\n /* istanbul ignore next: difficult to test in JSDOM */\n if (!isElement(el)) {\n return null\n }\n\n // Exit and throw a warning when `MutationObserver` isn't available\n if (warnNoMutationObserverSupport('observeDom')) {\n return null\n }\n\n // Define a new observer\n const obs = new MutationObs(mutations => {\n let changed = false\n\n // A mutation can contain several change records, so we loop\n // through them to see what has changed\n // We break out of the loop early if any \"significant\" change\n // has been detected\n for (let i = 0; i < mutations.length && !changed; i++) {\n // The mutation record\n const mutation = mutations[i]\n // Mutation type\n const type = mutation.type\n // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\n const target = mutation.target\n\n // Detect whether a change happened based on type and target\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n // We ignore nodes that are not TEXT (i.e. comments, etc)\n // as they don't change layout\n changed = true\n } else if (type === 'attributes') {\n changed = true\n } else if (\n type === 'childList' &&\n (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)\n ) {\n // This includes HTMLElement and text nodes being\n // added/removed/re-arranged\n changed = true\n }\n }\n\n // We only call the callback if a change that could affect\n // layout/size truely happened\n if (changed) {\n callback()\n }\n })\n\n // Have the observer observe foo for changes in children, etc\n obs.observe(el, { childList: true, subtree: true, ...opts })\n\n // We return a reference to the observer so that `obs.disconnect()`\n // can be called if necessary\n // To reduce overhead when the root element is hidden\n return obs\n}\n\nexport default observeDom\n","/*\n * SSR Safe Client Side ID attribute generation\n * id's can only be generated client side, after mount.\n * this._uid is not synched between server and client.\n */\n\n// @vue/component\nexport default {\n props: {\n id: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n localId_: null\n }\n },\n computed: {\n safeId() {\n // Computed property that returns a dynamic function for creating the ID.\n // Reacts to changes in both .id and .localId_ And regens a new function\n const id = this.id || this.localId_\n\n // We return a function that accepts an optional suffix string\n // So this computed prop looks and works like a method!!!\n // But benefits from Vue's Computed prop caching\n const fn = suffix => {\n if (!id) {\n return null\n }\n suffix = String(suffix || '').replace(/\\s+/g, '_')\n return suffix ? id + '_' + suffix : id\n }\n return fn\n }\n },\n mounted() {\n // mounted only occurs client side\n this.$nextTick(() => {\n // Update dom with auto ID after dom loaded to prevent\n // SSR hydration errors.\n this.localId_ = `__BVID__${this._uid}`\n })\n }\n}\n","import Vue from '../../utils/vue'\nimport KeyCodes from '../../utils/key-codes'\nimport noop from '../../utils/noop'\nimport observeDom from '../../utils/observe-dom'\nimport { getComponentConfig } from '../../utils/config'\nimport {\n selectAll,\n reflow,\n addClass,\n removeClass,\n setAttr,\n eventOn,\n eventOff\n} from '../../utils/dom'\nimport { isBrowser, hasTouchSupport, hasPointerEventSupport } from '../../utils/env'\nimport { isUndefined } from '../../utils/inspect'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\nconst NAME = 'BCarousel'\n\n// Slide directional classes\nconst DIRECTION = {\n next: {\n dirClass: 'carousel-item-left',\n overlayClass: 'carousel-item-next'\n },\n prev: {\n dirClass: 'carousel-item-right',\n overlayClass: 'carousel-item-prev'\n }\n}\n\n// Fallback Transition duration (with a little buffer) in ms\nconst TRANS_DURATION = 600 + 50\n\n// Time for mouse compat events to fire after touch\nconst TOUCH_EVENT_COMPAT_WAIT = 500\n\n// Number of pixels to consider touch move a swipe\nconst SWIPE_THRESHOLD = 40\n\n// PointerEvent pointer types\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n// Transition Event names\nconst TransitionEndEvents = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'otransitionend oTransitionEnd',\n transition: 'transitionend'\n}\n\nconst EventOptions = { passive: true, capture: false }\n\n// Return the browser specific transitionEnd event name\nfunction getTransitionEndEvent(el) {\n for (const name in TransitionEndEvents) {\n if (!isUndefined(el.style[name])) {\n return TransitionEndEvents[name]\n }\n }\n // fallback\n /* istanbul ignore next */\n return null\n}\n\n// @vue/component\nexport const BCarousel = /*#__PURE__*/ Vue.extend({\n name: 'BCarousel',\n mixins: [idMixin, normalizeSlotMixin],\n provide() {\n return { bvCarousel: this }\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n labelPrev: {\n type: String,\n default: () => getComponentConfig(NAME, 'labelPrev')\n },\n labelNext: {\n type: String,\n default: () => getComponentConfig(NAME, 'labelNext')\n },\n labelGotoSlide: {\n type: String,\n default: () => getComponentConfig(NAME, 'labelGotoSlide')\n },\n labelIndicators: {\n type: String,\n default: () => getComponentConfig(NAME, 'labelIndicators')\n },\n interval: {\n type: Number,\n default: 5000\n },\n indicators: {\n type: Boolean,\n default: false\n },\n controls: {\n type: Boolean,\n default: false\n },\n noAnimation: {\n // Disable slide/fade animation\n type: Boolean,\n default: false\n },\n fade: {\n // Enable cross-fade animation instead of slide animation\n type: Boolean,\n default: false\n },\n noTouch: {\n // Sniffed by carousel-slide\n type: Boolean,\n default: false\n },\n noHoverPause: {\n // Disable pause on hover\n type: Boolean,\n default: false\n },\n imgWidth: {\n // Sniffed by carousel-slide\n type: [Number, String]\n // default: undefined\n },\n imgHeight: {\n // Sniffed by carousel-slide\n type: [Number, String]\n // default: undefined\n },\n background: {\n type: String\n // default: undefined\n },\n value: {\n type: Number,\n default: 0\n }\n },\n data() {\n return {\n index: this.value || 0,\n isSliding: false,\n transitionEndEvent: null,\n slides: [],\n direction: null,\n isPaused: !(parseInt(this.interval, 10) > 0),\n // Touch event handling values\n touchStartX: 0,\n touchDeltaX: 0\n }\n },\n watch: {\n value(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.setSlide(newVal)\n }\n },\n interval(newVal, oldVal) {\n if (newVal === oldVal) {\n /* istanbul ignore next */\n return\n }\n if (!newVal) {\n // Pausing slide show\n this.pause(false)\n } else {\n // Restarting or Changing interval\n this.pause(true)\n this.start(false)\n }\n },\n isPaused(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit(newVal ? 'paused' : 'unpaused')\n }\n },\n index(to, from) {\n if (to === from || this.isSliding) {\n /* istanbul ignore next */\n return\n }\n this.doSlide(to, from)\n }\n },\n created() {\n // Create private non-reactive props\n this._intervalId = null\n this._animationTimeout = null\n this._touchTimeout = null\n // Set initial paused state\n this.isPaused = !(parseInt(this.interval, 10) > 0)\n },\n mounted() {\n // Cache current browser transitionend event name\n this.transitionEndEvent = getTransitionEndEvent(this.$el) || null\n // Get all slides\n this.updateSlides()\n // Observe child changes so we can update slide list\n observeDom(this.$refs.inner, this.updateSlides.bind(this), {\n subtree: false,\n childList: true,\n attributes: true,\n attributeFilter: ['id']\n })\n },\n beforeDestroy() {\n clearTimeout(this._animationTimeout)\n clearTimeout(this._touchTimeout)\n clearInterval(this._intervalId)\n this._intervalId = null\n this._animationTimeout = null\n this._touchTimeout = null\n },\n methods: {\n // Set slide\n setSlide(slide, direction = null) {\n // Don't animate when page is not visible\n /* istanbul ignore if: difficult to test */\n if (isBrowser && document.visibilityState && document.hidden) {\n return\n }\n const len = this.slides.length\n // Don't do anything if nothing to slide to\n if (len === 0) {\n return\n }\n // Don't change slide while transitioning, wait until transition is done\n if (this.isSliding) {\n // Schedule slide after sliding complete\n this.$once('sliding-end', () => this.setSlide(slide, direction))\n return\n }\n this.direction = direction\n // Make sure we have an integer (you never know!)\n slide = Math.floor(slide)\n // Set new slide index. Wrap around if necessary\n this.index = slide >= len ? 0 : slide >= 0 ? slide : len - 1\n },\n // Previous slide\n prev() {\n this.setSlide(this.index - 1, 'prev')\n },\n // Next slide\n next() {\n this.setSlide(this.index + 1, 'next')\n },\n // Pause auto rotation\n pause(evt) {\n if (!evt) {\n this.isPaused = true\n }\n if (this._intervalId) {\n clearInterval(this._intervalId)\n this._intervalId = null\n }\n },\n // Start auto rotate slides\n start(evt) {\n if (!evt) {\n this.isPaused = false\n }\n /* istanbul ignore next: most likely will never happen, but just in case */\n if (this._intervalId) {\n clearInterval(this._intervalId)\n this._intervalId = null\n }\n // Don't start if no interval, or less than 2 slides\n if (this.interval && this.slides.length > 1) {\n this._intervalId = setInterval(this.next, Math.max(1000, this.interval))\n }\n },\n // Restart auto rotate slides when focus/hover leaves the carousel\n restart(evt) /* istanbul ignore next: difficult to test */ {\n if (!this.$el.contains(document.activeElement)) {\n this.start()\n }\n },\n doSlide(to, from) {\n const isCycling = Boolean(this.interval)\n // Determine sliding direction\n let direction = this.calcDirection(this.direction, from, to)\n const overlayClass = direction.overlayClass\n const dirClass = direction.dirClass\n // Determine current and next slides\n const currentSlide = this.slides[from]\n const nextSlide = this.slides[to]\n // Don't do anything if there aren't any slides to slide to\n if (!currentSlide || !nextSlide) {\n /* istanbul ignore next */\n return\n }\n // Start animating\n this.isSliding = true\n if (isCycling) {\n this.pause(false)\n }\n this.$emit('sliding-start', to)\n // Update v-model\n this.$emit('input', this.index)\n if (this.noAnimation) {\n addClass(nextSlide, 'active')\n removeClass(currentSlide, 'active')\n this.isSliding = false\n // Notify ourselves that we're done sliding (slid)\n this.$nextTick(() => this.$emit('sliding-end', to))\n } else {\n addClass(nextSlide, overlayClass)\n // Trigger a reflow of next slide\n reflow(nextSlide)\n addClass(currentSlide, dirClass)\n addClass(nextSlide, dirClass)\n // Transition End handler\n let called = false\n /* istanbul ignore next: difficult to test */\n const onceTransEnd = evt => {\n if (called) {\n return\n }\n called = true\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n if (this.transitionEndEvent) {\n const events = this.transitionEndEvent.split(/\\s+/)\n events.forEach(evt => eventOff(currentSlide, evt, onceTransEnd, EventOptions))\n }\n this._animationTimeout = null\n removeClass(nextSlide, dirClass)\n removeClass(nextSlide, overlayClass)\n addClass(nextSlide, 'active')\n removeClass(currentSlide, 'active')\n removeClass(currentSlide, dirClass)\n removeClass(currentSlide, overlayClass)\n setAttr(currentSlide, 'aria-current', 'false')\n setAttr(nextSlide, 'aria-current', 'true')\n setAttr(currentSlide, 'aria-hidden', 'true')\n setAttr(nextSlide, 'aria-hidden', 'false')\n this.isSliding = false\n this.direction = null\n // Notify ourselves that we're done sliding (slid)\n this.$nextTick(() => this.$emit('sliding-end', to))\n }\n // Set up transitionend handler\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n if (this.transitionEndEvent) {\n const events = this.transitionEndEvent.split(/\\s+/)\n events.forEach(event => eventOn(currentSlide, event, onceTransEnd, EventOptions))\n }\n // Fallback to setTimeout()\n this._animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION)\n }\n if (isCycling) {\n this.start(false)\n }\n },\n // Update slide list\n updateSlides() {\n this.pause(true)\n // Get all slides as DOM elements\n this.slides = selectAll('.carousel-item', this.$refs.inner)\n const numSlides = this.slides.length\n // Keep slide number in range\n const index = Math.max(0, Math.min(Math.floor(this.index), numSlides - 1))\n this.slides.forEach((slide, idx) => {\n const n = idx + 1\n if (idx === index) {\n addClass(slide, 'active')\n setAttr(slide, 'aria-current', 'true')\n } else {\n removeClass(slide, 'active')\n setAttr(slide, 'aria-current', 'false')\n }\n setAttr(slide, 'aria-posinset', String(n))\n setAttr(slide, 'aria-setsize', String(numSlides))\n })\n // Set slide as active\n this.setSlide(index)\n this.start(this.isPaused)\n },\n calcDirection(direction = null, curIndex = 0, nextIndex = 0) {\n if (!direction) {\n return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev\n }\n return DIRECTION[direction]\n },\n handleClick(evt, fn) {\n const keyCode = evt.keyCode\n if (evt.type === 'click' || keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n evt.preventDefault()\n evt.stopPropagation()\n fn()\n }\n },\n handleSwipe() /* istanbul ignore next: JSDOM doesn't support touch events */ {\n const absDeltaX = Math.abs(this.touchDeltaX)\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return\n }\n const direction = absDeltaX / this.touchDeltaX\n if (direction > 0) {\n // Swipe left\n this.prev()\n } else if (direction < 0) {\n // Swipe right\n this.next()\n }\n },\n touchStart(evt) /* istanbul ignore next: JSDOM doesn't support touch events */ {\n if (hasPointerEventSupport && PointerType[evt.pointerType.toUpperCase()]) {\n this.touchStartX = evt.clientX\n } else if (!hasPointerEventSupport) {\n this.touchStartX = evt.touches[0].clientX\n }\n },\n touchMove(evt) /* istanbul ignore next: JSDOM doesn't support touch events */ {\n // Ensure swiping with one touch and not pinching\n if (evt.touches && evt.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = evt.touches[0].clientX - this.touchStartX\n }\n },\n touchEnd(evt) /* istanbul ignore next: JSDOM doesn't support touch events */ {\n if (hasPointerEventSupport && PointerType[evt.pointerType.toUpperCase()]) {\n this.touchDeltaX = evt.clientX - this.touchStartX\n }\n this.handleSwipe()\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n this.pause(false)\n if (this._touchTimeout) {\n clearTimeout(this._touchTimeout)\n }\n this._touchTimeout = setTimeout(\n this.start,\n TOUCH_EVENT_COMPAT_WAIT + Math.max(1000, this.interval)\n )\n }\n },\n render(h) {\n // Wrapper for slides\n const inner = h(\n 'div',\n {\n ref: 'inner',\n class: ['carousel-inner'],\n attrs: {\n id: this.safeId('__BV_inner_'),\n role: 'list'\n }\n },\n [this.normalizeSlot('default')]\n )\n\n // Prev and next controls\n let controls = h(false)\n if (this.controls) {\n controls = [\n h(\n 'a',\n {\n class: ['carousel-control-prev'],\n attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n on: {\n click: evt => {\n this.handleClick(evt, this.prev)\n },\n keydown: evt => {\n this.handleClick(evt, this.prev)\n }\n }\n },\n [\n h('span', { class: ['carousel-control-prev-icon'], attrs: { 'aria-hidden': 'true' } }),\n h('span', { class: ['sr-only'] }, [this.labelPrev])\n ]\n ),\n h(\n 'a',\n {\n class: ['carousel-control-next'],\n attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n on: {\n click: evt => {\n this.handleClick(evt, this.next)\n },\n keydown: evt => {\n this.handleClick(evt, this.next)\n }\n }\n },\n [\n h('span', { class: ['carousel-control-next-icon'], attrs: { 'aria-hidden': 'true' } }),\n h('span', { class: ['sr-only'] }, [this.labelNext])\n ]\n )\n ]\n }\n\n // Indicators\n const indicators = h(\n 'ol',\n {\n class: ['carousel-indicators'],\n directives: [\n { name: 'show', rawName: 'v-show', value: this.indicators, expression: 'indicators' }\n ],\n attrs: {\n id: this.safeId('__BV_indicators_'),\n 'aria-hidden': this.indicators ? 'false' : 'true',\n 'aria-label': this.labelIndicators,\n 'aria-owns': this.safeId('__BV_inner_')\n }\n },\n this.slides.map((slide, n) => {\n return h('li', {\n key: `slide_${n}`,\n class: { active: n === this.index },\n attrs: {\n role: 'button',\n id: this.safeId(`__BV_indicator_${n + 1}_`),\n tabindex: this.indicators ? '0' : '-1',\n 'aria-current': n === this.index ? 'true' : 'false',\n 'aria-label': `${this.labelGotoSlide} ${n + 1}`,\n 'aria-describedby': this.slides[n].id || null,\n 'aria-controls': this.safeId('__BV_inner_')\n },\n on: {\n click: evt => {\n this.handleClick(evt, () => {\n this.setSlide(n)\n })\n },\n keydown: evt => {\n this.handleClick(evt, () => {\n this.setSlide(n)\n })\n }\n }\n })\n })\n )\n\n const on = {\n mouseenter: this.noHoverPause ? noop : this.pause,\n mouseleave: this.noHoverPause ? noop : this.restart,\n focusin: this.pause,\n focusout: this.restart,\n keydown: evt => {\n if (/input|textarea/i.test(evt.target.tagName)) {\n /* istanbul ignore next */\n return\n }\n const keyCode = evt.keyCode\n if (keyCode === KeyCodes.LEFT || keyCode === KeyCodes.RIGHT) {\n evt.preventDefault()\n evt.stopPropagation()\n this[keyCode === KeyCodes.LEFT ? 'prev' : 'next']()\n }\n }\n }\n // Touch support event handlers for environment\n if (!this.noTouch && hasTouchSupport) {\n // Attach appropriate listeners (prepend event name with '&' for passive mode)\n /* istanbul ignore next: JSDOM doesn't support touch events */\n if (hasPointerEventSupport) {\n on['&pointerdown'] = this.touchStart\n on['&pointerup'] = this.touchEnd\n } else {\n on['&touchstart'] = this.touchStart\n on['&touchmove'] = this.touchMove\n on['&touchend'] = this.touchEnd\n }\n }\n\n // Return the carousel\n return h(\n 'div',\n {\n staticClass: 'carousel',\n class: {\n slide: !this.noAnimation,\n 'carousel-fade': !this.noAnimation && this.fade,\n 'pointer-event': !this.noTouch && hasTouchSupport && hasPointerEventSupport\n },\n style: { background: this.background },\n attrs: {\n role: 'region',\n id: this.safeId(),\n 'aria-busy': this.isSliding ? 'true' : 'false'\n },\n on\n },\n [inner, controls, indicators]\n )\n }\n})\n\nexport default BCarousel\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { hasTouchSupport } from '../../utils/env'\nimport { htmlOrText } from '../../utils/html'\nimport { BImg } from '../image/img'\n\nexport const props = {\n imgSrc: {\n type: String\n // default: undefined\n },\n imgAlt: {\n type: String\n // default: undefined\n },\n imgWidth: {\n type: [Number, String]\n // default: undefined\n },\n imgHeight: {\n type: [Number, String]\n // default: undefined\n },\n imgBlank: {\n type: Boolean,\n default: false\n },\n imgBlankColor: {\n type: String,\n default: 'transparent'\n },\n contentVisibleUp: {\n type: String\n },\n contentTag: {\n type: String,\n default: 'div'\n },\n caption: {\n type: String\n },\n captionHtml: {\n type: String\n },\n captionTag: {\n type: String,\n default: 'h3'\n },\n text: {\n type: String\n },\n textHtml: {\n type: String\n },\n textTag: {\n type: String,\n default: 'p'\n },\n background: {\n type: String\n }\n}\n\n// @vue/component\nexport const BCarouselSlide = /*#__PURE__*/ Vue.extend({\n name: 'BCarouselSlide',\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvCarousel: {\n default() {\n return {\n // Explicitly disable touch if not a child of carousel\n noTouch: true\n }\n }\n }\n },\n props,\n data() {\n return {}\n },\n computed: {\n contentClasses() {\n return [\n this.contentVisibleUp ? 'd-none' : '',\n this.contentVisibleUp ? `d-${this.contentVisibleUp}-block` : ''\n ]\n },\n computedWidth() {\n // Use local width, or try parent width\n return this.imgWidth || this.bvCarousel.imgWidth || null\n },\n computedHeight() {\n // Use local height, or try parent height\n return this.imgHeight || this.bvCarousel.imgHeight || null\n }\n },\n render(h) {\n const noDrag = !this.bvCarousel.noTouch && hasTouchSupport\n\n let img = this.normalizeSlot('img')\n if (!img && (this.imgSrc || this.imgBlank)) {\n img = h(BImg, {\n props: {\n fluidGrow: true,\n block: true,\n src: this.imgSrc,\n blank: this.imgBlank,\n blankColor: this.imgBlankColor,\n width: this.computedWidth,\n height: this.computedHeight,\n alt: this.imgAlt\n },\n // Touch support event handler\n on: noDrag\n ? {\n dragstart: e => {\n /* istanbul ignore next: difficult to test in JSDOM */\n e.preventDefault()\n }\n }\n : {}\n })\n }\n if (!img) {\n img = h(false)\n }\n\n const content = h(\n this.contentTag,\n { staticClass: 'carousel-caption', class: this.contentClasses },\n [\n this.caption || this.captionHtml\n ? h(this.captionTag, {\n domProps: htmlOrText(this.captionHtml, this.caption)\n })\n : h(false),\n this.text || this.textHtml\n ? h(this.textTag, { domProps: htmlOrText(this.textHtml, this.text) })\n : h(false),\n this.normalizeSlot('default')\n ]\n )\n\n return h(\n 'div',\n {\n staticClass: 'carousel-item',\n style: { background: this.background || this.bvCarousel.background || null },\n attrs: { id: this.safeId(), role: 'listitem' }\n },\n [img, content]\n )\n }\n})\n\nexport default BCarouselSlide\n","import { BCarousel } from './carousel'\nimport { BCarouselSlide } from './carousel-slide'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst CarouselPlugin = /*#__PURE*/ pluginFactory({\n components: {\n BCarousel,\n BCarouselSlide\n }\n})\n\nexport { CarouselPlugin, BCarousel, BCarouselSlide }\n\nexport default CarouselPlugin\n","/**\n * Issue #569: collapse::toggle::state triggered too many times\n * @link https://github.com/bootstrap-vue/bootstrap-vue/issues/569\n */\n\n// @vue/component\nexport default {\n methods: {\n /**\n * Safely register event listeners on the root Vue node.\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on root and is destroyed,\n * this orphans a callback because the node is gone,\n * but the root does not clear the callback.\n *\n * When registering a $root listener, it also registers a listener on\n * the component's `beforeDestroy` hook to automatically remove the\n * event listener from the $root instance.\n *\n * @param {string} event\n * @param {function} callback\n * @chainable\n */\n listenOnRoot(event, callback) {\n this.$root.$on(event, callback)\n this.$on('hook:beforeDestroy', () => {\n this.$root.$off(event, callback)\n })\n // Return this for easy chaining\n return this\n },\n\n /**\n * Safely register a $once event listener on the root Vue node.\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on root and is destroyed,\n * this orphans a callback because the node is gone,\n * but the root does not clear the callback.\n *\n * When registering a $root listener, it also registers a listener on\n * the component's `beforeDestroy` hook to automatically remove the\n * event listener from the $root instance.\n *\n * @param {string} event\n * @param {function} callback\n * @chainable\n */\n listenOnRootOnce(event, callback) {\n this.$root.$once(event, callback)\n this.$on('hook:beforeDestroy', () => {\n this.$root.$off(event, callback)\n })\n // Return this for easy chaining\n return this\n },\n\n /**\n * Convenience method for calling vm.$emit on vm.$root.\n * @param {string} event\n * @param {*} args\n * @chainable\n */\n emitOnRoot(event, ...args) {\n this.$root.$emit(event, ...args)\n // Return this for easy chaining\n return this\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { isBrowser } from '../../utils/env'\nimport {\n addClass,\n hasClass,\n removeClass,\n closest,\n matches,\n reflow,\n getCS,\n getBCR,\n eventOn,\n eventOff\n} from '../../utils/dom'\n\n// Events we emit on $root\nconst EVENT_STATE = 'bv::collapse::state'\nconst EVENT_ACCORDION = 'bv::collapse::accordion'\n// Private event we emit on `$root` to ensure the toggle state is\n// always synced. It gets emitted even if the state has not changed!\n// This event is NOT to be documented as people should not be using it\nconst EVENT_STATE_SYNC = 'bv::collapse::sync::state'\n// Events we listen to on `$root`\nconst EVENT_TOGGLE = 'bv::toggle::collapse'\nconst EVENT_STATE_REQUEST = 'bv::request::collapse::state'\n\n// Event listener options\nconst EventOptions = { passive: true, capture: false }\n\n// @vue/component\nexport const BCollapse = /*#__PURE__*/ Vue.extend({\n name: 'BCollapse',\n mixins: [listenOnRootMixin, normalizeSlotMixin],\n model: {\n prop: 'visible',\n event: 'input'\n },\n props: {\n id: {\n type: String,\n required: true\n },\n isNav: {\n type: Boolean,\n default: false\n },\n accordion: {\n type: String,\n default: null\n },\n visible: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n }\n },\n data() {\n return {\n show: this.visible,\n transitioning: false\n }\n },\n computed: {\n classObject() {\n return {\n 'navbar-collapse': this.isNav,\n collapse: !this.transitioning,\n show: this.show && !this.transitioning\n }\n }\n },\n watch: {\n visible(newVal) {\n if (newVal !== this.show) {\n this.show = newVal\n }\n },\n show(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.emitState()\n }\n }\n },\n created() {\n this.show = this.visible\n },\n mounted() {\n this.show = this.visible\n // Listen for toggle events to open/close us\n this.listenOnRoot(EVENT_TOGGLE, this.handleToggleEvt)\n // Listen to other collapses for accordion events\n this.listenOnRoot(EVENT_ACCORDION, this.handleAccordionEvt)\n if (this.isNav) {\n // Set up handlers\n this.setWindowEvents(true)\n this.handleResize()\n }\n this.$nextTick(() => {\n this.emitState()\n })\n // Listen for \"Sync state\" requests from `v-b-toggle`\n this.$root.$on(EVENT_STATE_REQUEST, id => {\n if (id === this.id) {\n this.$nextTick(this.emitSync)\n }\n })\n },\n updated() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitSync()\n },\n deactivated() /* istanbul ignore next */ {\n if (this.isNav) {\n this.setWindowEvents(false)\n }\n },\n activated() /* istanbul ignore next */ {\n if (this.isNav) {\n this.setWindowEvents(true)\n }\n this.emitSync()\n },\n beforeDestroy() {\n // Trigger state emit if needed\n this.show = false\n if (this.isNav && isBrowser) {\n this.setWindowEvents(false)\n }\n },\n methods: {\n setWindowEvents(on) {\n const method = on ? eventOn : eventOff\n method(window, 'resize', this.handleResize, EventOptions)\n method(window, 'orientationchange', this.handleResize, EventOptions)\n },\n toggle() {\n this.show = !this.show\n },\n onEnter(el) {\n el.style.height = 0\n reflow(el)\n el.style.height = el.scrollHeight + 'px'\n this.transitioning = true\n // This should be moved out so we can add cancellable events\n this.$emit('show')\n },\n onAfterEnter(el) {\n el.style.height = null\n this.transitioning = false\n this.$emit('shown')\n },\n onLeave(el) {\n el.style.height = 'auto'\n el.style.display = 'block'\n el.style.height = getBCR(el).height + 'px'\n reflow(el)\n this.transitioning = true\n el.style.height = 0\n // This should be moved out so we can add cancellable events\n this.$emit('hide')\n },\n onAfterLeave(el) {\n el.style.height = null\n this.transitioning = false\n this.$emit('hidden')\n },\n emitState() {\n this.$emit('input', this.show)\n // Let v-b-toggle know the state of this collapse\n this.$root.$emit(EVENT_STATE, this.id, this.show)\n if (this.accordion && this.show) {\n // Tell the other collapses in this accordion to close\n this.$root.$emit(EVENT_ACCORDION, this.id, this.accordion)\n }\n },\n emitSync() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.$root.$emit(EVENT_STATE_SYNC, this.id, this.show)\n },\n checkDisplayBlock() {\n // Check to see if the collapse has `display: block !important;` set.\n // We can't set `display: none;` directly on this.$el, as it would\n // trigger a new transition to start (or cancel a current one).\n const restore = hasClass(this.$el, 'show')\n removeClass(this.$el, 'show')\n const isBlock = getCS(this.$el).display === 'block'\n restore && addClass(this.$el, 'show')\n return isBlock\n },\n clickHandler(evt) {\n // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n const el = evt.target\n if (!this.isNav || !el || getCS(this.$el).display !== 'block') {\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n return\n }\n if (matches(el, '.nav-link,.dropdown-item') || closest('.nav-link,.dropdown-item', el)) {\n if (!this.checkDisplayBlock()) {\n // Only close the collapse if it is not forced to be 'display: block !important;'\n this.show = false\n }\n }\n },\n handleToggleEvt(target) {\n if (target !== this.id) {\n return\n }\n this.toggle()\n },\n handleAccordionEvt(openedId, accordion) {\n if (!this.accordion || accordion !== this.accordion) {\n return\n }\n if (openedId === this.id) {\n // Open this collapse if not shown\n if (!this.show) {\n this.toggle()\n }\n } else {\n // Close this collapse if shown\n if (this.show) {\n this.toggle()\n }\n }\n },\n handleResize() {\n // Handler for orientation/resize to set collapsed state in nav/navbar\n this.show = getCS(this.$el).display === 'block'\n }\n },\n render(h) {\n const content = h(\n this.tag,\n {\n class: this.classObject,\n directives: [{ name: 'show', value: this.show }],\n attrs: { id: this.id || null },\n on: { click: this.clickHandler }\n },\n [this.normalizeSlot('default')]\n )\n return h(\n 'transition',\n {\n props: {\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: '',\n leaveClass: '',\n leaveActiveClass: 'collapsing',\n leaveToClass: ''\n },\n on: {\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n },\n [content]\n )\n }\n})\n\nexport default BCollapse\n","import { keys } from './object'\nimport { isArray, isDate, isObject } from './inspect'\n\n// Assumes both a and b are arrays!\n// Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\nconst compareArrays = (a, b) => {\n if (a.length !== b.length) {\n return false\n }\n let equal = true\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i])\n }\n return equal\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\nconst looseEqual = (a, b) => {\n if (a === b) {\n return true\n }\n let aValidType = isDate(a)\n let bValidType = isDate(b)\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false\n }\n aValidType = isArray(a)\n bValidType = isArray(b)\n if (aValidType || bValidType) {\n return aValidType && bValidType ? compareArrays(a, b) : false\n }\n aValidType = isObject(a)\n bValidType = isObject(b)\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false\n }\n const aKeysCount = keys(a).length\n const bKeysCount = keys(b).length\n if (aKeysCount !== bKeysCount) {\n return false\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key)\n const bHasKey = b.hasOwnProperty(key)\n if ((aHasKey && !bHasKey) || (!aHasKey && bHasKey) || !looseEqual(a[key], b[key])) {\n return false\n }\n }\n }\n return String(a) === String(b)\n}\n\nexport default looseEqual\n","import { keys } from './object'\nimport { eventOn, eventOff } from './dom'\n\nconst allListenTypes = { hover: true, click: true, focus: true }\n\nconst BVBoundListeners = '__BV_boundEventListeners__'\n\nconst getTargets = binding => {\n const targets = keys(binding.modifiers || {}).filter(t => !allListenTypes[t])\n\n if (binding.value) {\n targets.push(binding.value)\n }\n\n return targets\n}\n\nconst bindTargets = (vnode, binding, listenTypes, fn) => {\n const targets = getTargets(binding)\n\n const listener = () => {\n fn({ targets, vnode })\n }\n\n keys(allListenTypes).forEach(type => {\n if (listenTypes[type] || binding.modifiers[type]) {\n eventOn(vnode.elm, type, listener)\n const boundListeners = vnode.elm[BVBoundListeners] || {}\n boundListeners[type] = boundListeners[type] || []\n boundListeners[type].push(listener)\n vnode.elm[BVBoundListeners] = boundListeners\n }\n })\n\n // Return the list of targets\n return targets\n}\n\nconst unbindTargets = (vnode, binding, listenTypes) => {\n keys(allListenTypes).forEach(type => {\n if (listenTypes[type] || binding.modifiers[type]) {\n const boundListeners = vnode.elm[BVBoundListeners] && vnode.elm[BVBoundListeners][type]\n if (boundListeners) {\n boundListeners.forEach(listener => eventOff(vnode.elm, type, listener))\n delete vnode.elm[BVBoundListeners][type]\n }\n }\n })\n}\n\nexport { bindTargets, unbindTargets, getTargets }\n\nexport default bindTargets\n","import looseEqual from '../../utils/loose-equal'\nimport { addClass, removeAttr, removeClass, setAttr } from '../../utils/dom'\nimport { isBrowser } from '../../utils/env'\nimport { bindTargets, getTargets, unbindTargets } from '../../utils/target'\n\n// Target listen types\nconst listenTypes = { click: true }\n\n// Property key for handler storage\nconst BV_TOGGLE = '__BV_toggle__'\nconst BV_TOGGLE_STATE = '__BV_toggle_STATE__'\nconst BV_TOGGLE_CONTROLS = '__BV_toggle_CONTROLS__'\nconst BV_TOGGLE_TARGETS = '__BV_toggle_TARGETS__'\n\n// Emitted control event for collapse (emitted to collapse)\nconst EVENT_TOGGLE = 'bv::toggle::collapse'\n\n// Listen to event for toggle state update (emitted by collapse)\nconst EVENT_STATE = 'bv::collapse::state'\n\n// Private event emitted on $root to ensure the toggle state is always synced.\n// Gets emitted even if the state of b-collapse has not changed.\n// This event is NOT to be documented as people should not be using it.\nconst EVENT_STATE_SYNC = 'bv::collapse::sync::state'\n// Private event we send to collapse to request state update sync event\nconst EVENT_STATE_REQUEST = 'bv::request::collapse::state'\n\n// Reset and remove a property from the provided element\nconst resetProp = (el, prop) => {\n el[prop] = null\n delete el[prop]\n}\n\n// Handle targets update\nconst handleTargets = ({ targets, vnode }) => {\n targets.forEach(target => {\n vnode.context.$root.$emit(EVENT_TOGGLE, target)\n })\n}\n\n// Handle directive updates\n/* istanbul ignore next: not easy to test */\nconst handleUpdate = (el, binding, vnode) => {\n if (!isBrowser) {\n return\n }\n\n if (!looseEqual(getTargets(binding), el[BV_TOGGLE_TARGETS])) {\n // Targets have changed, so update accordingly\n unbindTargets(vnode, binding, listenTypes)\n const targets = bindTargets(vnode, binding, listenTypes, handleTargets)\n // Update targets array to element\n el[BV_TOGGLE_TARGETS] = targets\n // Add aria attributes to element\n el[BV_TOGGLE_CONTROLS] = targets.join(' ')\n // ensure aria-controls is up to date\n setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS])\n // Request a state update from targets so that we can ensure\n // expanded state is correct\n targets.forEach(target => {\n vnode.context.$root.$emit(EVENT_STATE_REQUEST, target)\n })\n }\n\n // Ensure the collapse class and aria-* attributes persist\n // after element is updated (either by parent re-rendering\n // or changes to this element or it's contents\n if (el[BV_TOGGLE_STATE] === true) {\n addClass(el, 'collapsed')\n setAttr(el, 'aria-expanded', 'true')\n } else if (el[BV_TOGGLE_STATE] === false) {\n removeClass(el, 'collapsed')\n setAttr(el, 'aria-expanded', 'false')\n }\n setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS])\n}\n\n/*\n * Export our directive\n */\nexport const VBToggle = {\n bind(el, binding, vnode) {\n const targets = bindTargets(vnode, binding, listenTypes, handleTargets)\n if (isBrowser && vnode.context && targets.length > 0) {\n // Add targets array to element\n el[BV_TOGGLE_TARGETS] = targets\n // Add aria attributes to element\n el[BV_TOGGLE_CONTROLS] = targets.join(' ')\n // State is initially collapsed until we receive a state event\n el[BV_TOGGLE_STATE] = false\n setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS])\n setAttr(el, 'aria-expanded', 'false')\n // If element is not a button, we add `role=\"button\"` for accessibility\n if (el.tagName !== 'BUTTON') {\n setAttr(el, 'role', 'button')\n }\n\n // Toggle state handler, stored on element\n el[BV_TOGGLE] = function toggleDirectiveHandler(id, state) {\n const targets = el[BV_TOGGLE_TARGETS] || []\n if (targets.indexOf(id) !== -1) {\n // Set aria-expanded state\n setAttr(el, 'aria-expanded', state ? 'true' : 'false')\n // Set/Clear 'collapsed' class state\n el[BV_TOGGLE_STATE] = state\n if (state) {\n removeClass(el, 'collapsed')\n } else {\n addClass(el, 'collapsed')\n }\n }\n }\n\n // Listen for toggle state changes (public)\n vnode.context.$root.$on(EVENT_STATE, el[BV_TOGGLE])\n // Listen for toggle state sync (private)\n vnode.context.$root.$on(EVENT_STATE_SYNC, el[BV_TOGGLE])\n }\n },\n componentUpdated: handleUpdate,\n updated: handleUpdate,\n unbind(el, binding, vnode) /* istanbul ignore next */ {\n unbindTargets(vnode, binding, listenTypes)\n // Remove our $root listener\n if (el[BV_TOGGLE]) {\n vnode.context.$root.$off(EVENT_STATE, el[BV_TOGGLE])\n vnode.context.$root.$off(EVENT_STATE_SYNC, el[BV_TOGGLE])\n }\n // Reset custom props\n resetProp(el, BV_TOGGLE)\n resetProp(el, BV_TOGGLE_STATE)\n resetProp(el, BV_TOGGLE_CONTROLS)\n resetProp(el, BV_TOGGLE_TARGETS)\n // Reset classes/attrs\n removeClass(el, 'collapsed')\n removeAttr(el, 'aria-expanded')\n removeAttr(el, 'aria-controls')\n removeAttr(el, 'role')\n }\n}\n\nexport default VBToggle\n","import { BCollapse } from './collapse'\nimport { VBToggle } from '../../directives/toggle/toggle'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst CollapsePlugin = /*#__PURE__*/ pluginFactory({\n components: { BCollapse },\n directives: { VBToggle }\n})\n\nexport { CollapsePlugin, BCollapse }\n\nexport default CollapsePlugin\n","/**\n * SSR safe types\n */\n\nimport { hasWindowSupport } from './env'\n\nconst w = hasWindowSupport ? window : {}\n\nexport const HTMLElement = w.HTMLElement || Object\n","import { assign, defineProperty, defineProperties, readonlyDescriptor } from './object'\n\nclass BvEvent {\n constructor(type, eventInit = {}) {\n // Start by emulating native Event constructor.\n if (!type) {\n /* istanbul ignore next */\n throw new TypeError(\n `Failed to construct '${this.constructor.name}'. 1 argument required, ${\n arguments.length\n } given.`\n )\n }\n // Assign defaults first, the eventInit,\n // and the type last so it can't be overwritten.\n assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, { type })\n // Freeze some props as readonly, but leave them enumerable.\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor(),\n componentId: readonlyDescriptor()\n })\n // Create a private variable using closure scoping.\n let defaultPrevented = false\n // Recreate preventDefault method. One way setter.\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true\n }\n }\n // Create 'defaultPrevented' publicly accessible prop\n // that can only be altered by the preventDefault method.\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get() {\n return defaultPrevented\n }\n })\n }\n\n static get Defaults() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null,\n componentId: null\n }\n }\n}\n\n// Named Exports\nexport { BvEvent }\n\n// Default Export\nexport default BvEvent\n","import { contains, eventOff, eventOn } from '../utils/dom'\n\n// @vue/component\nexport default {\n data() {\n return {\n listenForClickOut: false\n }\n },\n watch: {\n listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n }\n }\n }\n },\n beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null\n this.clickOutEventName = null\n },\n mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document\n }\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'ontouchstart' in document.documentElement ? 'touchstart' : 'click'\n }\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n }\n },\n beforeDestroy() /* istanbul ignore next */ {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n },\n methods: {\n isClickOut(evt) {\n return !contains(this.$el, evt.target)\n },\n _clickOutHandler(evt) {\n if (this.clickOutHandler && this.isClickOut(evt)) {\n this.clickOutHandler(evt)\n }\n }\n }\n}\n","import { eventOff, eventOn } from '../utils/dom'\n\n// @vue/component\nexport default {\n data() {\n return {\n listenForFocusIn: false\n }\n },\n watch: {\n listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, false)\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, false)\n }\n }\n }\n },\n beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null\n },\n mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document\n }\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, false)\n }\n },\n beforeDestroy() /* istanbul ignore next */ {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, false)\n },\n methods: {\n _focusInHandler(evt) {\n if (this.focusInHandler) {\n this.focusInHandler(evt)\n }\n }\n }\n}\n","import Popper from 'popper.js'\nimport BvEvent from '../utils/bv-event.class'\nimport KeyCodes from '../utils/key-codes'\nimport warn from '../utils/warn'\nimport { closest, contains, isVisible, requestAF, selectAll } from '../utils/dom'\nimport { isNull } from '../utils/inspect'\nimport clickOutMixin from './click-out'\nimport focusInMixin from './focus-in'\n\n// Return an Array of visible items\nfunction filterVisibles(els) {\n return (els || []).filter(isVisible)\n}\n\n// Dropdown item CSS selectors\nconst Selector = {\n FORM_CHILD: '.dropdown form',\n ITEM_SELECTOR: ['.dropdown-item', '.b-dropdown-form']\n .map(selector => `${selector}:not(.disabled):not([disabled])`)\n .join(', ')\n}\n\n// Popper attachment positions\nconst AttachmentMap = {\n // Dropup left align\n TOP: 'top-start',\n // Dropup right align\n TOPEND: 'top-end',\n // Dropdown left align\n BOTTOM: 'bottom-start',\n // Dropdown right align\n BOTTOMEND: 'bottom-end',\n // Dropright left align\n RIGHT: 'right-start',\n // Dropright right align\n RIGHTEND: 'right-end',\n // Dropleft left align\n LEFT: 'left-start',\n // Dropleft right align\n LEFTEND: 'left-end'\n}\n\n// @vue/component\nexport default {\n mixins: [clickOutMixin, focusInMixin],\n provide() {\n return {\n bvDropdown: this\n }\n },\n props: {\n disabled: {\n type: Boolean,\n default: false\n },\n text: {\n // Button label\n type: String,\n default: ''\n },\n html: {\n // Button label\n type: String\n },\n dropup: {\n // place on top if possible\n type: Boolean,\n default: false\n },\n dropright: {\n // place right if possible\n type: Boolean,\n default: false\n },\n dropleft: {\n // place left if possible\n type: Boolean,\n default: false\n },\n right: {\n // Right align menu (default is left align)\n type: Boolean,\n default: false\n },\n offset: {\n // Number of pixels to offset menu, or a CSS unit value (i.e. 1px, 1rem, etc)\n type: [Number, String],\n default: 0\n },\n noFlip: {\n // Disable auto-flipping of menu from bottom<=>top\n type: Boolean,\n default: false\n },\n popperOpts: {\n // type: Object,\n default: () => {}\n }\n },\n data() {\n return {\n visible: false,\n inNavbar: null,\n visibleChangePrevented: false\n }\n },\n computed: {\n toggler() {\n const toggle = this.$refs.toggle\n return toggle ? toggle.$el || toggle : null\n },\n directionClass() {\n if (this.dropup) {\n return 'dropup'\n } else if (this.dropright) {\n return 'dropright'\n } else if (this.dropleft) {\n return 'dropleft'\n }\n return ''\n }\n },\n watch: {\n visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false\n return\n }\n\n if (newValue !== oldValue) {\n const evtName = newValue ? 'show' : 'hide'\n let bvEvt = new BvEvent(evtName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null\n })\n this.emitEvent(bvEvt)\n if (bvEvt.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true\n this.visible = oldValue\n // Just in case a child element triggereded this.hide(true)\n this.$off('hidden', this.focusToggler)\n return\n }\n if (evtName === 'show') {\n this.showMenu()\n } else {\n this.hideMenu()\n }\n }\n },\n disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false\n }\n }\n },\n created() {\n // Create non-reactive property\n this._popper = null\n },\n deactivated() /* istanbul ignore next: not easy to test */ {\n // In case we are inside a `<keep-alive>`\n this.visible = false\n this.whileOpenListen(false)\n this.removePopper()\n },\n beforeDestroy() {\n this.visible = false\n this.whileOpenListen(false)\n this.removePopper()\n },\n methods: {\n // Event emitter\n emitEvent(bvEvt) {\n const type = bvEvt.type\n this.$emit(type, bvEvt)\n this.$root.$emit(`bv::dropdown::${type}`, bvEvt)\n },\n showMenu() {\n if (this.disabled) {\n /* istanbul ignore next */\n return\n }\n // Ensure other menus are closed\n this.$root.$emit('bv::dropdown::shown', this)\n\n // Are we in a navbar ?\n if (isNull(this.inNavbar) && this.isNav) {\n // We should use an injection for this\n /* istanbul ignore next */\n this.inNavbar = Boolean(closest('.navbar', this.$el))\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('b-dropdown: Popper.js not found. Falling back to CSS positioning.')\n } else {\n // for dropup with alignment we use the parent element as popper container\n let element = (this.dropup && this.right) || this.split ? this.$el : this.$refs.toggle\n // Make sure we have a reference to an element, not a component!\n element = element.$el || element\n // Instantiate popper.js\n this.createPopper(element)\n }\n }\n\n this.whileOpenListen(true)\n\n // Wrap in nextTick to ensure menu is fully rendered/shown\n this.$nextTick(() => {\n // Focus on the menu container on show\n this.focusMenu()\n // Emit the shown event\n this.$emit('shown')\n })\n },\n hideMenu() {\n this.whileOpenListen(false)\n this.$root.$emit('bv::dropdown::hidden', this)\n this.$emit('hidden')\n this.removePopper()\n },\n createPopper(element) {\n this.removePopper()\n this._popper = new Popper(element, this.$refs.menu, this.getPopperConfig())\n },\n removePopper() {\n if (this._popper) {\n // Ensure popper event listeners are removed cleanly\n this._popper.destroy()\n }\n this._popper = null\n },\n getPopperConfig() {\n let placement = AttachmentMap.BOTTOM\n if (this.dropup) {\n placement = this.right ? AttachmentMap.TOPEND : AttachmentMap.TOP\n } else if (this.dropright) {\n placement = AttachmentMap.RIGHT\n } else if (this.dropleft) {\n placement = AttachmentMap.LEFT\n } else if (this.right) {\n placement = AttachmentMap.BOTTOMEND\n }\n let popperConfig = {\n placement,\n modifiers: {\n offset: { offset: this.offset || 0 },\n flip: { enabled: !this.noFlip }\n }\n }\n if (this.boundary) {\n popperConfig.modifiers.preventOverflow = { boundariesElement: this.boundary }\n }\n return { ...popperConfig, ...(this.popperOpts || {}) }\n },\n whileOpenListen(open) {\n // turn listeners on/off while open\n if (open) {\n // If another dropdown is opened\n this.$root.$on('bv::dropdown::shown', this.rootCloseListener)\n // Hide the dropdown when clicked outside\n this.listenForClickOut = true\n // Hide the dropdown when it loses focus\n this.listenForFocusIn = true\n } else {\n this.$root.$off('bv::dropdown::shown', this.rootCloseListener)\n this.listenForClickOut = false\n this.listenForFocusIn = false\n }\n },\n rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false\n }\n },\n show() {\n // Public method to show dropdown\n if (this.disabled) {\n return\n }\n // Wrap in a requestAnimationFrame to allow any previous\n // click handling to occur first\n requestAF(() => {\n this.visible = true\n })\n },\n hide(refocus = false) {\n // Public method to hide dropdown\n if (this.disabled) {\n /* istanbul ignore next */\n return\n }\n this.visible = false\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once('hidden', this.focusToggler)\n }\n },\n toggle(evt) {\n // Called only by a button that toggles the menu\n evt = evt || {}\n const type = evt.type\n const key = evt.keyCode\n if (\n type !== 'click' &&\n !(\n type === 'keydown' &&\n (key === KeyCodes.ENTER || key === KeyCodes.SPACE || key === KeyCodes.DOWN)\n )\n ) {\n // We only toggle on Click, Enter, Space, and Arrow Down\n /* istanbul ignore next */\n return\n }\n if (this.disabled) {\n /* istanbul ignore next */\n this.visible = false\n /* istanbul ignore next */\n return\n }\n this.$emit('toggle', evt)\n if (evt.defaultPrevented) {\n // Exit if canceled\n return\n }\n evt.preventDefault()\n evt.stopPropagation()\n // Toggle visibility\n this.visible = !this.visible\n },\n click(evt) {\n // Called only in split button mode, for the split button\n if (this.disabled) {\n /* istanbul ignore next */\n this.visible = false\n /* istanbul ignore next */\n return\n }\n this.$emit('click', evt)\n },\n onKeydown(evt) {\n // Called from dropdown menu context\n const key = evt.keyCode\n if (key === KeyCodes.ESC) {\n // Close on ESC\n this.onEsc(evt)\n } else if (key === KeyCodes.DOWN) {\n // Down Arrow\n this.focusNext(evt, false)\n } else if (key === KeyCodes.UP) {\n // Up Arrow\n this.focusNext(evt, true)\n }\n },\n onEsc(evt) {\n if (this.visible) {\n this.visible = false\n evt.preventDefault()\n evt.stopPropagation()\n // Return focus to original trigger button\n this.$once('hidden', this.focusToggler)\n }\n },\n // Document click out listener\n clickOutHandler() {\n if (this.visible) {\n this.visible = false\n }\n },\n // Document focusin listener\n focusInHandler(evt) {\n // If focus leaves dropdown, hide it\n if (\n this.visible &&\n !contains(this.$refs.menu, evt.target) &&\n !contains(this.$refs.toggle, evt.target)\n ) {\n this.visible = false\n }\n },\n // Keyboard nav\n focusNext(evt, up) {\n if (!this.visible || (evt && closest(Selector.FORM_CHILD, evt.target))) {\n // Ignore key up/down on form elements\n /* istanbul ignore next: should never happen */\n return\n }\n evt.preventDefault()\n evt.stopPropagation()\n this.$nextTick(() => {\n const items = this.getItems()\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return\n }\n let index = items.indexOf(evt.target)\n if (up && index > 0) {\n index--\n } else if (!up && index < items.length - 1) {\n index++\n }\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0\n }\n this.focusItem(index, items)\n })\n },\n focusItem(idx, items) {\n let el = items.find((el, i) => i === idx)\n if (el && el.focus) {\n el.focus()\n }\n },\n getItems() {\n // Get all items\n return filterVisibles(selectAll(Selector.ITEM_SELECTOR, this.$refs.menu))\n },\n focusMenu() {\n this.$refs.menu.focus && this.$refs.menu.focus()\n },\n focusToggler() {\n let toggler = this.toggler\n if (toggler && toggler.focus) {\n toggler.focus()\n }\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport { stripTags } from '../../utils/html'\nimport { getComponentConfig } from '../../utils/config'\nimport { HTMLElement } from '../../utils/safe-types'\nimport idMixin from '../../mixins/id'\nimport dropdownMixin from '../../mixins/dropdown'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BButton } from '../button/button'\n\nconst NAME = 'BDropdown'\n\nexport const props = {\n toggleText: {\n // This really should be toggleLabel\n type: String,\n default: () => getComponentConfig(NAME, 'toggleText')\n },\n size: {\n type: String,\n default: null\n },\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n menuClass: {\n type: [String, Array],\n default: null\n },\n toggleTag: {\n type: String,\n default: 'button'\n },\n toggleClass: {\n type: [String, Array],\n default: null\n },\n noCaret: {\n type: Boolean,\n default: false\n },\n split: {\n type: Boolean,\n default: false\n },\n splitHref: {\n type: String\n // default: undefined\n },\n splitTo: {\n type: [String, Object]\n // default: undefined\n },\n splitVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'splitVariant')\n },\n role: {\n type: String,\n default: 'menu'\n },\n boundary: {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n type: [String, HTMLElement],\n default: 'scrollParent'\n }\n}\n\n// @vue/component\nexport const BDropdown = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props,\n computed: {\n dropdownClasses() {\n return [\n this.directionClass,\n {\n show: this.visible,\n // Position `static` is needed to allow menu to \"breakout\" of the scrollParent boundaries\n // when boundary is anything other than `scrollParent`\n // See https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n 'position-static': this.boundary !== 'scrollParent' || !this.boundary\n }\n ]\n },\n menuClasses() {\n return [\n this.menuClass,\n {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }\n ]\n },\n toggleClasses() {\n return [\n this.toggleClass,\n {\n 'dropdown-toggle-split': this.split,\n 'dropdown-toggle-no-caret': this.noCaret && !this.split\n }\n ]\n }\n },\n render(h) {\n let split = h(false)\n const buttonContent =\n this.normalizeSlot('button-content') ||\n this.normalizeSlot('text') ||\n this.html ||\n stripTags(this.text)\n if (this.split) {\n const btnProps = {\n disabled: this.disabled,\n variant: this.splitVariant || this.variant,\n size: this.size\n }\n // We add these as needed due to router-link issues with defined property with undefined/null values\n if (this.splitTo) {\n btnProps.to = this.splitTo\n }\n if (this.splitHref) {\n btnProps.href = this.splitHref\n }\n split = h(\n BButton,\n {\n ref: 'button',\n props: btnProps,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n on: {\n click: this.click\n }\n },\n [buttonContent]\n )\n }\n const toggle = h(\n BButton,\n {\n ref: 'toggle',\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n props: {\n variant: this.variant,\n size: this.size,\n disabled: this.disabled,\n tag: this.toggleTag\n },\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': this.visible ? 'true' : 'false'\n },\n on: {\n click: this.toggle, // click\n keydown: this.toggle // enter, space, down\n }\n },\n [this.split ? h('span', { class: ['sr-only'] }, [this.toggleText]) : buttonContent]\n )\n const menu = h(\n 'ul',\n {\n ref: 'menu',\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: this.role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(this.split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // up, down, esc\n }\n },\n this.normalizeSlot('default', { hide: this.hide })\n )\n return h(\n 'div',\n {\n staticClass: 'dropdown btn-group b-dropdown',\n class: this.dropdownClasses,\n attrs: { id: this.safeId() }\n },\n [split, toggle, menu]\n )\n }\n})\n\nexport default BDropdown\n","import Vue from '../../utils/vue'\nimport { requestAF } from '../../utils/dom'\nimport nomalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nexport const props = linkPropsFactory()\n\n// @vue/component\nexport const BDropdownItem = /*#__PURE__*/ Vue.extend({\n name: 'BDropdownItem',\n mixins: [nomalizeSlotMixin],\n inheritAttrs: false,\n inject: {\n bvDropdown: {\n default: null\n }\n },\n props: {\n ...props,\n variant: {\n type: String,\n default: null\n }\n },\n methods: {\n closeDropdown() {\n // Close on next animation frame to allow <b-link> time to process\n requestAF(() => {\n if (this.bvDropdown) {\n this.bvDropdown.hide(true)\n }\n })\n },\n onClick(evt) {\n this.$emit('click', evt)\n this.closeDropdown()\n }\n },\n render(h) {\n return h('li', [\n h(\n BLink,\n {\n props: this.$props,\n staticClass: 'dropdown-item',\n class: {\n [`text-${this.variant}`]: this.variant && !(this.active || this.disabled)\n },\n attrs: { ...this.$attrs, role: 'menuitem' },\n on: { click: this.onClick },\n ref: 'item'\n },\n this.normalizeSlot('default')\n )\n ])\n }\n})\n\nexport default BDropdownItem\n","import Vue from '../../utils/vue'\nimport nomalizeSlotMixin from '../../mixins/normalize-slot'\n\nexport const props = {\n active: {\n type: Boolean,\n default: false\n },\n activeClass: {\n type: String,\n default: 'active'\n },\n disabled: {\n type: Boolean,\n default: false\n },\n variant: {\n type: String,\n default: null\n }\n}\n\n// @vue/component\nexport const BDropdownItemButton = /*#__PURE__*/ Vue.extend({\n name: 'BDropdownItemButton',\n mixins: [nomalizeSlotMixin],\n inheritAttrs: false,\n inject: {\n bvDropdown: {\n default: null\n }\n },\n props,\n methods: {\n closeDropdown() {\n if (this.bvDropdown) {\n this.bvDropdown.hide(true)\n }\n },\n onClick(evt) {\n this.$emit('click', evt)\n this.closeDropdown()\n }\n },\n render(h) {\n return h('li', [\n h(\n 'button',\n {\n staticClass: 'dropdown-item',\n class: {\n [this.activeClass]: this.active,\n [`text-${this.variant}`]: this.variant && !(this.active || this.disabled)\n },\n attrs: {\n ...this.$attrs,\n role: 'menuitem',\n type: 'button',\n disabled: this.disabled\n },\n on: { click: this.onClick },\n ref: 'button'\n },\n this.normalizeSlot('default')\n )\n ])\n }\n})\n\nexport default BDropdownItemButton\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'header'\n },\n variant: {\n type: String,\n default: null\n }\n}\n\n// @vue/component\nexport const BDropdownHeader = /*#__PURE__*/ Vue.extend({\n name: 'BDropdownHeader',\n functional: true,\n inheritAttrs: false,\n props,\n render(h, { props, data, children }) {\n return h('li', [\n h(\n props.tag,\n mergeData(data, {\n staticClass: 'dropdown-header',\n class: {\n [`text-${props.variant}`]: props.variant\n },\n attrs: {\n id: props.id || null,\n role: 'heading'\n },\n ref: 'header'\n }),\n children\n )\n ])\n }\n})\n\nexport default BDropdownHeader\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n tag: {\n type: String,\n default: 'hr'\n }\n}\n\n// @vue/component\nexport const BDropdownDivider = /*#__PURE__*/ Vue.extend({\n name: 'BDropdownDivider',\n functional: true,\n inheritAttrs: false,\n props,\n render(h, { props, data }) {\n return h('li', [\n h(\n props.tag,\n mergeData(data, {\n staticClass: 'dropdown-divider',\n attrs: {\n role: 'separator',\n 'aria-orientation': 'horizontal'\n },\n ref: 'divider'\n })\n )\n ])\n }\n})\n\nexport default BDropdownDivider\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n id: {\n type: String,\n default: null\n },\n inline: {\n type: Boolean,\n default: false\n },\n novalidate: {\n type: Boolean,\n default: false\n },\n validated: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BForm = /*#__PURE__*/ Vue.extend({\n name: 'BForm',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n 'form',\n mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }),\n children\n )\n }\n})\n\nexport default BForm\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BForm, props as formProps } from '../form/form'\n\nexport const BDropdownForm = /*#__PURE__*/ Vue.extend({\n name: 'BDropdownForm',\n functional: true,\n inheritAttrs: false,\n props: {\n ...formProps,\n disabled: {\n type: Boolean,\n default: false\n }\n },\n render(h, { props, data, children }) {\n return h('li', [\n h(\n BForm,\n mergeData(data, {\n ref: 'form',\n staticClass: 'b-dropdown-form',\n class: { disabled: props.disabled },\n props,\n attrs: {\n disabled: props.disabled,\n // Tab index of -1 for keyboard navigation\n tabindex: props.disabled ? null : '-1'\n }\n }),\n children\n )\n ])\n }\n})\n\nexport default BDropdownForm\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\n// @vue/component\nexport const BDropdownText = /*#__PURE__*/ Vue.extend({\n name: 'BDropdownText',\n functional: true,\n inheritAttrs: false,\n props: {\n tag: {\n type: String,\n default: 'p'\n },\n variant: {\n type: String,\n default: null\n }\n },\n render(h, { props, data, children }) {\n return h('li', [\n h(\n props.tag,\n mergeData(data, {\n staticClass: 'b-dropdown-text',\n class: {\n [`text-${props.variant}`]: props.variant\n },\n props,\n ref: 'text'\n }),\n children\n )\n ])\n }\n})\n\nexport default BDropdownText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\n\nexport const props = {\n id: {\n type: String,\n default: null\n },\n header: {\n type: String,\n default: null\n },\n headerTag: {\n type: String,\n default: 'header'\n },\n headerVariant: {\n type: String,\n default: null\n },\n headerClasses: {\n type: [String, Array, Object],\n default: null\n },\n ariaDescribedby: {\n type: String,\n default: null\n }\n}\n\n// @vue/component\nexport const BDropdownGroup = /*#__PURE__*/ Vue.extend({\n name: 'BDropdownGroup',\n functional: true,\n inheritAttrs: false,\n props,\n render(h, { props, data, slots, scopedSlots }) {\n const $slots = slots()\n const $scopedSlots = scopedSlots || {}\n let header\n let headerId = null\n\n if (hasNormalizedSlot('header', $scopedSlots, $slots) || props.header) {\n headerId = props.id ? `_bv_${props.id}_group_dd_header` : null\n header = h(\n props.headerTag,\n {\n staticClass: 'dropdown-header',\n class: [props.headerClasses, { [`text-${props.variant}`]: props.variant }],\n attrs: {\n id: headerId,\n role: 'heading'\n }\n },\n normalizeSlot('header', {}, $scopedSlots, $slots) || props.header\n )\n }\n\n const adb = [headerId, props.ariaDescribedBy]\n .filter(Boolean)\n .join(' ')\n .trim()\n\n return h('li', [\n header || h(false),\n h(\n 'ul',\n mergeData(data, {\n staticClass: 'list-unstyled',\n attrs: {\n id: props.id || null,\n 'aria-describedby': adb || null\n }\n }),\n normalizeSlot('default', {}, $scopedSlots, $slots)\n )\n ])\n }\n})\n\nexport default BDropdownGroup\n","import { BDropdown } from './dropdown'\nimport { BDropdownItem } from './dropdown-item'\nimport { BDropdownItemButton } from './dropdown-item-button'\nimport { BDropdownHeader } from './dropdown-header'\nimport { BDropdownDivider } from './dropdown-divider'\nimport { BDropdownForm } from './dropdown-form'\nimport { BDropdownText } from './dropdown-text'\nimport { BDropdownGroup } from './dropdown-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst DropdownPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BDropdown,\n BDd: BDropdown,\n BDropdownItem,\n BDdItem: BDropdownItem,\n BDropdownItemButton,\n BDropdownItemBtn: BDropdownItemButton,\n BDdItemButton: BDropdownItemButton,\n BDdItemBtn: BDropdownItemButton,\n BDropdownHeader,\n BDdHeader: BDropdownHeader,\n BDropdownDivider,\n BDdDivider: BDropdownDivider,\n BDropdownForm,\n BDdForm: BDropdownForm,\n BDropdownText,\n BDdText: BDropdownText,\n BDropdownGroup,\n BDdGroup: BDropdownGroup\n }\n})\n\nexport {\n DropdownPlugin,\n BDropdown,\n BDropdownItem,\n BDropdownItemButton,\n BDropdownHeader,\n BDropdownDivider,\n BDropdownForm,\n BDropdownText,\n BDropdownGroup\n}\n\nexport default DropdownPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { arrayIncludes } from '../../utils/array'\n\nexport const props = {\n type: {\n type: String,\n default: 'iframe',\n validator: str =>\n arrayIncludes(['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy'], str)\n },\n tag: {\n type: String,\n default: 'div'\n },\n aspect: {\n type: String,\n default: '16by9'\n }\n}\n\n// @vue/component\nexport const BEmbed = /*#__PURE__*/ Vue.extend({\n name: 'BEmbed',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n {\n ref: data.ref,\n staticClass: 'embed-responsive',\n class: {\n [`embed-responsive-${props.aspect}`]: Boolean(props.aspect)\n }\n },\n [h(props.type, mergeData(data, { ref: '', staticClass: 'embed-responsive-item' }), children)]\n )\n }\n})\n\nexport default BEmbed\n","import { BEmbed } from './embed'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst EmbedPlugin = /*#__PURE__*/ pluginFactory({\n components: { BEmbed }\n})\n\nexport { EmbedPlugin, BEmbed }\n\nexport default EmbedPlugin\n","import { stripTags } from '../utils/html'\nimport { isArray, isPlainObject, isUndefined } from '../utils/inspect'\nimport { keys } from '../utils/object'\n\n// @vue/component\nexport default {\n props: {\n options: {\n type: [Array, Object],\n default() {\n return []\n }\n },\n valueField: {\n type: String,\n default: 'value'\n },\n textField: {\n type: String,\n default: 'text'\n },\n htmlField: {\n type: String,\n default: 'html'\n },\n disabledField: {\n type: String,\n default: 'disabled'\n }\n },\n computed: {\n formOptions() {\n let options = this.options\n\n const valueField = this.valueField\n const textField = this.textField\n const htmlField = this.htmlField\n const disabledField = this.disabledField\n\n if (isArray(options)) {\n // Normalize flat-ish arrays to Array of Objects\n return options.map(option => {\n if (isPlainObject(option)) {\n const value = option[valueField]\n const text = String(option[textField])\n return {\n value: isUndefined(value) ? text : value,\n text: stripTags(text),\n html: option[htmlField],\n disabled: Boolean(option[disabledField])\n }\n }\n return {\n value: option,\n text: stripTags(String(option)),\n disabled: false\n }\n })\n } else {\n // options is Object\n // Normalize Objects to Array of Objects\n return keys(options).map(key => {\n let option = options[key] || {}\n if (isPlainObject(option)) {\n const value = option[valueField]\n const text = option[textField]\n return {\n value: isUndefined(value) ? key : value,\n text: isUndefined(text) ? stripTags(String(key)) : stripTags(String(text)),\n html: option[htmlField],\n disabled: Boolean(option[disabledField])\n }\n }\n return {\n value: key,\n text: stripTags(String(option)),\n disabled: false\n }\n })\n }\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport formOptionsMixin from '../../mixins/form-options'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { htmlOrText } from '../../utils/html'\n\n// @vue/component\nexport const BFormDatalist = /*#__PURE__*/ Vue.extend({\n name: 'BFormDatalist',\n mixins: [formOptionsMixin, normalizeSlotMixin],\n props: {\n id: {\n type: String,\n default: null,\n required: true\n }\n },\n render(h) {\n const options = this.formOptions.map((option, index) => {\n return h('option', {\n key: `option_${index}_opt`,\n attrs: { disabled: option.disabled },\n domProps: { ...htmlOrText(option.html, option.text), value: option.value }\n })\n })\n return h('datalist', { attrs: { id: this.id } }, [options, this.normalizeSlot('default')])\n }\n})\n\nexport default BFormDatalist\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\n\nconst NAME = 'BFormText'\n\nexport const props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'small'\n },\n textVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'textVariant')\n },\n inline: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BFormText = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n class: {\n 'form-text': !props.inline,\n [`text-${props.textVariant}`]: Boolean(props.textVariant)\n },\n attrs: {\n id: props.id\n }\n }),\n children\n )\n }\n})\n\nexport default BFormText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n tooltip: {\n type: Boolean,\n default: false\n },\n forceShow: {\n type: Boolean,\n default: false\n },\n state: {\n type: [Boolean, String],\n default: null\n },\n ariaLive: {\n type: String,\n default: null\n },\n role: {\n type: String,\n default: null\n }\n}\n\n// @vue/component\nexport const BFormInvalidFeedback = /*#__PURE__*/ Vue.extend({\n name: 'BFormInvalidFeedback',\n functional: true,\n props,\n render(h, { props, data, children }) {\n const show = props.forceShow === true || props.state === false || props.state === 'invalid'\n return h(\n props.tag,\n mergeData(data, {\n class: {\n 'invalid-feedback': !props.tooltip,\n 'invalid-tooltip': props.tooltip,\n 'd-block': show\n },\n attrs: {\n id: props.id,\n role: props.role,\n 'aria-live': props.ariaLive,\n 'aria-atomic': props.ariaLive ? 'true' : null\n }\n }),\n children\n )\n }\n})\n\nexport default BFormInvalidFeedback\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n tooltip: {\n type: Boolean,\n default: false\n },\n forceShow: {\n type: Boolean,\n default: false\n },\n state: {\n type: [Boolean, String],\n default: null\n },\n ariaLive: {\n type: String,\n default: null\n },\n role: {\n type: String,\n default: null\n }\n}\n\n// @vue/component\nexport const BFormValidFeedback = /*#__PURE__*/ Vue.extend({\n name: 'BFormValidFeedback',\n functional: true,\n props,\n render(h, { props, data, children }) {\n const show = props.forceShow === true || props.state === true || props.state === 'valid'\n return h(\n props.tag,\n mergeData(data, {\n class: {\n 'valid-feedback': !props.tooltip,\n 'valid-tooltip': props.tooltip,\n 'd-block': show\n },\n attrs: {\n id: props.id,\n role: props.role,\n 'aria-live': props.ariaLive,\n 'aria-atomic': props.ariaLive ? 'true' : null\n }\n }),\n children\n )\n }\n})\n\nexport default BFormValidFeedback\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n }\n}\n\n// @vue/component\nexport const BFormRow = /*#__PURE__*/ Vue.extend({\n name: 'BFormRow',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'form-row'\n }),\n children\n )\n }\n})\n\nexport default BFormRow\n","import { BForm } from './form'\nimport { BFormDatalist } from './form-datalist'\nimport { BFormText } from './form-text'\nimport { BFormInvalidFeedback } from './form-invalid-feedback'\nimport { BFormValidFeedback } from './form-valid-feedback'\nimport { BFormRow } from '../layout/form-row'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BForm,\n BFormDatalist,\n BDatalist: BFormDatalist,\n BFormText,\n BFormInvalidFeedback,\n BFormFeedback: BFormInvalidFeedback,\n BFormValidFeedback,\n // Added here for convenience\n BFormRow\n }\n})\n\n// BFormRow is not exported here as a named export, as it is exported by Layout\nexport { FormPlugin, BForm, BFormDatalist, BFormText, BFormInvalidFeedback, BFormValidFeedback }\n\nexport default FormPlugin\n","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true or 'valid' for is-valid\n * - false or 'invalid' for is-invalid\n * - null (or empty string) for no contextual state\n */\n\n// @vue/component\nexport default {\n props: {\n state: {\n // true/'valid', false/'invalid', '',null\n // The order must be String first, then Boolean!\n type: [String, Boolean],\n default: null\n }\n },\n computed: {\n computedState() {\n const state = this.state\n if (state === '') {\n return null\n } else if (state === true || state === 'valid') {\n return true\n } else if (state === false || state === 'invalid') {\n return false\n }\n return null\n },\n stateClass() {\n const state = this.computedState\n if (state === true) {\n return 'is-valid'\n } else if (state === false) {\n return 'is-invalid'\n }\n return null\n }\n }\n}\n","import upperFirst from './upper-first'\n\n/**\n * Suffix can be a falsey value so nothing is appended to string.\n * (helps when looping over props & some shouldn't change)\n * Use data last parameters to allow for currying.\n * @param {string} suffix\n * @param {string} str\n */\nconst suffixPropName = (suffix, str) => str + (suffix ? upperFirst(suffix) : '')\n\nexport default suffixPropName\n","import { mergeData } from 'vue-functional-data-merge'\nimport memoize from '../../utils/memoize'\nimport suffixPropName from '../../utils/suffix-prop-name'\nimport { arrayIncludes } from '../../utils/array'\nimport { isUndefined, isNull } from '../../utils/inspect'\nimport { keys, assign, create } from '../../utils/object'\nimport { getBreakpointsUpCached } from '../../utils/config'\n\n/**\n * Generates a prop object with a type of\n * [Boolean, String, Number]\n */\nfunction boolStrNum() {\n return {\n type: [Boolean, String, Number],\n default: false\n }\n}\n\n/**\n * Generates a prop object with a type of\n * [String, Number]\n */\nfunction strNum() {\n return {\n type: [String, Number],\n default: null\n }\n}\n\n// Memoized function for better performance on generating class names\nconst computeBkPtClass = memoize(function computeBkPt(type, breakpoint, val) {\n let className = type\n if (isUndefined(val) || isNull(val) || val === false) {\n return undefined\n }\n if (breakpoint) {\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <b-col sm></b-col> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n})\n\n// Cached copy of the breakpoint prop names\nlet breakpointPropMap = create(null)\n\n// Lazy evaled props factory for BCol\nconst generateProps = () => {\n // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n const breakpoints = getBreakpointsUpCached().filter(Boolean)\n\n // Supports classes like: .col-sm, .col-md-6, .col-lg-auto\n const breakpointCol = breakpoints.reduce((propMap, breakpoint) => {\n if (breakpoint) {\n // We filter out the '' breakpoint (xs), as making a prop name ''\n // would not work. The `cols` prop is used for `xs`\n propMap[breakpoint] = boolStrNum()\n }\n return propMap\n }, create(null))\n\n // Supports classes like: .offset-md-1, .offset-lg-12\n const breakpointOffset = breakpoints.reduce((propMap, breakpoint) => {\n propMap[suffixPropName(breakpoint, 'offset')] = strNum()\n return propMap\n }, create(null))\n\n // Supports classes like: .order-md-1, .order-lg-12\n const breakpointOrder = breakpoints.reduce((propMap, breakpoint) => {\n propMap[suffixPropName(breakpoint, 'order')] = strNum()\n return propMap\n }, create(null))\n\n // For loop doesn't need to check hasOwnProperty\n // when using an object created from null\n breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n })\n\n // Return the generated props\n return {\n // Generic flexbox .col (xs)\n col: {\n type: Boolean,\n default: false\n },\n // .col-[1-12]|auto (xs)\n cols: strNum(),\n // Breakpoint Specific props\n ...breakpointCol,\n offset: strNum(),\n ...breakpointOffset,\n order: strNum(),\n ...breakpointOrder,\n // Flex alignment\n alignSelf: {\n type: String,\n default: null,\n validator: str =>\n arrayIncludes(['auto', 'start', 'end', 'center', 'baseline', 'stretch'], str)\n },\n tag: {\n type: String,\n default: 'div'\n }\n }\n}\n\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\nexport const BCol = {\n name: 'BCol',\n functional: true,\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props\n // eslint-disable-next-line no-return-assign\n return (this.props = generateProps())\n },\n render(h, { props, data, children }) {\n const classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n for (const type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n const keys = breakpointPropMap[type]\n for (let i = 0; i < keys.length; i++) {\n // computeBkPt(col, colSm => Sm, value=[String, Number, Boolean])\n const c = computeBkPtClass(type, keys[i].replace(type, ''), props[keys[i]])\n // If a class is returned, push it onto the array.\n if (c) {\n classList.push(c)\n }\n }\n }\n\n const hasColClasses = classList.some(className => /^col-/.test(className))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: props.col || (!hasColClasses && !props.cols),\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf\n })\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n }\n}\n\nexport default BCol\n","// Utils\nimport memoize from '../../utils/memoize'\nimport upperFirst from '../../utils/upper-first'\nimport warn from '../../utils/warn'\nimport { arrayIncludes } from '../../utils/array'\nimport { getBreakpointsUpCached } from '../../utils/config'\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr } from '../../utils/dom'\nimport { isBrowser } from '../../utils/env'\nimport { isBoolean } from '../../utils/inspect'\nimport { keys, create } from '../../utils/object'\n// Mixins\nimport formStateMixin from '../../mixins/form-state'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n// Sub components\nimport { BCol } from '../layout/col'\nimport { BFormRow } from '../layout/form-row'\nimport { BFormText } from '../form/form-text'\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback'\nimport { BFormValidFeedback } from '../form/form-valid-feedback'\n\n// Component name\nconst NAME = 'BFormGroup'\n\n// Selector for finding first input in the form-group\nconst SELECTOR = 'input:not([disabled]),textarea:not([disabled]),select:not([disabled])'\n\nconst DEPRECATED_MSG =\n 'Props \"horizontal\" and \"breakpoint\" are deprecated. Use \"label-cols(-{breakpoint})\" props instead.'\n\n// Render helper functions (here rather than polluting the instance with more methods)\nconst renderInvalidFeedback = (h, ctx) => {\n let content = ctx.normalizeSlot('invalid-feedback') || ctx.invalidFeedback\n let invalidFeedback = h(false)\n if (content) {\n invalidFeedback = h(\n BFormInvalidFeedback,\n {\n props: {\n id: ctx.invalidFeedbackId,\n // If state is explicitly false, always show the feedback\n state: ctx.computedState,\n tooltip: ctx.tooltip,\n ariaLive: ctx.feedbackAriaLive,\n role: ctx.feedbackAriaLive ? 'alert' : null\n },\n attrs: { tabindex: content ? '-1' : null }\n },\n [content]\n )\n }\n return invalidFeedback\n}\n\nconst renderValidFeedback = (h, ctx) => {\n const content = ctx.normalizeSlot('valid-feedback') || ctx.validFeedback\n let validFeedback = h(false)\n if (content) {\n validFeedback = h(\n BFormValidFeedback,\n {\n props: {\n id: ctx.validFeedbackId,\n // If state is explicitly true, always show the feedback\n state: ctx.computedState,\n tooltip: ctx.tooltip,\n ariaLive: ctx.feedbackAriaLive,\n role: ctx.feedbackAriaLive ? 'alert' : null\n },\n attrs: { tabindex: content ? '-1' : null }\n },\n [content]\n )\n }\n return validFeedback\n}\n\nconst renderHelpText = (h, ctx) => {\n // Form help text (description)\n const content = ctx.normalizeSlot('description') || ctx.description\n let description = h(false)\n if (content) {\n description = h(\n BFormText,\n {\n attrs: {\n id: ctx.descriptionId,\n tabindex: content ? '-1' : null\n }\n },\n [content]\n )\n }\n return description\n}\n\nconst renderLabel = (h, ctx) => {\n // Render label/legend inside b-col if necessary\n const content = ctx.normalizeSlot('label') || ctx.label\n const labelFor = ctx.labelFor\n const isLegend = !labelFor\n const isHorizontal = ctx.isHorizontal\n const labelTag = isLegend ? 'legend' : 'label'\n if (!content && !isHorizontal) {\n return h(false)\n } else if (ctx.labelSrOnly) {\n let label = h(false)\n if (content) {\n label = h(\n labelTag,\n {\n class: 'sr-only',\n attrs: { id: ctx.labelId, for: labelFor || null }\n },\n [content]\n )\n }\n return h(isHorizontal ? BCol : 'div', { props: isHorizontal ? ctx.labelColProps : {} }, [label])\n } else {\n return h(\n isHorizontal ? BCol : labelTag,\n {\n on: isLegend ? { click: ctx.legendClick } : {},\n props: isHorizontal ? { tag: labelTag, ...ctx.labelColProps } : {},\n attrs: {\n id: ctx.labelId,\n for: labelFor || null,\n // We add a tab index to legend so that screen readers\n // will properly read the aria-labelledby in IE.\n tabindex: isLegend ? '-1' : null\n },\n class: [\n // When horizontal or if a legend is rendered, add col-form-label\n // for correct sizing as Bootstrap has inconsistent font styling\n // for legend in non-horizontal form-groups.\n // See: https://github.com/twbs/bootstrap/issues/27805\n isHorizontal || isLegend ? 'col-form-label' : '',\n // Emulate label padding top of 0 on legend when not horizontal\n !isHorizontal && isLegend ? 'pt-0' : '',\n // If not horizontal and not a legend, we add d-block to label\n // so that label-align works\n !isHorizontal && !isLegend ? 'd-block' : '',\n ctx.labelSize ? `col-form-label-${ctx.labelSize}` : '',\n ctx.labelAlignClasses,\n ctx.labelClass\n ]\n },\n [content]\n )\n }\n}\n\n// -- BFormGroup Prop factory -- used for lazy generation of props\n\n// Memoize this function to return cached values to\n// save time in computed functions\nconst makePropName = memoize((breakpoint = '', prefix) => {\n return `${prefix}${upperFirst(breakpoint)}`\n})\n\n// BFormGroup prop generator for lazy generation of props\nconst generateProps = () => {\n const BREAKPOINTS = getBreakpointsUpCached()\n\n // Generate the labelCol breakpoint props\n const bpLabelColProps = BREAKPOINTS.reduce((props, breakpoint) => {\n // i.e. label-cols, label-cols-sm, label-cols-md, ...\n props[makePropName(breakpoint, 'labelCols')] = {\n type: [Number, String, Boolean],\n default: breakpoint ? false : null\n }\n return props\n }, create(null))\n\n // Generate the labelAlign breakpoint props\n const bpLabelAlignProps = BREAKPOINTS.reduce((props, breakpoint) => {\n // label-align, label-align-sm, label-align-md, ...\n props[makePropName(breakpoint, 'labelAlign')] = {\n type: String, // left, right, center\n default: null\n }\n return props\n }, create(null))\n\n return {\n label: {\n type: String,\n default: null\n },\n labelFor: {\n type: String,\n default: null\n },\n labelSize: {\n type: String,\n default: null\n },\n labelSrOnly: {\n type: Boolean,\n default: false\n },\n // label-cols prop and all label-cols-{bp} props\n ...bpLabelColProps,\n // label-align prop and all label-align-{bp} props\n ...bpLabelAlignProps,\n labelClass: {\n type: [String, Array, Object],\n default: null\n },\n description: {\n type: String,\n default: null\n },\n invalidFeedback: {\n type: String,\n default: null\n },\n validFeedback: {\n type: String,\n default: null\n },\n tooltip: {\n // Enable tooltip style feedback\n type: Boolean,\n default: false\n },\n feedbackAriaLive: {\n type: String,\n default: 'assertive'\n },\n validated: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n horizontal: {\n // Deprecated\n type: Boolean,\n default: false,\n deprecated: DEPRECATED_MSG\n },\n breakpoint: {\n // Deprecated (ignored if horizontal is not true)\n type: String,\n default: null, // legacy value 'sm',\n deprecated: DEPRECATED_MSG\n }\n }\n}\n\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\nexport const BFormGroup = {\n name: NAME,\n mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props\n // eslint-disable-next-line no-return-assign\n return (this.props = generateProps())\n },\n computed: {\n labelColProps() {\n const props = {}\n /* istanbul ignore next: deprecated */\n if (this.horizontal) {\n // Deprecated setting of horizontal/breakpoint props\n /* istanbul ignore next */\n warn(`b-form-group: ${DEPRECATED_MSG}`)\n // Legacy default is breakpoint sm and cols 3\n const bp = this.breakpoint || getBreakpointsUpCached()[1] // 'sm'\n const cols = parseInt(this.labelCols, 10) || 3\n props[bp] = cols > 0 ? cols : 3\n // We then return the single breakpoint prop for legacy compatibility\n return props\n }\n getBreakpointsUpCached().forEach(breakpoint => {\n // Grab the value if the label column breakpoint prop\n let propVal = this[makePropName(breakpoint, 'labelCols')]\n // Handle case where the prop's value is an empty string,\n // which represents true\n propVal = propVal === '' ? true : propVal || false\n if (!isBoolean(propVal)) {\n // Convert to column size to number\n propVal = parseInt(propVal, 10) || 0\n // Ensure column size is greater than 0\n propVal = propVal > 0 ? propVal : false\n }\n if (propVal) {\n // Add the prop to the list of props to give to b-col\n // If breakpoint is '' (labelCols=true), then we use the\n // col prop to make equal width at xs\n const bColPropName = breakpoint || (isBoolean(propVal) ? 'col' : 'cols')\n // Add it to the props\n props[bColPropName] = propVal\n }\n })\n return props\n },\n labelAlignClasses() {\n const classes = []\n getBreakpointsUpCached().forEach(breakpoint => {\n // Assemble the label column breakpoint align classes\n const propVal = this[makePropName(breakpoint, 'labelAlign')] || null\n if (propVal) {\n const className = breakpoint ? `text-${breakpoint}-${propVal}` : `text-${propVal}`\n classes.push(className)\n }\n })\n return classes\n },\n isHorizontal() {\n // Determine if the resultant form-group will be rendered\n // horizontal (meaning it has label-col breakpoints)\n return keys(this.labelColProps).length > 0\n },\n labelId() {\n return this.$slots['label'] || this.label ? this.safeId('_BV_label_') : null\n },\n descriptionId() {\n return this.$slots['description'] || this.description ? this.safeId('_BV_description_') : null\n },\n hasInvalidFeedback() {\n // Used for computing aria-describedby\n const $slots = this.$slots\n return this.computedState === false && ($slots['invalid-feedback'] || this.invalidFeedback)\n },\n invalidFeedbackId() {\n return this.hasInvalidFeedback ? this.safeId('_BV_feedback_invalid_') : null\n },\n hasValidFeedback() {\n // Used for computing aria-describedby\n return this.computedState === true && (this.$slots['valid-feedback'] || this.validFeedback)\n },\n validFeedbackId() {\n return this.hasValidFeedback ? this.safeId('_BV_feedback_valid_') : null\n },\n describedByIds() {\n // Screen readers will read out any content linked to by aria-describedby\n // even if the content is hidden with `display: none;`, hence we only include\n // feedback IDs if the form-group's state is explicitly valid or invalid.\n return (\n [this.descriptionId, this.invalidFeedbackId, this.validFeedbackId]\n .filter(Boolean)\n .join(' ') || null\n )\n }\n },\n watch: {\n describedByIds(add, remove) {\n if (add !== remove) {\n this.setInputDescribedBy(add, remove)\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n // Set the aria-describedby IDs on the input specified by label-for\n // We do this in a nextTick to ensure the children have finished rendering\n this.setInputDescribedBy(this.describedByIds)\n })\n },\n methods: {\n legendClick(evt) {\n if (this.labelFor) {\n // Don't do anything if labelFor is set\n /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n return\n }\n const tagName = evt.target ? evt.target.tagName : ''\n if (/^(input|select|textarea|label|button|a)$/i.test(tagName)) {\n // If clicked an interactive element inside legend,\n // we just let the default happen\n /* istanbul ignore next */\n return\n }\n const inputs = selectAll(SELECTOR, this.$refs.content).filter(isVisible)\n if (inputs && inputs.length === 1 && inputs[0].focus) {\n // if only a single input, focus it, emulating label behaviour\n inputs[0].focus()\n }\n },\n setInputDescribedBy(add, remove) {\n // Sets the `aria-describedby` attribute on the input if label-for is set.\n // Optionally accepts a string of IDs to remove as the second parameter.\n // Preserves any aria-describedby value(s) user may have on input.\n if (this.labelFor && isBrowser) {\n const input = select(`#${this.labelFor}`, this.$refs.content)\n if (input) {\n const adb = 'aria-describedby'\n let ids = (getAttr(input, adb) || '').split(/\\s+/)\n add = (add || '').split(/\\s+/)\n remove = (remove || '').split(/\\s+/)\n // Update ID list, preserving any original IDs\n // and ensuring the ID's are unique\n ids = ids\n .filter(id => !arrayIncludes(remove, id))\n .concat(add)\n .filter(Boolean)\n ids = keys(ids.reduce((memo, id) => ({ ...memo, [id]: true }), {}))\n .join(' ')\n .trim()\n if (ids) {\n setAttr(input, adb, ids)\n } else {\n // No IDs, so remove the attribute\n removeAttr(input, adb)\n }\n }\n }\n }\n },\n render(h) {\n const isFieldset = !this.labelFor\n const isHorizontal = this.isHorizontal\n // Generate the label\n const label = renderLabel(h, this)\n // Generate the content\n const content = h(\n isHorizontal ? BCol : 'div',\n {\n ref: 'content',\n attrs: {\n tabindex: isFieldset ? '-1' : null,\n role: isFieldset ? 'group' : null\n }\n },\n [\n this.normalizeSlot('default') || h(false),\n renderInvalidFeedback(h, this),\n renderValidFeedback(h, this),\n renderHelpText(h, this)\n ]\n )\n // Create the form-group\n const data = {\n staticClass: 'form-group',\n class: [this.validated ? 'was-validated' : null, this.stateClass],\n attrs: {\n id: this.safeId(),\n disabled: isFieldset ? this.disabled : null,\n role: isFieldset ? null : 'group',\n 'aria-invalid': this.computedState === false ? 'true' : null,\n // Only apply aria-labelledby if we are a horizontal fieldset\n // as the legend is no longer a direct child of fieldset\n 'aria-labelledby': isFieldset && isHorizontal ? this.labelId : null,\n // Only apply aria-describedby IDs if we are a fieldset\n // as the input will have the IDs when not a fieldset\n 'aria-describedby': isFieldset ? this.describedByIds : null\n }\n }\n // Return it wrapped in a form-group\n // Note: Fieldsets do not support adding `row` or `form-row` directly\n // to them due to browser specific render issues, so we move the `form-row`\n // to an inner wrapper div when horizontal and using a fieldset\n return h(\n isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div',\n data,\n isHorizontal && isFieldset ? [h(BFormRow, {}, [label, content])] : [label, content]\n )\n }\n}\n\nexport default BFormGroup\n","import { BFormGroup } from './form-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormGroupPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BFormGroup,\n BFormFieldset: BFormGroup\n }\n})\n\nexport { FormGroupPlugin, BFormGroup }\n\nexport default FormGroupPlugin\n","import looseEqual from './loose-equal'\n\nconst looseIndexOf = (arr, val) => {\n // Assumes that the first argument is an array\n for (let i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) {\n return i\n }\n }\n return -1\n}\n\nexport default looseIndexOf\n","import { matches, select, isVisible, requestAF } from '../utils/dom'\n\nconst SELECTOR = 'input, textarea, select'\n\n// @vue/component\nexport default {\n props: {\n name: {\n type: String\n // default: undefined\n },\n id: {\n type: String\n // default: undefined\n },\n disabled: {\n type: Boolean\n },\n required: {\n type: Boolean,\n default: false\n },\n form: {\n type: String,\n default: null\n },\n autofocus: {\n type: Boolean,\n default: false\n }\n },\n mounted() {\n this.handleAutofocus()\n },\n activated() /* istanbul ignore next */ {\n this.handleAutofocus()\n },\n methods: {\n handleAutofocus() {\n this.$nextTick(() => {\n requestAF(() => {\n let el = this.$el\n if (this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el)\n }\n el && el.focus && el.focus()\n }\n })\n })\n }\n }\n}\n","import normalizeSlotMixin from './normalize-slot'\n\n// @vue/component\nexport default {\n mixins: [normalizeSlotMixin],\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n value: {\n // Value when checked\n // type: Object,\n // default: undefined\n },\n checked: {\n // This is the v-model\n // type: Object,\n // default: undefined\n },\n inline: {\n type: Boolean,\n default: false\n },\n plain: {\n type: Boolean,\n default: false\n },\n button: {\n // Only applicable in standalone mode (non group)\n type: Boolean,\n default: false\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: null\n },\n ariaLabel: {\n // Placed on the input if present.\n type: String,\n default: null\n },\n ariaLabelledby: {\n // Placed on the input if present.\n type: String,\n default: null\n }\n },\n data() {\n return {\n localChecked: this.isGroup ? this.bvGroup.checked : this.checked,\n hasFocus: false\n }\n },\n computed: {\n computedLocalChecked: {\n get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked\n },\n set(val) {\n if (this.isGroup) {\n this.bvGroup.localChecked = val\n } else {\n this.localChecked = val\n }\n }\n },\n isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return Boolean(this.bvGroup)\n },\n isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button\n },\n isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain\n },\n isCustom() {\n return this.isBtnMode ? false : !this.isPlain\n },\n isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain\n ? false\n : this.isGroup\n ? this.bvGroup.switches\n : this.switch\n },\n isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline\n },\n isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled\n },\n isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return Boolean(this.getName && (this.isGroup ? this.bvGroup.required : this.required))\n },\n getName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null\n },\n getForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null\n },\n getSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || ''\n },\n getState() {\n return this.isGroup ? this.bvGroup.computedState : this.computedState\n },\n getButtonVariant() {\n // Local variant preferred over group variant\n if (this.buttonVariant) {\n return this.buttonVariant\n } else if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant\n }\n // default variant\n return 'secondary'\n },\n buttonClasses() {\n // Same for radio & check\n return [\n 'btn',\n `btn-${this.getButtonVariant}`,\n this.getSize ? `btn-${this.getSize}` : '',\n // 'disabled' class makes \"button\" look disabled\n this.isDisabled ? 'disabled' : '',\n // 'active' class makes \"button\" look pressed\n this.isChecked ? 'active' : '',\n // Focus class makes button look focused\n this.hasFocus ? 'focus' : ''\n ]\n }\n },\n watch: {\n checked(newVal, oldVal) {\n this.computedLocalChecked = newVal\n }\n },\n methods: {\n handleFocus(evt) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (evt.target) {\n if (evt.type === 'focus') {\n this.hasFocus = true\n } else if (evt.type === 'blur') {\n this.hasFocus = false\n }\n }\n },\n // Convenience methods for focusing the input\n focus() {\n if (!this.isDisabled && this.$refs.input && this.$refs.input.focus) {\n this.$refs.input.focus()\n }\n },\n blur() {\n if (!this.isDisabled && this.$refs.input && this.$refs.input.blur) {\n this.$refs.input.blur()\n }\n }\n },\n render(h) {\n const defaultSlot = this.normalizeSlot('default')\n\n // Generate the input element\n const on = { change: this.handleChange }\n if (this.isBtnMode) {\n // Handlers for focus styling when in button mode\n on.focus = on.blur = this.handleFocus\n }\n const input = h('input', {\n ref: 'input',\n key: 'input',\n on,\n class: {\n 'form-check-input': this.isPlain,\n 'custom-control-input': this.isCustom,\n 'is-valid': this.getState === true && !this.isBtnMode,\n 'is-invalid': this.getState === false && !this.isBtnMode,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': this.isPlain && !defaultSlot\n },\n directives: [\n {\n name: 'model',\n rawName: 'v-model',\n value: this.computedLocalChecked,\n expression: 'computedLocalChecked'\n }\n ],\n attrs: {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.getName,\n form: this.getForm,\n disabled: this.isDisabled,\n required: this.isRequired,\n autocomplete: 'off',\n 'aria-required': this.isRequired || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n },\n domProps: {\n value: this.value,\n checked: this.isChecked\n }\n })\n\n if (this.isBtnMode) {\n // Button mode\n let button = h('label', { class: this.buttonClasses }, [input, defaultSlot])\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n button = h('div', { class: ['btn-group-toggle', 'd-inline-block'] }, [button])\n }\n return button\n } else {\n // Not button mode\n let label = h(false)\n // If no label content in plain mode we dont render the label\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n if (!(this.isPlain && !defaultSlot)) {\n label = h(\n 'label',\n {\n class: {\n 'form-check-label': this.isPlain,\n 'custom-control-label': this.isCustom\n },\n attrs: { for: this.safeId() }\n },\n defaultSlot\n )\n }\n // Wrap it in a div\n return h(\n 'div',\n {\n class: {\n 'form-check': this.isPlain,\n 'form-check-inline': this.isPlain && this.isInline,\n 'custom-control': this.isCustom,\n 'custom-control-inline': this.isCustom && this.isInline,\n 'custom-checkbox': this.isCustom && this.isCheck && !this.isSwitch,\n 'custom-switch': this.isSwitch,\n 'custom-radio': this.isCustom && this.isRadio,\n // Temporary until BS V4 supports sizing (most likely in V5)\n [`form-control-${this.getSize}`]: Boolean(this.getSize && !this.isBtnMode)\n }\n },\n [input, label]\n )\n }\n }\n}\n","// @vue/component\nexport default {\n props: {\n size: {\n type: String,\n default: null\n }\n },\n computed: {\n sizeFormClass() {\n return [this.size ? `form-control-${this.size}` : null]\n },\n sizeBtnClass() /* istanbul ignore next: don't think this is used */ {\n return [this.size ? `btn-${this.size}` : null]\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport looseEqual from '../../utils/loose-equal'\nimport looseIndexOf from '../../utils/loose-index-of'\nimport { isArray } from '../../utils/inspect'\nimport formMixin from '../../mixins/form'\nimport formRadioCheckMixin from '../../mixins/form-radio-check'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport idMixin from '../../mixins/id'\n\n// @vue/component\nexport const BFormCheckbox = /*#__PURE__*/ Vue.extend({\n name: 'BFormCheckbox',\n mixins: [\n formRadioCheckMixin, // Includes shared render function\n idMixin,\n formMixin,\n formSizeMixin,\n formStateMixin\n ],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: false\n }\n },\n props: {\n value: {\n // type: [Object, Boolean],\n default: true\n },\n uncheckedValue: {\n // type: [Object, Boolean],\n // Not applicable in multi-check mode\n default: false\n },\n indeterminate: {\n // Not applicable in multi-check mode\n type: Boolean,\n default: false\n },\n switch: {\n // Custom switch styling\n type: Boolean,\n default: false\n },\n checked: {\n // v-model\n type: [String, Number, Object, Array, Boolean],\n default: null\n }\n },\n computed: {\n isChecked() {\n const checked = this.computedLocalChecked\n const value = this.value\n if (isArray(checked)) {\n return looseIndexOf(checked, value) > -1\n } else {\n return looseEqual(checked, value)\n }\n },\n isRadio() {\n return false\n },\n isCheck() {\n return true\n }\n },\n watch: {\n computedLocalChecked(newVal, oldVal) {\n this.$emit('input', newVal)\n if (this.$refs && this.$refs.input) {\n this.$emit('update:indeterminate', this.$refs.input.indeterminate)\n }\n },\n indeterminate(newVal, oldVal) {\n this.setIndeterminate(newVal)\n }\n },\n mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this.indeterminate)\n },\n methods: {\n handleChange({ target: { checked, indeterminate } }) {\n let localChecked = this.computedLocalChecked\n const value = this.value\n const isArr = isArray(localChecked)\n const uncheckedValue = isArr ? null : this.uncheckedValue\n // Update computedLocalChecked\n if (isArr) {\n const idx = looseIndexOf(localChecked, value)\n if (checked && idx < 0) {\n // Add value to array\n localChecked = localChecked.concat(value)\n } else if (!checked && idx > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, idx).concat(localChecked.slice(idx + 1))\n }\n } else {\n localChecked = checked ? value : uncheckedValue\n }\n this.computedLocalChecked = localChecked\n // Change is only emitted on user interaction\n this.$emit('change', checked ? value : uncheckedValue)\n // If this is a child of form-checkbox-group, we emit a change event on it as well\n if (this.isGroup) {\n this.bvGroup.$emit('change', localChecked)\n }\n this.$emit('update:indeterminate', indeterminate)\n },\n setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false\n }\n if (this.$refs && this.$refs.input) {\n this.$refs.input.indeterminate = state\n // Emit update event to prop\n this.$emit('update:indeterminate', state)\n }\n }\n }\n})\n\nexport default BFormCheckbox\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formStateMixin from '../../mixins/form-state'\nimport formSizeMixin from '../../mixins/form-size'\nimport formRadioCheckMixin from '../../mixins/form-radio-check'\nimport looseEqual from '../../utils/loose-equal'\n\n// @vue/component\nexport const BFormRadio = /*#__PURE__*/ Vue.extend({\n name: 'BFormRadio',\n mixins: [\n idMixin,\n formRadioCheckMixin, // Includes shared render function\n formMixin,\n formSizeMixin,\n formStateMixin\n ],\n inject: {\n bvGroup: {\n from: 'bvRadioGroup',\n default: false\n }\n },\n props: {\n checked: {\n // v-model\n type: [String, Object, Number, Boolean],\n default: null\n }\n },\n computed: {\n // Radio Groups can only have a single value, so determining if checked is simple\n isChecked() {\n return looseEqual(this.value, this.computedLocalChecked)\n },\n // Flags for form-radio-check mixin\n isRadio() {\n return true\n },\n isCheck() {\n return false\n }\n },\n watch: {\n // Radio Groups can only have a single value, so our watchers are simple\n computedLocalChecked(newVal, oldVal) {\n this.$emit('input', this.computedLocalChecked)\n }\n },\n methods: {\n handleChange({ target: { checked } }) {\n const value = this.value\n this.computedLocalChecked = value\n // Change is only emitted on user interaction\n this.$emit('change', checked ? value : null)\n // If this is a child of form-radio-group, we emit a change event on it as well\n if (this.isGroup) {\n this.bvGroup.$emit('change', checked ? value : null)\n }\n }\n }\n})\n\nexport default BFormRadio\n","import { htmlOrText } from '../utils/html'\nimport normalizeSlotMixin from './normalize-slot'\nimport { BFormCheckbox } from '../components/form-checkbox/form-checkbox'\nimport { BFormRadio } from '../components/form-radio/form-radio'\n\n// @vue/component\nexport default {\n mixins: [normalizeSlotMixin],\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n validated: {\n type: Boolean,\n default: false\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n stacked: {\n type: Boolean,\n default: false\n },\n plain: {\n type: Boolean,\n default: false\n },\n buttons: {\n // Render as button style\n type: Boolean,\n default: false\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: 'secondary'\n }\n },\n computed: {\n inline() {\n return !this.stacked\n },\n groupName() {\n // Checks/Radios tied to the same model must have the same name,\n // especially for ARIA accessibility.\n return this.name || this.safeId()\n },\n groupClasses() {\n if (this.buttons) {\n return [\n 'btn-group-toggle',\n this.inline ? 'btn-group' : 'btn-group-vertical',\n this.size ? `btn-group-${this.size}` : '',\n this.validated ? `was-validated` : ''\n ]\n }\n return [this.validated ? `was-validated` : '']\n },\n computedAriaInvalid() {\n const ariaInvalid = this.ariaInvalid\n if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n return 'true'\n }\n return this.computedState === false ? 'true' : null\n }\n },\n watch: {\n checked(newVal, oldVal) {\n this.localChecked = newVal\n },\n localChecked(newVal, oldVal) {\n this.$emit('input', newVal)\n }\n },\n render(h) {\n const inputs = this.formOptions.map((option, idx) => {\n const uid = `_BV_option_${idx}_`\n return h(\n this.isRadioGroup ? BFormRadio : BFormCheckbox,\n {\n key: uid,\n props: {\n id: this.safeId(uid),\n value: option.value,\n // Individual radios or checks can be disabled in a group\n disabled: option.disabled || false\n // We don't need to include these, since the input's will know they are inside here\n // name: this.groupName,\n // form: this.form || null,\n // required: Boolean(this.name && this.required)\n }\n },\n [h('span', { domProps: htmlOrText(option.html, option.text) })]\n )\n })\n return h(\n 'div',\n {\n class: this.groupClasses,\n attrs: {\n id: this.safeId(),\n role: this.isRadioGroup ? 'radiogroup' : 'group',\n // Tabindex to allow group to be focused if needed\n tabindex: '-1',\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n }\n },\n [this.normalizeSlot('first'), inputs, this.normalizeSlot('default')]\n )\n }\n}\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formOptionsMixin from '../../mixins/form-options'\nimport formRadioCheckGroupMixin from '../../mixins/form-radio-check-group'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\n\nexport const props = {\n switches: {\n // Custom switch styling\n type: Boolean,\n default: false\n },\n checked: {\n type: [String, Number, Object, Array, Boolean],\n default: null\n }\n}\n\n// @vue/component\nexport const BFormCheckboxGroup = /*#__PURE__*/ Vue.extend({\n name: 'BFormCheckboxGroup',\n mixins: [\n idMixin,\n formMixin,\n formRadioCheckGroupMixin, // Includes render function\n formOptionsMixin,\n formSizeMixin,\n formStateMixin\n ],\n provide() {\n return {\n bvCheckGroup: this\n }\n },\n props,\n data() {\n return {\n localChecked: this.checked || []\n }\n },\n computed: {\n isRadioGroup() {\n return false\n }\n }\n})\n\nexport default BFormCheckboxGroup\n","import { BFormCheckbox } from './form-checkbox'\nimport { BFormCheckboxGroup } from './form-checkbox-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormCheckboxPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BFormCheckbox,\n BCheckbox: BFormCheckbox,\n BCheck: BFormCheckbox,\n BFormCheckboxGroup,\n BCheckboxGroup: BFormCheckboxGroup,\n BCheckGroup: BFormCheckboxGroup\n }\n})\n\nexport { FormCheckboxPlugin, BFormCheckbox, BFormCheckboxGroup }\n\nexport default FormCheckboxPlugin\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formOptionsMixin from '../../mixins/form-options'\nimport formRadioCheckGroupMixin from '../../mixins/form-radio-check-group'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\n\nexport const props = {\n checked: {\n type: [String, Object, Number, Boolean],\n default: null\n }\n}\n\n// @vue/component\nexport const BFormRadioGroup = /*#__PURE__*/ Vue.extend({\n name: 'BFormRadioGroup',\n mixins: [\n idMixin,\n formMixin,\n formRadioCheckGroupMixin, // Includes render function\n formOptionsMixin,\n formSizeMixin,\n formStateMixin\n ],\n provide() {\n return {\n bvRadioGroup: this\n }\n },\n props,\n data() {\n return {\n localChecked: this.checked\n }\n },\n computed: {\n isRadioGroup() {\n return true\n }\n }\n})\n\nexport default BFormRadioGroup\n","import { BFormRadio } from './form-radio'\nimport { BFormRadioGroup } from './form-radio-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormRadioPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BFormRadio,\n BRadio: BFormRadio,\n BFormRadioGroup,\n BRadioGroup: BFormRadioGroup\n }\n})\n\nexport { FormRadioPlugin, BFormRadio, BFormRadioGroup }\n\nexport default FormRadioPlugin\n","import { isFunction, isNull, isUndefined } from '../utils/inspect'\n\n// @vue/component\nexport default {\n model: {\n prop: 'value',\n event: 'update'\n },\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n readonly: {\n type: Boolean,\n default: false\n },\n plaintext: {\n type: Boolean,\n default: false\n },\n autocomplete: {\n type: String,\n default: null\n },\n placeholder: {\n type: String,\n default: null\n },\n formatter: {\n type: Function,\n default: null\n },\n trim: {\n type: Boolean,\n default: false\n },\n number: {\n type: Boolean,\n default: false\n },\n lazyFormatter: {\n type: Boolean,\n value: false\n }\n },\n data() {\n return {\n localValue: this.stringifyValue(this.value)\n }\n },\n computed: {\n computedClass() {\n return [\n {\n // Range input needs class custom-range\n 'custom-range': this.type === 'range',\n // plaintext not supported by type=range or type=color\n 'form-control-plaintext':\n this.plaintext && this.type !== 'range' && this.type !== 'color',\n // form-control not used by type=range or plaintext. Always used by type=color\n 'form-control': (!this.plaintext && this.type !== 'range') || this.type === 'color'\n },\n this.sizeFormClass,\n this.stateClass\n ]\n },\n computedAriaInvalid() {\n if (!this.ariaInvalid || this.ariaInvalid === 'false') {\n // this.ariaInvalid is null or false or 'false'\n return this.computedState === false ? 'true' : null\n }\n if (this.ariaInvalid === true) {\n // User wants explicit aria-invalid=true\n return 'true'\n }\n // Most likely a string value (which could be the string 'true')\n return this.ariaInvalid\n }\n },\n watch: {\n value(newVal) {\n if (newVal !== this.localValue) {\n this.localValue = this.stringifyValue(newVal)\n }\n }\n },\n mounted() {\n const value = this.stringifyValue(this.value)\n if (value !== this.localValue) {\n /* istanbul ignore next */\n this.localValue = value\n }\n },\n methods: {\n stringifyValue(value) {\n return isUndefined(value) || isNull(value) ? '' : String(value)\n },\n getFormatted(value, evt, force = false) {\n value = this.stringifyValue(value)\n if ((!this.lazyFormatter || force) && isFunction(this.formatter)) {\n value = this.formatter(value, evt)\n }\n return value\n },\n updateValue(value) {\n value = this.stringifyValue(value)\n if (value !== this.localValue) {\n // Keep the input set to the value before modifiers\n this.localValue = value\n if (this.number) {\n // Emulate `.number` modifier behaviour\n const num = parseFloat(value)\n value = isNaN(num) ? value : num\n } else if (this.trim) {\n // Emulate `.trim` modifier behaviour\n value = value.trim()\n }\n // Update the v-model\n this.$emit('update', value)\n } else if (this.$refs.input && value !== this.$refs.input.value) {\n // When the `localValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one.\n // Usually casued by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function.\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n /* istanbul ignore next: hard to test */\n this.$refs.input.value = value\n }\n },\n onInput(evt) {\n // `evt.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n /* istanbul ignore if: hard to test composition events */\n if (evt.target.composing) {\n return\n }\n const formatted = this.getFormatted(evt.target.value, evt)\n // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n if (formatted === false || evt.defaultPrevented) {\n /* istanbul ignore next */\n evt.preventDefault()\n return\n }\n this.updateValue(formatted)\n this.$emit('input', formatted)\n },\n onChange(evt) {\n // `evt.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n /* istanbul ignore if: hard to test composition events */\n if (evt.target.composing) {\n return\n }\n const formatted = this.getFormatted(evt.target.value, evt)\n // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n if (formatted === false || evt.defaultPrevented) {\n /* istanbul ignore next */\n evt.preventDefault()\n return\n }\n this.updateValue(formatted)\n this.$emit('change', formatted)\n },\n onBlur(evt) {\n // Lazy formatter\n if (this.lazyFormatter) {\n const formatted = this.getFormatted(evt.target.value, evt, true)\n // Exit when the `formatter` function strictly returned `false`\n if (formatted === false) {\n return\n }\n this.updateValue(formatted)\n }\n // Emit native blur event\n this.$emit('blur', evt)\n },\n focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n this.$el.focus()\n }\n },\n blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n this.$el.blur()\n }\n }\n }\n}\n","// @vue/component\nexport default {\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n get() /* istanbul ignore next */ {\n return this.$refs.input.selectionStart\n },\n set(val) /* istanbul ignore next */ {\n this.$refs.input.selectionStart = val\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n get() /* istanbul ignore next */ {\n return this.$refs.input.selectionEnd\n },\n set(val) /* istanbul ignore next */ {\n this.$refs.input.selectionEnd = val\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n get() /* istanbul ignore next */ {\n return this.$refs.input.selectionDirection\n },\n set(val) /* istanbul ignore next */ {\n this.$refs.input.selectionDirection = val\n }\n }\n },\n methods: {\n select() /* istanbul ignore next */ {\n // For external handler that may want a select() method\n this.$refs.input.select(...arguments)\n },\n setSelectionRange() /* istanbul ignore next */ {\n // For external handler that may want a setSelectionRange(a,b,c) method\n this.$refs.input.setSelectionRange(...arguments)\n },\n setRangeText() /* istanbul ignore next */ {\n // For external handler that may want a setRangeText(a,b,c) method\n this.$refs.input.setRangeText(...arguments)\n }\n }\n}\n","// @vue/component\nexport default {\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n get() /* istanbul ignore next */ {\n return this.$refs.input.validity\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n get() /* istanbul ignore next */ {\n return this.$refs.input.validationMessage\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n get() /* istanbul ignore next */ {\n return this.$refs.input.willValidate\n }\n }\n },\n methods: {\n setCustomValidity() /* istanbul ignore next */ {\n // For external handler that may want a setCustomValidity(...) method\n return this.$refs.input.setCustomValidity(...arguments)\n },\n checkValidity() /* istanbul ignore next */ {\n // For external handler that may want a checkValidity(...) method\n return this.$refs.input.checkValidity(...arguments)\n },\n reportValidity() /* istanbul ignore next */ {\n // For external handler that may want a reportValidity(...) method\n return this.$refs.input.reportValidity(...arguments)\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport formTextMixin from '../../mixins/form-text'\nimport formSelectionMixin from '../../mixins/form-selection'\nimport formValidityMixin from '../../mixins/form-validity'\nimport { arrayIncludes } from '../../utils/array'\nimport { eventOn, eventOff } from '../../utils/dom'\n\n// Valid supported input types\nconst TYPES = [\n 'text',\n 'password',\n 'email',\n 'number',\n 'url',\n 'tel',\n 'search',\n 'range',\n 'color',\n 'date',\n 'time',\n 'datetime',\n 'datetime-local',\n 'month',\n 'week'\n]\n\n// @vue/component\nexport const BFormInput = /*#__PURE__*/ Vue.extend({\n name: 'BFormInput',\n mixins: [\n idMixin,\n formMixin,\n formSizeMixin,\n formStateMixin,\n formTextMixin,\n formSelectionMixin,\n formValidityMixin\n ],\n props: {\n // value prop defined in form-text mixin\n // value: { },\n type: {\n type: String,\n default: 'text',\n validator: type => arrayIncludes(TYPES, type)\n },\n noWheel: {\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date).\n type: Boolean,\n default: false\n },\n min: {\n type: [String, Number],\n default: null\n },\n max: {\n type: [String, Number],\n default: null\n },\n step: {\n type: [String, Number],\n default: null\n },\n list: {\n type: String,\n default: null\n }\n },\n computed: {\n localType() {\n // We only allow certain types\n return arrayIncludes(TYPES, this.type) ? this.type : 'text'\n }\n },\n watch: {\n noWheel(newVal) {\n this.setWheelStopper(newVal)\n }\n },\n mounted() {\n this.setWheelStopper(this.noWheel)\n },\n deactivated() {\n // Turn off listeners when keep-alive component deactivated\n /* istanbul ignore next */\n this.setWheelStopper(false)\n },\n activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel)\n },\n beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false)\n },\n methods: {\n setWheelStopper(on) {\n const input = this.$el\n // We use native events, so that we don't interfere with propgation\n if (on) {\n eventOn(input, 'focus', this.onWheelFocus)\n eventOn(input, 'blur', this.onWheelBlur)\n } else {\n eventOff(input, 'focus', this.onWheelFocus)\n eventOff(input, 'blur', this.onWheelBlur)\n eventOff(document, 'wheel', this.stopWheel)\n }\n },\n onWheelFocus(evt) {\n eventOn(document, 'wheel', this.stopWheel)\n },\n onWheelBlur(evt) {\n eventOff(document, 'wheel', this.stopWheel)\n },\n stopWheel(evt) {\n evt.preventDefault()\n this.$el.blur()\n }\n },\n render(h) {\n var self = this\n return h('input', {\n ref: 'input',\n class: self.computedClass,\n directives: [\n {\n name: 'model',\n rawName: 'v-model',\n value: self.localValue,\n expression: 'localValue'\n }\n ],\n attrs: {\n id: self.safeId(),\n name: self.name,\n form: self.form || null,\n type: self.localType,\n disabled: self.disabled,\n placeholder: self.placeholder,\n required: self.required,\n autocomplete: self.autocomplete || null,\n readonly: self.readonly || self.plaintext,\n min: self.min,\n max: self.max,\n step: self.step,\n list: self.localType !== 'password' ? self.list : null,\n 'aria-required': self.required ? 'true' : null,\n 'aria-invalid': self.computedAriaInvalid\n },\n domProps: {\n value: self.localValue\n },\n on: {\n ...self.$listeners,\n input: self.onInput,\n change: self.onChange,\n blur: self.onBlur\n }\n })\n }\n})\n\nexport default BFormInput\n","import { BFormInput } from './form-input'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormInputPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BFormInput,\n BInput: BFormInput\n }\n})\n\nexport { FormInputPlugin, BFormInput }\n\nexport default FormInputPlugin\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport formTextMixin from '../../mixins/form-text'\nimport formSelectionMixin from '../../mixins/form-selection'\nimport formValidityMixin from '../../mixins/form-validity'\nimport { getCS, isVisible } from '../../utils/dom'\nimport { isNull } from '../../utils/inspect'\n\n// @vue/component\nexport const BFormTextarea = /*#__PURE__*/ Vue.extend({\n name: 'BFormTextarea',\n mixins: [\n idMixin,\n formMixin,\n formSizeMixin,\n formStateMixin,\n formTextMixin,\n formSelectionMixin,\n formValidityMixin\n ],\n props: {\n rows: {\n type: [Number, String],\n default: 2\n },\n maxRows: {\n type: [Number, String],\n default: null\n },\n wrap: {\n // 'soft', 'hard' or 'off'. Browser default is 'soft'\n type: String,\n default: 'soft'\n },\n noResize: {\n // Disable the resize handle of textarea\n type: Boolean,\n default: false\n },\n noAutoShrink: {\n // When in auto resize mode, disable shrinking to content height\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n dontResize: true,\n heightInPx: null\n }\n },\n computed: {\n computedStyle() {\n const styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n }\n if (!this.computedRows) {\n // Conditionaly set the computed CSS height when auto rows/height is enabled.\n // We avoid setting the style to null, which can override user manual resize handle.\n styles.height = this.heightInPx\n // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calcaultion returns a stable value.\n styles.overflowY = 'scroll'\n }\n return styles\n },\n computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value).\n // A value of 1 can cause issues in some browsers, and most browsers only support\n // 2 as the smallest value.\n return Math.max(parseInt(this.rows, 10) || 2, 2)\n },\n computedMaxRows() {\n return Math.max(this.computedMinRows, parseInt(this.maxRows, 10) || 0)\n },\n computedRows() {\n // This is used to set the attribute 'rows' on the textarea.\n // If auto-height is enabled, then we return null as we use CSS to control height.\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null\n }\n },\n watch: {\n dontResize(newVal, oldval) {\n if (!newVal) {\n this.setHeight()\n }\n },\n localValue(newVal, oldVal) {\n this.setHeight()\n }\n },\n mounted() {\n // Enable opt-in resizing once mounted\n this.$nextTick(() => {\n this.dontResize = false\n })\n },\n activated() {\n // If we are being re-activated in <keep-alive>, enable opt-in resizing\n this.$nextTick(() => {\n this.dontResize = false\n })\n },\n deactivated() {\n // If we are in a deactivated <keep-alive>, disable opt-in resizing\n this.dontResize = true\n },\n beforeDestroy() {\n /* istanbul ignore next */\n this.dontResize = true\n },\n methods: {\n setHeight() {\n this.$nextTick(() => {\n this.heightInPx = this.computeHeight()\n })\n },\n computeHeight() /* istanbul ignore next: can't test getComputedStyle in JSDOM */ {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null\n }\n\n const el = this.$el\n\n // Element must be visible (not hidden) and in document.\n // Must be checked after above checks\n if (!isVisible(el)) {\n return null\n }\n\n // Get current computed styles\n const computedStyle = getCS(el)\n // Height of one line of text in px\n const lineHeight = parseFloat(computedStyle.lineHeight)\n // Calculate height of border and padding\n const border =\n (parseFloat(computedStyle.borderTopWidth) || 0) +\n (parseFloat(computedStyle.borderBottomWidth) || 0)\n const padding =\n (parseFloat(computedStyle.paddingTop) || 0) + (parseFloat(computedStyle.paddingBottom) || 0)\n // Calculate offset\n const offset = border + padding\n // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n const minHeight = lineHeight * this.computedMinRows + offset\n\n // Get the current style height (with `px` units)\n const oldHeight = el.style.height || computedStyle.height\n // Probe scrollHeight by temporarily changing the height to `auto`\n el.style.height = 'auto'\n const scrollHeight = el.scrollHeight\n // Place the original old height back on the element, just in case this computedProp\n // returns the same value as before.\n el.style.height = oldHeight\n\n // Calculate content height in \"rows\" (scrollHeight includes padding but not border)\n const contentRows = Math.max((scrollHeight - padding) / lineHeight, 2)\n // Calculate number of rows to display (limited within min/max rows)\n const rows = Math.min(Math.max(contentRows, this.computedMinRows), this.computedMaxRows)\n // Calculate the required height of the textarea including border and padding (in pixels)\n const height = Math.max(Math.ceil(rows * lineHeight + offset), minHeight)\n\n // Computed height remains the larger of oldHeight and new height,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n if (this.noAutoShrink && (parseFloat(oldHeight) || 0) > height) {\n return oldHeight\n }\n\n // Return the new computed CSS height in px units\n return `${height}px`\n }\n },\n render(h) {\n // Using self instead of this helps reduce code size during minification\n const self = this\n return h('textarea', {\n ref: 'input',\n class: self.computedClass,\n style: self.computedStyle,\n directives: [\n {\n name: 'model',\n rawName: 'v-model',\n value: self.localValue,\n expression: 'localValue'\n }\n ],\n attrs: {\n id: self.safeId(),\n name: self.name,\n form: self.form || null,\n disabled: self.disabled,\n placeholder: self.placeholder,\n required: self.required,\n autocomplete: self.autocomplete || null,\n readonly: self.readonly || self.plaintext,\n rows: self.computedRows,\n wrap: self.wrap || null,\n 'aria-required': self.required ? 'true' : null,\n 'aria-invalid': self.computedAriaInvalid\n },\n domProps: {\n value: self.localValue\n },\n on: {\n ...self.$listeners,\n input: self.onInput,\n change: self.onChange,\n blur: self.onBlur\n }\n })\n }\n})\n\nexport default BFormTextarea\n","import { BFormTextarea } from './form-textarea'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormTextareaPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BFormTextarea,\n BTextarea: BFormTextarea\n }\n})\n\nexport { FormTextareaPlugin, BFormTextarea }\n\nexport default FormTextareaPlugin\n","// @vue/component\nexport default {\n props: {\n plain: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n custom() {\n return !this.plain\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport { from as arrayFrom, isArray, concat } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { isFunction } from '../../utils/inspect'\nimport formCustomMixin from '../../mixins/form-custom'\nimport formMixin from '../../mixins/form'\nimport formStateMixin from '../../mixins/form-state'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\nconst NAME = 'BFormFile'\n\n// @vue/component\nexport const BFormFile = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [idMixin, formMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n value: {\n // type: Object,\n default: null\n },\n accept: {\n type: String,\n default: ''\n },\n // Instruct input to capture from camera\n capture: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: () => getComponentConfig(NAME, 'placeholder')\n },\n browseText: {\n type: String,\n default: () => getComponentConfig(NAME, 'browseText')\n },\n dropPlaceholder: {\n type: String,\n default: () => getComponentConfig(NAME, 'dropPlaceholder')\n },\n multiple: {\n type: Boolean,\n default: false\n },\n directory: {\n type: Boolean,\n default: false\n },\n noTraverse: {\n type: Boolean,\n default: false\n },\n noDrop: {\n type: Boolean,\n default: false\n },\n fileNameFormatter: {\n type: Function,\n default: null\n }\n },\n data() {\n return {\n selectedFile: null,\n dragging: false,\n hasFocus: false\n }\n },\n computed: {\n selectLabel() {\n // Draging active\n if (this.dragging && this.dropPlaceholder) {\n return this.dropPlaceholder\n }\n\n // No file chosen\n if (!this.selectedFile || this.selectedFile.length === 0) {\n return this.placeholder\n }\n\n // Convert selectedFile to an array (if not already one)\n const files = concat(this.selectedFile).filter(Boolean)\n\n if (this.hasNormalizedSlot('file-name')) {\n // There is a slot for formatting the files/names\n return [\n this.normalizeSlot('file-name', {\n files: files,\n names: files.map(f => f.name)\n })\n ]\n } else {\n // Use the user supplied formatter, or the built in one.\n return isFunction(this.fileNameFormatter)\n ? String(this.fileNameFormatter(files))\n : files.map(file => file.name).join(', ')\n }\n }\n },\n watch: {\n selectedFile(newVal, oldVal) {\n // The following test is needed when the file input is \"reset\" or the\n // exact same file(s) are selected to prevent an infinite loop.\n // When in `multiple` mode we need to check for two empty arrays or\n // two arrays with identical files\n if (\n newVal === oldVal ||\n (isArray(newVal) &&\n isArray(oldVal) &&\n newVal.length === oldVal.length &&\n newVal.every((v, i) => v === oldVal[i]))\n ) {\n return\n }\n if (!newVal && this.multiple) {\n this.$emit('input', [])\n } else {\n this.$emit('input', newVal)\n }\n },\n value(newVal) {\n if (!newVal || (isArray(newVal) && newVal.length === 0)) {\n this.reset()\n }\n }\n },\n methods: {\n focusHandler(evt) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a '[type=file]:focus ~ sibling' selector issue,\n // so we add a 'focus' class to get around these bugs\n if (this.plain || evt.type === 'focusout') {\n this.hasFocus = false\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true\n }\n },\n reset() {\n try {\n // Wrapped in try in case IE 11 craps out\n this.$refs.input.value = ''\n } catch (e) {}\n // IE 11 doesn't support setting `input.value` to '' or null\n // So we use this little extra hack to reset the value, just in case.\n // This also appears to work on modern browsers as well.\n this.$refs.input.type = ''\n this.$refs.input.type = 'file'\n this.selectedFile = this.multiple ? [] : null\n },\n onFileChange(evt) {\n // Always emit original event\n this.$emit('change', evt)\n // Check if special `items` prop is available on event (drop mode)\n // Can be disabled by setting no-traverse\n const items = evt.dataTransfer && evt.dataTransfer.items\n /* istanbul ignore next: not supported in JSDOM */\n if (items && !this.noTraverse) {\n const queue = []\n for (let i = 0; i < items.length; i++) {\n const item = items[i].webkitGetAsEntry()\n if (item) {\n queue.push(this.traverseFileTree(item))\n }\n }\n Promise.all(queue).then(filesArr => {\n this.setFiles(arrayFrom(filesArr))\n })\n return\n }\n // Normal handling\n this.setFiles(evt.target.files || evt.dataTransfer.files)\n },\n setFiles(files = []) {\n if (!files) {\n /* istanbul ignore next: this will probably not happen */\n this.selectedFile = null\n } else if (this.multiple) {\n // Convert files to array\n const filesArray = []\n for (let i = 0; i < files.length; i++) {\n filesArray.push(files[i])\n }\n // Return file(s) as array\n this.selectedFile = filesArray\n } else {\n // Return single file object\n this.selectedFile = files[0] || null\n }\n },\n onReset() {\n // Triggered when the parent form (if any) is reset\n this.selectedFile = this.multiple ? [] : null\n },\n onDragover(evt) /* istanbul ignore next: difficult to test in JSDOM */ {\n evt.preventDefault()\n evt.stopPropagation()\n if (this.noDrop || !this.custom) {\n return\n }\n this.dragging = true\n evt.dataTransfer.dropEffect = 'copy'\n },\n onDragleave(evt) /* istanbul ignore next: difficult to test in JSDOM */ {\n evt.preventDefault()\n evt.stopPropagation()\n this.dragging = false\n },\n onDrop(evt) /* istanbul ignore next: difficult to test in JSDOM */ {\n evt.preventDefault()\n evt.stopPropagation()\n if (this.noDrop) {\n return\n }\n this.dragging = false\n if (evt.dataTransfer.files && evt.dataTransfer.files.length > 0) {\n this.onFileChange(evt)\n }\n },\n traverseFileTree(item, path) /* istanbul ignore next: not supported in JSDOM */ {\n // Based on http://stackoverflow.com/questions/3590058\n return new Promise(resolve => {\n path = path || ''\n if (item.isFile) {\n // Get file\n item.file(file => {\n file.$path = path // Inject $path to file obj\n resolve(file)\n })\n } else if (item.isDirectory) {\n // Get folder contents\n item.createReader().readEntries(entries => {\n const queue = []\n for (let i = 0; i < entries.length; i++) {\n queue.push(this.traverseFileTree(entries[i], path + item.name + '/'))\n }\n Promise.all(queue).then(filesArr => {\n resolve(arrayFrom(filesArr))\n })\n })\n }\n })\n }\n },\n render(h) {\n // Form Input\n const input = h('input', {\n ref: 'input',\n class: [\n {\n 'form-control-file': this.plain,\n 'custom-file-input': this.custom,\n focus: this.custom && this.hasFocus\n },\n this.stateClass\n ],\n attrs: {\n type: 'file',\n id: this.safeId(),\n name: this.name,\n disabled: this.disabled,\n required: this.required,\n form: this.form || null,\n capture: this.capture || null,\n accept: this.accept || null,\n multiple: this.multiple,\n webkitdirectory: this.directory,\n 'aria-required': this.required ? 'true' : null\n },\n on: {\n change: this.onFileChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.onReset\n }\n })\n\n if (this.plain) {\n return input\n }\n\n // Overlay Labels\n const label = h(\n 'label',\n {\n staticClass: 'custom-file-label',\n class: [this.dragging ? 'dragging' : null],\n attrs: {\n for: this.safeId(),\n 'data-browse': this.browseText || null\n }\n },\n this.selectLabel\n )\n\n // Return rendered custom file input\n return h(\n 'div',\n {\n staticClass: 'custom-file b-form-file',\n class: this.stateClass,\n attrs: { id: this.safeId('_BV_file_outer_') },\n on: {\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n },\n [input, label]\n )\n }\n})\n\nexport default BFormFile\n","import { BFormFile } from './form-file'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormFilePlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BFormFile,\n BFile: BFormFile\n }\n})\n\nexport { FormFilePlugin, BFormFile }\n\nexport default FormFilePlugin\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formOptionsMixin from '../../mixins/form-options'\nimport formMixin from '../../mixins/form'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport formCustomMixin from '../../mixins/form-custom'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { from as arrayFrom } from '../../utils/array'\nimport { htmlOrText } from '../../utils/html'\n\n// @vue/component\nexport const BFormSelect = /*#__PURE__*/ Vue.extend({\n name: 'BFormSelect',\n mixins: [\n idMixin,\n normalizeSlotMixin,\n formMixin,\n formSizeMixin,\n formStateMixin,\n formCustomMixin,\n formOptionsMixin\n ],\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n value: {\n // type: [Object, Array, String, Number, Boolean],\n // default: undefined\n },\n multiple: {\n type: Boolean,\n default: false\n },\n selectSize: {\n // Browsers default size to 0, which shows 4 rows in most browsers in multiple mode\n // Size of 1 can bork out Firefox\n type: Number,\n default: 0\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n }\n },\n data() {\n return {\n localValue: this.value\n }\n },\n computed: {\n computedSelectSize() {\n // Custom selects with a size of zero causes the arrows to be hidden,\n // so dont render the size attribute in this case\n return !this.plain && this.selectSize === 0 ? null : this.selectSize\n },\n inputClass() {\n return [\n this.plain ? 'form-control' : 'custom-select',\n this.size && this.plain ? `form-control-${this.size}` : null,\n this.size && !this.plain ? `custom-select-${this.size}` : null,\n this.stateClass\n ]\n },\n computedAriaInvalid() {\n if (this.ariaInvalid === true || this.ariaInvalid === 'true') {\n return 'true'\n }\n return this.stateClass === 'is-invalid' ? 'true' : null\n }\n },\n watch: {\n value(newVal, oldVal) {\n this.localValue = newVal\n },\n localValue(newVal, oldVal) {\n this.$emit('input', this.localValue)\n }\n },\n methods: {\n focus() {\n this.$refs.input.focus()\n },\n blur() {\n this.$refs.input.blur()\n }\n },\n render(h) {\n const options = this.formOptions.map((option, index) => {\n return h('option', {\n key: `option_${index}_opt`,\n attrs: { disabled: Boolean(option.disabled) },\n domProps: { ...htmlOrText(option.html, option.text), value: option.value }\n })\n })\n return h(\n 'select',\n {\n ref: 'input',\n class: this.inputClass,\n directives: [\n {\n name: 'model',\n rawName: 'v-model',\n value: this.localValue,\n expression: 'localValue'\n }\n ],\n attrs: {\n id: this.safeId(),\n name: this.name,\n form: this.form || null,\n multiple: this.multiple || null,\n size: this.computedSelectSize,\n disabled: this.disabled,\n required: this.required,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n },\n on: {\n change: evt => {\n const target = evt.target\n const selectedVal = arrayFrom(target.options)\n .filter(o => o.selected)\n .map(o => ('_value' in o ? o._value : o.value))\n this.localValue = target.multiple ? selectedVal : selectedVal[0]\n this.$nextTick(() => {\n this.$emit('change', this.localValue)\n })\n }\n }\n },\n [this.normalizeSlot('first'), options, this.normalizeSlot('default')]\n )\n }\n})\n\nexport default BFormSelect\n","import { BFormSelect } from './form-select'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormSelectPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BFormSelect,\n BSelect: BFormSelect\n }\n})\n\nexport { FormSelectPlugin, BFormSelect }\n\nexport default FormSelectPlugin\n","import { BImg } from './img'\nimport { BImgLazy } from './img-lazy'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ImagePlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BImg,\n BImgLazy\n }\n})\n\nexport { ImagePlugin, BImg, BImgLazy }\n\nexport default ImagePlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n }\n}\n\n// @vue/component\nexport const BInputGroupText = /*#__PURE__*/ Vue.extend({\n name: 'BInputGroupText',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'input-group-text'\n }),\n children\n )\n }\n})\n\nexport default BInputGroupText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BInputGroupText } from './input-group-text'\n\nexport const commonProps = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n isText: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BInputGroupAddon = /*#__PURE__*/ Vue.extend({\n name: 'BInputGroupAddon',\n functional: true,\n props: {\n ...commonProps,\n append: {\n type: Boolean,\n default: false\n }\n },\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n class: {\n 'input-group-append': props.append,\n 'input-group-prepend': !props.append\n },\n attrs: {\n id: props.id\n }\n }),\n props.isText ? [h(BInputGroupText, children)] : children\n )\n }\n})\n\nexport default BInputGroupAddon\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BInputGroupAddon, commonProps } from './input-group-addon'\n\n// @vue/component\nexport const BInputGroupPrepend = /*#__PURE__*/ Vue.extend({\n name: 'BInputGroupPrepend',\n functional: true,\n props: commonProps,\n render(h, { props, data, children }) {\n // pass all our props/attrs down to child, and set`append` to false\n return h(\n BInputGroupAddon,\n mergeData(data, {\n props: { ...props, append: false }\n }),\n children\n )\n }\n})\n\nexport default BInputGroupPrepend\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BInputGroupAddon, commonProps } from './input-group-addon'\n\n// @vue/component\nexport const BInputGroupAppend = /*#__PURE__*/ Vue.extend({\n name: 'BInputGroupAppend',\n functional: true,\n props: commonProps,\n render(h, { props, data, children }) {\n // pass all our props/attrs down to child, and set`append` to true\n return h(\n BInputGroupAddon,\n mergeData(data, {\n props: { ...props, append: true }\n }),\n children\n )\n }\n})\n\nexport default BInputGroupAppend\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { htmlOrText } from '../../utils/html'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\nimport { BInputGroupPrepend } from './input-group-prepend'\nimport { BInputGroupAppend } from './input-group-append'\nimport { BInputGroupText } from './input-group-text'\n\nexport const props = {\n id: {\n type: String\n },\n size: {\n type: String\n },\n prepend: {\n type: String\n },\n prependHTML: {\n type: String\n },\n append: {\n type: String\n },\n appendHTML: {\n type: String\n },\n tag: {\n type: String,\n default: 'div'\n }\n}\n\n// @vue/component\nexport const BInputGroup = /*#__PURE__*/ Vue.extend({\n name: 'BInputGroup',\n functional: true,\n props: props,\n render(h, { props, data, slots, scopedSlots }) {\n const $slots = slots()\n const $scopedSlots = scopedSlots || {}\n\n const childNodes = []\n\n // Prepend prop/slot\n if (props.prepend || props.prependHTML || hasNormalizedSlot('prepend', $scopedSlots, $slots)) {\n childNodes.push(\n h(BInputGroupPrepend, [\n // Prop\n props.prepend || props.prependHTML\n ? h(BInputGroupText, { domProps: htmlOrText(props.prependHTML, props.prepend) })\n : h(false),\n // Slot\n normalizeSlot('prepend', {}, $scopedSlots, $slots) || h(false)\n ])\n )\n } else {\n childNodes.push(h(false))\n }\n\n // Default slot\n if (hasNormalizedSlot('default', $scopedSlots, $slots)) {\n childNodes.push(...normalizeSlot('default', {}, $scopedSlots, $slots))\n } else {\n childNodes.push(h(false))\n }\n\n // Append prop\n if (props.append || props.appendHTML || hasNormalizedSlot('append', $scopedSlots, $slots)) {\n childNodes.push(\n h(BInputGroupAppend, [\n // prop\n props.append || props.appendHTML\n ? h(BInputGroupText, { domProps: htmlOrText(props.appendHTML, props.append) })\n : h(false),\n // Slot\n normalizeSlot('append', {}, $scopedSlots, $slots) || h(false)\n ])\n )\n } else {\n childNodes.push(h(false))\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'input-group',\n class: {\n [`input-group-${props.size}`]: Boolean(props.size)\n },\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }),\n childNodes\n )\n }\n})\n\nexport default BInputGroup\n","import { BInputGroup } from './input-group'\nimport { BInputGroupAddon } from './input-group-addon'\nimport { BInputGroupPrepend } from './input-group-prepend'\nimport { BInputGroupAppend } from './input-group-append'\nimport { BInputGroupText } from './input-group-text'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst InputGroupPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BInputGroup,\n BInputGroupAddon,\n BInputGroupPrepend,\n BInputGroupAppend,\n BInputGroupText\n }\n})\n\nexport {\n InputGroupPlugin,\n BInputGroup,\n BInputGroupAddon,\n BInputGroupPrepend,\n BInputGroupAppend,\n BInputGroupText\n}\n\nexport default InputGroupPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n },\n fluid: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BContainer = /*#__PURE__*/ Vue.extend({\n name: 'BContainer',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n class: {\n container: !props.fluid,\n 'container-fluid': props.fluid\n }\n }),\n children\n )\n }\n})\n\nexport default BContainer\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { stripTags } from '../../utils/html'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\nimport { BContainer } from '../layout/container'\n\nconst NAME = 'BJumbotron'\n\nexport const props = {\n fluid: {\n type: Boolean,\n default: false\n },\n containerFluid: {\n type: Boolean,\n default: false\n },\n header: {\n type: String,\n default: null\n },\n headerHtml: {\n type: String,\n default: null\n },\n headerTag: {\n type: String,\n default: 'h1'\n },\n headerLevel: {\n type: [Number, String],\n default: '3'\n },\n lead: {\n type: String,\n default: null\n },\n leadHtml: {\n type: String,\n default: null\n },\n leadTag: {\n type: String,\n default: 'p'\n },\n tag: {\n type: String,\n default: 'div'\n },\n bgVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'bgVariant')\n },\n borderVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'borderVariant')\n },\n textVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'textVariant')\n }\n}\n\n// @vue/component\nexport const BJumbotron = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props,\n render(h, { props, data, slots, scopedSlots }) {\n // The order of the conditionals matter.\n // We are building the component markup in order.\n let childNodes = []\n const $slots = slots()\n const $scopedSlots = scopedSlots || {}\n\n // Header\n if (props.header || hasNormalizedSlot('header', $scopedSlots, $slots) || props.headerHtml) {\n childNodes.push(\n h(\n props.headerTag,\n {\n class: {\n [`display-${props.headerLevel}`]: Boolean(props.headerLevel)\n }\n },\n normalizeSlot('header', {}, $scopedSlots, $slots) ||\n props.headerHtml ||\n stripTags(props.header)\n )\n )\n }\n\n // Lead\n if (props.lead || hasNormalizedSlot('lead', $scopedSlots, $slots) || props.leadHtml) {\n childNodes.push(\n h(\n props.leadTag,\n { staticClass: 'lead' },\n normalizeSlot('lead', {}, $scopedSlots, $slots) || props.leadHtml || stripTags(props.lead)\n )\n )\n }\n\n // Default slot\n if (hasNormalizedSlot('default', $scopedSlots, $slots)) {\n childNodes.push(normalizeSlot('default', {}, $scopedSlots, $slots))\n }\n\n // If fluid, wrap content in a container/container-fluid\n if (props.fluid) {\n // Children become a child of a container\n childNodes = [h(BContainer, { props: { fluid: props.containerFluid } }, childNodes)]\n }\n // Return the jumbotron\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'jumbotron',\n class: {\n 'jumbotron-fluid': props.fluid,\n [`text-${props.textVariant}`]: Boolean(props.textVariant),\n [`bg-${props.bgVariant}`]: Boolean(props.bgVariant),\n [`border-${props.borderVariant}`]: Boolean(props.borderVariant),\n border: Boolean(props.borderVariant)\n }\n }),\n childNodes\n )\n }\n})\n\nexport default BJumbotron\n","import { BJumbotron } from './jumbotron'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst JumbotronPlugin = /*#__PURE__*/ pluginFactory({\n components: { BJumbotron }\n})\n\nexport { JumbotronPlugin, BJumbotron }\n\nexport default JumbotronPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { arrayIncludes } from '../../utils/array'\n\nconst COMMON_ALIGNMENT = ['start', 'end', 'center']\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n },\n noGutters: {\n type: Boolean,\n default: false\n },\n alignV: {\n type: String,\n default: null,\n validator: str => arrayIncludes(COMMON_ALIGNMENT.concat(['baseline', 'stretch']), str)\n },\n alignH: {\n type: String,\n default: null,\n validator: str => arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around']), str)\n },\n alignContent: {\n type: String,\n default: null,\n validator: str => arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around', 'stretch']), str)\n }\n}\n\n// @vue/component\nexport const BRow = /*#__PURE__*/ Vue.extend({\n name: 'BRow',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: {\n 'no-gutters': props.noGutters,\n [`align-items-${props.alignV}`]: props.alignV,\n [`justify-content-${props.alignH}`]: props.alignH,\n [`align-content-${props.alignContent}`]: props.alignContent\n }\n }),\n children\n )\n }\n})\n\nexport default BRow\n","import { BContainer } from './container'\nimport { BRow } from './row'\nimport { BCol } from './col'\nimport { BFormRow } from './form-row'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst LayoutPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BContainer,\n BRow,\n BCol,\n BFormRow\n }\n})\n\nexport { LayoutPlugin, BContainer, BRow, BCol, BFormRow }\n\nexport default LayoutPlugin\n","import { BLink } from './link'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst LinkPlugin = /*#__PURE__*/ pluginFactory({\n components: { BLink }\n})\n\nexport { LinkPlugin, BLink }\n\nexport default LinkPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { isString } from '../../utils/inspect'\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n },\n flush: {\n type: Boolean,\n default: false\n },\n horizontal: {\n type: [Boolean, String],\n default: false\n }\n}\n\n// @vue/component\nexport const BListGroup = /*#__PURE__*/ Vue.extend({\n name: 'BListGroup',\n functional: true,\n props,\n render(h, { props, data, children }) {\n let horizontal = props.horizontal === '' ? true : props.horizontal\n horizontal = props.flush ? false : horizontal\n const componentData = {\n staticClass: 'list-group',\n class: {\n 'list-group-flush': props.flush,\n 'list-group-horizontal': horizontal === true,\n [`list-group-horizontal-${horizontal}`]: isString(horizontal)\n }\n }\n return h(props.tag, mergeData(data, componentData), children)\n }\n})\n\nexport default BListGroup\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { arrayIncludes } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nconst NAME = 'BListGroupItem'\n\nconst actionTags = ['a', 'router-link', 'button', 'b-link']\nlet linkProps = linkPropsFactory()\ndelete linkProps.href.default\ndelete linkProps.to.default\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n },\n action: {\n type: Boolean,\n default: null\n },\n button: {\n type: Boolean,\n default: null\n },\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n ...linkProps\n}\n// @vue/component\nexport const BListGroupItem = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props,\n render(h, { props, data, children }) {\n const tag = props.button ? 'button' : !props.href && !props.to ? props.tag : BLink\n const isAction = Boolean(\n props.href || props.to || props.action || props.button || arrayIncludes(actionTags, props.tag)\n )\n const attrs = {}\n let itemProps = {}\n if (tag === 'button') {\n if (!data.attrs || !data.attrs.type) {\n // Add a type for button is one not provided in passed attributes\n attrs.type = 'button'\n }\n if (props.disabled) {\n // Set disabled attribute if button and disabled\n attrs.disabled = true\n }\n } else {\n itemProps = pluckProps(linkProps, props)\n }\n const componentData = {\n attrs,\n props: itemProps,\n staticClass: 'list-group-item',\n class: {\n [`list-group-item-${props.variant}`]: Boolean(props.variant),\n 'list-group-item-action': isAction,\n active: props.active,\n disabled: props.disabled\n }\n }\n\n return h(tag, mergeData(data, componentData), children)\n }\n})\n\nexport default BListGroupItem\n","import { BListGroup } from './list-group'\nimport { BListGroupItem } from './list-group-item'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ListGroupPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BListGroup,\n BListGroupItem\n }\n})\n\nexport { ListGroupPlugin, BListGroup, BListGroupItem }\n\nexport default ListGroupPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n }\n}\n\n// @vue/component\nexport const BMediaBody = /*#__PURE__*/ Vue.extend({\n name: 'BMediaBody',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'media-body'\n }),\n children\n )\n }\n})\n\nexport default BMediaBody\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n },\n verticalAlign: {\n type: String,\n default: 'top'\n }\n}\n\n// @vue/component\nexport const BMediaAside = /*#__PURE__*/ Vue.extend({\n name: 'BMediaAside',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'd-flex',\n class: {\n [`align-self-${props.verticalAlign}`]: props.verticalAlign\n }\n }),\n children\n )\n }\n})\n\nexport default BMediaAside\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { normalizeSlot } from '../../utils/normalize-slot'\nimport { BMediaBody } from './media-body'\nimport { BMediaAside } from './media-aside'\n\nexport const props = {\n tag: {\n type: String,\n default: 'div'\n },\n rightAlign: {\n type: Boolean,\n default: false\n },\n verticalAlign: {\n type: String,\n default: 'top'\n },\n noBody: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BMedia = /*#__PURE__*/ Vue.extend({\n name: 'BMedia',\n functional: true,\n props,\n render(h, { props, data, slots, scopedSlots, children }) {\n let childNodes = props.noBody ? children : []\n\n if (!props.noBody) {\n const $slots = slots()\n const $scopedSlots = scopedSlots || {}\n const $aside = normalizeSlot('aside', {}, $scopedSlots, $slots)\n const $default = normalizeSlot('default', {}, $scopedSlots, $slots)\n\n if ($aside && !props.rightAlign) {\n childNodes.push(\n h(\n BMediaAside,\n { staticClass: 'mr-3', props: { verticalAlign: props.verticalAlign } },\n $aside\n )\n )\n }\n\n childNodes.push(h(BMediaBody, {}, $default))\n\n if ($aside && props.rightAlign) {\n childNodes.push(\n h(\n BMediaAside,\n { staticClass: 'ml-3', props: { verticalAlign: props.verticalAlign } },\n $aside\n )\n )\n }\n }\n\n return h(props.tag, mergeData(data, { staticClass: 'media' }), childNodes)\n }\n})\n\nexport default BMedia\n","import { BMedia } from './media'\nimport { BMediaAside } from './media-aside'\nimport { BMediaBody } from './media-body'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst MediaPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BMedia,\n BMediaAside,\n BMediaBody\n }\n})\n\nexport { MediaPlugin, BMedia, BMediaAside, BMediaBody }\n\nexport default MediaPlugin\n","/**\n * Private ModalManager helper\n * Handles controlling modal stacking zIndexes and body adjustments/classes\n */\n\nimport Vue from '../../../utils/vue'\nimport {\n getAttr,\n hasAttr,\n removeAttr,\n setAttr,\n addClass,\n removeClass,\n getBCR,\n getCS,\n selectAll,\n requestAF\n} from '../../../utils/dom'\nimport { isBrowser } from '../../../utils/env'\nimport { isNull } from '../../../utils/inspect'\n\n// --- Constants ---\n\n// Default modal backdrop z-index\nconst DEFAULT_ZINDEX = 1040\n\n// Selectors for padding/margin adjustments\nconst Selector = {\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n NAVBAR_TOGGLER: '.navbar-toggler'\n}\n\n// @vue/component\nconst ModalManager = /*#__PURE__*/ Vue.extend({\n data() {\n return {\n modals: [],\n baseZIndex: null,\n scrollbarWidth: null,\n isBodyOverflowing: false\n }\n },\n computed: {\n modalCount() {\n return this.modals.length\n },\n modalsAreOpen() {\n return this.modalCount > 0\n }\n },\n watch: {\n modalCount(newCount, oldCount) {\n if (isBrowser) {\n this.getScrollbarWidth()\n if (newCount > 0 && oldCount === 0) {\n // Transitioning to modal(s) open\n this.checkScrollbar()\n this.setScrollbar()\n addClass(document.body, 'modal-open')\n } else if (newCount === 0 && oldCount > 0) {\n // Transitioning to modal(s) closed\n this.resetScrollbar()\n removeClass(document.body, 'modal-open')\n }\n setAttr(document.body, 'data-modal-open-count', String(newCount))\n }\n },\n modals(newVal, oldVal) {\n this.checkScrollbar()\n requestAF(() => {\n this.updateModals(newVal || [])\n })\n }\n },\n methods: {\n // Public methods\n registerModal(modal) {\n // Register the modal if not already registered\n if (modal && this.modals.indexOf(modal) === -1) {\n // Add modal to modals array\n this.modals.push(modal)\n modal.$once('hook:beforeDestroy', () => {\n this.unregisterModal(modal)\n })\n }\n },\n unregisterModal(modal) {\n const index = this.modals.indexOf(modal)\n if (index > -1) {\n // Remove modal from modals array\n this.modals.splice(index, 1)\n // Reset the modal's data\n if (!(modal._isBeingDestroyed || modal._isDestroyed)) {\n this.resetModal(modal)\n }\n }\n },\n getBaseZIndex() {\n if (isNull(this.baseZIndex) && isBrowser) {\n // Create a temporary `div.modal-backdrop` to get computed z-index\n const div = document.createElement('div')\n div.className = 'modal-backdrop d-none'\n div.style.display = 'none'\n document.body.appendChild(div)\n this.baseZIndex = parseInt(getCS(div).zIndex || DEFAULT_ZINDEX, 10)\n document.body.removeChild(div)\n }\n return this.baseZIndex || DEFAULT_ZINDEX\n },\n getScrollbarWidth() {\n if (isNull(this.scrollbarWidth) && isBrowser) {\n // Create a temporary `div.measure-scrollbar` to get computed z-index\n const div = document.createElement('div')\n div.className = 'modal-scrollbar-measure'\n document.body.appendChild(div)\n this.scrollbarWidth = getBCR(div).width - div.clientWidth\n document.body.removeChild(div)\n }\n return this.scrollbarWidth || 0\n },\n // Private methods\n updateModals(modals) {\n const baseZIndex = this.getBaseZIndex()\n const scrollbarWidth = this.getScrollbarWidth()\n modals.forEach((modal, index) => {\n // We update data values on each modal\n modal.zIndex = baseZIndex + index\n modal.scrollbarWidth = scrollbarWidth\n modal.isTop = index === this.modals.length - 1\n modal.isBodyOverflowing = this.isBodyOverflowing\n })\n },\n resetModal(modal) {\n if (modal) {\n modal.zIndex = this.getBaseZIndex()\n modal.isTop = true\n modal.isBodyOverflowing = false\n }\n },\n checkScrollbar() {\n // Determine if the body element is overflowing\n const { left, right } = getBCR(document.body)\n this.isBodyOverflowing = left + right < window.innerWidth\n },\n setScrollbar() {\n const body = document.body\n // Storage place to cache changes to margins and padding\n // Note: This assumes the following element types are not added to the\n // document after the modal has opened.\n body._paddingChangedForModal = body._paddingChangedForModal || []\n body._marginChangedForModal = body._marginChangedForModal || []\n if (this.isBodyOverflowing) {\n const scrollbarWidth = this.scrollbarWidth\n // Adjust fixed content padding\n /* istanbul ignore next: difficult to test in JSDOM */\n selectAll(Selector.FIXED_CONTENT).forEach(el => {\n const actualPadding = el.style.paddingRight\n const calculatedPadding = getCS(el).paddingRight || 0\n setAttr(el, 'data-padding-right', actualPadding)\n el.style.paddingRight = `${parseFloat(calculatedPadding) + scrollbarWidth}px`\n body._paddingChangedForModal.push(el)\n })\n // Adjust sticky content margin\n /* istanbul ignore next: difficult to test in JSDOM */\n selectAll(Selector.STICKY_CONTENT).forEach(el => {\n const actualMargin = el.style.marginRight\n const calculatedMargin = getCS(el).marginRight || 0\n setAttr(el, 'data-margin-right', actualMargin)\n el.style.marginRight = `${parseFloat(calculatedMargin) - scrollbarWidth}px`\n body._marginChangedForModal.push(el)\n })\n // Adjust <b-navbar-toggler> margin\n /* istanbul ignore next: difficult to test in JSDOM */\n selectAll(Selector.NAVBAR_TOGGLER).forEach(el => {\n const actualMargin = el.style.marginRight\n const calculatedMargin = getCS(el).marginRight || 0\n setAttr(el, 'data-margin-right', actualMargin)\n el.style.marginRight = `${parseFloat(calculatedMargin) + scrollbarWidth}px`\n body._marginChangedForModal.push(el)\n })\n // Adjust body padding\n const actualPadding = body.style.paddingRight\n const calculatedPadding = getCS(body).paddingRight\n setAttr(body, 'data-padding-right', actualPadding)\n body.style.paddingRight = `${parseFloat(calculatedPadding) + scrollbarWidth}px`\n }\n },\n resetScrollbar() {\n const body = document.body\n if (body._paddingChangedForModal) {\n // Restore fixed content padding\n body._paddingChangedForModal.forEach(el => {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-padding-right')) {\n el.style.paddingRight = getAttr(el, 'data-padding-right') || ''\n removeAttr(el, 'data-padding-right')\n }\n })\n }\n if (body._marginChangedForModal) {\n // Restore sticky content and navbar-toggler margin\n body._marginChangedForModal.forEach(el => {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-margin-right')) {\n el.style.marginRight = getAttr(el, 'data-margin-right') || ''\n removeAttr(el, 'data-margin-right')\n }\n })\n }\n body._paddingChangedForModal = null\n body._marginChangedForModal = null\n // Restore body padding\n if (hasAttr(body, 'data-padding-right')) {\n body.style.paddingRight = getAttr(body, 'data-padding-right') || ''\n removeAttr(body, 'data-padding-right')\n }\n }\n }\n})\n\n// Export our ModalManager\nexport default new ModalManager()\n","import BvEvent from '../../../utils/bv-event.class'\nimport warn from '../../../utils/warn'\nimport { defineProperties, readonlyDescriptor } from '../../../utils/object'\n\nclass BvModalEvent extends BvEvent {\n constructor(type, eventInit = {}) {\n super(type, eventInit)\n // Freeze our new props as readonly, but leave them enumerable\n defineProperties(this, {\n trigger: readonlyDescriptor()\n })\n }\n\n get modalId() /* istanbul ignore next */ {\n // Backwards compatability <= 2.0.0-rc.19\n warn('b-modal: evt.modalId is deprecated. Please use evt.componentId.')\n return this.componentId\n }\n\n cancel() /* istanbul ignore next */ {\n // Backwards compatibility for BootstrapVue 1.x\n warn('b-modal: evt.cancel() is deprecated. Please use evt.preventDefault().')\n this.preventDefault()\n }\n\n static get Defaults() {\n return {\n ...super.Defaults,\n trigger: null\n }\n }\n}\n\n// Named exports\nexport { BvModalEvent }\n\n// Default export\nexport default BvModalEvent\n","import Vue from './vue'\nimport { concat } from './array'\nimport { select } from './dom'\nimport { isBrowser } from './env'\nimport { isFunction, isString } from './inspect'\nimport { HTMLElement } from './safe-types'\nimport normalizeSlotMixin from '../mixins/normalize-slot'\n\n// BTransporterSingle/BTransporterTargetSingle:\n//\n// Single root node portaling of content, which retains parent/child hierarchy,\n// Unlike Portal-Vue where portaled content is no longer a descendent of\n// it's inteden parent components\n//\n// Private components for use by Tooltips, Popovers and Modals\n//\n// Based on vue-simple-portal\n// https://github.com/LinusBorg/vue-simple-portal\n\n// Tranporter target used by BTransporterSingle\n// Supports only a single root element.\n// @vue/component\nconst BTransporterTargetSingle = /*#__PURE__*/ Vue.extend({\n // as an abstract component, it doesn't appear in the $parent chain of\n // components, which means the next parent of any component rendered inside\n // of this one will be the parent from which is was portal'd\n abstract: true,\n name: 'BTransporterTargetSingle',\n props: {\n nodes: {\n // Even though we only support a single root element,\n // vNodes are always passed as an array\n type: [Array, Function]\n // default: undefined\n }\n },\n data: vm => {\n return {\n updatedNodes: vm.nodes\n }\n },\n destroyed() {\n const el = this.$el\n el && el.parentNode && el.parentNode.removeChild(el)\n },\n render(h) {\n let nodes = isFunction(this.updatedNodes) ? this.updatedNodes({}) : this.updatedNodes\n nodes = concat(nodes).filter(Boolean)\n /* istanbul ignore else */\n if (nodes && nodes.length > 0 && !nodes[0].text) {\n return nodes[0]\n } else {\n return h(false)\n }\n }\n})\n\n// This omponent has no root element, so only a single VNode is allowed\n// @vue/component\nexport const BTransporterSingle = /*#__PURE__*/ Vue.extend({\n name: 'BTransporterSingle',\n mixins: [normalizeSlotMixin],\n props: {\n disabled: {\n type: Boolean,\n default: false\n },\n container: {\n // String: CSS selector,\n // HTMLElement: Element reference\n // Mainly needed for tooltips/popovers inside modals\n type: [String, HTMLElement],\n default: 'body'\n },\n tag: {\n // This should be set to match the root element type\n type: String,\n default: 'div'\n }\n },\n watch: {\n disabled: {\n immediate: true,\n handler(disabled) {\n disabled ? this.unmountTarget() : this.$nextTick(this.mountTarget)\n }\n }\n },\n created() {\n this._bv_defaultFn = null\n this._bv_target = null\n },\n beforeMount() {\n this.mountTarget()\n },\n updated() {\n // Placed in a nextTick to ensure that children have completed\n // updating before rendering in the target\n this.$nextTick(() => {\n this.updateTarget()\n })\n },\n beforeDestroy() {\n this.unmountTarget()\n this._bv_defaultFn = null\n },\n methods: {\n // Get the element which the target should be appended to\n getContainer() {\n /* istanbul ignore else */\n if (isBrowser) {\n const container = this.container\n return isString(container) ? select(container) : container\n } else {\n return null\n }\n },\n // Mount the target\n mountTarget() {\n if (!this._bv_target) {\n const container = this.getContainer()\n if (container) {\n const el = document.createElement('div')\n container.appendChild(el)\n this._bv_target = new BTransporterTargetSingle({\n el,\n parent: this,\n propsData: {\n // Initial nodes to be rendered\n nodes: concat(this.normalizeSlot('default', {}))\n }\n })\n }\n }\n },\n // Update the content of the target\n updateTarget() {\n if (isBrowser && this._bv_target) {\n const defaultFn = this.$scopedSlots.default\n if (!this.disabled) {\n /* istanbul ignore else: only applicable in Vue 2.5.x */\n if (defaultFn && this._bv_defaultFn !== defaultFn) {\n // We only update the target component if the scoped slot\n // function is a fresh one. The new slot syntax (since Vue 2.6)\n // can cache unchanged slot functions and we want to respect that here.\n this._bv_target.updatedNodes = defaultFn\n } else if (!defaultFn) {\n // We also need to be back compatable with non-scoped default slot (i.e. 2.5.x)\n this._bv_target.updatedNodes = this.$slots.default\n }\n }\n // Update the scoped slot function cache\n this._bv_defaultFn = defaultFn\n }\n },\n // Unmount the target\n unmountTarget() {\n if (this._bv_target) {\n this._bv_target.$destroy()\n this._bv_target = null\n }\n }\n },\n render(h) {\n if (this.disabled) {\n const nodes = concat(this.normalizeSlot('default', {})).filter(Boolean)\n if (nodes.length > 0 && !nodes[0].text) {\n return nodes[0]\n }\n }\n return h(false)\n }\n})\n","import Vue from '../../utils/vue'\nimport modalManager from './helpers/modal-manager'\nimport BvModalEvent from './helpers/bv-modal-event.class'\nimport idMixin from '../../mixins/id'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport BVTransition from '../../utils/bv-transition'\nimport KeyCodes from '../../utils/key-codes'\nimport observeDom from '../../utils/observe-dom'\nimport { BTransporterSingle } from '../../utils/transporter'\nimport { isBrowser } from '../../utils/env'\nimport { isString } from '../../utils/inspect'\nimport { getComponentConfig } from '../../utils/config'\nimport { stripTags } from '../../utils/html'\nimport { contains, eventOff, eventOn, isVisible, select } from '../../utils/dom'\nimport { BButton } from '../button/button'\nimport { BButtonClose } from '../button/button-close'\n\n// --- Constants ---\n\nconst NAME = 'BModal'\n\n// ObserveDom config to detect changes in modal content\n// so that we can adjust the modal padding if needed\nconst OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n}\n\n// Options for DOM event listeners\nconst EVT_OPTIONS = { passive: true, capture: false }\n\nexport const props = {\n title: {\n type: String,\n default: ''\n },\n titleHtml: {\n type: String\n },\n titleTag: {\n type: String,\n default: () => getComponentConfig(NAME, 'titleTag')\n },\n size: {\n type: String,\n default: () => getComponentConfig(NAME, 'size')\n },\n centered: {\n type: Boolean,\n default: false\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n buttonSize: {\n type: String,\n default: ''\n },\n noStacking: {\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noCloseOnBackdrop: {\n type: Boolean,\n default: false\n },\n noCloseOnEsc: {\n type: Boolean,\n default: false\n },\n noEnforceFocus: {\n type: Boolean,\n default: false\n },\n headerBgVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'headerBgVariant')\n },\n headerBorderVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'headerBorderVariant')\n },\n headerTextVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'headerTextVariant')\n },\n headerCloseVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'headerCloseVariant')\n },\n headerClass: {\n type: [String, Array],\n default: null\n },\n bodyBgVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'bodyBgVariant')\n },\n bodyTextVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'bodyTextVariant')\n },\n modalClass: {\n type: [String, Array],\n default: null\n },\n dialogClass: {\n type: [String, Array],\n default: null\n },\n contentClass: {\n type: [String, Array],\n default: null\n },\n bodyClass: {\n type: [String, Array],\n default: null\n },\n footerBgVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'footerBgVariant')\n },\n footerBorderVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'footerBorderVariant')\n },\n footerTextVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'footerTextVariant')\n },\n footerClass: {\n type: [String, Array],\n default: null\n },\n hideHeader: {\n type: Boolean,\n default: false\n },\n hideFooter: {\n type: Boolean,\n default: false\n },\n hideHeaderClose: {\n type: Boolean,\n default: false\n },\n hideBackdrop: {\n type: Boolean,\n default: false\n },\n okOnly: {\n type: Boolean,\n default: false\n },\n okDisabled: {\n type: Boolean,\n default: false\n },\n cancelDisabled: {\n type: Boolean,\n default: false\n },\n visible: {\n type: Boolean,\n default: false\n },\n returnFocus: {\n // type: Object,\n default: null\n },\n headerCloseLabel: {\n type: String,\n default: () => getComponentConfig(NAME, 'headerCloseLabel')\n },\n cancelTitle: {\n type: String,\n default: () => getComponentConfig(NAME, 'cancelTitle')\n },\n cancelTitleHtml: {\n type: String\n },\n okTitle: {\n type: String,\n default: () => getComponentConfig(NAME, 'okTitle')\n },\n okTitleHtml: {\n type: String\n },\n cancelVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'cancelVariant')\n },\n okVariant: {\n type: String,\n default: () => getComponentConfig(NAME, 'okVariant')\n },\n lazy: {\n type: Boolean,\n default: false\n },\n busy: {\n type: Boolean,\n default: false\n },\n static: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BModal = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [idMixin, listenOnRootMixin, normalizeSlotMixin],\n model: {\n prop: 'visible',\n event: 'change'\n },\n props,\n data() {\n return {\n isHidden: true, // If modal should not be in document\n isVisible: false, // Controls modal visible state\n isTransitioning: false, // Used for style control\n isShow: false, // Used for style control\n isBlock: false, // Used for style control\n isOpening: false, // To signal that the modal is in the process of opening\n isClosing: false, // To signal that the modal is in the process of closing\n ignoreBackdropClick: false, // Used to signify if click out listener should ignore the click\n isModalOverflowing: false,\n return_focus: this.returnFocus || null,\n // The following items are controlled by the modalManager instance\n scrollbarWidth: 0,\n zIndex: modalManager.getBaseZIndex(),\n isTop: true,\n isBodyOverflowing: false\n }\n },\n computed: {\n modalClasses() {\n return [\n {\n fade: !this.noFade,\n show: this.isShow\n },\n this.modalClass\n ]\n },\n modalStyles() {\n const sbWidth = `${this.scrollbarWidth}px`\n return {\n paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',\n paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : '',\n // Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457\n // Even though we are using v-show, we must ensure 'none' is restored in the styles\n display: this.isBlock ? 'block' : 'none'\n }\n },\n dialogClasses() {\n return [\n {\n [`modal-${this.size}`]: Boolean(this.size),\n 'modal-dialog-centered': this.centered,\n 'modal-dialog-scrollable': this.scrollable\n },\n this.dialogClass\n ]\n },\n headerClasses() {\n return [\n {\n [`bg-${this.headerBgVariant}`]: Boolean(this.headerBgVariant),\n [`text-${this.headerTextVariant}`]: Boolean(this.headerTextVariant),\n [`border-${this.headerBorderVariant}`]: Boolean(this.headerBorderVariant)\n },\n this.headerClass\n ]\n },\n bodyClasses() {\n return [\n {\n [`bg-${this.bodyBgVariant}`]: Boolean(this.bodyBgVariant),\n [`text-${this.bodyTextVariant}`]: Boolean(this.bodyTextVariant)\n },\n this.bodyClass\n ]\n },\n footerClasses() {\n return [\n {\n [`bg-${this.footerBgVariant}`]: Boolean(this.footerBgVariant),\n [`text-${this.footerTextVariant}`]: Boolean(this.footerTextVariant),\n [`border-${this.footerBorderVariant}`]: Boolean(this.footerBorderVariant)\n },\n this.footerClass\n ]\n },\n modalOuterStyle() {\n // Styles needed for proper stacking of modals\n return {\n position: 'absolute',\n zIndex: this.zIndex\n }\n },\n slotScope() {\n return {\n ok: this.onOk,\n cancel: this.onCancel,\n close: this.onClose,\n hide: this.hide,\n visible: this.isVisible\n }\n }\n },\n watch: {\n visible(newVal, oldVal) {\n if (newVal !== oldVal) {\n this[newVal ? 'show' : 'hide']()\n }\n }\n },\n created() {\n // Define non-reactive properties\n this._observer = null\n },\n mounted() {\n // Set initial z-index as queried from the DOM\n this.zIndex = modalManager.getBaseZIndex()\n // Listen for events from others to either open or close ourselves\n // and listen to all modals to enable/disable enforce focus\n this.listenOnRoot('bv::show::modal', this.showHandler)\n this.listenOnRoot('bv::hide::modal', this.hideHandler)\n this.listenOnRoot('bv::toggle::modal', this.toggleHandler)\n // Listen for `bv:modal::show events`, and close ourselves if the\n // opening modal not us\n this.listenOnRoot('bv::modal::show', this.modalListener)\n // Initially show modal?\n if (this.visible === true) {\n this.$nextTick(this.show)\n }\n },\n beforeDestroy() {\n // Ensure everything is back to normal\n if (this._observer) {\n this._observer.disconnect()\n this._observer = null\n }\n this.setEnforceFocus(false)\n this.setResizeEvent(false)\n if (this.isVisible) {\n this.isVisible = false\n this.isShow = false\n this.isTransitioning = false\n }\n },\n methods: {\n // Private method to update the v-model\n updateModel(val) {\n if (val !== this.visible) {\n this.$emit('change', val)\n }\n },\n // Private method to create a BvModalEvent object\n buildEvent(type, opts = {}) {\n return new BvModalEvent(type, {\n // Default options\n cancelable: false,\n target: this.$refs.modal || this.$el || null,\n relatedTarget: null,\n trigger: null,\n // Supplied options\n ...opts,\n // Options that can't be overridden\n vueTarget: this,\n componentId: this.safeId()\n })\n },\n // Public method to show modal\n show() {\n if (this.isVisible || this.isOpening) {\n // If already open, on in the process of opening, do nothing\n /* istanbul ignore next */\n return\n }\n if (this.isClosing) {\n // If we are in the process of closing, wait until hidden before re-opening\n /* istanbul ignore next: very difficult to test */\n this.$once('hidden', this.show)\n /* istanbul ignore next */\n return\n }\n this.isOpening = true\n // Set the element to return focus to when closed\n this.return_focus = this.return_focus || this.getActiveElement()\n const showEvt = this.buildEvent('show', {\n cancelable: true\n })\n this.emitEvent(showEvt)\n // Don't show if canceled\n if (showEvt.defaultPrevented || this.isVisible) {\n this.isOpening = false\n // Ensure the v-model reflects the current state\n this.updateModel(false)\n return\n }\n // Show the modal\n this.doShow()\n },\n // Public method to hide modal\n hide(trigger = '') {\n if (!this.isVisible || this.isClosing) {\n /* istanbul ignore next */\n return\n }\n this.isClosing = true\n const hideEvt = this.buildEvent('hide', {\n cancelable: trigger !== 'FORCE',\n trigger: trigger || null\n })\n // We emit specific event for one of the three built-in buttons\n if (trigger === 'ok') {\n this.$emit('ok', hideEvt)\n } else if (trigger === 'cancel') {\n this.$emit('cancel', hideEvt)\n } else if (trigger === 'headerclose') {\n this.$emit('close', hideEvt)\n }\n this.emitEvent(hideEvt)\n // Hide if not canceled\n if (hideEvt.defaultPrevented || !this.isVisible) {\n this.isClosing = false\n // Ensure v-model reflects current state\n this.updateModel(true)\n return\n }\n // Stop observing for content changes\n if (this._observer) {\n this._observer.disconnect()\n this._observer = null\n }\n // Trigger the hide transition\n this.isVisible = false\n // Update the v-model\n this.updateModel(false)\n },\n // Public method to toggle modal visibility\n toggle(triggerEl) {\n if (triggerEl) {\n this.return_focus = triggerEl\n }\n if (this.isVisible) {\n this.hide('toggle')\n } else {\n this.show()\n }\n },\n // Private method to get the current document active element\n getActiveElement() {\n if (isBrowser) {\n const activeElement = document.activeElement\n // Note: On IE11, `document.activeElement` may be null.\n // So we test it for truthiness first.\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3206\n // Returning focus to document.body may cause unwanted scrolls, so we\n // exclude setting focus on body\n if (activeElement && activeElement !== document.body && activeElement.focus) {\n // Preset the fallback return focus value if it is not set\n // `document.activeElement` should be the trigger element that was clicked or\n // in the case of using the v-model, which ever element has current focus\n // Will be overridden by some commands such as toggle, etc.\n return activeElement\n }\n }\n return null\n },\n // Private method to finish showing modal\n doShow() {\n /* istanbul ignore next: commenting out for now until we can test stacking */\n if (modalManager.modalsAreOpen && this.noStacking) {\n // If another modal(s) is already open, wait for it(them) to close\n this.listenOnRootOnce('bv::modal::hidden', this.doShow)\n return\n }\n modalManager.registerModal(this)\n // Place modal in DOM\n this.isHidden = false\n this.$nextTick(() => {\n // We do this in `$nextTick()` to ensure the modal is in DOM first\n // before we show it\n this.isVisible = true\n this.isOpening = false\n // Update the v-model\n this.updateModel(true)\n this.$nextTick(() => {\n // In a nextTick in case modal content is lazy\n // Observe changes in modal content and adjust if necessary\n this._observer = observeDom(\n this.$refs.content,\n this.checkModalOverflow.bind(this),\n OBSERVER_CONFIG\n )\n })\n })\n },\n // Transition handlers\n onBeforeEnter() {\n this.isTransitioning = true\n this.setResizeEvent(true)\n },\n onEnter() {\n this.isBlock = true\n },\n onAfterEnter() {\n this.checkModalOverflow()\n this.isShow = true\n this.isTransitioning = false\n this.$nextTick(() => {\n this.emitEvent(this.buildEvent('shown'))\n this.focusFirst()\n this.setEnforceFocus(true)\n })\n },\n onBeforeLeave() {\n this.isTransitioning = true\n this.setResizeEvent(false)\n },\n onLeave() {\n // Remove the 'show' class\n this.isShow = false\n },\n onAfterLeave() {\n this.isBlock = false\n this.isTransitioning = false\n this.setEnforceFocus(false)\n this.isModalOverflowing = false\n this.isHidden = true\n this.$nextTick(() => {\n this.returnFocusTo()\n this.isClosing = false\n this.return_focus = null\n modalManager.unregisterModal(this)\n // TODO: Need to find a way to pass the `trigger` property\n // to the `hidden` event, not just only the `hide` event\n this.emitEvent(this.buildEvent('hidden'))\n })\n },\n // Event emitter\n emitEvent(bvModalEvt) {\n const type = bvModalEvt.type\n // We emit on root first incase a global listener wants to cancel\n // the event first before the instance emits it's event\n this.emitOnRoot(`bv::modal::${type}`, bvModalEvt, bvModalEvt.componentId)\n this.$emit(type, bvModalEvt)\n },\n // UI event handlers\n onDialogMousedown() {\n // Watch to see if the matching mouseup event occurs outside the dialog\n // And if it does, cancel the clickOut handler\n const modal = this.$refs.modal\n const onceModalMouseup = evt => {\n eventOff(modal, 'mouseup', onceModalMouseup, EVT_OPTIONS)\n if (evt.target === modal) {\n this.ignoreBackdropClick = true\n }\n }\n eventOn(modal, 'mouseup', onceModalMouseup, EVT_OPTIONS)\n },\n onClickOut(evt) {\n if (this.ignoreBackdropClick) {\n // Click was initiated inside the modal content, but finished outside.\n // Set by the above onDialogMousedown handler\n this.ignoreBackdropClick = false\n return\n }\n // Do nothing if not visible, backdrop click disabled, or element\n // that generated click event is no longer in document body\n if (!this.isVisible || this.noCloseOnBackdrop || !contains(document.body, evt.target)) {\n return\n }\n // If backdrop clicked, hide modal\n if (!contains(this.$refs.content, evt.target)) {\n this.hide('backdrop')\n }\n },\n onOk() {\n this.hide('ok')\n },\n onCancel() {\n this.hide('cancel')\n },\n onClose() {\n this.hide('headerclose')\n },\n onEsc(evt) {\n // If ESC pressed, hide modal\n if (evt.keyCode === KeyCodes.ESC && this.isVisible && !this.noCloseOnEsc) {\n this.hide('esc')\n }\n },\n // Document focusin listener\n focusHandler(evt) {\n // If focus leaves modal, bring it back\n const modal = this.$refs.modal\n if (\n !this.noEnforceFocus &&\n this.isTop &&\n this.isVisible &&\n modal &&\n document !== evt.target &&\n !contains(modal, evt.target)\n ) {\n modal.focus({ preventScroll: true })\n }\n },\n // Turn on/off focusin listener\n setEnforceFocus(on) {\n const method = on ? eventOn : eventOff\n method(document, 'focusin', this.focusHandler, EVT_OPTIONS)\n },\n // Resize listener\n setResizeEvent(on) {\n const method = on ? eventOn : eventOff\n // These events should probably also check if\n // body is overflowing\n method(window, 'resize', this.checkModalOverflow, EVT_OPTIONS)\n method(window, 'orientationchange', this.checkModalOverflow, EVT_OPTIONS)\n },\n // Root listener handlers\n showHandler(id, triggerEl) {\n if (id === this.safeId()) {\n this.return_focus = triggerEl || this.getActiveElement()\n this.show()\n }\n },\n hideHandler(id) {\n if (id === this.safeId()) {\n this.hide('event')\n }\n },\n toggleHandler(id, triggerEl) {\n if (id === this.safeId()) {\n this.toggle(triggerEl)\n }\n },\n modalListener(bvEvt) {\n // If another modal opens, close this one if stacking not permitted\n if (this.noStacking && bvEvt.vueTarget !== this) {\n this.hide()\n }\n },\n // Focus control handlers\n focusFirst() {\n // Don't try and focus if we are SSR\n if (isBrowser) {\n const modal = this.$refs.modal\n const activeElement = this.getActiveElement()\n // If the modal contains the activeElement, we don't do anything\n if (modal && !(activeElement && contains(modal, activeElement))) {\n // Make sure top of modal is showing (if longer than the viewport)\n // and focus the modal content wrapper\n this.$nextTick(() => {\n modal.scrollTop = 0\n modal.focus()\n })\n }\n }\n },\n returnFocusTo() {\n // Prefer `returnFocus` prop over event specified\n // `return_focus` value\n let el = this.returnFocus || this.return_focus || null\n // Is el a string CSS selector?\n el = isString(el) ? select(el) : el\n if (el) {\n // Possibly could be a component reference\n el = el.$el || el\n if (isVisible(el) && el.focus) {\n el.focus()\n }\n }\n },\n checkModalOverflow() {\n if (this.isVisible) {\n const modal = this.$refs.modal\n this.isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight\n }\n },\n makeModal(h) {\n // Modal header\n let header = h(false)\n if (!this.hideHeader) {\n let modalHeader = this.normalizeSlot('modal-header', this.slotScope)\n if (!modalHeader) {\n let closeButton = h(false)\n if (!this.hideHeaderClose) {\n closeButton = h(\n BButtonClose,\n {\n props: {\n disabled: this.isTransitioning,\n ariaLabel: this.headerCloseLabel,\n textVariant: this.headerCloseVariant || this.headerTextVariant\n },\n on: { click: this.onClose }\n },\n [this.normalizeSlot('modal-header-close', {})]\n )\n }\n const domProps =\n !this.hasNormalizedSlot('modal-title') && this.titleHtml\n ? { innerHTML: this.titleHtml }\n : {}\n modalHeader = [\n h(this.titleTag, { class: ['modal-title'], domProps }, [\n this.normalizeSlot('modal-title', this.slotScope) || stripTags(this.title)\n ]),\n closeButton\n ]\n }\n header = h(\n 'header',\n {\n ref: 'header',\n staticClass: 'modal-header',\n class: this.headerClasses,\n attrs: { id: this.safeId('__BV_modal_header_') }\n },\n [modalHeader]\n )\n }\n\n // Modal body\n const body = h(\n 'div',\n {\n ref: 'body',\n staticClass: 'modal-body',\n class: this.bodyClasses,\n attrs: { id: this.safeId('__BV_modal_body_') }\n },\n this.normalizeSlot('default', this.slotScope)\n )\n\n // Modal footer\n let footer = h(false)\n if (!this.hideFooter) {\n let modalFooter = this.normalizeSlot('modal-footer', this.slotScope)\n if (!modalFooter) {\n let cancelButton = h(false)\n if (!this.okOnly) {\n const cancelHtml = this.cancelTitleHtml ? { innerHTML: this.cancelTitleHtml } : null\n cancelButton = h(\n BButton,\n {\n props: {\n variant: this.cancelVariant,\n size: this.buttonSize,\n disabled: this.cancelDisabled || this.busy || this.isTransitioning\n },\n on: { click: this.onCancel }\n },\n [\n this.normalizeSlot('modal-cancel', {}) ||\n (cancelHtml ? h('span', { domProps: cancelHtml }) : stripTags(this.cancelTitle))\n ]\n )\n }\n const okHtml = this.okTitleHtml ? { innerHTML: this.okTitleHtml } : null\n const okButton = h(\n BButton,\n {\n props: {\n variant: this.okVariant,\n size: this.buttonSize,\n disabled: this.okDisabled || this.busy || this.isTransitioning\n },\n on: { click: this.onOk }\n },\n [\n this.normalizeSlot('modal-ok', {}) ||\n (okHtml ? h('span', { domProps: okHtml }) : stripTags(this.okTitle))\n ]\n )\n modalFooter = [cancelButton, okButton]\n }\n footer = h(\n 'footer',\n {\n ref: 'footer',\n staticClass: 'modal-footer',\n class: this.footerClasses,\n attrs: { id: this.safeId('__BV_modal_footer_') }\n },\n [modalFooter]\n )\n }\n\n // Assemble modal content\n const modalContent = h(\n 'div',\n {\n ref: 'content',\n staticClass: 'modal-content',\n class: this.contentClass,\n attrs: {\n role: 'document',\n id: this.safeId('__BV_modal_content_'),\n 'aria-labelledby': this.hideHeader ? null : this.safeId('__BV_modal_header_'),\n 'aria-describedby': this.safeId('__BV_modal_body_')\n }\n },\n [header, body, footer]\n )\n\n // Modal dialog wrapper\n const modalDialog = h(\n 'div',\n {\n staticClass: 'modal-dialog',\n class: this.dialogClasses,\n on: { mousedown: this.onDialogMousedown }\n },\n [modalContent]\n )\n\n // Modal\n let modal = h(\n 'div',\n {\n ref: 'modal',\n staticClass: 'modal',\n class: this.modalClasses,\n style: this.modalStyles,\n directives: [\n { name: 'show', rawName: 'v-show', value: this.isVisible, expression: 'isVisible' }\n ],\n attrs: {\n id: this.safeId(),\n role: 'dialog',\n tabindex: '-1',\n 'aria-hidden': this.isVisible ? null : 'true',\n 'aria-modal': this.isVisible ? 'true' : null\n },\n on: { keydown: this.onEsc, click: this.onClickOut }\n },\n [modalDialog]\n )\n\n // Wrap modal in transition\n // Sadly, we can't use BVTransition here due to the differences in\n // transition durations for .modal and .modal-dialog. Not until\n // issue https://github.com/vuejs/vue/issues/9986 is resolved\n modal = h(\n 'transition',\n {\n props: {\n enterClass: '',\n enterToClass: '',\n enterActiveClass: '',\n leaveClass: '',\n leaveActiveClass: '',\n leaveToClass: ''\n },\n on: {\n beforeEnter: this.onBeforeEnter,\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n },\n [modal]\n )\n\n // Modal backdrop\n let backdrop = h(false)\n if (!this.hideBackdrop && this.isVisible) {\n backdrop = h(\n 'div',\n { staticClass: 'modal-backdrop', attrs: { id: this.safeId('__BV_modal_backdrop_') } },\n [this.normalizeSlot('modal-backdrop', {})]\n )\n }\n backdrop = h(BVTransition, { props: { noFade: this.noFade } }, [backdrop])\n\n // Tab trap to prevent page from scrolling to next element in\n // tab index during enforce focus tab cycle\n let tabTrap = h(false)\n if (this.isVisible && this.isTop && !this.noEnforceFocus) {\n tabTrap = h('div', { attrs: { tabindex: '0' } })\n }\n // Assemble modal and backdrop in an outer <div>\n return h(\n 'div',\n {\n key: `modal-outer-${this._uid}`,\n style: this.modalOuterStyle,\n attrs: { id: this.safeId('__BV_modal_outer_') }\n },\n [modal, tabTrap, backdrop]\n )\n }\n },\n render(h) {\n if (this.static) {\n return this.lazy && this.isHidden ? h(false) : this.makeModal(h)\n } else {\n return this.isHidden ? h(false) : h(BTransporterSingle, {}, [this.makeModal(h)])\n }\n }\n})\n\nexport default BModal\n","import { setAttr, removeAttr } from '../../utils/dom'\nimport { bindTargets, unbindTargets } from '../../utils/target'\n\n// Target listen types\nconst listenTypes = { click: true }\n\n// Emitted show event for modal\nconst EVENT_SHOW = 'bv::show::modal'\n\nconst setRole = (el, binding, vnode) => {\n if (el.tagName !== 'BUTTON') {\n setAttr(el, 'role', 'button')\n }\n}\n\n/*\n * Export our directive\n */\nexport const VBModal = {\n // eslint-disable-next-line no-shadow-restricted-names\n bind(el, binding, vnode) {\n bindTargets(vnode, binding, listenTypes, ({ targets, vnode }) => {\n targets.forEach(target => {\n vnode.context.$root.$emit(EVENT_SHOW, target, vnode.elm)\n })\n })\n // If element is not a button, we add `role=\"button\"` for accessibility\n setRole(el, binding, vnode)\n },\n updated: setRole,\n componentUpdated: setRole,\n unbind(el, binding, vnode) {\n unbindTargets(vnode, binding, listenTypes)\n // If element is not a button, we add `role=\"button\"` for accessibility\n if (el.tagName !== 'BUTTON') {\n removeAttr(el, 'role', 'button')\n }\n }\n}\n\nexport default VBModal\n","/**\n * Plugin for adding `$bvModal` property to all Vue instances\n */\n\nimport BModal, { props as modalProps } from '../modal'\nimport { concat } from '../../../utils/array'\nimport { getComponentConfig } from '../../../utils/config'\nimport { isUndefined, isFunction } from '../../../utils/inspect'\nimport {\n assign,\n keys,\n omit,\n defineProperty,\n defineProperties,\n readonlyDescriptor\n} from '../../../utils/object'\nimport { pluginFactory } from '../../../utils/plugins'\nimport { warn, warnNotClient, warnNoPromiseSupport } from '../../../utils/warn'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvModal'\nconst PROP_NAME_PRIV = '_bv__modal'\n\n// Base modal props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\nconst BASE_PROPS = [\n 'id',\n ...keys(omit(modalProps, ['busy', 'lazy', 'noStacking', `static`, 'visible']))\n]\n\n// Fallback event resolver (returns undefined)\nconst defaultResolver = bvModalEvt => {}\n\n// Map prop names to modal slot names\nconst propsToSlots = {\n msgBoxContent: 'default',\n title: 'modal-title',\n okTitle: 'modal-ok',\n cancelTitle: 'modal-cancel'\n}\n\n// --- Utility methods ---\n\n// Method to filter only recognized props that are not undefined\nconst filterOptions = options => {\n return BASE_PROPS.reduce((memo, key) => {\n if (!isUndefined(options[key])) {\n memo[key] = options[key]\n }\n return memo\n }, {})\n}\n\n// Method to install `$bvModal` VM injection\nconst plugin = Vue => {\n // Create a private sub-component that extends BModal\n // which self-destructs after hidden\n // @vue/component\n const BMsgBox = Vue.extend({\n name: 'BMsgBox',\n extends: BModal,\n destroyed() {\n // Make sure we not in document any more\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el)\n }\n },\n mounted() {\n // Self destruct handler\n const handleDestroy = () => {\n const self = this\n this.$nextTick(() => {\n // In a `setTimeout()` to release control back to application\n setTimeout(() => self.$destroy(), 0)\n })\n }\n // Self destruct if parent destroyed\n this.$parent.$once('hook:destroyed', handleDestroy)\n // Self destruct after hidden\n this.$once('hidden', handleDestroy)\n // Self destruct on route change\n /* istanbul ignore if */\n if (this.$router && this.$route) {\n const unwatch = this.$watch('$router', handleDestroy)\n this.$once('hook:beforeDestroy', unwatch)\n }\n // Show the `BMsgBox`\n this.show()\n }\n })\n\n // Method to generate the on-demand modal message box\n // Returns a promise that resolves to a value returned by the resolve\n const asyncMsgBox = (props, $parent, resolver = defaultResolver) => {\n if (warnNotClient(PROP_NAME) || warnNoPromiseSupport(PROP_NAME)) {\n /* istanbul ignore next */\n return\n }\n // Create an instance of `BMsgBox` component\n const msgBox = new BMsgBox({\n // We set parent as the local VM so these modals can emit events on\n // the app `$root`, as needed by things like tooltips and popovers\n // And it helps to ensure `BMsgBox` is destroyed when parent is destroyed\n parent: $parent,\n // Preset the prop values\n propsData: {\n ...filterOptions(getComponentConfig('BModal') || {}),\n // Defaults that user can override\n hideHeaderClose: true,\n hideHeader: !(props.title || props.titleHtml),\n // Add in (filtered) user supplied props\n ...omit(props, keys(propsToSlots)),\n // Props that can't be overridden\n lazy: false,\n busy: false,\n visible: false,\n noStacking: false,\n noEnforceFocus: false\n }\n })\n // Convert certain props to scoped slots\n keys(propsToSlots).forEach(prop => {\n if (!isUndefined(props[prop])) {\n // Can be a string, or array of VNodes.\n // Alternatively, user can use HTML version of prop to pass an HTML string.\n msgBox.$slots[propsToSlots[prop]] = concat(props[prop])\n }\n })\n // Return a promise that resolves when hidden, or rejects on destroyed\n return new Promise((resolve, reject) => {\n let resolved = false\n msgBox.$once('hook:destroyed', () => {\n if (!resolved) {\n /* istanbul ignore next */\n reject(new Error('BootstrapVue MsgBox destroyed before resolve'))\n }\n })\n msgBox.$on('hide', bvModalEvt => {\n if (!bvModalEvt.defaultPrevented) {\n const result = resolver(bvModalEvt)\n // If resolver didn't cancel hide, we resolve\n if (!bvModalEvt.defaultPrevented) {\n resolved = true\n resolve(result)\n }\n }\n })\n // Create a mount point (a DIV) and mount the msgBo which will trigger it to show\n const div = document.createElement('div')\n document.body.appendChild(div)\n msgBox.$mount(div)\n })\n }\n\n // BvModal instance class\n class BvModal {\n constructor(vm) {\n // Assign the new properties to this instance\n assign(this, { _vm: vm, _root: vm.$root })\n // Set these properties as read-only and non-enumerable\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n })\n }\n\n // --- Instance methods ---\n\n // Show modal with the specified ID args are for future use\n show(id, ...args) {\n if (id && this._root) {\n this._root.$emit('bv::show::modal', id, ...args)\n }\n }\n\n // Hide modal with the specified ID args are for future use\n hide(id, ...args) {\n if (id && this._root) {\n this._root.$emit('bv::hide::modal', id, ...args)\n }\n }\n\n // The following methods require Promise support!\n // IE 11 and others do not support Promise natively, so users\n // should have a Polyfill loaded (which they need anyways for IE 11 support)\n\n // Opens a user defined message box and returns a promise\n // Not yet documented\n msgBox(content, options = {}, resolver) {\n if (\n !content ||\n warnNoPromiseSupport(PROP_NAME) ||\n warnNotClient(PROP_NAME) ||\n !isFunction(resolver)\n ) {\n /* istanbul ignore next */\n return\n }\n return asyncMsgBox({ ...filterOptions(options), msgBoxContent: content }, this._vm, resolver)\n }\n\n // Open a message box with OK button only and returns a promise\n msgBoxOk(message, options = {}) {\n // Pick the modal props we support from options\n const props = {\n ...options,\n // Add in overrides and our content prop\n okOnly: true,\n okDisabled: false,\n hideFooter: false,\n msgBoxContent: message\n }\n return this.msgBox(message, props, bvModalEvt => {\n // Always resolve to true for OK\n return true\n })\n }\n\n // Open a message box modal with OK and CANCEL buttons\n // and returns a promise\n msgBoxConfirm(message, options = {}) {\n // Set the modal props we support from options\n const props = {\n ...options,\n // Add in overrides and our content prop\n okOnly: false,\n okDisabled: false,\n cancelDisabled: false,\n hideFooter: false\n }\n return this.msgBox(message, props, bvModalEvt => {\n const trigger = bvModalEvt.trigger\n return trigger === 'ok' ? true : trigger === 'cancel' ? false : null\n })\n }\n }\n\n // Add our instance mixin\n Vue.mixin({\n beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvModal` for each VM\n this[PROP_NAME_PRIV] = new BvModal(this)\n }\n })\n\n // Define our read-only `$bvModal` instance property\n // Placed in an if just in case in HMR mode\n if (!Vue.prototype.hasOwnProperty(PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(`'${PROP_NAME}' must be accessed from a Vue instance 'this' context`)\n }\n return this[PROP_NAME_PRIV]\n }\n })\n }\n}\n\nexport const BVModalPlugin = /*#__PURE__*/ pluginFactory({\n plugins: { plugin }\n})\n\nexport default BVModalPlugin\n","import { BModal } from './modal'\nimport { VBModal } from '../../directives/modal/modal'\nimport { BVModalPlugin } from './helpers/bv-modal'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ModalPlugin = /*#__PURE__*/ pluginFactory({\n components: { BModal },\n directives: { VBModal },\n // $bvModal injection\n plugins: { BVModalPlugin }\n})\n\nexport { ModalPlugin, BModal }\n\nexport default ModalPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\n// -- Constants --\n\nconst DEPRECATED_MSG =\n 'Setting prop \"is-nav-bar\" is deprecated. Use the <b-navbar-nav> component instead.'\n\nexport const props = {\n tag: {\n type: String,\n default: 'ul'\n },\n fill: {\n type: Boolean,\n default: false\n },\n justified: {\n type: Boolean,\n default: false\n },\n align: {\n type: String,\n default: null\n },\n tabs: {\n type: Boolean,\n default: false\n },\n pills: {\n type: Boolean,\n default: false\n },\n vertical: {\n type: Boolean,\n default: false\n },\n small: {\n type: Boolean,\n default: false\n },\n isNavBar: {\n type: Boolean,\n default: false,\n // `deprecated` -> Don't use this prop\n // `deprecation` -> Refers to a change in prop usage\n deprecated: DEPRECATED_MSG\n }\n}\n\n// -- Utils --\n\nconst computeJustifyContent = value => {\n // Normalize value\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value\n return `justify-content-${value}`\n}\n\n// @vue/component\nexport const BNav = /*#__PURE__*/ Vue.extend({\n name: 'BNav',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n class: {\n nav: !props.isNavBar,\n 'navbar-nav': props.isNavBar,\n 'nav-tabs': props.tabs && !props.isNavBar,\n 'nav-pills': props.pills && !props.isNavBar,\n 'flex-column': props.vertical && !props.isNavBar,\n 'nav-fill': !props.vertical && props.fill,\n 'nav-justified': !props.vertical && props.justified,\n [computeJustifyContent(props.align)]: !props.vertical && props.align,\n small: props.small\n }\n }),\n children\n )\n }\n})\n\nexport default BNav\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nexport const props = linkPropsFactory()\n\n// @vue/component\nexport const BNavItem = /*#__PURE__*/ Vue.extend({\n name: 'BNavItem',\n functional: true,\n props: {\n ...props,\n linkAttrs: {\n type: Object,\n default() {\n return {}\n }\n },\n linkClasses: {\n type: [String, Object, Array],\n default: null\n }\n },\n render(h, { props, data, listeners, children }) {\n // We transfer the listeners to the link\n delete data.on\n return h(\n 'li',\n mergeData(data, {\n staticClass: 'nav-item'\n }),\n [\n h(\n BLink,\n {\n staticClass: 'nav-link',\n class: props.linkClasses,\n attrs: props.linkAttrs,\n props,\n on: listeners\n },\n children\n )\n ]\n )\n }\n})\n\nexport default BNavItem\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n tag: {\n type: String,\n default: 'span'\n }\n}\n\n// @vue/component\nexport const BNavText = /*#__PURE__*/ Vue.extend({\n name: 'BNavText',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(props.tag, mergeData(data, { staticClass: 'navbar-text' }), children)\n }\n})\n\nexport default BNavText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { omit } from '../../utils/object'\nimport { BForm, props as BFormProps } from '../form/form'\n\nexport const props = omit(BFormProps, ['inline'])\n\n// @vue/component\nexport const BNavForm = /*#__PURE__*/ Vue.extend({\n name: 'BNavForm',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(BForm, mergeData(data, { props: { ...props, inline: true } }), children)\n }\n})\n\nexport default BNavForm\n","import Vue from '../../utils/vue'\nimport { props as BDropdownProps } from '../dropdown/dropdown'\nimport idMixin from '../../mixins/id'\nimport dropdownMixin from '../../mixins/dropdown'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport pluckProps from '../../utils/pluck-props'\nimport { htmlOrText } from '../../utils/html'\nimport { BLink } from '../link/link'\n\n// -- Constants --\n\nexport const props = {\n ...pluckProps(['menuClass', 'toggleClass', 'noCaret', 'role'], BDropdownProps),\n extraMenuClasses: {\n type: String,\n default: '',\n // `deprecated` -> Don't use this prop\n // `deprecation` -> Refers to a change in prop usage\n deprecated: 'Setting prop \"extra-menu-classes\" is deprecated. Use \"menu-class\" prop instead.'\n },\n extraToggleClasses: {\n type: String,\n default: '',\n // `deprecated` -> Don't use this prop\n // `deprecation` -> Refers to a change in prop usage\n deprecated:\n 'Setting prop \"extra-toggle-classes\" is deprecated. Use \"toggle-class\" prop instead.'\n }\n}\n\n// @vue/component\nexport const BNavItemDropdown = /*#__PURE__*/ Vue.extend({\n name: 'BNavItemDropdown',\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props,\n computed: {\n isNav() {\n // Signal to dropdown mixin that we are in a navbar\n return true\n },\n dropdownClasses() {\n return [this.directionClass, { show: this.visible }]\n },\n menuClasses() {\n return [\n this.extraMenuClasses, // Deprecated\n this.menuClass,\n {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }\n ]\n },\n toggleClasses() {\n return [\n this.extraToggleClasses, // Deprecated\n this.toggleClass,\n {\n disabled: this.disabled,\n 'dropdown-toggle-no-caret': this.noCaret\n }\n ]\n }\n },\n render(h) {\n const button = h(\n BLink,\n {\n ref: 'toggle',\n staticClass: 'nav-link dropdown-toggle',\n class: this.toggleClasses,\n props: {\n href: '#',\n disabled: this.disabled\n },\n attrs: {\n id: this.safeId('_BV_button_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': String(this.visible)\n },\n on: {\n click: this.toggle,\n keydown: this.toggle // space, enter, down\n }\n },\n [\n this.$slots['button-content'] ||\n this.$slots.text ||\n h('span', { domProps: htmlOrText(this.html, this.text) })\n ]\n )\n const menu = h(\n 'ul',\n {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n ref: 'menu',\n attrs: {\n tabindex: '-1',\n 'aria-labelledby': this.safeId('_BV_button_')\n },\n on: {\n keydown: this.onKeydown // up, down, esc\n }\n },\n [this.normalizeSlot('default', { hide: this.hide })]\n )\n return h(\n 'li',\n {\n staticClass: 'nav-item b-nav-dropdown dropdown',\n class: this.dropdownClasses,\n attrs: { id: this.safeId() }\n },\n [button, menu]\n )\n }\n})\n\nexport default BNavItemDropdown\n","import { BNav } from './nav'\nimport { BNavItem } from './nav-item'\nimport { BNavText } from './nav-text'\nimport { BNavForm } from './nav-form'\nimport { BNavItemDropdown } from './nav-item-dropdown'\nimport { DropdownPlugin } from '../dropdown'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst NavPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BNav,\n BNavItem,\n BNavText,\n BNavForm,\n BNavItemDropdown,\n BNavItemDd: BNavItemDropdown,\n BNavDropdown: BNavItemDropdown,\n BNavDd: BNavItemDropdown\n },\n plugins: {\n DropdownPlugin\n }\n})\n\nexport { NavPlugin, BNav, BNavItem, BNavText, BNavForm, BNavItemDropdown }\n\nexport default NavPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig, getBreakpoints } from '../../utils/config'\nimport { isString } from '../../utils/inspect'\n\nconst NAME = 'BNavbar'\n\nexport const props = {\n tag: {\n type: String,\n default: 'nav'\n },\n type: {\n type: String,\n default: 'light'\n },\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n toggleable: {\n type: [Boolean, String],\n default: false\n },\n fixed: {\n type: String\n },\n sticky: {\n type: Boolean,\n default: false\n },\n print: {\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BNavbar = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props,\n render(h, { props, data, children }) {\n let breakpoint = ''\n let xs = getBreakpoints()[0]\n if (props.toggleable && isString(props.toggleable) && props.toggleable !== xs) {\n breakpoint = `navbar-expand-${props.toggleable}`\n } else if (props.toggleable === false) {\n breakpoint = 'navbar-expand'\n }\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'navbar',\n class: {\n 'd-print': props.print,\n 'sticky-top': props.sticky,\n [`navbar-${props.type}`]: Boolean(props.type),\n [`bg-${props.variant}`]: Boolean(props.variant),\n [`fixed-${props.fixed}`]: Boolean(props.fixed),\n [`${breakpoint}`]: Boolean(breakpoint)\n },\n attrs: {\n role: props.tag === 'nav' ? null : 'navigation'\n }\n }),\n children\n )\n }\n})\n\nexport default BNavbar\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { props as BNavProps } from '../nav/nav'\n\n// -- Constants --\n\nexport const props = pluckProps(['tag', 'fill', 'justified', 'align', 'small'], BNavProps)\n\n// -- Utils --\n\nconst computeJustifyContent = value => {\n // Normalize value\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value\n return `justify-content-${value}`\n}\n\n// @vue/component\nexport const BNavbarNav = /*#__PURE__*/ Vue.extend({\n name: 'BNavbarNav',\n functional: true,\n props,\n render(h, { props, data, children }) {\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'navbar-nav',\n class: {\n 'nav-fill': props.fill,\n 'nav-justified': props.justified,\n [computeJustifyContent(props.align)]: props.align,\n small: props.small\n }\n }),\n children\n )\n }\n})\n\nexport default BNavbarNav\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { BLink, propsFactory } from '../link/link'\n\nconst linkProps = propsFactory()\nlinkProps.href.default = undefined\nlinkProps.to.default = undefined\n\nexport const props = {\n ...linkProps,\n tag: {\n type: String,\n default: 'div'\n }\n}\n\n// @vue/component\nexport const BNavbarBrand = /*#__PURE__*/ Vue.extend({\n name: 'BNavbarBrand',\n functional: true,\n props,\n render(h, { props, data, children }) {\n const isLink = Boolean(props.to || props.href)\n const tag = isLink ? BLink : props.tag\n\n return h(\n tag,\n mergeData(data, {\n staticClass: 'navbar-brand',\n props: isLink ? pluckProps(linkProps, props) : {}\n }),\n children\n )\n }\n})\n\nexport default BNavbarBrand\n","import Vue from '../../utils/vue'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { getComponentConfig } from '../../utils/config'\n\nconst NAME = 'BNavbarToggle'\n\n// TODO: Switch to using VBToggle directive, will reduce code footprint\n\n// Events we emit on $root\nconst EVENT_TOGGLE = 'bv::toggle::collapse'\n\n// Events we listen to on $root\nconst EVENT_STATE = 'bv::collapse::state'\n// This private event is NOT to be documented as people should not be using it.\nconst EVENT_STATE_SYNC = 'bv::collapse::sync::state'\n\n// @vue/component\nexport const BNavbarToggle = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [listenOnRootMixin, normalizeSlotMixin],\n props: {\n label: {\n type: String,\n default: () => getComponentConfig(NAME, 'label')\n },\n target: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n toggleState: false\n }\n },\n created() {\n this.listenOnRoot(EVENT_STATE, this.handleStateEvt)\n this.listenOnRoot(EVENT_STATE_SYNC, this.handleStateEvt)\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n if (!evt.defaultPrevented) {\n this.$root.$emit(EVENT_TOGGLE, this.target)\n }\n },\n handleStateEvt(id, state) {\n if (id === this.target) {\n this.toggleState = state\n }\n }\n },\n render(h) {\n return h(\n 'button',\n {\n class: ['navbar-toggler'],\n attrs: {\n type: 'button',\n 'aria-label': this.label,\n 'aria-controls': this.target,\n 'aria-expanded': this.toggleState ? 'true' : 'false'\n },\n on: { click: this.onClick }\n },\n [this.normalizeSlot('default') || h('span', { class: ['navbar-toggler-icon'] })]\n )\n }\n})\n\nexport default BNavbarToggle\n","import { BNavbar } from './navbar'\nimport { BNavbarNav } from './navbar-nav'\nimport { BNavbarBrand } from './navbar-brand'\nimport { BNavbarToggle } from './navbar-toggle'\nimport { NavPlugin } from '../nav'\nimport { CollapsePlugin } from '../collapse'\nimport { DropdownPlugin } from '../dropdown'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst NavbarPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BNavbar,\n BNavbarNav,\n BNavbarBrand,\n BNavbarToggle,\n BNavToggle: BNavbarToggle\n },\n plugins: {\n NavPlugin,\n CollapsePlugin,\n DropdownPlugin\n }\n})\n\nexport { NavbarPlugin, BNavbar, BNavbarNav, BNavbarBrand, BNavbarToggle }\n\nexport default NavbarPlugin\n","/**\n * @param {number} length\n * @return {Array}\n */\nconst range = length => Array.apply(null, { length })\n\nexport default range\n","/*\n * Common props, computed, data, render function, and methods\n * for <b-pagination> and <b-pagination-nav>\n */\n\nimport KeyCodes from '../utils/key-codes'\nimport range from '../utils/range'\nimport toString from '../utils/to-string'\nimport warn from '../utils/warn'\nimport { isFunction, isNull } from '../utils/inspect'\nimport { isVisible, isDisabled, selectAll, getAttr } from '../utils/dom'\nimport normalizeSlotMixin from '../mixins/normalize-slot'\nimport { BLink } from '../components/link/link'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\n// Default # of buttons limit\nconst DEFAULT_LIMIT = 5\n\n// Make an array of N to N+X\nfunction makePageArray(startNum, numPages) {\n return range(numPages).map(function(value, index) {\n return { number: index + startNum, classes: null }\n })\n}\n\n// Sanitize the provided Limit value (converting to a number)\nfunction sanitizeLimit(value) {\n const limit = parseInt(value, 10) || 1\n return limit < 1 ? DEFAULT_LIMIT : limit\n}\n\n// Sanitize the provided current page number (converting to a number)\nfunction sanitizeCurPage(value, numPages) {\n const page = parseInt(value, 10) || 1\n return page > numPages ? numPages : page < 1 ? 1 : page\n}\n\n// Links don't normally respond to SPACE, so we add that functionality via this handler\nfunction onSpaceKey(evt) {\n if (evt.keyCode === KeyCodes.SPACE) {\n evt.preventDefault() // Stop page from scrolling\n evt.stopImmediatePropagation()\n evt.stopPropagation()\n // Trigger the click event on the link\n evt.currentTarget.click()\n return false\n }\n}\n\n// Props object\nconst props = {\n disabled: {\n type: Boolean,\n default: false\n },\n value: {\n type: [Number, String],\n default: null,\n validator(value) {\n const num = parseInt(value, 10)\n /* istanbul ignore if */\n if (!isNull(value) && (isNaN(num) || num < 1)) {\n warn('pagination: v-model value must be a number greater than 0')\n return false\n }\n return true\n }\n },\n limit: {\n type: [Number, String],\n default: DEFAULT_LIMIT,\n validator(value) {\n const num = parseInt(value, 10)\n /* istanbul ignore if */\n if (isNaN(num) || num < 1) {\n warn('pagination: prop \"limit\" must be a number greater than 0')\n return false\n }\n return true\n }\n },\n size: {\n type: String,\n default: 'md'\n },\n align: {\n type: String,\n default: 'left'\n },\n hideGotoEndButtons: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: 'Pagination'\n },\n labelFirstPage: {\n type: String,\n default: 'Go to first page'\n },\n firstText: {\n type: String,\n default: '\\u00AB' // '«'\n },\n labelPrevPage: {\n type: String,\n default: 'Go to previous page'\n },\n prevText: {\n type: String,\n default: '\\u2039' // '‹'\n },\n labelNextPage: {\n type: String,\n default: 'Go to next page'\n },\n nextText: {\n type: String,\n default: '\\u203A' // '›'\n },\n labelLastPage: {\n type: String,\n default: 'Go to last page'\n },\n lastText: {\n type: String,\n default: '\\u00BB' // '»'\n },\n labelPage: {\n type: [String, Function],\n default: 'Go to page'\n },\n hideEllipsis: {\n type: Boolean,\n default: false\n },\n ellipsisText: {\n type: String,\n default: '\\u2026' // '…'\n }\n}\n\n// @vue/component\nexport default {\n mixins: [normalizeSlotMixin],\n model: {\n prop: 'value',\n event: 'input'\n },\n props,\n data() {\n const curr = parseInt(this.value, 10)\n return {\n // -1 signifies no page initially selected\n currentPage: curr > 0 ? curr : -1,\n localNumPages: 1,\n localLimit: DEFAULT_LIMIT\n }\n },\n computed: {\n btnSize() {\n return this.size ? `pagination-${this.size}` : ''\n },\n alignment() {\n const align = this.align\n if (align === 'center') {\n return 'justify-content-center'\n } else if (align === 'end' || align === 'right') {\n return 'justify-content-end'\n } else if (align === 'fill') {\n // The page-items will also have 'flex-fill' added.\n // We ad text centering to make the button appearance better in fill mode.\n return 'text-center'\n }\n return ''\n },\n computedCurrentPage() {\n return sanitizeCurPage(this.currentPage, this.localNumPages)\n },\n paginationParams() {\n // Determine if we should show the the ellipsis\n const limit = this.limit\n const numPages = this.localNumPages\n const curPage = this.computedCurrentPage\n const hideEllipsis = this.hideEllipsis\n let showFirstDots = false\n let showLastDots = false\n let numLinks = limit\n let startNum = 1\n\n if (numPages <= limit) {\n // Special Case: Less pages available than the limit of displayed pages\n numLinks = numPages\n } else if (curPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n // We are near the beginning of the page list\n if (!hideEllipsis) {\n showLastDots = true\n numLinks = limit - 1\n }\n } else if (numPages - curPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n // We are near the end of the list\n if (!hideEllipsis) {\n numLinks = limit - 1\n showFirstDots = true\n }\n startNum = numPages - numLinks + 1\n } else {\n // We are somewhere in the middle of the page list\n if (limit > ELLIPSIS_THRESHOLD && !hideEllipsis) {\n numLinks = limit - 2\n showFirstDots = showLastDots = true\n }\n startNum = curPage - Math.floor(numLinks / 2)\n }\n // Sanity checks\n if (startNum < 1) {\n /* istanbul ignore next */\n startNum = 1\n } else if (startNum > numPages - numLinks) {\n startNum = numPages - numLinks + 1\n }\n return { showFirstDots, showLastDots, numLinks, startNum }\n },\n pageList() {\n // Generates the pageList array\n const { numLinks, startNum } = this.paginationParams\n const currPage = this.computedCurrentPage\n // Generate list of page numbers\n const pages = makePageArray(startNum, numLinks)\n // We limit to a total of 3 page buttons on XS screens\n // So add classes to page links to hide them for XS breakpoint\n // Note: Ellipsis will also be hidden on XS screens\n // TODO: Make this visual limit configurable based on breakpoint(s)\n if (pages.length > 3) {\n const idx = currPage - startNum\n // THe following is a bootstrap-vue custom utility class\n const classes = 'bv-d-xs-down-none'\n if (idx === 0) {\n // Keep leftmost 3 buttons visible when current page is first page\n for (let i = 3; i < pages.length; i++) {\n pages[i].classes = classes\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible when current page is last page\n for (let i = 0; i < pages.length - 3; i++) {\n pages[i].classes = classes\n }\n } else {\n // Hide all except current page, current page - 1 and current page + 1\n for (let i = 0; i < idx - 1; i++) {\n // hide some left button(s)\n pages[i].classes = classes\n }\n for (let i = pages.length - 1; i > idx + 1; i--) {\n // hide some right button(s)\n pages[i].classes = classes\n }\n }\n }\n return pages\n }\n },\n watch: {\n value(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = sanitizeCurPage(newValue, this.localNumPages)\n }\n },\n currentPage(newValue, oldValue) {\n if (newValue !== oldValue) {\n // Emit null if no page selected\n this.$emit('input', newValue > 0 ? newValue : null)\n }\n },\n limit(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localLimit = sanitizeLimit(newValue)\n }\n }\n },\n created() {\n // Set our default values in data\n this.localLimit = sanitizeLimit(this.limit)\n this.$nextTick(() => {\n // Sanity check\n this.currentPage =\n this.currentPage > this.localNumPages ? this.localNumPages : this.currentPage\n })\n },\n methods: {\n getButtons() {\n // Return only buttons that are visible\n return selectAll('a.page-link', this.$el).filter(btn => isVisible(btn))\n },\n setBtnFocus(btn) {\n btn.focus()\n },\n focusCurrent() {\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(() => {\n const btn = this.getButtons().find(\n el => parseInt(getAttr(el, 'aria-posinset'), 10) === this.computedCurrentPage\n )\n if (btn && btn.focus) {\n this.setBtnFocus(btn)\n } else {\n // Fallback if current page is not in button list\n this.focusFirst()\n }\n })\n },\n focusFirst() {\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(() => {\n const btn = this.getButtons().find(el => !isDisabled(el))\n if (btn && btn.focus && btn !== document.activeElement) {\n this.setBtnFocus(btn)\n }\n })\n },\n focusLast() {\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(() => {\n const btn = this.getButtons()\n .reverse()\n .find(el => !isDisabled(el))\n if (btn && btn.focus && btn !== document.activeElement) {\n this.setBtnFocus(btn)\n }\n })\n },\n focusPrev() {\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(() => {\n const buttons = this.getButtons()\n const idx = buttons.indexOf(document.activeElement)\n if (idx > 0 && !isDisabled(buttons[idx - 1]) && buttons[idx - 1].focus) {\n this.setBtnFocus(buttons[idx - 1])\n }\n })\n },\n focusNext() {\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(() => {\n const buttons = this.getButtons()\n const idx = buttons.indexOf(document.activeElement)\n const cnt = buttons.length - 1\n if (idx < cnt && !isDisabled(buttons[idx + 1]) && buttons[idx + 1].focus) {\n this.setBtnFocus(buttons[idx + 1])\n }\n })\n }\n },\n render(h) {\n const buttons = []\n const numberOfPages = this.localNumPages\n const disabled = this.disabled\n const { showFirstDots, showLastDots } = this.paginationParams\n const currPage = this.computedCurrentPage\n const fill = this.align === 'fill'\n\n // Helper function and flag\n const isActivePage = pageNum => pageNum === currPage\n const noCurrPage = this.currentPage < 1\n\n // Factory function for prev/next/first/last buttons\n const makeEndBtn = (linkTo, ariaLabel, btnSlot, btnText, pageTest, key) => {\n const isDisabled =\n disabled || isActivePage(pageTest) || noCurrPage || linkTo < 1 || linkTo > numberOfPages\n const pageNum = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo\n const scope = { disabled: isDisabled, page: pageNum, index: pageNum - 1 }\n const btnContent = this.normalizeSlot(btnSlot, scope) || toString(btnText) || h(false)\n const inner = h(\n isDisabled ? 'span' : BLink,\n {\n staticClass: 'page-link',\n props: isDisabled ? {} : this.linkProps(linkTo),\n attrs: {\n role: 'menuitem',\n tabindex: isDisabled ? null : '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': this.ariaControls || null,\n 'aria-disabled': isDisabled ? 'true' : null\n },\n on: isDisabled\n ? {}\n : {\n click: evt => {\n this.onClick(linkTo, evt)\n },\n keydown: onSpaceKey\n }\n },\n [btnContent]\n )\n return h(\n 'li',\n {\n key,\n staticClass: 'page-item',\n class: { disabled: isDisabled, 'flex-fill': fill },\n attrs: {\n role: 'none presentation',\n 'aria-hidden': isDisabled ? 'true' : null\n }\n },\n [inner]\n )\n }\n\n // Ellipsis factory\n const makeEllipsis = isLast => {\n return h(\n 'li',\n {\n key: `ellipsis-${isLast ? 'last' : 'first'}`,\n staticClass: 'page-item',\n class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : ''],\n attrs: { role: 'separator' }\n },\n [\n h('span', { staticClass: 'page-link' }, [\n this.normalizeSlot('ellipsis-text', {}) || toString(this.ellipsisText) || h(false)\n ])\n ]\n )\n }\n\n // Goto First Page button bookend\n buttons.push(\n this.hideGotoEndButtons\n ? h(false)\n : makeEndBtn(1, this.labelFirstPage, 'first-text', this.firstText, 1, 'bookend-goto-first')\n )\n\n // Goto Previous page button bookend\n buttons.push(\n makeEndBtn(\n currPage - 1,\n this.labelPrevPage,\n 'prev-text',\n this.prevText,\n 1,\n 'bookend-goto-prev'\n )\n )\n\n // First Ellipsis Bookend\n buttons.push(showFirstDots ? makeEllipsis(false) : h(false))\n\n // Individual Page links\n this.pageList.forEach((page, idx) => {\n const active = isActivePage(page.number) && !noCurrPage\n // Active page will have tabindex of 0, or if no current page and first page button\n let tabIndex = disabled ? null : active || (noCurrPage && idx === 0) ? '0' : '-1'\n const attrs = {\n role: 'menuitemradio',\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-controls': this.ariaControls || null,\n 'aria-label': isFunction(this.labelPage)\n ? this.labelPage(page.number)\n : `${this.labelPage} ${page.number}`,\n 'aria-checked': active ? 'true' : 'false',\n 'aria-posinset': page.number,\n 'aria-setsize': numberOfPages,\n // ARIA \"roving tabindex\" method\n tabindex: tabIndex\n }\n const btnContent = toString(this.makePage(page.number))\n const scope = {\n page: page.number,\n index: page.number - 1,\n content: btnContent,\n active,\n disabled\n }\n const inner = h(\n disabled ? 'span' : BLink,\n {\n props: disabled ? {} : this.linkProps(page.number),\n staticClass: 'page-link',\n attrs,\n on: disabled\n ? {}\n : {\n click: evt => {\n this.onClick(page.number, evt)\n },\n keydown: onSpaceKey\n }\n },\n [this.normalizeSlot('page', scope) || btnContent]\n )\n buttons.push(\n h(\n 'li',\n {\n key: `page-${page.number}`,\n staticClass: 'page-item',\n class: [{ disabled, active, 'flex-fill': fill }, page.classes],\n attrs: { role: 'none presentation' }\n },\n [inner]\n )\n )\n })\n\n // Last Ellipsis Bookend\n buttons.push(showLastDots ? makeEllipsis(true) : h(false))\n\n // Goto Next page button bookend\n buttons.push(\n makeEndBtn(\n currPage + 1,\n this.labelNextPage,\n 'next-text',\n this.nextText,\n numberOfPages,\n 'bookend-goto-next'\n )\n )\n\n // Goto Last Page button bookend\n buttons.push(\n this.hideGotoEndButtons\n ? h(false)\n : makeEndBtn(\n numberOfPages,\n this.labelLastPage,\n 'last-text',\n this.lastText,\n numberOfPages,\n 'bookend-goto-last'\n )\n )\n\n // Assemble the pagination buttons\n const pagination = h(\n 'ul',\n {\n ref: 'ul',\n staticClass: 'pagination',\n class: ['b-pagination', this.btnSize, this.alignment],\n attrs: {\n role: 'menubar',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-label': this.ariaLabel || null\n },\n on: {\n keydown: evt => {\n const keyCode = evt.keyCode\n const shift = evt.shiftKey\n if (keyCode === KeyCodes.LEFT) {\n evt.preventDefault()\n shift ? this.focusFirst() : this.focusPrev()\n } else if (keyCode === KeyCodes.RIGHT) {\n evt.preventDefault()\n shift ? this.focusLast() : this.focusNext()\n }\n }\n }\n },\n buttons\n )\n\n // if we are pagination-nav, wrap in '<nav>' wrapper\n if (this.isNav) {\n return h(\n 'nav',\n {\n attrs: {\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-hidden': disabled ? 'true' : 'false'\n }\n },\n [pagination]\n )\n } else {\n return pagination\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport paginationMixin from '../../mixins/pagination'\nimport { isVisible } from '../../utils/dom'\n\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n\nfunction sanitizePerPage(value) {\n const perPage = parseInt(value, 10) || DEFAULT_PER_PAGE\n return perPage < 1 ? 1 : perPage\n}\n\nfunction sanitizeTotalRows(value) {\n const totalRows = parseInt(value, 10) || DEFAULT_TOTAL_ROWS\n return totalRows < 0 ? 0 : totalRows\n}\n\nconst props = {\n perPage: {\n type: [Number, String],\n default: DEFAULT_PER_PAGE\n },\n totalRows: {\n type: [Number, String],\n default: DEFAULT_TOTAL_ROWS\n },\n ariaControls: {\n type: String,\n default: null\n }\n}\n\n// Our render function is brought in from the pagination mixin\n// @vue/component\nexport const BPagination = /*#__PURE__*/ Vue.extend({\n name: 'BPagination',\n mixins: [paginationMixin],\n props,\n computed: {\n numberOfPages() {\n const result = Math.ceil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage))\n return result < 1 ? 1 : result\n }\n },\n watch: {\n numberOfPages(newVal) {\n if (newVal === this.localNumPages) {\n /* istanbul ignore next */\n return\n }\n this.localNumPages = newVal\n this.currentPage = 1\n }\n },\n created() {\n // Set the initial page count\n this.localNumPages = this.numberOfPages\n // Set the initial page value\n const curr = parseInt(this.value, 10) || 0\n if (curr > 0) {\n this.currentPage = curr\n } else {\n this.$nextTick(() => {\n // If this value parses to NaN or a value less than 1\n // Trigger an initial emit of 'null' if no page specified\n this.currentPage = 0\n })\n }\n },\n mounted() {\n // Set the initial page count\n this.localNumPages = this.numberOfPages\n },\n methods: {\n // These methods are used by the render function\n onClick(num, evt) {\n // Handle edge cases where number of pages has changed (i.e. if perPage changes)\n // This should normally not happen, but just in case.\n if (num > this.numberOfPages) {\n /* istanbul ignore next */\n num = this.numberOfPages\n } else if (num < 1) {\n /* istanbul ignore next */\n num = 1\n }\n // Update the v-model\n this.currentPage = num\n // Emit event triggered by user interaction\n this.$emit('change', this.currentPage)\n this.$nextTick(() => {\n // Keep the current button focused if possible\n const target = evt.target\n if (isVisible(target) && this.$el.contains(target) && target.focus) {\n target.focus()\n } else {\n this.focusCurrent()\n }\n })\n },\n makePage(pageNum) {\n return pageNum\n },\n linkProps(pageNum) {\n // Always '#' for pagination component\n return { href: '#' }\n }\n }\n})\n\nexport default BPagination\n","import { BPagination } from './pagination'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst PaginationPlugin = /*#__PURE__*/ pluginFactory({\n components: { BPagination }\n})\n\nexport { PaginationPlugin, BPagination }\n\nexport default PaginationPlugin\n","import Vue from '../../utils/vue'\nimport looseEqual from '../../utils/loose-equal'\nimport toString from '../../utils/to-string'\nimport warn from '../../utils/warn'\nimport { requestAF } from '../../utils/dom'\nimport { isBrowser } from '../../utils/env'\nimport { isArray, isUndefined, isFunction, isObject } from '../../utils/inspect'\nimport { computeHref, parseQuery } from '../../utils/router'\nimport paginationMixin from '../../mixins/pagination'\n\n// Props object\nconst props = {\n // pagination-nav specific props\n numberOfPages: {\n type: [Number, String],\n default: 1,\n validator(value) {\n const num = parseInt(value, 10)\n /* istanbul ignore if */\n if (isNaN(num) || num < 1) {\n warn('b-pagination: prop \"number-of-pages\" must be a number greater than 0')\n return false\n }\n return true\n }\n },\n baseUrl: {\n type: String,\n default: '/'\n },\n useRouter: {\n type: Boolean,\n default: false\n },\n linkGen: {\n type: Function,\n default: null\n },\n pageGen: {\n type: Function,\n default: null\n },\n pages: {\n // Optional array of page links\n type: Array,\n default: null\n },\n noPageDetect: {\n // Disable auto page number detection if true\n type: Boolean,\n default: false\n },\n // router-link specific props\n activeClass: {\n type: String\n // default: undefined\n },\n exact: {\n type: Boolean,\n default: false\n },\n exactActiveClass: {\n type: String\n // default: undefined\n },\n // nuxt-link specific prop(s)\n noPrefetch: {\n type: Boolean,\n default: false\n }\n}\n\n// TODO: move this to an instance method in pagination mixin\nconst sanitizeNumPages = value => {\n let num = parseInt(value, 10) || 1\n return num < 1 ? 1 : num\n}\n\n// Our render function is brought in via the pagination mixin\n// @vue/component\nexport const BPaginationNav = /*#__PURE__*/ Vue.extend({\n name: 'BPaginationNav',\n mixins: [paginationMixin],\n props,\n computed: {\n // Used by render function to trigger wrapping in '<nav>' element\n isNav() {\n return true\n },\n computedValue() {\n // Returns the value prop as a number or `null` if undefined or < 1\n const val = parseInt(this.value, 10)\n return isNaN(val) || val < 1 ? null : val\n }\n },\n watch: {\n numberOfPages(newVal, oldVal) {\n this.$nextTick(() => {\n this.setNumPages()\n })\n },\n pages(newVal, oldVal) {\n this.$nextTick(() => {\n this.setNumPages()\n })\n }\n },\n created() {\n this.setNumPages()\n },\n mounted() {\n if (this.$router) {\n // We only add the watcher if vue router is detected\n this.$watch('$route', (to, from) => {\n this.$nextTick(() => {\n requestAF(() => {\n this.guessCurrentPage()\n })\n })\n })\n }\n },\n methods: {\n setNumPages() {\n if (isArray(this.pages) && this.pages.length > 0) {\n this.localNumPages = this.pages.length\n } else {\n this.localNumPages = sanitizeNumPages(this.numberOfPages)\n }\n this.$nextTick(() => {\n this.guessCurrentPage()\n })\n },\n onClick(pageNum, evt) {\n // Dont do anything if clicking the current active page\n if (pageNum === this.currentPage) {\n return\n }\n requestAF(() => {\n // Update the v-model\n // Done in in requestAF() to allow browser to complete the\n // native browser click handling of a link\n this.currentPage = pageNum\n this.$emit('change', pageNum)\n })\n this.$nextTick(() => {\n // Done in a nextTick() to ensure rendering complete\n try {\n // Emulate native link click page reloading behaviour by blurring the\n // paginator and returning focus to the document\n const target = evt.currentTarget || evt.target\n target.blur()\n } catch (e) {}\n })\n },\n getPageInfo(pageNum) {\n if (!isArray(this.pages) || this.pages.length === 0 || isUndefined(this.pages[pageNum - 1])) {\n const link = `${this.baseUrl}${pageNum}`\n return {\n link: this.useRouter ? { path: link } : link,\n text: toString(pageNum)\n }\n }\n const info = this.pages[pageNum - 1]\n if (isObject(info)) {\n const link = info.link\n return {\n // Normalize link for router use\n link: isObject(link) ? link : this.useRouter ? { path: link } : link,\n // Make sure text has a value\n text: toString(info.text || pageNum)\n }\n } else {\n return { link: toString(info), text: toString(pageNum) }\n }\n },\n makePage(pageNum) {\n const info = this.getPageInfo(pageNum)\n if (this.pageGen && isFunction(this.pageGen)) {\n return this.pageGen(pageNum, info)\n }\n return info.text\n },\n makeLink(pageNum) {\n const info = this.getPageInfo(pageNum)\n if (this.linkGen && isFunction(this.linkGen)) {\n return this.linkGen(pageNum, info)\n }\n return info.link\n },\n linkProps(pageNum) {\n const link = this.makeLink(pageNum)\n const props = {\n target: this.target || null,\n rel: this.rel || null,\n disabled: this.disabled,\n // The following props are only used if BLink detects router\n exact: this.exact,\n activeClass: this.activeClass,\n exactActiveClass: this.exactActiveClass,\n append: this.append,\n replace: this.replace,\n // nuxt-link specific prop\n noPrefetch: this.noPrefetch\n }\n if (this.useRouter || isObject(link)) {\n props.to = link\n } else {\n props.href = link\n }\n return props\n },\n resolveLink(to = '') {\n // Given a to (or href string), convert to normalized route-like structure\n // Works only client side!!\n let link\n try {\n // Convert the `to` to a HREF via a temporary `a` tag\n link = document.createElement('a')\n link.href = computeHref({ to }, 'a', '/', '/')\n // We need to add the anchor to the document to make sure the\n // `pathname` is correctly detected in any browser (i.e. IE)\n document.body.appendChild(link)\n // Once href is assigned, the link will be normalized to the full URL bits\n const { pathname, hash, search } = link\n // Remove link from document\n document.body.removeChild(link)\n // Return the location in a route-like object\n return { path: pathname, hash: hash, query: parseQuery(search) }\n } catch (e) {\n /* istanbul ignore next */\n try {\n link && link.parentNode && link.parentNode.removeChild(link)\n } catch (e) {}\n /* istanbul ignore next */\n return {}\n }\n },\n resolveRoute(to = '') {\n // Given a to (or href string), convert to normalized route location structure\n // works only when router available!!\n try {\n const route = this.$router.resolve(to, this.$route).route\n return { path: route.path, hash: route.hash, query: route.query }\n } catch (e) {\n /* istanbul ignore next */\n return {}\n }\n },\n guessCurrentPage() {\n let guess = this.computedValue\n const $router = this.$router\n const $route = this.$route\n // This section only occurs if we are client side, or server-side with $router\n /* istanbul ignore else */\n if (!this.noPageDetect && !guess && (isBrowser || (!isBrowser && $router))) {\n // Current route (if router available)\n const currRoute =\n $router && $route ? { path: $route.path, hash: $route.hash, query: $route.query } : {}\n // Current page full HREF (if client side). Can't be done as a computed prop!\n const loc = isBrowser ? window.location || document.location : null\n const currLink = loc\n ? { path: loc.pathname, hash: loc.hash, query: parseQuery(loc.search) }\n : {}\n // Loop through the possible pages looking for a match until found\n for (let page = 1; !guess && page <= this.localNumPages; page++) {\n const to = this.makeLink(page)\n if ($router && (isObject(to) || this.useRouter)) {\n // Resolve the page via the $router\n guess = looseEqual(this.resolveRoute(to), currRoute) ? page : null\n } else if (isBrowser) {\n // If no $router available (or !this.useRouter when `to` is a string)\n // we compare using parsed URIs\n guess = looseEqual(this.resolveLink(to), currLink) ? page : null\n } else {\n // probably SSR, but no $router so we can't guess, so lets break out of\n // the loop early\n /* istanbul ignore next */\n guess = -1\n }\n }\n }\n // We set currentPage to 0 to trigger an $emit('input', null)\n // As the default for this.currentPage is -1 when no value is specified\n // And valid page numbers are greater than 0\n this.currentPage = guess > 0 ? guess : 0\n }\n }\n})\n\nexport default BPaginationNav\n","import { BPaginationNav } from './pagination-nav'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst PaginationNavPlugin = /*#__PURE__*/ pluginFactory({\n components: { BPaginationNav }\n})\n\nexport { PaginationNavPlugin, BPaginationNav }\n\nexport default PaginationNavPlugin\n","import Popper from 'popper.js'\nimport BvEvent from './bv-event.class'\nimport noop from './noop'\nimport { from as arrayFrom } from './array'\nimport {\n closest,\n select,\n isVisible,\n isDisabled,\n getCS,\n addClass,\n removeClass,\n hasClass,\n setAttr,\n removeAttr,\n getAttr,\n eventOn,\n eventOff\n} from './dom'\nimport { isFunction, isNull, isNumber, isObject, isString, isUndefined } from './inspect'\n\nconst NAME = 'tooltip'\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BS_CLASS_PREFIX_REGEX = new RegExp(`\\\\b${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst TRANSITION_DURATION = 150\n\n// Modal $root hidden event\nconst MODAL_CLOSE_EVENT = 'bv::modal::hidden'\n// Modal container for appending tooltip/popover\nconst MODAL_CLASS = '.modal-content'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n}\n\nconst OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP: '.tooltip',\n TOOLTIP_INNER: '.tooltip-inner',\n ARROW: '.arrow'\n}\n\nconst Defaults = {\n animation: true,\n template:\n '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n placement: 'top',\n offset: 0,\n arrowPadding: 6,\n container: false,\n fallbackPlacement: 'flip',\n callbacks: {},\n boundary: 'scrollParent',\n boundaryPadding: 5\n}\n\n// Transition event names\nconst TransitionEndEvents = {\n WebkitTransition: ['webkitTransitionEnd'],\n MozTransition: ['transitionend'],\n OTransition: ['otransitionend', 'oTransitionEnd'],\n transition: ['transitionend']\n}\n\n// Options for Native Event Listeners (since we never call preventDefault)\nconst EvtOpts = { passive: true, capture: false }\n\n// Client-side tip ID counter for aria-describedby attribute\n// Each tooltip requires a unique client side ID\nlet NEXTID = 1\n/* istanbul ignore next */\nconst generateId = name => `__BV_${name}_${NEXTID++}__`\n\n/*\n * ToolTip class definition\n */\nclass ToolTip {\n // Main constructor\n constructor(element, config, $root) {\n // New tooltip object\n this.$isEnabled = true\n this.$fadeTimeout = null\n this.$hoverTimeout = null\n this.$visibleInterval = null\n this.$hoverState = ''\n this.$activeTrigger = {}\n this.$popper = null\n this.$element = element\n this.$tip = null\n this.$id = generateId(this.constructor.NAME)\n this.$root = $root || null\n this.$routeWatcher = null\n // We use a bound version of the following handlers for root/modal\n // listeners to maintain the 'this' context\n this.$forceHide = this.forceHide.bind(this)\n this.$doHide = this.doHide.bind(this)\n this.$doShow = this.doShow.bind(this)\n this.$doDisable = this.doDisable.bind(this)\n this.$doEnable = this.doEnable.bind(this)\n this._noop = noop.bind(this)\n // Set the configuration\n this.updateConfig(config)\n }\n\n // NOTE: Overridden by PopOver class\n static get Default() {\n return Defaults\n }\n\n // NOTE: Overridden by PopOver class\n static get NAME() {\n return NAME\n }\n\n // Update config\n updateConfig(config) {\n // Merge config into defaults. We use \"this\" here because PopOver overrides Default\n let updatedConfig = { ...this.constructor.Default, ...config }\n\n // Sanitize delay\n if (config.delay && isNumber(config.delay)) {\n /* istanbul ignore next */\n updatedConfig.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n // Title for tooltip and popover\n if (config.title && isNumber(config.title)) {\n /* istanbul ignore next */\n updatedConfig.title = config.title.toString()\n }\n\n // Content only for popover\n if (config.content && isNumber(config.content)) {\n /* istanbul ignore next */\n updatedConfig.content = config.content.toString()\n }\n\n // Hide element original title if needed\n this.fixTitle()\n // Update the config\n this.$config = updatedConfig\n // Stop/Restart listening\n this.unListen()\n this.listen()\n }\n\n // Destroy this instance\n destroy() {\n // Stop listening to trigger events\n this.unListen()\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false)\n // Clear any timeouts\n clearTimeout(this.$hoverTimeout)\n this.$hoverTimeout = null\n clearTimeout(this.$fadeTimeout)\n this.$fadeTimeout = null\n // Remove popper\n if (this.$popper) {\n this.$popper.destroy()\n }\n this.$popper = null\n // Remove tip from document\n if (this.$tip && this.$tip.parentElement) {\n this.$tip.parentElement.removeChild(this.$tip)\n }\n this.$tip = null\n // Null out other properties\n this.$id = null\n this.$isEnabled = null\n this.$root = null\n this.$element = null\n this.$config = null\n this.$hoverState = null\n this.$activeTrigger = null\n this.$forceHide = null\n this.$doHide = null\n this.$doShow = null\n this.$doDisable = null\n this.$doEnable = null\n }\n\n enable() {\n // Create a non-cancelable BvEvent\n const enabledEvt = new BvEvent('enabled', {\n cancelable: false,\n target: this.$element,\n relatedTarget: null\n })\n this.$isEnabled = true\n this.emitEvent(enabledEvt)\n }\n\n disable() {\n // Create a non-cancelable BvEvent\n const disabledEvt = new BvEvent('disabled', {\n cancelable: false,\n target: this.$element,\n relatedTarget: null\n })\n this.$isEnabled = false\n this.emitEvent(disabledEvt)\n }\n\n // Click toggler\n toggle(event) {\n if (!this.$isEnabled) {\n /* istanbul ignore next */\n return\n }\n /* istanbul ignore else */\n if (event) {\n this.$activeTrigger.click = !this.$activeTrigger.click\n\n if (this.isWithActiveTrigger()) {\n this.enter(null)\n } else {\n this.leave(null)\n }\n } else {\n if (hasClass(this.getTipElement(), ClassName.SHOW)) {\n this.leave(null)\n } else {\n this.enter(null)\n }\n }\n }\n\n // Show tooltip\n show() {\n if (!document.body.contains(this.$element) || !isVisible(this.$element)) {\n // If trigger element isn't in the DOM or is not visible\n return\n }\n // Build tooltip element (also sets this.$tip)\n const tip = this.getTipElement()\n this.fixTitle()\n this.setContent(tip)\n if (!this.isWithContent(tip)) {\n // If no content, don't bother showing\n /* istanbul ignore next */\n this.$tip = null\n /* istanbul ignore next */\n return\n }\n\n // Set ID on tip and aria-describedby on element\n setAttr(tip, 'id', this.$id)\n this.addAriaDescribedby()\n\n // Set animation on or off\n if (this.$config.animation) {\n addClass(tip, ClassName.FADE)\n } else {\n removeClass(tip, ClassName.FADE)\n }\n\n const placement = this.getPlacement()\n const attachment = this.constructor.getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n // Create a cancelable BvEvent\n const showEvt = new BvEvent('show', {\n cancelable: true,\n target: this.$element,\n relatedTarget: tip\n })\n this.emitEvent(showEvt)\n if (showEvt.defaultPrevented) {\n // Don't show if event cancelled\n this.$tip = null\n return\n }\n\n // Insert tooltip if needed\n const container = this.getContainer()\n if (!document.body.contains(tip)) {\n container.appendChild(tip)\n }\n\n // Refresh popper\n this.removePopper()\n this.$popper = new Popper(this.$element, tip, this.getPopperConfig(placement, tip))\n\n // Transitionend callback\n const complete = () => {\n if (this.$config.animation) {\n this.fixTransition(tip)\n }\n const prevHoverState = this.$hoverState\n this.$hoverState = null\n if (prevHoverState === HoverState.OUT) {\n this.leave(null)\n }\n // Create a non-cancelable BvEvent\n const shownEvt = new BvEvent('shown', {\n cancelable: false,\n target: this.$element,\n relatedTarget: tip\n })\n this.emitEvent(shownEvt)\n }\n\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true)\n\n // Show tip\n addClass(tip, ClassName.SHOW)\n\n // Start the transition/animation\n this.transitionOnce(tip, complete)\n }\n\n // Handler for periodic visibility check\n visibleCheck(on) {\n clearInterval(this.$visibleInterval)\n this.$visibleInterval = null\n if (on) {\n this.$visibleInterval = setInterval(() => {\n const tip = this.$tip\n if (tip && !isVisible(this.$element) && hasClass(tip, ClassName.SHOW)) {\n // Element is no longer visible, so force-hide the tooltip\n this.forceHide()\n }\n }, 100)\n }\n }\n\n setWhileOpenListeners(on) {\n // Modal close events\n this.setModalListener(on)\n // Periodic $element visibility check\n // For handling when tip is in <keepalive>, tabs, carousel, etc\n this.visibleCheck(on)\n // Route change events\n this.setRouteWatcher(on)\n // On-touch start listeners\n this.setOnTouchStartListener(on)\n if (on && /(focus|blur)/.test(this.$config.trigger)) {\n // If focus moves between trigger element and tip container, don't close\n eventOn(this.$tip, 'focusout', this, EvtOpts)\n } else {\n eventOff(this.$tip, 'focusout', this, EvtOpts)\n }\n }\n\n // Force hide of tip (internal method)\n forceHide() {\n if (!this.$tip || !hasClass(this.$tip, ClassName.SHOW)) {\n /* istanbul ignore next */\n return\n }\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false)\n // Clear any hover enter/leave event\n clearTimeout(this.$hoverTimeout)\n this.$hoverTimeout = null\n this.$hoverState = ''\n // Hide the tip\n this.hide(null, true)\n }\n\n // Hide tooltip\n hide(callback, force) {\n const tip = this.$tip\n if (!tip) {\n /* istanbul ignore next */\n return\n }\n\n // Create a cancelable BvEvent\n const hideEvt = new BvEvent('hide', {\n // We disable cancelling if force is true\n cancelable: !force,\n target: this.$element,\n relatedTarget: tip\n })\n this.emitEvent(hideEvt)\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return\n }\n\n // Transitionend callback\n const complete = () => {\n if (this.$hoverState !== HoverState.SHOW && tip.parentNode) {\n // Remove tip from DOM, and force recompile on next show\n tip.parentNode.removeChild(tip)\n this.removeAriaDescribedby()\n this.removePopper()\n this.$tip = null\n }\n if (callback) {\n callback()\n }\n // Create a non-cancelable BvEvent\n const hiddenEvt = new BvEvent('hidden', {\n cancelable: false,\n target: this.$element,\n relatedTarget: null\n })\n this.emitEvent(hiddenEvt)\n }\n\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false)\n\n // If forced close, disable animation\n if (force) {\n removeClass(tip, ClassName.FADE)\n }\n // Hide tip\n removeClass(tip, ClassName.SHOW)\n\n this.$activeTrigger.click = false\n this.$activeTrigger.focus = false\n this.$activeTrigger.hover = false\n\n // Start the hide transition\n this.transitionOnce(tip, complete)\n\n this.$hoverState = ''\n }\n\n emitEvent(evt) {\n const evtName = evt.type\n if (this.$root && this.$root.$emit) {\n // Emit an event on $root\n this.$root.$emit(`bv::${this.constructor.NAME}::${evtName}`, evt)\n }\n const callbacks = this.$config.callbacks || {}\n if (isFunction(callbacks[evtName])) {\n callbacks[evtName](evt)\n }\n }\n\n getContainer() {\n const container = this.$config.container\n const body = document.body\n // If we are in a modal, we append to the modal instead of body,\n // unless a container is specified\n return container === false\n ? closest(MODAL_CLASS, this.$element) || body\n : select(container, body) || body\n }\n\n // Will be overridden by PopOver if needed\n addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n let desc = getAttr(this.$element, 'aria-describedby') || ''\n desc = desc\n .split(/\\s+/)\n .concat(this.$id)\n .join(' ')\n .trim()\n setAttr(this.$element, 'aria-describedby', desc)\n }\n\n // Will be overridden by PopOver if needed\n removeAriaDescribedby() {\n let desc = getAttr(this.$element, 'aria-describedby') || ''\n desc = desc\n .split(/\\s+/)\n .filter(d => d !== this.$id)\n .join(' ')\n .trim()\n if (desc) {\n /* istanbul ignore next */\n setAttr(this.$element, 'aria-describedby', desc)\n } else {\n removeAttr(this.$element, 'aria-describedby')\n }\n }\n\n removePopper() {\n if (this.$popper) {\n this.$popper.destroy()\n }\n this.$popper = null\n }\n\n transitionOnce(tip, complete) {\n const transEvents = this.getTransitionEndEvents()\n let called = false\n clearTimeout(this.$fadeTimeout)\n this.$fadeTimeout = null\n const fnOnce = () => {\n if (called) {\n /* istanbul ignore next */\n return\n }\n called = true\n clearTimeout(this.$fadeTimeout)\n this.$fadeTimeout = null\n transEvents.forEach(evtName => {\n eventOff(tip, evtName, fnOnce, EvtOpts)\n })\n // Call complete callback\n complete()\n }\n if (hasClass(tip, ClassName.FADE)) {\n transEvents.forEach(evtName => {\n eventOn(tip, evtName, fnOnce, EvtOpts)\n })\n // Fallback to setTimeout()\n this.$fadeTimeout = setTimeout(fnOnce, TRANSITION_DURATION)\n } else {\n fnOnce()\n }\n }\n\n // What transitionend event(s) to use? (returns array of event names)\n getTransitionEndEvents() {\n for (const name in TransitionEndEvents) {\n if (!isUndefined(this.$element.style[name])) {\n return TransitionEndEvents[name]\n }\n }\n // Fallback\n /* istanbul ignore next */\n return []\n }\n\n /* istanbul ignore next */\n update() {\n if (!isNull(this.$popper)) {\n this.$popper.scheduleUpdate()\n }\n }\n\n // NOTE: Overridden by PopOver class\n isWithContent(tip) {\n tip = tip || this.$tip\n if (!tip) {\n /* istanbul ignore next */\n return false\n }\n return Boolean((select(Selector.TOOLTIP_INNER, tip) || {}).innerHTML)\n }\n\n // NOTE: Overridden by PopOver class\n addAttachmentClass(attachment) {\n addClass(this.getTipElement(), `${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (!this.$tip) {\n // Try and compile user supplied template, or fallback to default template\n this.$tip =\n this.compileTemplate(this.$config.template) ||\n this.compileTemplate(this.constructor.Default.template)\n }\n // Add tab index so tip can be focused, and to allow it to be\n // set as relatedTarget in focusin/out events\n this.$tip.tabIndex = -1\n return this.$tip\n }\n\n compileTemplate(html) {\n if (!html || !isString(html)) {\n /* istanbul ignore next */\n return null\n }\n let div = document.createElement('div')\n div.innerHTML = html.trim()\n const node = div.firstElementChild ? div.removeChild(div.firstElementChild) : null\n div = null\n return node\n }\n\n // NOTE: Overridden by PopOver class\n setContent(tip) {\n this.setElementContent(select(Selector.TOOLTIP_INNER, tip), this.getTitle())\n removeClass(tip, ClassName.FADE)\n removeClass(tip, ClassName.SHOW)\n }\n\n setElementContent(container, content) {\n if (!container) {\n // If container element doesn't exist, just return\n /* istanbul ignore next */\n return\n }\n const allowHtml = this.$config.html\n if (isObject(content) && content.nodeType) {\n // Content is a DOM node\n if (allowHtml) {\n if (content.parentElement !== container) {\n container.innerHTML = ''\n container.appendChild(content)\n }\n } else {\n /* istanbul ignore next */\n container.innerText = content.innerText\n }\n } else {\n // We have a plain HTML string or Text\n container[allowHtml ? 'innerHTML' : 'innerText'] = content\n }\n }\n\n // NOTE: Overridden by PopOver class\n getTitle() {\n let title = this.$config.title || ''\n if (isFunction(title)) {\n // Call the function to get the title value\n /* istanbul ignore next */\n title = title(this.$element)\n }\n if (isObject(title) && title.nodeType && !title.innerHTML.trim()) {\n // We have a DOM node, but without inner content,\n // so just return empty string\n /* istanbul ignore next */\n title = ''\n }\n if (isString(title)) {\n title = title.trim()\n }\n if (!title) {\n // If an explicit title is not given, try element's title attributes\n title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || ''\n title = title.trim()\n }\n\n return title\n }\n\n static getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n listen() {\n const triggers = this.$config.trigger.trim().split(/\\s+/)\n const el = this.$element\n\n // Listen for global show/hide events\n this.setRootListener(true)\n\n // Using 'this' as the handler will get automatically directed to\n // this.handleEvent and maintain our binding to 'this'\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n eventOn(el, 'click', this, EvtOpts)\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', this, EvtOpts)\n eventOn(el, 'focusout', this, EvtOpts)\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n eventOn(el, 'focusout', this, EvtOpts)\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', this, EvtOpts)\n eventOn(el, 'mouseleave', this, EvtOpts)\n }\n }, this)\n }\n\n unListen() {\n const events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave']\n // Using \"this\" as the handler will get automatically directed to this.handleEvent\n events.forEach(evt => {\n eventOff(this.$element, evt, this, EvtOpts)\n }, this)\n\n // Stop listening for global show/hide/enable/disable events\n this.setRootListener(false)\n }\n\n handleEvent(e) {\n // This special method allows us to use \"this\" as the event handlers\n if (isDisabled(this.$element)) {\n // If disabled, don't do anything. Note: If tip is shown before element gets\n // disabled, then tip not close until no longer disabled or forcefully closed.\n /* istanbul ignore next */\n return\n }\n if (!this.$isEnabled) {\n // If not enable\n return\n }\n const type = e.type\n const target = e.target\n const relatedTarget = e.relatedTarget\n const $element = this.$element\n const $tip = this.$tip\n if (type === 'click') {\n this.toggle(e)\n } else if (type === 'focusin' || type === 'mouseenter') {\n this.enter(e)\n } else if (type === 'focusout') {\n // target is the element which is loosing focus\n // and relatedTarget is the element gaining focus\n if ($tip && $element && $element.contains(target) && $tip.contains(relatedTarget)) {\n // If focus moves from $element to $tip, don't trigger a leave\n /* istanbul ignore next */\n return\n }\n if ($tip && $element && $tip.contains(target) && $element.contains(relatedTarget)) {\n // If focus moves from $tip to $element, don't trigger a leave\n /* istanbul ignore next */\n return\n }\n /* istanbul ignore next: difficult to test */\n if ($tip && $tip.contains(target) && $tip.contains(relatedTarget)) {\n // If focus moves within $tip, don't trigger a leave\n return\n }\n /* istanbul ignore next: difficult to test */\n if ($element && $element.contains(target) && $element.contains(relatedTarget)) {\n // If focus moves within $element, don't trigger a leave\n return\n }\n // Otherwise trigger a leave\n this.leave(e)\n } else if (type === 'mouseleave') {\n this.leave(e)\n }\n }\n\n /* istanbul ignore next */\n setRouteWatcher(on) {\n if (on) {\n this.setRouteWatcher(false)\n if (this.$root && Boolean(this.$root.$route)) {\n this.$routeWatcher = this.$root.$watch('$route', (newVal, oldVal) => {\n if (newVal === oldVal) {\n return\n }\n // If route has changed, we force hide the tooltip/popover\n this.forceHide()\n })\n }\n } else {\n if (this.$routeWatcher) {\n // Cancel the route watcher by calling the stored reference\n this.$routeWatcher()\n this.$routeWatcher = null\n }\n }\n }\n\n /* istanbul ignore next */\n setModalListener(on) {\n const modal = closest(MODAL_CLASS, this.$element)\n if (!modal) {\n // If we are not in a modal, don't worry. be happy\n return\n }\n // We can listen for modal hidden events on $root\n if (this.$root) {\n this.$root[on ? '$on' : '$off'](MODAL_CLOSE_EVENT, this.$forceHide)\n }\n }\n\n setRootListener(on) {\n // Listen for global 'bv::{hide|show}::{tooltip|popover}' hide request event\n if (this.$root) {\n this.$root[on ? '$on' : '$off'](`bv::hide::${this.constructor.NAME}`, this.$doHide)\n this.$root[on ? '$on' : '$off'](`bv::show::${this.constructor.NAME}`, this.$doShow)\n this.$root[on ? '$on' : '$off'](`bv::disable::${this.constructor.NAME}`, this.$doDisable)\n this.$root[on ? '$on' : '$off'](`bv::enable::${this.constructor.NAME}`, this.$doEnable)\n }\n }\n\n doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id) {\n // Close all tooltips or popovers\n this.forceHide()\n } else if (this.$element && this.$element.id && this.$element.id === id) {\n // Close this specific tooltip or popover\n this.hide()\n }\n }\n\n doShow(id) {\n // Programmatically show tooltip or popover\n if (!id) {\n // Open all tooltips or popovers\n this.show()\n } else if (id && this.$element && this.$element.id && this.$element.id === id) {\n // Show this specific tooltip or popover\n this.show()\n }\n }\n\n doDisable(id) {\n // Programmatically disable tooltip or popover\n if (!id) {\n // Disable all tooltips or popovers\n this.disable()\n } else if (this.$element && this.$element.id && this.$element.id === id) {\n // Disable this specific tooltip or popover\n this.disable()\n }\n }\n\n doEnable(id) {\n // Programmatically enable tooltip or popover\n if (!id) {\n // Enable all tooltips or popovers\n this.enable()\n } else if (this.$element && this.$element.id && this.$element.id === id) {\n // Enable this specific tooltip or popover\n this.enable()\n }\n }\n\n setOnTouchStartListener(on) {\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n /* istanbul ignore next: JSDOM does not support 'ontouchstart' event */\n arrayFrom(document.body.children).forEach(el => {\n if (on) {\n eventOn(el, 'mouseover', this._noop)\n } else {\n eventOff(el, 'mouseover', this._noop)\n }\n })\n }\n }\n\n fixTitle() {\n const el = this.$element\n if (getAttr(el, 'title') || !isString(getAttr(el, 'data-original-title'))) {\n setAttr(el, 'data-original-title', getAttr(el, 'title') || '')\n setAttr(el, 'title', '')\n }\n }\n\n // Enter handler\n enter(e) {\n if (e) {\n this.$activeTrigger[e.type === 'focusin' ? 'focus' : 'hover'] = true\n }\n if (hasClass(this.getTipElement(), ClassName.SHOW) || this.$hoverState === HoverState.SHOW) {\n this.$hoverState = HoverState.SHOW\n return\n }\n clearTimeout(this.$hoverTimeout)\n this.$hoverState = HoverState.SHOW\n if (!this.$config.delay || !this.$config.delay.show) {\n this.show()\n return\n }\n this.$hoverTimeout = setTimeout(() => {\n if (this.$hoverState === HoverState.SHOW) {\n this.show()\n }\n }, this.$config.delay.show)\n }\n\n // Leave handler\n leave(e) {\n if (e) {\n this.$activeTrigger[e.type === 'focusout' ? 'focus' : 'hover'] = false\n if (e.type === 'focusout' && /blur/.test(this.$config.trigger)) {\n // Special case for `blur`: we clear out the other triggers\n this.$activeTrigger.click = false\n this.$activeTrigger.hover = false\n }\n }\n if (this.isWithActiveTrigger()) {\n return\n }\n clearTimeout(this.$hoverTimeout)\n this.$hoverState = HoverState.OUT\n if (!this.$config.delay || !this.$config.delay.hide) {\n this.hide()\n return\n }\n this.$hoverTimeout = setTimeout(() => {\n if (this.$hoverState === HoverState.OUT) {\n this.hide()\n }\n }, this.$config.delay.hide)\n }\n\n getPopperConfig(placement, tip) {\n return {\n placement: this.constructor.getAttachment(placement),\n modifiers: {\n offset: { offset: this.getOffset(placement, tip) },\n flip: { behavior: this.$config.fallbackPlacement },\n arrow: { element: '.arrow' },\n preventOverflow: {\n padding: this.$config.boundaryPadding,\n boundariesElement: this.$config.boundary\n }\n },\n onCreate: data => {\n // Handle flipping arrow classes\n /* istanbul ignore next */\n if (data.originalPlacement !== data.placement) {\n this.handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => {\n // Handle flipping arrow classes\n /* istanbul ignore next */\n this.handlePopperPlacementChange(data)\n }\n }\n }\n\n /* istanbul ignore next */\n getOffset(placement, tip) {\n if (!this.$config.offset) {\n const arrow = select(Selector.ARROW, tip)\n const arrowOffset = parseFloat(getCS(arrow).width) + parseFloat(this.$config.arrowPadding)\n switch (OffsetMap[placement.toUpperCase()]) {\n case +1:\n return `+50%p - ${arrowOffset}px`\n case -1:\n return `-50%p + ${arrowOffset}px`\n default:\n return 0\n }\n }\n return this.$config.offset\n }\n\n getPlacement() {\n const placement = this.$config.placement\n if (isFunction(placement)) {\n /* istanbul ignore next */\n return placement.call(this, this.$tip, this.$element)\n }\n return placement\n }\n\n isWithActiveTrigger() {\n for (const trigger in this.$activeTrigger) {\n if (this.$activeTrigger[trigger]) {\n return true\n }\n }\n return false\n }\n\n // NOTE: Overridden by PopOver class\n /* istanbul ignore next */\n cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.className.match(BS_CLASS_PREFIX_REGEX)\n if (!isNull(tabClass) && tabClass.length > 0) {\n tabClass.forEach(cls => {\n removeClass(tip, cls)\n })\n }\n }\n\n /* istanbul ignore next */\n handlePopperPlacementChange(data) {\n this.cleanTipClass()\n this.addAttachmentClass(this.constructor.getAttachment(data.placement))\n }\n\n /* istanbul ignore next */\n fixTransition(tip) {\n const initConfigAnimation = this.$config.animation || false\n if (!isNull(getAttr(tip, 'x-placement'))) {\n return\n }\n removeClass(tip, ClassName.FADE)\n this.$config.animation = false\n this.hide()\n this.show()\n this.$config.animation = initConfigAnimation\n }\n}\n\nexport default ToolTip\n","import ToolTip from './tooltip.class'\nimport { select, addClass, removeClass, getAttr } from './dom'\nimport { isFunction, isNull, isObject, isString } from './inspect'\n\nconst NAME = 'popover'\nconst CLASS_PREFIX = 'bs-popover'\nconst BS_CLASS_PREFIX_REGEX = new RegExp(`\\\\b${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Defaults = {\n ...ToolTip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template:\n '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nclass PopOver extends ToolTip {\n // --- Getter overrides ---\n\n static get Default() {\n return Defaults\n }\n\n static get NAME() {\n return NAME\n }\n\n // --- Method overrides ---\n\n isWithContent(tip) {\n tip = tip || this.$tip\n if (!tip) {\n /* istanbul ignore next */\n return false\n }\n const hasTitle = Boolean((select(Selector.TITLE, tip) || {}).innerHTML)\n const hasContent = Boolean((select(Selector.CONTENT, tip) || {}).innerHTML)\n return hasTitle || hasContent\n }\n\n addAttachmentClass(attachment) /* istanbul ignore next */ {\n addClass(this.getTipElement(), `${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent(tip) {\n // we use append for html objects to maintain js events/components\n this.setElementContent(select(Selector.TITLE, tip), this.getTitle())\n this.setElementContent(select(Selector.CONTENT, tip), this.getContent())\n\n removeClass(tip, ClassName.FADE)\n removeClass(tip, ClassName.SHOW)\n }\n\n // This method may look identical to ToolTip version, but it uses a different RegEx defined above\n cleanTipClass() /* istanbul ignore next */ {\n const tip = this.getTipElement()\n const tabClass = tip.className.match(BS_CLASS_PREFIX_REGEX)\n if (!isNull(tabClass) && tabClass.length > 0) {\n tabClass.forEach(cls => {\n removeClass(tip, cls)\n })\n }\n }\n\n getTitle() {\n let title = this.$config.title || ''\n /* istanbul ignore next */\n if (isFunction(title)) {\n title = title(this.$element)\n }\n /* istanbul ignore next */\n if (isObject(title) && title.nodeType && !title.innerHTML.trim()) {\n // We have a dom node, but without inner content, so just return an empty string\n title = ''\n }\n if (isString(title)) {\n title = title.trim()\n }\n if (!title) {\n // Try and grab element's title attribute\n title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || ''\n title = title.trim()\n }\n return title\n }\n\n // New methods\n\n getContent() {\n let content = this.$config.content || ''\n /* istanbul ignore next */\n if (isFunction(content)) {\n content = content(this.$element)\n }\n /* istanbul ignore next */\n if (isObject(content) && content.nodeType && !content.innerHTML.trim()) {\n // We have a dom node, but without inner content, so just return an empty string\n content = ''\n }\n if (isString(content)) {\n content = content.trim()\n }\n return content\n }\n}\n\nexport default PopOver\n","/*\n * Tooltip/Popover component mixin\n * Common props\n */\n\nimport observeDom from '../utils/observe-dom'\nimport { isElement, getById } from '../utils/dom'\nimport { isArray, isFunction, isObject, isString } from '../utils/inspect'\nimport { HTMLElement } from '../utils/safe-types'\n\n// --- Constants ---\n\nconst PLACEMENTS = {\n top: 'top',\n topleft: 'topleft',\n topright: 'topright',\n right: 'right',\n righttop: 'righttop',\n rightbottom: 'rightbottom',\n bottom: 'bottom',\n bottomleft: 'bottomleft',\n bottomright: 'bottomright',\n left: 'left',\n lefttop: 'lefttop',\n leftbottom: 'leftbottom',\n auto: 'auto'\n}\n\nconst OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['class', 'style']\n}\n\n// @vue/component\nexport default {\n props: {\n target: {\n // String ID of element, or element/component reference\n type: [String, Object, HTMLElement, Function]\n // default: undefined\n },\n offset: {\n type: [Number, String],\n default: 0\n },\n noFade: {\n type: Boolean,\n default: false\n },\n container: {\n // String ID of container, if null body is used (default)\n type: String,\n default: null\n },\n show: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n // semaphore for preventing multiple show events\n localShow: false\n }\n },\n computed: {\n baseConfig() {\n const cont = this.container\n let delay = isObject(this.delay) ? this.delay : parseInt(this.delay, 10) || 0\n return {\n // Title prop\n title: (this.title || '').trim() || '',\n // Content prop (if popover)\n content: (this.content || '').trim() || '',\n // Tooltip/Popover placement\n placement: PLACEMENTS[this.placement] || 'auto',\n // Tooltip/popover fallback placemenet\n fallbackPlacement: this.fallbackPlacement || 'flip',\n // Container currently needs to be an ID with '#' prepended, if null then body is used\n container: cont ? (/^#/.test(cont) ? cont : `#${cont}`) : false,\n // boundariesElement passed to popper\n boundary: this.boundary,\n // boundariesElement padding passed to popper\n boundaryPadding: this.boundaryPadding,\n // Show/Hide delay\n delay: delay || 0,\n // Offset can be css distance. if no units, pixels are assumed\n offset: this.offset || 0,\n // Disable fade Animation?\n animation: !this.noFade,\n // Open/Close Trigger(s)\n trigger: isArray(this.triggers) ? this.triggers.join(' ') : this.triggers,\n // Callbacks so we can trigger events on component\n callbacks: {\n show: this.onShow,\n shown: this.onShown,\n hide: this.onHide,\n hidden: this.onHidden,\n enabled: this.onEnabled,\n disabled: this.onDisabled\n }\n }\n }\n },\n watch: {\n show(show, old) {\n if (show !== old) {\n show ? this.onOpen() : this.onClose()\n }\n },\n disabled(disabled, old) {\n if (disabled !== old) {\n disabled ? this.onDisable() : this.onEnable()\n }\n },\n localShow(show, old) {\n if (show !== this.show) {\n this.$emit('update:show', show)\n }\n }\n },\n created() {\n // Create non-reactive property\n this._toolpop = null\n this._obs_title = null\n this._obs_content = null\n },\n mounted() {\n // We do this in a next tick to ensure DOM has rendered first\n this.$nextTick(() => {\n // Instantiate ToolTip/PopOver on target\n // The createToolpop method must exist in main component\n if (this.createToolpop()) {\n if (this.disabled) {\n // Initially disabled\n this.onDisable()\n }\n // Listen to open signals from others\n this.$on('open', this.onOpen)\n // Listen to close signals from others\n this.$on('close', this.onClose)\n // Listen to disable signals from others\n this.$on('disable', this.onDisable)\n // Listen to enable signals from others\n this.$on('enable', this.onEnable)\n // Observe content Child changes so we can notify popper of possible size change\n this.setObservers(true)\n // Set initially open state\n if (this.show) {\n this.onOpen()\n }\n }\n })\n },\n updated() {\n // If content/props changes, etc\n if (this._toolpop) {\n this._toolpop.updateConfig(this.getConfig())\n }\n },\n activated() /* istanbul ignore next: can't easily test in JSDOM */ {\n // Called when component is inside a <keep-alive> and component brought offline\n this.setObservers(true)\n },\n deactivated() /* istanbul ignore next: can't easily test in JSDOM */ {\n // Called when component is inside a <keep-alive> and component taken offline\n if (this._toolpop) {\n this.setObservers(false)\n this._toolpop.hide()\n }\n },\n beforeDestroy() {\n // Shutdown our local event listeners\n this.$off('open', this.onOpen)\n this.$off('close', this.onClose)\n this.$off('disable', this.onDisable)\n this.$off('enable', this.onEnable)\n this.setObservers(false)\n // bring our content back if needed\n this.bringItBack()\n if (this._toolpop) {\n this._toolpop.destroy()\n this._toolpop = null\n }\n },\n methods: {\n getConfig() {\n const cfg = { ...this.baseConfig }\n if (this.$refs.title && this.$refs.title.innerHTML.trim()) {\n // If slot has content, it overrides 'title' prop\n // We use the DOM node as content to allow components!\n cfg.title = this.$refs.title\n cfg.html = true\n }\n if (this.$refs.content && this.$refs.content.innerHTML.trim()) {\n // If slot has content, it overrides 'content' prop\n // We use the DOM node as content to allow components!\n cfg.content = this.$refs.content\n cfg.html = true\n }\n return cfg\n },\n onOpen() {\n if (this._toolpop && !this.localShow) {\n this.localShow = true\n this._toolpop.show()\n }\n },\n onClose(callback) {\n // What is callback for ? it is not documented\n /* istanbul ignore else */\n if (this._toolpop && this.localShow) {\n this._toolpop.hide(callback)\n } else if (isFunction(callback)) {\n // Is this even used?\n callback()\n }\n },\n onDisable() {\n if (this._toolpop) {\n this._toolpop.disable()\n }\n },\n onEnable() {\n if (this._toolpop) {\n this._toolpop.enable()\n }\n },\n updatePosition() {\n /* istanbul ignore next: can't test in JSDOM until mutation observer is implemented */\n if (this._toolpop) {\n // Instruct popper to reposition popover if necessary\n this._toolpop.update()\n }\n },\n getTarget() {\n let target = this.target\n if (isFunction(target)) {\n /* istanbul ignore next */\n target = target()\n }\n /* istanbul ignore else */\n if (isString(target)) {\n // Assume ID of element\n return getById(target)\n } else if (isObject(target) && isElement(target.$el)) {\n // Component reference\n /* istanbul ignore next */\n return target.$el\n } else if (isObject(target) && isElement(target)) {\n // Element reference\n /* istanbul ignore next */\n return target\n }\n /* istanbul ignore next */\n return null\n },\n // Callbacks called by Tooltip/Popover class instance\n onShow(evt) {\n this.$emit('show', evt)\n this.localShow = !(evt && evt.defaultPrevented)\n },\n onShown(evt) {\n this.setObservers(true)\n this.$emit('shown', evt)\n this.localShow = true\n },\n onHide(evt) {\n this.$emit('hide', evt)\n this.localShow = !!(evt && evt.defaultPrevented)\n },\n onHidden(evt) {\n this.setObservers(false)\n // bring our content back if needed to keep Vue happy\n // Tooltip class will move it back to tip when shown again\n this.bringItBack()\n this.$emit('hidden', evt)\n this.localShow = false\n },\n onEnabled(evt) {\n /* istanbul ignore next */\n if (!evt || evt.type !== 'enabled') {\n // Prevent possible endless loop if user mistakenly fires enabled instead of enable\n return\n }\n this.$emit('update:disabled', false)\n this.$emit('disabled')\n },\n onDisabled(evt) {\n /* istanbul ignore next */\n if (!evt || evt.type !== 'disabled') {\n // Prevent possible endless loop if user mistakenly fires disabled instead of disable\n return\n }\n this.$emit('update:disabled', true)\n this.$emit('enabled')\n },\n bringItBack() {\n // bring our content back if needed to keep Vue happy\n if (this.$el && this.$refs.title) {\n this.$el.appendChild(this.$refs.title)\n }\n if (this.$el && this.$refs.content) {\n this.$el.appendChild(this.$refs.content)\n }\n },\n setObservers(on) {\n if (on) {\n if (this.$refs.title) {\n this._obs_title = observeDom(\n this.$refs.title,\n this.updatePosition.bind(this),\n OBSERVER_CONFIG\n )\n }\n if (this.$refs.content) {\n this._obs_content = observeDom(\n this.$refs.content,\n this.updatePosition.bind(this),\n OBSERVER_CONFIG\n )\n }\n } else {\n if (this._obs_title) {\n this._obs_title.disconnect()\n this._obs_title = null\n }\n if (this._obs_content) {\n this._obs_content.disconnect()\n this._obs_content = null\n }\n }\n }\n }\n}\n","import Vue from '../../utils/vue'\nimport PopOver from '../../utils/popover.class'\nimport warn from '../../utils/warn'\nimport { isArray, arrayIncludes } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { HTMLElement } from '../../utils/safe-types'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport toolpopMixin from '../../mixins/toolpop'\n\nconst NAME = 'BPopover'\n\nexport const props = {\n title: {\n type: String,\n default: ''\n },\n content: {\n type: String,\n default: ''\n },\n triggers: {\n type: [String, Array],\n default: 'click'\n },\n placement: {\n type: String,\n default: 'right'\n },\n fallbackPlacement: {\n type: [String, Array],\n default: 'flip',\n validator(value) {\n return isArray(value) || arrayIncludes(['flip', 'clockwise', 'counterclockwise'], value)\n }\n },\n delay: {\n type: [Number, Object, String],\n default: () => getComponentConfig(NAME, 'delay')\n },\n boundary: {\n // String: scrollParent, window, or viewport\n // Element: element reference\n type: [String, HTMLElement],\n default: () => getComponentConfig(NAME, 'boundary')\n },\n boundaryPadding: {\n type: Number,\n default: () => getComponentConfig(NAME, 'boundaryPadding')\n }\n}\n\n// @vue/component\nexport const BPopover = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [toolpopMixin, normalizeSlotMixin],\n props,\n data() {\n return {}\n },\n methods: {\n createToolpop() {\n // getTarget is in toolpop mixin\n const target = this.getTarget()\n /* istanbul ignore else */\n if (target) {\n this._toolpop = new PopOver(target, this.getConfig(), this.$root)\n } else {\n this._toolpop = null\n warn(\"b-popover: 'target' element not found!\")\n }\n return this._toolpop\n }\n },\n render(h) {\n return h(\n 'div',\n {\n class: ['d-none'],\n style: { display: 'none' },\n attrs: { 'aria-hidden': true }\n },\n [\n h('div', { ref: 'title' }, this.normalizeSlot('title')),\n h('div', { ref: 'content' }, this.normalizeSlot('default'))\n ]\n )\n }\n})\n\nexport default BPopover\n","import Popper from 'popper.js'\nimport PopOver from '../../utils/popover.class'\nimport warn from '../../utils/warn'\nimport { getComponentConfig } from '../../utils/config'\nimport { isBrowser } from '../../utils/env'\nimport { isFunction, isObject, isString } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\n\n// Key which we use to store tooltip object on element\nconst BV_POPOVER = '__BV_PopOver__'\n\n// Valid event triggers\nconst validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true\n}\n\n// Build a PopOver config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n/* istanbul ignore next: not easy to test */\nconst parseBindings = bindings => /* istanbul ignore next: not easy to test */ {\n // We start out with a basic config\n const NAME = 'BPopover'\n let config = {\n delay: getComponentConfig(NAME, 'delay'),\n boundary: String(getComponentConfig(NAME, 'boundary')),\n boundaryPadding: parseInt(getComponentConfig(NAME, 'boundaryPadding'), 10) || 0\n }\n\n // Process bindings.value\n if (isString(bindings.value)) {\n // Value is popover content (html optionally supported)\n config.content = bindings.value\n } else if (isFunction(bindings.value)) {\n // Content generator function\n config.content = bindings.value\n } else if (isObject(bindings.value)) {\n // Value is config object, so merge\n config = { ...config, ...bindings.value }\n }\n\n // If argument, assume element ID of container element\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = `#${bindings.arg}`\n }\n\n // Process modifiers\n keys(bindings.modifiers).forEach(mod => {\n if (/^html$/.test(mod)) {\n // Title allows HTML\n config.html = true\n } else if (/^nofade$/.test(mod)) {\n // no animation\n config.animation = false\n } else if (\n /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)\n ) {\n // placement of popover\n config.placement = mod\n } else if (/^(window|viewport|scrollParent)$/.test(mod)) {\n // Boundary of popover\n config.boundary = mod\n } else if (/^d\\d+$/.test(mod)) {\n // Delay value\n const delay = parseInt(mod.slice(1), 10) || 0\n if (delay) {\n config.delay = delay\n }\n } else if (/^o-?\\d+$/.test(mod)) {\n // Offset value (negative allowed)\n const offset = parseInt(mod.slice(1), 10) || 0\n if (offset) {\n config.offset = offset\n }\n }\n })\n\n // Special handling of event trigger modifiers trigger is\n // a space separated list\n const selectedTriggers = {}\n\n // Parse current config object trigger\n let triggers = isString(config.trigger) ? config.trigger.trim().split(/\\s+/) : []\n triggers.forEach(trigger => {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true\n }\n })\n\n // Parse modifiers for triggers\n keys(validTriggers).forEach(trigger => {\n if (bindings.modifiers[trigger]) {\n selectedTriggers[trigger] = true\n }\n })\n\n // Sanitize triggers\n config.trigger = keys(selectedTriggers).join(' ')\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to focus\n config.trigger = 'focus'\n }\n if (!config.trigger) {\n // Remove trigger config\n delete config.trigger\n }\n\n return config\n}\n\n// Add or update PopOver on our element\nconst applyPopover = (el, bindings, vnode) => {\n if (!isBrowser) {\n /* istanbul ignore next */\n return\n }\n // Popper is required for PopOvers to work\n if (!Popper) {\n /* istanbul ignore next */\n warn('v-b-popover: Popper.js is required for PopOvers to work')\n /* istanbul ignore next */\n return\n }\n const config = parseBindings(bindings)\n if (el[BV_POPOVER]) {\n el[BV_POPOVER].updateConfig(config)\n } else {\n el[BV_POPOVER] = new PopOver(el, config, vnode.context.$root)\n }\n}\n\n// Remove PopOver on our element\nconst removePopover = el => {\n if (el[BV_POPOVER]) {\n el[BV_POPOVER].destroy()\n el[BV_POPOVER] = null\n delete el[BV_POPOVER]\n }\n}\n\n/*\n * Export our directive\n */\nexport const VBPopover = {\n bind(el, bindings, vnode) {\n applyPopover(el, bindings, vnode)\n },\n inserted(el, bindings, vnode) {\n applyPopover(el, bindings, vnode)\n },\n update(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n if (bindings.value !== bindings.oldValue) {\n applyPopover(el, bindings, vnode)\n }\n },\n componentUpdated(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n if (bindings.value !== bindings.oldValue) {\n applyPopover(el, bindings, vnode)\n }\n },\n unbind(el) {\n removePopover(el)\n }\n}\n\nexport default VBPopover\n","import { BPopover } from './popover'\nimport { VBPopover } from '../../directives/popover/popover'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst PopoverPlugin = /*#__PURE__*/ pluginFactory({\n components: { BPopover },\n directives: { VBPopover }\n})\n\nexport { PopoverPlugin, BPopover }\n\nexport default PopoverPlugin\n","import Vue from '../../utils/vue'\nimport { getComponentConfig } from '../../utils/config'\nimport { htmlOrText } from '../../utils/html'\nimport { isBoolean, isNumber } from '../../utils/inspect'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\nconst NAME = 'BProgressBar'\n\n// @vue/component\nexport const BProgressBar = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [normalizeSlotMixin],\n inject: {\n bvProgress: {\n default() /* istanbul ignore next */ {\n return {}\n }\n }\n },\n props: {\n value: {\n type: Number,\n default: 0\n },\n label: {\n type: String,\n default: null\n },\n labelHtml: {\n type: String\n },\n // $parent (this.bvProgress) prop values may take precedence over the following props\n // Which is why they are defaulted to null\n max: {\n type: Number,\n default: null\n },\n precision: {\n type: Number,\n default: null\n },\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n striped: {\n type: Boolean,\n default: null\n },\n animated: {\n type: Boolean,\n default: null\n },\n showProgress: {\n type: Boolean,\n default: null\n },\n showValue: {\n type: Boolean,\n default: null\n }\n },\n computed: {\n progressBarClasses() {\n return [\n this.computedVariant ? `bg-${this.computedVariant}` : '',\n this.computedStriped || this.computedAnimated ? 'progress-bar-striped' : '',\n this.computedAnimated ? 'progress-bar-animated' : ''\n ]\n },\n progressBarStyles() {\n return {\n width: 100 * (this.value / this.computedMax) + '%'\n }\n },\n computedProgress() {\n const p = Math.pow(10, this.computedPrecision)\n return Math.round((100 * p * this.value) / this.computedMax) / p\n },\n computedMax() {\n // Prefer our max over parent setting\n return isNumber(this.max) ? this.max : this.bvProgress.max || 100\n },\n computedVariant() {\n // Prefer our variant over parent setting\n return this.variant || this.bvProgress.variant\n },\n computedPrecision() {\n // Prefer our precision over parent setting\n return isNumber(this.precision) ? this.precision : this.bvProgress.precision || 0\n },\n computedStriped() {\n // Prefer our striped over parent setting\n return isBoolean(this.striped) ? this.striped : this.bvProgress.striped || false\n },\n computedAnimated() {\n // Prefer our animated over parent setting\n return isBoolean(this.animated) ? this.animated : this.bvProgress.animated || false\n },\n computedShowProgress() {\n // Prefer our showProgress over parent setting\n return isBoolean(this.showProgress)\n ? this.showProgress\n : this.bvProgress.showProgress || false\n },\n computedShowValue() {\n // Prefer our showValue over parent setting\n return isBoolean(this.showValue) ? this.showValue : this.bvProgress.showValue || false\n }\n },\n render(h) {\n let childNodes = h(false)\n if (this.hasNormalizedSlot('default')) {\n childNodes = this.normalizeSlot('default')\n } else if (this.label || this.labelHtml) {\n childNodes = h('span', { domProps: htmlOrText(this.labelHtml, this.label) })\n } else if (this.computedShowProgress) {\n childNodes = this.computedProgress.toFixed(this.computedPrecision)\n } else if (this.computedShowValue) {\n childNodes = this.value.toFixed(this.computedPrecision)\n }\n return h(\n 'div',\n {\n staticClass: 'progress-bar',\n class: this.progressBarClasses,\n style: this.progressBarStyles,\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': this.computedMax.toString(),\n 'aria-valuenow': this.value.toFixed(this.computedPrecision)\n }\n },\n [childNodes]\n )\n }\n})\n\nexport default BProgressBar\n","import Vue from '../../utils/vue'\nimport { getComponentConfig } from '../../utils/config'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BProgressBar } from './progress-bar'\n\nconst NAME = 'BProgress'\n\n// @vue/component\nexport const BProgress = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [normalizeSlotMixin],\n provide() {\n return { bvProgress: this }\n },\n props: {\n // These props can be inherited via the child b-progress-bar(s)\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n striped: {\n type: Boolean,\n default: false\n },\n animated: {\n type: Boolean,\n default: false\n },\n height: {\n type: String,\n default: null\n },\n precision: {\n type: Number,\n default: 0\n },\n showProgress: {\n type: Boolean,\n default: false\n },\n showValue: {\n type: Boolean,\n default: false\n },\n max: {\n type: Number,\n default: 100\n },\n // This prop is not inherited by child b-progress-bar(s)\n value: {\n type: Number,\n default: 0\n }\n },\n computed: {\n progressHeight() {\n return { height: this.height || null }\n }\n },\n render(h) {\n let childNodes = this.normalizeSlot('default')\n if (!childNodes) {\n childNodes = h(BProgressBar, {\n props: {\n value: this.value,\n max: this.max,\n precision: this.precision,\n variant: this.variant,\n animated: this.animated,\n striped: this.striped,\n showProgress: this.showProgress,\n showValue: this.showValue\n }\n })\n }\n return h('div', { class: ['progress'], style: this.progressHeight }, [childNodes])\n }\n})\n\nexport default BProgress\n","import { BProgress } from './progress'\nimport { BProgressBar } from './progress-bar'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ProgressPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BProgress,\n BProgressBar\n }\n})\n\nexport { ProgressPlugin, BProgress, BProgressBar }\n\nexport default ProgressPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { normalizeSlot } from '../../utils/normalize-slot'\n\nconst NAME = 'BSpinner'\n\n// @vue/component\nexport const BSpinner = /*#__PURE__*/ Vue.extend({\n name: NAME,\n functional: true,\n props: {\n type: {\n type: String,\n default: 'border' // SCSS currently supports 'border' or 'grow'\n },\n label: {\n type: String,\n default: null\n },\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n small: {\n type: Boolean,\n default: false\n },\n role: {\n type: String,\n default: 'status'\n },\n tag: {\n type: String,\n default: 'span'\n }\n },\n render(h, { props, data, slots, scopedSlots }) {\n const $slots = slots()\n const $scopedSlots = scopedSlots || {}\n let label = normalizeSlot('label', {}, $scopedSlots, $slots) || props.label\n if (label) {\n label = h('span', { staticClass: 'sr-only' }, label)\n }\n return h(\n props.tag,\n mergeData(data, {\n attrs: {\n role: label ? props.role || 'status' : null,\n 'aria-hidden': label ? null : 'true'\n },\n class: {\n [`spinner-${props.type}`]: Boolean(props.type),\n [`spinner-${props.type}-sm`]: props.small,\n [`text-${props.variant}`]: Boolean(props.variant)\n }\n }),\n [label || h(false)]\n )\n }\n})\n\nexport default BSpinner\n","import { BSpinner } from './spinner'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst SpinnerPlugin = /*#__PURE__*/ pluginFactory({\n components: { BSpinner }\n})\n\nexport { SpinnerPlugin, BSpinner }\n\nexport default SpinnerPlugin\n","/**\n * Converts a string, including strings in camelCase or snake_case, into Start Case (a variant\n * of Title Case where all words start with a capital letter), it keeps original single quote\n * and hyphen in the word.\n *\n * Copyright (c) 2017 Compass (MIT)\n * https://github.com/UrbanCompass/to-start-case\n * @author Zhuoyuan Zhang <https://github.com/drawyan>\n * @author Wei Wang <https://github.com/onlywei>\n *\n *\n * 'management_companies' to 'Management Companies'\n * 'managementCompanies' to 'Management Companies'\n * `hell's kitchen` to `Hell's Kitchen`\n * `co-op` to `Co-op`\n *\n * @param {String} str\n * @returns {String}\n */\nconst startCase = str =>\n str\n .replace(/_/g, ' ')\n .replace(/([a-z])([A-Z])/g, (str, $1, $2) => $1 + ' ' + $2)\n .replace(/(\\s|^)(\\w)/g, (str, $1, $2) => $1 + $2.toUpperCase())\n\nexport default startCase\n","// Constants used by table helpers\n\n// Object of item keys that should be ignored for headers and stringification and filter events\nexport const IGNORED_FIELD_KEYS = {\n _rowVariant: true,\n _cellVariants: true,\n _showDetails: true\n}\n\n// Filter CSS Selector for click/dblclick/etc events\n// If any of these selectors match the clicked element, we ignore the event\nexport const EVENT_FILTER = [\n 'a',\n 'a *', // include content inside links\n 'button',\n 'button *', // include content inside buttons\n 'input:not(.disabled):not([disabled])',\n 'select:not(.disabled):not([disabled])',\n 'textarea:not(.disabled):not([disabled])',\n '[role=\"link\"]',\n '[role=\"link\"] *',\n '[role=\"button\"]',\n '[role=\"button\"] *',\n '[tabindex]:not(.disabled):not([disabled])'\n].join(',')\n","import startCase from '../../../utils/startcase'\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect'\nimport { keys } from '../../../utils/object'\nimport { IGNORED_FIELD_KEYS } from './constants'\n\n// Private function to massage field entry into common object format\nconst processField = (key, value) => {\n let field = null\n if (isString(value)) {\n // Label shortcut\n field = { key: key, label: value }\n } else if (isFunction(value)) {\n // Formatter shortcut\n field = { key: key, formatter: value }\n } else if (isObject(value)) {\n field = { ...value }\n field.key = field.key || key\n } else if (value !== false) {\n // Fallback to just key\n /* istanbul ignore next */\n field = { key: key }\n }\n return field\n}\n\n// We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\nconst normalizeFields = (origFields, items) => {\n let fields = []\n\n if (isArray(origFields)) {\n // Normalize array Form\n origFields.filter(f => f).forEach(f => {\n if (isString(f)) {\n fields.push({ key: f, label: startCase(f) })\n } else if (isObject(f) && f.key && isString(f.key)) {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push({ ...f })\n } else if (isObject(f) && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n const key = keys(f)[0]\n const field = processField(key, f[key])\n if (field) {\n fields.push(field)\n }\n }\n })\n } else if (origFields && isObject(origFields) && keys(origFields).length > 0) {\n // Normalize object Form (deprecated)\n keys(origFields).forEach(key => {\n let field = processField(key, origFields[key])\n if (field) {\n fields.push(field)\n }\n })\n }\n\n // If no field provided, take a sample from first record (if exits)\n if (fields.length === 0 && isArray(items) && items.length > 0) {\n const sample = items[0]\n keys(sample).forEach(k => {\n if (!IGNORED_FIELD_KEYS[k]) {\n fields.push({ key: k, label: startCase(k) })\n }\n })\n }\n\n // Ensure we have a unique array of fields and that they have String labels\n const memo = {}\n return fields.filter(f => {\n if (!memo[f.key]) {\n memo[f.key] = true\n f.label = isString(f.label) ? f.label : startCase(f.key)\n return true\n }\n return false\n })\n}\n\nexport default normalizeFields\n","import looseEqual from '../../../utils/loose-equal'\nimport { isArray, isNull, isUndefined } from '../../../utils/inspect'\nimport normalizeFields from './normalize-fields'\n\nexport default {\n props: {\n items: {\n // Provider mixin adds in `Function` type\n type: Array,\n default() /* istanbul ignore next */ {\n return []\n }\n },\n fields: {\n // Object format is deprecated and should be avoided\n type: [Array, Object],\n default: null\n },\n primaryKey: {\n // Primary key for record.\n // If provided the value in each row must be unique!!!\n type: String,\n default: null\n },\n value: {\n // v-model for retrieving the current displayed rows\n type: Array,\n default() {\n return []\n }\n }\n },\n data() {\n return {\n // Our local copy of the items. Must be an array\n localItems: isArray(this.items) ? this.items.slice() : []\n }\n },\n computed: {\n computedFields() {\n // We normalize fields into an array of objects\n // [ { key:..., label:..., ...}, {...}, ..., {..}]\n return normalizeFields(this.fields, this.localItems)\n },\n computedFieldsObj() /* istanbul ignore next: not using at the moment */ {\n // Fields as a simple lookup hash object\n // Mainly for scopedSlots for convenience\n return this.computedFields.reduce((f, obj) => {\n obj[f.key] = f\n return obj\n }, {})\n },\n computedItems() {\n // Fallback if various mixins not provided\n return (\n this.paginatedItems ||\n this.sortedItems ||\n this.filteredItems ||\n this.localItems ||\n []\n ).slice()\n },\n context() {\n // Current state of sorting, filtering and pagination props/values\n return {\n filter: this.localFilter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n perPage: parseInt(this.perPage, 10) || 0,\n currentPage: parseInt(this.currentPage, 10) || 1,\n apiUrl: this.apiUrl\n }\n }\n },\n watch: {\n items(newItems) {\n /* istanbul ignore else */\n if (isArray(newItems)) {\n // Set localItems/filteredItems to a copy of the provided array\n this.localItems = newItems.slice()\n } else if (isUndefined(newItems) || isNull(newItems)) {\n /* istanbul ignore next */\n this.localItems = []\n }\n },\n // Watch for changes on computedItems and update the v-model\n computedItems(newVal) {\n this.$emit('input', newVal)\n },\n // Watch for context changes\n context(newVal, oldVal) {\n // Emit context info for external paging/filtering/sorting handling\n if (!looseEqual(newVal, oldVal)) {\n this.$emit('context-changed', newVal)\n }\n }\n },\n mounted() {\n // Initially update the v-model of displayed items\n this.$emit('input', this.computedItems)\n }\n}\n","import { keys } from '../../../utils/object'\nimport { IGNORED_FIELD_KEYS } from './constants'\n\n// Return a copy of a row after all reserved fields have been filtered out\n// TODO: add option to specify which fields to include\nexport default function sanitizeRow(row) {\n return keys(row).reduce((obj, key) => {\n // Ignore special fields that start with _\n if (!IGNORED_FIELD_KEYS[key]) {\n obj[key] = row[key]\n }\n return obj\n }, {})\n}\n","import { keys } from '../../../utils/object'\nimport { isNull, isUndefined } from '../../../utils/inspect'\n\n// Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Primitives (numbers/strings) are returned as-is\n// Null and undefined values are filtered out\n// Dates are converted to their native string format\n//\n\nexport default function stringifyObjectValues(val) {\n if (isUndefined(val) || isNull(val)) {\n /* istanbul ignore next */\n return ''\n }\n if (val instanceof Object && !(val instanceof Date)) {\n // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n return keys(val)\n .sort() /* sort to prevent SSR issues on pre-rendered sorted tables */\n .filter(v => !isUndefined(v) && !isNull(v)) /* ignore undefined/null values */\n .map(k => stringifyObjectValues(val[k]))\n .join(' ')\n }\n return String(val)\n}\n","import sanitizeRow from './sanitize-row'\nimport stringifyObjectValues from './stringify-object-values'\n\n// Stringifies the values of a record, ignoring any special top level field keys\n// TODO: add option to strigify formatted/scopedSlot items, and only specific fields\nexport default function stringifyRecordValues(row) {\n /* istanbul ignore else */\n if (row instanceof Object) {\n return stringifyObjectValues(sanitizeRow(row))\n } else {\n /* istanbul ignore next */\n return ''\n }\n}\n","import cloneDeep from '../../../utils/clone-deep'\nimport looseEqual from '../../../utils/loose-equal'\nimport warn from '../../../utils/warn'\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect'\nimport stringifyRecordValues from './stringify-record-values'\n\nconst DEPRECATION_MSG =\n 'Supplying a function to prop \"filter\" is deprecated. Use \"filter-function\" instead.'\n\nexport default {\n props: {\n filter: {\n // Passing a function to filter is deprecated and should be avoided\n type: [String, RegExp, Object, Array, Function],\n default: null,\n // `deprecated` -> Don't use this prop\n // `deprecation` -> Refers to a change in prop usage\n deprecation: DEPRECATION_MSG\n },\n filterFunction: {\n type: Function,\n default: null\n }\n },\n data() {\n return {\n // Flag for displaying which empty slot to show, and for some event triggering.\n isFiltered: false\n }\n },\n computed: {\n localFiltering() {\n return this.hasProvider ? !!this.noProviderFiltering : true\n },\n filteredCheck() {\n // For watching changes to filteredItems vs localItems\n return {\n filteredItems: this.filteredItems,\n localItems: this.localItems,\n localFilter: this.localFilter\n }\n },\n localFilter() {\n // Returns a sanitized/normalized version of filter prop\n if (isFunction(this.filter)) {\n // this.localFilterFn will contain the correct function ref.\n // Deprecate setting prop filter to a function\n /* istanbul ignore next */\n return ''\n } else if (\n this.localFiltering &&\n !isFunction(this.filterFunction) &&\n !(isString(this.filter) || isRegExp(this.filter))\n ) {\n // Using internal filter function, which only accepts string or regexp at the moment\n return ''\n } else {\n // Could be a string, object or array, as needed by external filter function\n // We use `cloneDeep` to ensure we have a new copy of an object or array\n // without Vue reactive observers.\n return cloneDeep(this.filter)\n }\n },\n localFilterFn() {\n let filter = this.filter\n let filterFn = this.filterFunction\n // Sanitized/normalize filter-function prop\n if (isFunction(filterFn)) {\n return filterFn\n } else if (isFunction(filter)) {\n // Deprecate setting prop filter to a function\n /* istanbul ignore next */\n warn(`b-table: ${DEPRECATION_MSG}`)\n /* istanbul ignore next */\n return filter\n } else {\n // no filterFunction, so signal to use internal filter function\n return null\n }\n },\n filteredItems() {\n // Returns the records in localItems that match the filter criteria.\n // Returns the original localItems array if not sorting\n let items = this.localItems || []\n const criteria = this.localFilter\n const filterFn =\n this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria)\n\n // We only do local filtering if requested, and if the are records to filter and\n // if a filter criteria was specified\n if (this.localFiltering && filterFn && items.length > 0) {\n items = items.filter(filterFn)\n }\n return items\n }\n },\n watch: {\n // Watch for changes to the filter criteria and filtered items vs localItems).\n // And set visual state and emit events as required\n filteredCheck({ filteredItems, localItems, localFilter }) {\n // Determine if the dataset is filtered or not\n let isFiltered\n if (!localFilter) {\n // If filter criteria is falsey\n isFiltered = false\n } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n // If filter criteria is an empty array or object\n isFiltered = false\n } else if (localFilter) {\n // if Filter criteria is truthy\n isFiltered = true\n } else {\n /* istanbul ignore next: rare chance of reaching this else */\n isFiltered = false\n }\n if (isFiltered) {\n this.$emit('filtered', filteredItems, filteredItems.length)\n }\n this.isFiltered = isFiltered\n },\n isFiltered(newVal, oldVal) {\n if (newVal === false && oldVal === true) {\n // We need to emit a filtered event if isFiltered transitions from true to\n // false so that users can update their pagination controls.\n this.$emit('filtered', this.localItems, this.localItems.length)\n }\n }\n },\n created() {\n // Set the initial filtered state.\n // In a nextTick so that we trigger a filtered event if needed\n this.$nextTick(() => {\n this.isFiltered = Boolean(this.localFilter)\n })\n },\n methods: {\n // Filter Function factories\n filterFnFactory(filterFn, criteria) {\n // Wrapper factory for external filter functions.\n // Wrap the provided filter-function and return a new function.\n // Returns null if no filter-function defined or if criteria is falsey.\n // Rather than directly grabbing this.computedLocalFilterFn or this.filterFunction\n // we have it passed, so that the caller computed prop will be reactive to changes\n // in the original filter-function (as this routine is a method)\n if (\n !filterFn ||\n !isFunction(filterFn) ||\n !criteria ||\n looseEqual(criteria, []) ||\n looseEqual(criteria, {})\n ) {\n return null\n }\n\n // Build the wrapped filter test function, passing the criteria to the provided function\n const fn = item => {\n // Generated function returns true if the criteria matches part\n // of the serialized data, otherwise false\n return filterFn(item, criteria)\n }\n\n // Return the wrapped function\n return fn\n },\n defaultFilterFnFactory(criteria) {\n // Generates the default filter function, using the given filter criteria\n if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n // Built in filter can only support strings or RegExp criteria (at the moment)\n return null\n }\n\n // Build the regexp needed for filtering\n let regexp = criteria\n if (isString(regexp)) {\n // Escape special RegExp characters in the string and convert contiguous\n // whitespace to \\s+ matches\n const pattern = criteria\n .replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n .replace(/[\\s\\uFEFF\\xA0]+/g, '\\\\s+')\n // Build the RegExp (no need for global flag, as we only need\n // to find the value once in the string)\n regexp = new RegExp(`.*${pattern}.*`, 'i')\n }\n\n // Generate the wrapped filter test function to use\n const fn = item => {\n // This searches all row values (and sub property values) in the entire (excluding\n // special _ prefixed keys), because we convert the record to a space-separated\n // string containing all the value properties (recursively), even ones that are\n // not visible (not specified in this.fields).\n //\n // TODO: Enable searching on formatted fields and scoped slots\n // TODO: Should we filter only on visible fields (i.e. ones in this.fields) by default?\n // TODO: Allow for searching on specific fields/key, this could be combined with the previous TODO\n // TODO: Give stringifyRecordValues extra options for filtering (i.e. passing the\n // fields definition and a reference to $scopedSlots)\n //\n // Generated function returns true if the criteria matches part of\n // the serialized data, otherwise false\n // We set lastIndex = 0 on regex in case someone uses the /g global flag\n regexp.lastIndex = 0\n return regexp.test(stringifyRecordValues(item))\n }\n\n // Return the generated function\n return fn\n }\n }\n}\n","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in <b-table> if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nconst stableSort = (array, compareFn) => {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array\n .map((a, index) => [index, a])\n .sort(\n function(a, b) {\n return this(a[1], b[1]) || a[0] - b[0]\n }.bind(compareFn)\n )\n .map(e => e[1])\n}\n\nexport default stableSort\n","import get from '../../../utils/get'\nimport { isDate, isNumber } from '../../../utils/inspect'\nimport stringifyObjectValues from './stringify-object-values'\n\n// Default sort compare routine\n//\n// TODO: add option to sort by multiple columns (tri-state per column, plus order of columns in sort)\n// where sortBy could be an array of objects [ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]\n// or an array of arrays [ ['foo','asc'], ['bar','desc'] ]\n\nexport default function defaultSortCompare(a, b, sortBy) {\n a = get(a, sortBy, '')\n b = get(b, sortBy, '')\n if ((isDate(a) && isDate(b)) || (isNumber(a) && isNumber(b))) {\n // Special case for comparing Dates and Numbers\n // Internally dates are compared via their epoch number values\n if (a < b) {\n return -1\n } else if (a > b) {\n return 1\n } else {\n return 0\n }\n } else {\n // Do localized string comparison\n return stringifyObjectValues(a).localeCompare(stringifyObjectValues(b), undefined, {\n numeric: true\n })\n }\n}\n","import stableSort from '../../../utils/stable-sort'\nimport startCase from '../../../utils/startcase'\nimport { arrayIncludes } from '../../../utils/array'\nimport { isFunction, isNull, isUndefined } from '../../../utils/inspect'\nimport defaultSortCompare from './default-sort-compare'\n\nexport default {\n props: {\n sortBy: {\n type: String,\n default: null\n },\n sortDesc: {\n // To Do: Make this tri-state: true, false, null\n type: Boolean,\n default: false\n },\n sortDirection: {\n // This prop is named incorrectly.\n // It should be initialSortDirection\n // As it is a bit misleading (not to mention screws up\n // the Aria Label on the headers)\n type: String,\n default: 'asc',\n validator: direction => arrayIncludes(['asc', 'desc', 'last'], direction)\n },\n sortCompare: {\n type: Function,\n default: null\n },\n noSortReset: {\n // Another prop that should have had a better name.\n // It should be noSortClear (on non-sortable headers).\n // We will need to make sure the documentation is clear on what\n // this prop does (as well as in the code for future reference)\n type: Boolean,\n default: false\n },\n labelSortAsc: {\n type: String,\n default: 'Click to sort Ascending'\n },\n labelSortDesc: {\n type: String,\n default: 'Click to sort Descending'\n },\n labelSortClear: {\n type: String,\n default: 'Click to clear sorting'\n },\n noLocalSorting: {\n type: Boolean,\n default: false\n },\n noFooterSorting: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n localSortBy: this.sortBy || '',\n localSortDesc: this.sortDesc || false\n }\n },\n computed: {\n localSorting() {\n return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting\n },\n isSortable() {\n return this.computedFields.some(f => f.sortable)\n },\n sortedItems() {\n // Sorts the filtered items and returns a new array of the sorted items\n // or the original items array if not sorted.\n let items = (this.filteredItems || this.localItems || []).slice()\n const sortBy = this.localSortBy\n const sortDesc = this.localSortDesc\n const sortCompare = this.sortCompare\n const localSorting = this.localSorting\n if (sortBy && localSorting) {\n // stableSort returns a new array, and leaves the original array intact\n return stableSort(items, (a, b) => {\n let result = null\n if (isFunction(sortCompare)) {\n // Call user provided sortCompare routine\n result = sortCompare(a, b, sortBy, sortDesc)\n }\n if (isUndefined(result) || isNull(result) || result === false) {\n // Fallback to built-in defaultSortCompare if sortCompare\n // is not defined or returns null/false\n result = defaultSortCompare(a, b, sortBy)\n }\n // Negate result if sorting in descending order\n return (result || 0) * (sortDesc ? -1 : 1)\n })\n }\n return items\n }\n },\n watch: {\n isSortable(newVal, oldVal) /* istanbul ignore next: pain in the butt to test */ {\n if (newVal) {\n if (this.isSortable) {\n this.$on('head-clicked', this.handleSort)\n }\n } else {\n this.$off('head-clicked', this.handleSort)\n }\n },\n sortDesc(newVal, oldVal) {\n if (newVal === this.localSortDesc) {\n /* istanbul ignore next */\n return\n }\n this.localSortDesc = newVal || false\n },\n sortBy(newVal, oldVal) {\n if (newVal === this.localSortBy) {\n /* istanbul ignore next */\n return\n }\n this.localSortBy = newVal || null\n },\n // Update .sync props\n localSortDesc(newVal, oldVal) {\n // Emit update to sort-desc.sync\n if (newVal !== oldVal) {\n this.$emit('update:sortDesc', newVal)\n }\n },\n localSortBy(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('update:sortBy', newVal)\n }\n }\n },\n created() {\n if (this.isSortable) {\n this.$on('head-clicked', this.handleSort)\n }\n },\n methods: {\n // Handlers\n // Need to move from thead-mixin\n handleSort(key, field, evt, isFoot) {\n if (!this.isSortable) {\n /* istanbul ignore next */\n return\n }\n if (isFoot && this.noFooterSorting) {\n return\n }\n // TODO: make this tri-state sorting\n // cycle desc => asc => none => desc => ...\n let sortChanged = false\n const toggleLocalSortDesc = () => {\n const sortDirection = field.sortDirection || this.sortDirection\n if (sortDirection === 'asc') {\n this.localSortDesc = false\n } else if (sortDirection === 'desc') {\n this.localSortDesc = true\n } else {\n // sortDirection === 'last'\n // Leave at last sort direction from previous column\n }\n }\n if (field.sortable) {\n if (key === this.localSortBy) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc\n } else {\n // Start sorting this column ascending\n this.localSortBy = key\n // this.localSortDesc = false\n toggleLocalSortDesc()\n }\n sortChanged = true\n } else if (this.localSortBy && !this.noSortReset) {\n this.localSortBy = null\n toggleLocalSortDesc()\n sortChanged = true\n }\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit('sort-changed', this.context)\n }\n },\n // methods to compute classes and attrs for thead>th cells\n sortTheadThClasses(key, field, isFoot) {\n return {\n // No Classes for sorting currently...\n // All styles targeted using aria-* attrs\n }\n },\n sortTheadThAttrs(key, field, isFoot) {\n if (!this.isSortable || (isFoot && this.noFooterSorting)) {\n // No attributes if not a sortable table\n return {}\n }\n const sortable = field.sortable\n let ariaLabel = ''\n if ((!field.label || !field.label.trim()) && !field.headerTitle) {\n // In case field's label and title are empty/blank, we need to\n // add a hint about what the column is about for non-sighted users.\n // This is duplicated code from tbody-row mixin, but we need it\n // here as well, since we overwrite the original aria-label.\n /* istanbul ignore next */\n ariaLabel = startCase(key)\n }\n // The correctness of these labels is very important for screen-reader users.\n let ariaLabelSorting = ''\n if (sortable) {\n if (this.localSortBy === key) {\n // currently sorted sortable column.\n ariaLabelSorting = this.localSortDesc ? this.labelSortAsc : this.labelSortDesc\n } else {\n // Not currently sorted sortable column.\n // Not using nested ternary's here for clarity/readability\n // Default for ariaLabel\n ariaLabelSorting = this.localSortDesc ? this.labelSortDesc : this.labelSortAsc\n // Handle sortDirection setting\n const sortDirection = this.sortDirection || field.sortDirection\n if (sortDirection === 'asc') {\n ariaLabelSorting = this.labelSortAsc\n } else if (sortDirection === 'desc') {\n ariaLabelSorting = this.labelSortDesc\n }\n }\n } else if (!this.noSortReset) {\n // Non sortable column\n ariaLabelSorting = this.localSortBy ? this.labelSortClear : ''\n }\n // Assemble the aria-label attribute value\n ariaLabel = [ariaLabel.trim(), ariaLabelSorting.trim()].filter(Boolean).join(': ')\n // Assemble the aria-sort attribute value\n const ariaSort =\n sortable && this.localSortBy === key\n ? this.localSortDesc\n ? 'descending'\n : 'ascending'\n : sortable\n ? 'none'\n : null\n // Return the attributes\n // (All the above just to get these two values)\n return {\n 'aria-label': ariaLabel || null,\n 'aria-sort': ariaSort\n }\n }\n }\n}\n","export default {\n props: {\n perPage: {\n type: [Number, String],\n default: 0\n },\n currentPage: {\n type: [Number, String],\n default: 1\n }\n },\n computed: {\n localPaging() {\n return this.hasProvider ? !!this.noProviderPaging : true\n },\n paginatedItems() {\n let items = this.sortedItems || this.filteredItems || this.localItems || []\n const currentPage = Math.max(parseInt(this.currentPage, 10) || 1, 1)\n const perPage = Math.max(parseInt(this.perPage, 10) || 0, 0)\n // Apply local pagination\n if (this.localPaging && !!perPage) {\n // Grab the current page of data (which may be past filtered items limit)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage)\n }\n // Return the items to display in the table\n return items\n }\n }\n}\n","import { htmlOrText } from '../../../utils/html'\n\nexport default {\n props: {\n caption: {\n type: String,\n default: null\n },\n captionHtml: {\n type: String\n },\n captionTop: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n captionClasses() {\n return {\n 'b-table-caption-top': this.captionTop\n }\n },\n captionId() {\n // Even though this.safeId looks like a method, it is a computed prop\n // that returns a new function if the underlying ID changes\n return this.isStacked ? this.safeId('_caption_') : null\n }\n },\n methods: {\n renderCaption() {\n const h = this.$createElement\n\n // Build the caption\n const $captionSlot = this.normalizeSlot('table-caption', {})\n let $caption = h(false)\n\n if ($captionSlot || this.caption || this.captionHtml) {\n const data = {\n key: 'caption',\n class: this.captionClasses,\n attrs: { id: this.captionId }\n }\n if (!$captionSlot) {\n data.domProps = htmlOrText(this.captionHtml, this.caption)\n }\n $caption = h('caption', data, [$captionSlot])\n }\n\n return $caption\n }\n }\n}\n","export default {\n methods: {\n renderColgroup() {\n const h = this.$createElement\n\n const fields = this.computedFields\n let $colgroup = h(false)\n\n if (this.hasNormalizedSlot('table-colgroup')) {\n $colgroup = h('colgroup', { key: 'colgroup' }, [\n this.normalizeSlot('table-colgroup', { columns: fields.length, fields: fields })\n ])\n }\n\n return $colgroup\n }\n }\n}\n","import { closest, matches } from '../../../utils/dom'\nimport { EVENT_FILTER } from './constants'\n\n// Returns true of we should ignore the click/dbclick/keypress event\n// Avoids having the user need to use @click.stop on the form control\n\nexport default function filterEvent(evt) {\n if (!evt || !evt.target) {\n /* istanbul ignore next */\n return\n }\n const el = evt.target\n if (el.tagName === 'TD' || el.tagName === 'TH' || el.tagName === 'TR' || el.disabled) {\n // Shortut all the following tests for efficiency\n return false\n }\n if (closest('.dropdown-menu', el)) {\n // Click was in a dropdown menu, so ignore\n return true\n }\n const label = el.tagName === 'LABEL' ? el : closest('label', el)\n if (label && label.control && !label.control.disabled) {\n // If the label's form control is not disabled then we don't propagate evt\n return true\n }\n // Else check to see if the event target matches one of the selectors in the event filter\n // i.e. anchors, non disabled inputs, etc. Return true if we should ignore the event.\n return matches(el, EVENT_FILTER)\n}\n","// Helper to determine if a there is an active text selection on the document page.\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\n\nimport { isElement } from '../../../utils/dom'\n\nexport default function textSelectionActive(el = document) {\n const win = window\n /* istanbul ignore if: JSDOM doesn't support getSelection */\n if (win && win.getSelection && win.getSelection().toString() !== '' && isElement(el)) {\n /* istanbul ignore next: JSDOM doesn't support getSelection */\n const sel = win.getSelection()\n /* istanbul ignore next: JSDOM doesn't support getSelection */\n return sel.containsNode ? sel.containsNode(el, true) : false\n } else {\n return false\n }\n}\n","import KeyCodes from '../../../utils/key-codes'\nimport startCase from '../../../utils/startcase'\nimport { getComponentConfig } from '../../../utils/config'\nimport { htmlOrText } from '../../../utils/html'\nimport filterEvent from './filter-event'\nimport textSelectionActive from './text-selection-active'\n\nexport default {\n props: {\n headVariant: {\n type: String,\n default: () => getComponentConfig('BTable', 'headVariant')\n },\n theadClass: {\n type: [String, Array, Object],\n default: null\n },\n theadTrClass: {\n type: [String, Array, Object],\n default: null\n }\n },\n computed: {\n headClasses() {\n return [this.headVariant ? 'thead-' + this.headVariant : '', this.theadClass]\n }\n },\n methods: {\n fieldClasses(field) {\n // header field (th) classes\n return [\n field.variant ? 'table-' + field.variant : '',\n field.class ? field.class : '',\n field.thClass ? field.thClass : ''\n ]\n },\n headClicked(evt, field, isFoot) {\n if (this.stopIfBusy(evt)) {\n // If table is busy (via provider) then don't propagate\n return\n } else if (filterEvent(evt)) {\n // clicked on a non-disabled control so ignore\n return\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return\n }\n evt.stopPropagation()\n evt.preventDefault()\n this.$emit('head-clicked', field.key, field, evt, isFoot)\n },\n renderThead(isFoot = false) {\n const h = this.$createElement\n\n if (this.isStacked === true) {\n // In always stacked mode, we don't bother rendering the head/foot\n return h(false)\n }\n\n const fields = this.computedFields || []\n\n // Helper function to generate a field TH cell\n const makeCell = (field, colIndex) => {\n let ariaLabel = null\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n /* istanbul ignore next */\n ariaLabel = startCase(field.key)\n }\n const hasHeadClickListener = this.$listeners['head-clicked'] || this.isSortable\n const handlers = {}\n if (hasHeadClickListener) {\n handlers.click = evt => {\n this.headClicked(evt, field, isFoot)\n }\n handlers.keydown = evt => {\n const keyCode = evt.keyCode\n if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n this.headClicked(evt, field, isFoot)\n }\n }\n }\n const sortAttrs = this.isSortable ? this.sortTheadThAttrs(field.key, field, isFoot) : {}\n const sortClass = this.isSortable ? this.sortTheadThClasses(field.key, field, isFoot) : null\n const data = {\n key: field.key,\n class: [this.fieldClasses(field), sortClass],\n style: field.thStyle || {},\n attrs: {\n // We only add a tabindex of 0 if there is a head-clicked listener\n tabindex: hasHeadClickListener ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n role: 'columnheader',\n scope: 'col',\n 'aria-colindex': String(colIndex + 1),\n 'aria-label': ariaLabel,\n ...sortAttrs\n },\n on: handlers\n }\n let fieldScope = { label: field.label, column: field.key, field: field }\n let slot =\n isFoot && this.hasNormalizedSlot(`FOOT_${field.key}`)\n ? this.normalizeSlot(`FOOT_${field.key}`, fieldScope)\n : this.normalizeSlot(`HEAD_${field.key}`, fieldScope)\n if (!slot) {\n data.domProps = htmlOrText(field.labelHtml)\n }\n return h('th', data, slot || field.label)\n }\n\n // Generate the array of TH cells\n const $cells = fields.map(makeCell).filter(th => th)\n\n // Genrate the row(s)\n const $trs = []\n if (isFoot) {\n $trs.push(h('tr', { class: this.tfootTrClass, attrs: { role: 'row' } }, $cells))\n } else {\n const scope = {\n columns: fields.length,\n fields: fields\n }\n $trs.push(this.normalizeSlot('thead-top', scope) || h(false))\n $trs.push(h('tr', { class: this.theadTrClass, attrs: { role: 'row' } }, $cells))\n }\n\n return h(\n isFoot ? 'tfoot' : 'thead',\n {\n key: isFoot ? 'tfoot' : 'thead',\n class: isFoot ? this.footClasses : this.headClasses,\n attrs: { role: 'rowgroup' }\n },\n $trs\n )\n }\n }\n}\n","import { getComponentConfig } from '../../../utils/config'\n\nexport default {\n props: {\n footClone: {\n type: Boolean,\n default: false\n },\n footVariant: {\n type: String,\n default: () => getComponentConfig('BTable', 'footVariant')\n },\n tfootClass: {\n type: [String, Array, Object],\n default: null\n },\n tfootTrClass: {\n type: [String, Array, Object],\n default: null\n }\n },\n computed: {\n footClasses() {\n const variant = this.footVariant || this.headVariant || null\n return [variant ? `thead-${variant}` : '', this.tfootClass]\n }\n },\n methods: {\n renderTfoot() {\n const h = this.$createElement\n\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : h(false)\n }\n }\n}\n","import KeyCodes from '../../../utils/key-codes'\nimport get from '../../../utils/get'\nimport toString from '../../../utils/to-string'\nimport { arrayIncludes } from '../../../utils/array'\nimport { isFunction, isNull, isString, isUndefined } from '../../../utils/inspect'\nimport filterEvent from './filter-event'\nimport textSelectionActive from './text-selection-active'\n\nexport default {\n props: {\n tbodyTrClass: {\n type: [String, Array, Function],\n default: null\n }\n },\n methods: {\n // Methods for computing classes, attributes and styles for table cells\n tdClasses(field, item) {\n let cellVariant = ''\n if (item._cellVariants && item._cellVariants[field.key]) {\n cellVariant = `${this.dark ? 'bg' : 'table'}-${item._cellVariants[field.key]}`\n }\n return [\n field.variant && !cellVariant ? `${this.dark ? 'bg' : 'table'}-${field.variant}` : '',\n cellVariant,\n field.class ? field.class : '',\n this.getTdValues(item, field.key, field.tdClass, '')\n ]\n },\n tdAttrs(field, item, colIndex) {\n const attrs = {\n role: 'cell',\n 'aria-colindex': String(colIndex + 1)\n }\n if (field.isRowHeader) {\n attrs.scope = 'row'\n attrs.role = 'rowheader'\n }\n if (this.isStacked) {\n // Generate the \"header cell\" label content in stacked mode\n attrs['data-label'] = field.label\n }\n return { ...attrs, ...this.getTdValues(item, field.key, field.tdAttr, {}) }\n },\n rowClasses(item) {\n return [\n item._rowVariant ? `${this.dark ? 'bg' : 'table'}-${item._rowVariant}` : '',\n isFunction(this.tbodyTrClass) ? this.tbodyTrClass(item, 'row') : this.tbodyTrClass\n ]\n },\n getTdValues(item, key, tdValue, defValue) {\n const parent = this.$parent\n if (tdValue) {\n const value = get(item, key, '')\n if (isFunction(tdValue)) {\n return tdValue(value, key, item)\n } else if (isString(tdValue) && isFunction(parent[tdValue])) {\n return parent[tdValue](value, key, item)\n }\n return tdValue\n }\n return defValue\n },\n // Method to get the value for a field\n getFormattedValue(item, field) {\n const key = field.key\n const formatter = field.formatter\n const parent = this.$parent\n let value = get(item, key, null)\n if (formatter) {\n if (isFunction(formatter)) {\n value = formatter(value, key, item)\n } else if (isString(formatter) && isFunction(parent[formatter])) {\n value = parent[formatter](value, key, item)\n }\n }\n return isUndefined(value) || isNull(value) ? '' : value\n },\n tbodyRowKeydown(evt, item, rowIndex) {\n const keyCode = evt.keyCode\n const target = evt.target\n const trs = this.$refs.itemRows\n if (this.stopIfBusy && this.stopIfBusy(evt)) {\n // If table is busy (via provider) then don't propagate\n return\n } else if (!(target && target.tagName === 'TR' && target === document.activeElement)) {\n // Ignore if not the active tr element\n return\n } else if (target.tabIndex !== 0) {\n // Ignore if not focusable\n /* istanbul ignore next */\n return\n } else if (trs && trs.length === 0) {\n /* istanbul ignore next */\n return\n }\n const index = trs.indexOf(target)\n if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n evt.stopPropagation()\n evt.preventDefault()\n // We also allow enter/space to trigger a click (when row is focused)\n // We translate to a row-clicked event\n this.rowClicked(evt, item, rowIndex)\n } else if (\n arrayIncludes([KeyCodes.UP, KeyCodes.DOWN, KeyCodes.HOME, KeyCodes.END], keyCode)\n ) {\n evt.stopPropagation()\n evt.preventDefault()\n const shift = evt.shiftKey\n if (keyCode === KeyCodes.HOME || (shift && keyCode === KeyCodes.UP)) {\n // Focus first row\n trs[0].focus()\n } else if (keyCode === KeyCodes.END || (shift && keyCode === KeyCodes.DOWN)) {\n // Focus last row\n trs[trs.length - 1].focus()\n } else if (keyCode === KeyCodes.UP && index > 0) {\n // Focus previous row\n trs[index - 1].focus()\n } else if (keyCode === KeyCodes.DOWN && index < trs.length - 1) {\n // Focus next row\n trs[index + 1].focus()\n }\n }\n },\n // Row event handlers\n rowClicked(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return\n } else if (filterEvent(e)) {\n // clicked on a non-disabled control so ignore\n return\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return\n }\n this.$emit('row-clicked', item, index, e)\n },\n middleMouseRowClicked(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return\n }\n this.$emit('row-middle-clicked', item, index, e)\n },\n rowDblClicked(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return\n } else if (filterEvent(e)) {\n // clicked on a non-disabled control so ignore\n /* istanbul ignore next: event filtering already tested via click handler */\n return\n }\n this.$emit('row-dblclicked', item, index, e)\n },\n rowHovered(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return\n }\n this.$emit('row-hovered', item, index, e)\n },\n rowUnhovered(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return\n }\n this.$emit('row-unhovered', item, index, e)\n },\n rowContextmenu(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return\n }\n this.$emit('row-contextmenu', item, index, e)\n },\n // Render helpers\n renderTbodyRowCell(field, colIndex, item, rowIndex) {\n const h = this.$createElement\n\n // Renders a TD or TH for a row's field\n const $scoped = this.$scopedSlots\n const detailsSlot = $scoped['row-details']\n const formatted = this.getFormattedValue(item, field)\n const data = {\n // For the Vue key, we concatenate the column index and\n // field key (as field keys can be duplicated)\n key: `row-${rowIndex}-cell-${colIndex}-${field.key}`,\n class: this.tdClasses(field, item),\n attrs: this.tdAttrs(field, item, colIndex)\n }\n const toggleDetailsFn = () => {\n if (detailsSlot) {\n this.$set(item, '_showDetails', !item._showDetails)\n }\n }\n const slotScope = {\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, field.key, ''),\n value: formatted,\n toggleDetails: toggleDetailsFn,\n detailsShowing: Boolean(item._showDetails)\n }\n if (this.selectedRows) {\n // Add in rowSelected scope property if selectable rows supported\n slotScope.rowSelected = Boolean(this.selectedRows[rowIndex])\n }\n let $childNodes = $scoped[field.key] ? $scoped[field.key](slotScope) : toString(formatted)\n if (this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n $childNodes = [h('div', {}, [$childNodes])]\n }\n // Render either a td or th cell\n return h(field.isRowHeader ? 'th' : 'td', data, [$childNodes])\n },\n renderTbodyRow(item, rowIndex) {\n // Renders an item's row (or rows if details supported)\n const h = this.$createElement\n const $scoped = this.$scopedSlots\n const fields = this.computedFields\n const tableStriped = this.striped\n const hasRowClickHandler = this.$listeners['row-clicked'] || this.selectable\n const $detailsSlot = $scoped['row-details']\n const rowShowDetails = Boolean(item._showDetails && $detailsSlot)\n\n // We can return more than one TR if rowDetails enabled\n const $rows = []\n\n // Details ID needed for aria-describedby when details showing\n const detailsId = rowShowDetails ? this.safeId(`_details_${rowIndex}_`) : null\n const toggleDetailsFn = () => {\n if ($detailsSlot) {\n this.$set(item, '_showDetails', !item._showDetails)\n }\n }\n\n // For each item data field in row\n const $tds = fields.map((field, colIndex) => {\n return this.renderTbodyRowCell(field, colIndex, item, rowIndex)\n })\n\n // Calculate the row number in the dataset (indexed from 1)\n let ariaRowIndex = null\n if (this.currentPage && this.perPage && this.perPage > 0) {\n ariaRowIndex = String((this.currentPage - 1) * this.perPage + rowIndex + 1)\n }\n\n // Create a unique :key to help ensure that sub components are re-rendered rather than\n // re-used, which can cause issues. If a primary key is not provided we use the rendered\n // rows index within the tbody.\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n const primaryKey = this.primaryKey\n const rowKey =\n primaryKey && !isUndefined(item[primaryKey]) && !isNull(item[primaryKey])\n ? toString(item[primaryKey])\n : String(rowIndex)\n\n // If primary key is provided, use it to generate a unique ID on each tbody > tr\n // In the format of '{tableId}__row_{primaryKeyValue}'\n const rowId =\n primaryKey && !isUndefined(item[primaryKey]) && !isNull(item[primaryKey])\n ? this.safeId(`_row_${item[primaryKey]}`)\n : null\n\n const handlers = {}\n if (hasRowClickHandler) {\n handlers['click'] = evt => {\n this.rowClicked(evt, item, rowIndex)\n }\n handlers['keydown'] = evt => {\n this.tbodyRowKeydown(evt, item, rowIndex)\n }\n }\n\n // Selctable classes and attributes\n const selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {}\n const selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}\n\n // Add the item row\n $rows.push(\n h(\n 'tr',\n {\n key: `__b-table-row-${rowKey}__`,\n ref: 'itemRows',\n refInFor: true,\n class: [\n this.rowClasses(item),\n selectableClasses,\n {\n 'b-table-has-details': rowShowDetails\n }\n ],\n attrs: {\n id: rowId,\n tabindex: hasRowClickHandler ? '0' : null,\n 'data-pk': rowId ? String(item[primaryKey]) : null,\n 'aria-describedby': detailsId,\n 'aria-owns': detailsId,\n 'aria-rowindex': ariaRowIndex,\n role: 'row',\n ...selectableAttrs\n },\n on: {\n ...handlers,\n // TODO: Instantiate the following handlers only if we have registered\n // listeners i.e. this.$listeners['row-middle-clicked'], etc.\n auxclick: evt => {\n if (evt.which === 2) {\n this.middleMouseRowClicked(evt, item, rowIndex)\n }\n },\n contextmenu: evt => {\n this.rowContextmenu(evt, item, rowIndex)\n },\n // Note: these events are not accessibility friendly!\n dblclick: evt => {\n this.rowDblClicked(evt, item, rowIndex)\n },\n mouseenter: evt => {\n this.rowHovered(evt, item, rowIndex)\n },\n mouseleave: evt => {\n this.rowUnhovered(evt, item, rowIndex)\n }\n }\n },\n $tds\n )\n )\n\n // Row Details slot\n if (rowShowDetails) {\n const tdAttrs = {\n colspan: String(fields.length),\n role: 'cell'\n }\n const trAttrs = {\n id: detailsId,\n role: 'row'\n }\n // Render the details slot\n const $details = h('td', { attrs: tdAttrs }, [\n $detailsSlot({\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: toggleDetailsFn\n })\n ])\n\n // Add a hidden row to keep table row striping consistent when details showing\n if (tableStriped) {\n $rows.push(\n h('tr', {\n key: `__b-table-details-${rowIndex}-stripe__`,\n staticClass: 'd-none',\n attrs: { 'aria-hidden': 'true', role: 'presentation' }\n })\n )\n }\n\n // Add the actual details row\n $rows.push(\n h(\n 'tr',\n {\n key: `__b-table-details-${rowIndex}__`,\n staticClass: 'b-table-details',\n class: [\n isFunction(this.tbodyTrClass)\n ? this.tbodyTrClass(item, 'row-details')\n : this.tbodyTrClass\n ],\n attrs: trAttrs\n },\n [$details]\n )\n )\n } else if ($detailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n $rows.push(h(false))\n if (tableStriped) {\n // add extra placeholder if table is striped\n $rows.push(h(false))\n }\n }\n\n // Return the row(s)\n return $rows\n }\n }\n}\n","import tbodyRowMixin from './mixin-tbody-row'\n\nexport default {\n mixins: [tbodyRowMixin],\n props: {\n tbodyClass: {\n type: [String, Array],\n default: null\n },\n tbodyTransitionProps: {\n type: Object\n // default: undefined\n },\n tbodyTransitionHandlers: {\n type: Object\n // default: undefined\n }\n },\n methods: {\n renderTbody() {\n // Render the tbody element and children\n const h = this.$createElement\n const items = this.computedItems\n\n // Prepare the tbody rows\n const $rows = []\n\n // Add the item data rows or the busy slot\n const $busy = this.renderBusy ? this.renderBusy() : null\n if ($busy) {\n // If table is busy and a busy slot, then return only the busy \"row\" indicator\n $rows.push($busy)\n } else {\n // Table isn't busy, or we don't have a busy slot\n\n // Add static Top Row slot (hidden in visibly stacked mode as we can't control data-label attr)\n $rows.push(this.renderTopRow ? this.renderTopRow() : h(false))\n\n // render the rows\n items.forEach((item, rowIndex) => {\n // Render the individual item row (rows if details slot)\n $rows.push(this.renderTbodyRow(item, rowIndex))\n })\n\n // Empty Items / Empty Filtered Row slot (only shows if items.length < 1)\n $rows.push(this.renderEmpty ? this.renderEmpty() : h(false))\n\n // Static bottom row slot (hidden in visibly stacked mode as we can't control data-label attr)\n $rows.push(this.renderBottomRow ? this.renderBottomRow() : h(false))\n }\n\n // If tbody transition enabled\n const isTransGroup = this.tbodyTransitionProps || this.tbodyTransitionHandlers\n let tbodyProps = {}\n let tbodyOn = {}\n if (isTransGroup) {\n tbodyOn = this.tbodyTransitionHandlers || {}\n tbodyProps = {\n ...(this.tbodyTransitionProps || {}),\n tag: 'tbody'\n }\n }\n\n // Assemble rows into the tbody\n const $tbody = h(\n isTransGroup ? 'transition-group' : 'tbody',\n {\n props: tbodyProps,\n on: tbodyOn,\n class: [this.tbodyClass],\n attrs: { role: 'rowgroup' }\n },\n $rows\n )\n\n // Return the assembled tbody\n return $tbody\n }\n }\n}\n","import { htmlOrText } from '../../../utils/html'\nimport { isFunction } from '../../../utils/inspect'\n\nexport default {\n props: {\n showEmpty: {\n type: Boolean,\n default: false\n },\n emptyText: {\n type: String,\n default: 'There are no records to show'\n },\n emptyHtml: {\n type: String\n },\n emptyFilteredText: {\n type: String,\n default: 'There are no records matching your request'\n },\n emptyFilteredHtml: {\n type: String\n }\n },\n methods: {\n renderEmpty() {\n const h = this.$createElement\n const items = this.computedItems\n let $empty\n\n if (\n this.showEmpty &&\n (!items || items.length === 0) &&\n !(this.computedBusy && this.hasNormalizedSlot('table-busy'))\n ) {\n $empty = this.normalizeSlot(this.isFiltered ? 'emptyfiltered' : 'empty', {\n emptyFilteredHtml: this.emptyFilteredHtml,\n emptyFilteredText: this.emptyFilteredText,\n emptyHtml: this.emptyHtml,\n emptyText: this.emptyText,\n fields: this.computedFields,\n // Not sure why this is included, as it will always be an empty array\n items: this.computedItems\n })\n if (!$empty) {\n $empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: this.isFiltered\n ? htmlOrText(this.emptyFilteredHtml, this.emptyFilteredText)\n : htmlOrText(this.emptyHtml, this.emptyText)\n })\n }\n $empty = h(\n 'td',\n {\n attrs: {\n colspan: String(this.computedFields.length),\n role: 'cell'\n }\n },\n [h('div', { attrs: { role: 'alert', 'aria-live': 'polite' } }, [$empty])]\n )\n $empty = h(\n 'tr',\n {\n key: this.isFiltered ? '_b-table-empty-filtered-row_' : '_b-table-empty-row_',\n staticClass: 'b-table-empty-row',\n class: [\n isFunction(this.tbodyTrClass)\n ? this.tbodyTrClass(null, 'row-empty')\n : this.tbodyTrClass\n ],\n attrs: { role: 'row' }\n },\n [$empty]\n )\n }\n\n return $empty || h(false)\n }\n }\n}\n","import { isFunction } from '../../../utils/inspect'\n\nexport default {\n methods: {\n renderTopRow() {\n const h = this.$createElement\n\n // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in always stacked mode, we don't bother rendering the row\n if (!this.hasNormalizedSlot('top-row') || this.isStacked === true) {\n return h(false)\n }\n\n const fields = this.computedFields\n\n return h(\n 'tr',\n {\n key: 'top-row',\n staticClass: 'b-table-top-row',\n class: [\n isFunction(this.tbodyTrClass) ? this.tbodyTrClass(null, 'row-top') : this.tbodyTrClass\n ],\n attrs: { role: 'row' }\n },\n [this.normalizeSlot('top-row', { columns: fields.length, fields: fields })]\n )\n }\n }\n}\n","import { isFunction } from '../../../utils/inspect'\n\nexport default {\n methods: {\n renderBottomRow() {\n const h = this.$createElement\n\n // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in always stacked mode, we don't bother rendering the row\n if (!this.hasNormalizedSlot('bottom-row') || this.isStacked === true) {\n return h(false)\n }\n\n const fields = this.computedFields\n\n return h(\n 'tr',\n {\n key: '__b-table-bottom-row__',\n staticClass: 'b-table-bottom-row',\n class: [\n isFunction(this.tbodyTrClass)\n ? this.tbodyTrClass(null, 'row-bottom')\n : this.tbodyTrClass\n ],\n attrs: { role: 'row' }\n },\n this.normalizeSlot('bottom-row', { columns: fields.length, fields: fields })\n )\n }\n }\n}\n","import { isFunction } from '../../../utils/inspect'\n\nexport default {\n props: {\n busy: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n localBusy: false\n }\n },\n computed: {\n computedBusy() {\n return this.busy || this.localBusy\n }\n },\n watch: {\n localBusy(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('update:busy', newVal)\n }\n }\n },\n methods: {\n // Event handler helper\n stopIfBusy(evt) {\n if (this.computedBusy) {\n // If table is busy (via provider) then don't propagate\n evt.preventDefault()\n evt.stopPropagation()\n return true\n }\n return false\n },\n // Renter the busy indicator or return null if not busy\n renderBusy() {\n const h = this.$createElement\n\n // Return a busy indicator row, or null if not busy\n if (this.computedBusy && this.hasNormalizedSlot('table-busy')) {\n // Show the busy slot\n const trAttrs = {\n role: this.isStacked ? 'row' : null\n }\n const tdAttrs = {\n colspan: String(this.computedFields.length),\n role: this.isStacked ? 'cell' : null\n }\n return h(\n 'tr',\n {\n key: 'table-busy-slot',\n staticClass: 'b-table-busy-slot',\n class: [\n isFunction(this.tbodyTrClass)\n ? this.tbodyTrClass(null, 'table-busy')\n : this.tbodyTrClass\n ],\n attrs: trAttrs\n },\n [h('td', { attrs: tdAttrs }, [this.normalizeSlot('table-busy', {})])]\n )\n } else {\n // We return null here so that we can determine if we need to\n // render the table items rows or not.\n return null\n }\n }\n }\n}\n","import looseEqual from '../../../utils/loose-equal'\nimport { isArray, arrayIncludes } from '../../../utils/array'\nimport { getComponentConfig } from '../../../utils/config'\nimport sanitizeRow from './sanitize-row'\n\nexport default {\n props: {\n selectable: {\n type: Boolean,\n default: false\n },\n selectMode: {\n type: String,\n default: 'multi'\n },\n selectedVariant: {\n type: String,\n default: () => getComponentConfig('BTable', 'selectedVariant')\n }\n },\n data() {\n return {\n selectedRows: [],\n selectedLastRow: -1\n }\n },\n computed: {\n selectableTableClasses() {\n const selectable = this.selectable\n const isSelecting = selectable && this.selectedRows && this.selectedRows.some(Boolean)\n return {\n 'b-table-selectable': selectable,\n [`b-table-select-${this.selectMode}`]: selectable,\n 'b-table-selecting': isSelecting\n }\n },\n selectableTableAttrs() {\n return {\n 'aria-multiselectable': this.selectableIsMultiSelect\n }\n },\n selectableIsMultiSelect() {\n if (this.selectable) {\n return arrayIncludes(['range', 'multi'], this.selectMode) ? 'true' : 'false'\n } else {\n return null\n }\n }\n },\n watch: {\n computedItems(newVal, oldVal) {\n // Reset for selectable\n // TODO: Should selectedLastClicked be reset here?\n // As changes to _showDetails would trigger it to reset\n this.selectedLastRow = -1\n let equal = false\n if (this.selectable && this.selectedRows.length > 0) {\n // Quick check against array length\n equal = isArray(newVal) && isArray(oldVal) && newVal.length === oldVal.length\n for (let i = 0; equal && i < newVal.length; i++) {\n // Look for the first non-loosely equal row, after ignoring reserved fields\n equal = looseEqual(sanitizeRow(newVal[i]), sanitizeRow(oldVal[i]))\n }\n }\n if (!equal) {\n this.clearSelected()\n }\n },\n selectable(newVal, oldVal) {\n this.clearSelected()\n this.setSelectionHandlers(newVal)\n },\n selectMode(newVal, oldVal) {\n this.clearSelected()\n },\n selectedRows(selectedRows, oldVal) {\n if (this.selectable && !looseEqual(selectedRows, oldVal)) {\n let items = []\n // forEach skips over non-existant indicies (on sparse arrays)\n selectedRows.forEach((v, idx) => {\n if (v) {\n items.push(this.computedItems[idx])\n }\n })\n this.$emit('row-selected', items)\n }\n }\n },\n beforeMount() {\n // Set up handlers\n if (this.selectable) {\n this.setSelectionHandlers(true)\n }\n },\n methods: {\n isRowSelected(idx) {\n return Boolean(this.selectedRows[idx])\n },\n selectableRowClasses(idx) {\n const rowSelected = this.isRowSelected(idx)\n const base = this.dark ? 'bg' : 'table'\n const variant = this.selectedVariant\n return {\n 'b-table-row-selected': this.selectable && rowSelected,\n [`${base}-${variant}`]: this.selectable && rowSelected && variant\n }\n },\n selectableRowAttrs(idx) {\n return {\n 'aria-selected': !this.selectable ? null : this.isRowSelected(idx) ? 'true' : 'false'\n }\n },\n clearSelected() {\n let hasSelection = this.selectedRows.reduce((prev, v) => {\n return prev || v\n }, false)\n if (hasSelection) {\n this.selectedLastClicked = -1\n this.selectedRows = []\n }\n },\n setSelectionHandlers(on) {\n const method = on ? '$on' : '$off'\n // Handle row-clicked event\n this[method]('row-clicked', this.selectionHandler)\n // Clear selection on filter, pagination, and sort changes\n this[method]('filtered', this.clearSelected)\n this[method]('context-changed', this.clearSelected)\n },\n selectionHandler(item, index, evt) {\n /* istanbul ignore if: should never happen */\n if (!this.selectable) {\n // Don't do anything if table is not in selectable mode\n /* istanbul ignore next: should never happen */\n this.clearSelected()\n /* istanbul ignore next: should never happen */\n return\n }\n let selectedRows = this.selectedRows.slice()\n let selected = !selectedRows[index]\n let mode = this.selectMode\n // Note 'multi' mode needs no special handling\n if (mode === 'single') {\n selectedRows = []\n } else if (mode === 'range') {\n if (this.selectedLastRow > -1 && evt.shiftKey) {\n // range\n for (\n let idx = Math.min(this.selectedLastRow, index);\n idx <= Math.max(this.selectedLastRow, index);\n idx++\n ) {\n selectedRows[idx] = true\n }\n selected = true\n } else {\n if (!(evt.ctrlKey || evt.metaKey)) {\n // clear range selection if any\n selectedRows = []\n selected = true\n }\n this.selectedLastRow = selected ? index : -1\n }\n }\n selectedRows[index] = selected\n this.selectedRows = selectedRows\n }\n }\n}\n","import looseEqual from '../../../utils/loose-equal'\nimport warn from '../../../utils/warn'\nimport { isArray, isFunction } from '../../../utils/inspect'\nimport listenOnRootMixin from '../../../mixins/listen-on-root'\n\nexport default {\n mixins: [listenOnRootMixin],\n props: {\n // Prop override(s)\n items: {\n // Adds in 'Function' support\n type: [Array, Function],\n default() /* istanbul ignore next */ {\n return []\n }\n },\n // Additional props\n noProviderPaging: {\n type: Boolean,\n default: false\n },\n noProviderSorting: {\n type: Boolean,\n default: false\n },\n noProviderFiltering: {\n type: Boolean,\n default: false\n },\n apiUrl: {\n // Passthrough prop. Passed to the context object. Not used by b-table directly\n type: String,\n default: ''\n }\n },\n computed: {\n hasProvider() {\n return this.items instanceof Function\n },\n providerTriggerContext() {\n // Used to trigger the provider function via a watcher. Only the fields that\n // are needed for triggering a provider update are included. Note that the\n // regular this.context is sent to the provider during fetches though, as they\n // may need all the prop info.\n const ctx = {\n apiUrl: this.apiUrl,\n filter: null,\n sortBy: null,\n sortDesc: null,\n perPage: null,\n currentPage: null\n }\n if (!this.noProviderFiltering) {\n // Either a string, or could be an object or array.\n ctx.filter = this.localFilter\n }\n if (!this.noProviderSorting) {\n ctx.sortBy = this.localSortBy\n ctx.sortDesc = this.localSortDesc\n }\n if (!this.noProviderPaging) {\n ctx.perPage = this.perPage\n ctx.currentPage = this.currentPage\n }\n return { ...ctx }\n }\n },\n watch: {\n // Provider update triggering\n items(newVal, oldVal) {\n // If a new provider has been specified, trigger an update\n if (this.hasProvider || newVal instanceof Function) {\n this.$nextTick(this._providerUpdate)\n }\n },\n providerTriggerContext(newVal, oldVal) {\n // Trigger the provider to update as the relevant context values have changed.\n if (!looseEqual(newVal, oldVal)) {\n this.$nextTick(this._providerUpdate)\n }\n }\n },\n mounted() {\n // Call the items provider if necessary\n if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n // Fetch on mount if localItems is empty\n this._providerUpdate()\n }\n // Listen for global messages to tell us to force refresh the table\n this.listenOnRoot('bv::refresh::table', id => {\n if (id === this.id || id === this) {\n this.refresh()\n }\n })\n },\n methods: {\n refresh() {\n // Public Method: Force a refresh of the provider function\n this.$off('refreshed', this.refresh)\n if (this.computedBusy) {\n // Can't force an update when forced busy by user (busy prop === true)\n if (this.localBusy && this.hasProvider) {\n // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n this.$on('refreshed', this.refresh)\n }\n } else {\n this.clearSelected()\n if (this.hasProvider) {\n this.$nextTick(this._providerUpdate)\n } else {\n /* istanbul ignore next */\n this.localItems = isArray(this.items) ? this.items.slice() : []\n }\n }\n },\n // Provider related methods\n _providerSetLocal(items) {\n this.localItems = isArray(items) ? items.slice() : []\n this.localBusy = false\n this.$emit('refreshed')\n // New root emit\n if (this.id) {\n this.emitOnRoot('bv::table::refreshed', this.id)\n }\n },\n _providerUpdate() {\n // Refresh the provider function items.\n if (!this.hasProvider) {\n // Do nothing if no provider\n return\n }\n // If table is busy, wait until refreshed before calling again\n if (this.computedBusy) {\n // Schedule a new refresh once `refreshed` is emitted\n this.$nextTick(this.refresh)\n return\n }\n\n // Set internal busy state\n this.localBusy = true\n\n // Call provider function with context and optional callback after DOM is fully updated\n this.$nextTick(function() {\n try {\n // Call provider function passing it the context and optional callback\n const data = this.items(this.context, this._providerSetLocal)\n if (data && data.then && isFunction(data.then)) {\n // Provider returned Promise\n data.then(items => {\n // Provider resolved with items\n this._providerSetLocal(items)\n })\n } else if (isArray(data)) {\n // Provider returned Array data\n this._providerSetLocal(data)\n } else if (this.items.length !== 2) {\n // Check number of arguments provider function requested\n // Provider not using callback (didn't request second argument), so we clear\n // busy state as most likely there was an error in the provider function\n /* istanbul ignore next */\n warn(\n \"b-table provider function didn't request callback and did not return a promise or data\"\n )\n /* istanbul ignore next */\n this.localBusy = false\n }\n } catch (e) /* istanbul ignore next */ {\n // Provider function borked on us, so we spew out a warning\n // and clear the busy state\n warn(`b-table provider function error [${e.name}] ${e.message}`)\n this.localBusy = false\n this.$off('refreshed', this.refresh)\n }\n })\n }\n }\n}\n","// Main `<table>` render mixin\n// Which indlues all main table stlying options\n\nexport default {\n // Don't place ATTRS on root element automatically, as table could be wrapped in responsive div\n inheritAttrs: false,\n props: {\n striped: {\n type: Boolean,\n default: false\n },\n bordered: {\n type: Boolean,\n default: false\n },\n borderless: {\n type: Boolean,\n default: false\n },\n outlined: {\n type: Boolean,\n default: false\n },\n dark: {\n type: Boolean,\n default: false\n },\n hover: {\n type: Boolean,\n default: false\n },\n small: {\n type: Boolean,\n default: false\n },\n fixed: {\n type: Boolean,\n default: false\n },\n responsive: {\n type: [Boolean, String],\n default: false\n },\n stacked: {\n type: [Boolean, String],\n default: false\n },\n tableClass: {\n type: [String, Array, Object],\n default: null\n }\n },\n computed: {\n // Layout related computed props\n isStacked() {\n return this.stacked === '' ? true : this.stacked\n },\n isResponsive() {\n const responsive = this.responsive === '' ? true : this.responsive\n return this.isStacked ? false : responsive\n },\n responsiveClass() {\n return this.isResponsive === true\n ? 'table-responsive'\n : this.isResponsive\n ? `table-responsive-${this.responsive}`\n : ''\n },\n tableClasses() {\n return [\n // User supplied classes\n this.tableClass,\n // Styling classes\n {\n 'table-striped': this.striped,\n 'table-hover': this.hover && this.computedItems.length > 0 && !this.computedBusy,\n 'table-dark': this.dark,\n 'table-bordered': this.bordered,\n 'table-borderless': this.borderless,\n 'table-sm': this.small,\n border: this.outlined,\n // The following are b-table custom styles\n 'b-table-fixed': this.fixed,\n 'b-table-stacked': this.stacked === true || this.stacked === '',\n [`b-table-stacked-${this.stacked}`]: this.stacked !== true && this.stacked\n },\n // Selectable classes\n this.selectableTableClasses\n ]\n },\n tableAttrs() {\n // Preserve user supplied aria-describedby, if provided in $attrs\n const adb =\n [(this.$attrs || {})['aria-describedby'], this.captionId].filter(Boolean).join(' ') || null\n const items = this.computedItems\n const fields = this.computedFields\n const selectableAttrs = this.selectableTableAttrs || {}\n return {\n // We set aria-rowcount before merging in $attrs, in case user has supplied their own\n 'aria-rowcount':\n this.filteredItems && this.filteredItems.length > items.length\n ? String(this.filteredItems.length)\n : null,\n // Merge in user supplied $attrs if any\n ...this.$attrs,\n // Now we can override any $attrs here\n id: this.safeId(),\n role: this.isStacked ? 'table' : null,\n 'aria-busy': this.computedBusy ? 'true' : 'false',\n 'aria-colcount': String(fields.length),\n 'aria-describedby': adb,\n ...selectableAttrs\n }\n }\n },\n render(h) {\n // Build the caption (from caption mixin)\n const $caption = this.renderCaption ? this.renderCaption() : null\n\n // Build the colgroup\n const $colgroup = this.renderColgroup ? this.renderColgroup() : null\n\n // Build the thead\n const $thead = this.renderThead()\n\n // Build the tfoot\n const $tfoot = this.renderTfoot()\n\n // Build the tbody\n const $tbody = this.renderTbody()\n\n // Assemble table\n const $table = h(\n 'table',\n {\n key: 'b-table',\n staticClass: 'table b-table',\n class: this.tableClasses,\n attrs: this.tableAttrs\n },\n [$caption, $colgroup, $thead, $tfoot, $tbody].filter(Boolean)\n )\n\n // Add responsive wrapper if needed and return table\n return this.isResponsive\n ? h('div', { key: 'b-table-responsive', class: this.responsiveClass }, [$table])\n : $table\n }\n}\n","import Vue from '../../utils/vue'\n\n// Mixins\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\n// Table helper Mixins\nimport itemsMixin from './helpers/mixin-items'\nimport filteringMixin from './helpers/mixin-filtering'\nimport sortingMixin from './helpers/mixin-sorting'\nimport paginationMixin from './helpers/mixin-pagination'\nimport captionMixin from './helpers/mixin-caption'\nimport colgroupMixin from './helpers/mixin-colgroup'\nimport theadMixin from './helpers/mixin-thead'\nimport tfootMixin from './helpers/mixin-tfoot'\nimport tbodyMixin from './helpers/mixin-tbody'\nimport emptyMixin from './helpers//mixin-empty'\nimport topRowMixin from './helpers//mixin-top-row'\nimport bottomRowMixin from './helpers//mixin-bottom-row'\nimport busyMixin from './helpers/mixin-busy'\nimport selectableMixin from './helpers/mixin-selectable'\nimport providerMixin from './helpers/mixin-provider'\n\n// Main table renderer mixin\nimport tableRendererMixin from './helpers/mixin-table-renderer'\n\n// b-table component definition\n// @vue/component\nexport const BTable = /*#__PURE__*/ Vue.extend({\n name: 'BTable',\n // Order of mixins is important!\n // They are merged from first to last, followed by this component.\n mixins: [\n // Required Mixins\n idMixin,\n normalizeSlotMixin,\n itemsMixin,\n tableRendererMixin,\n theadMixin,\n tfootMixin,\n tbodyMixin,\n // Features Mixins\n filteringMixin,\n sortingMixin,\n paginationMixin,\n captionMixin,\n colgroupMixin,\n selectableMixin,\n emptyMixin,\n topRowMixin,\n bottomRowMixin,\n busyMixin,\n providerMixin\n ]\n // render function provided by table-renderer mixin\n})\n\nexport default BTable\n","import Vue from '../../utils/vue'\n\n// Mixins\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\n// Table helper Mixins\nimport itemsMixin from './helpers/mixin-items'\nimport captionMixin from './helpers/mixin-caption'\nimport colgroupMixin from './helpers/mixin-colgroup'\nimport theadMixin from './helpers/mixin-thead'\nimport tfootMixin from './helpers/mixin-tfoot'\nimport tbodyMixin from './helpers/mixin-tbody'\n\n// Main table renderer mixin\nimport tableRendererMixin from './helpers/mixin-table-renderer'\n\n// b-table-lite component definition\n// @vue/component\nexport const BTableLite = /*#__PURE__*/ Vue.extend({\n name: 'BTableLite',\n // Order of mixins is important!\n // They are merged from first to last, followed by this component.\n mixins: [\n // Required mixins\n idMixin,\n normalizeSlotMixin,\n itemsMixin,\n tableRendererMixin,\n theadMixin,\n tfootMixin,\n tbodyMixin,\n // Features Mixins\n // These are pretty lightweight, and are useful for plain tables\n captionMixin,\n colgroupMixin\n ]\n // render function provided by table-renderer mixin\n})\n\nexport default BTableLite\n","import { BTable } from './table'\nimport { BTableLite } from './table-lite'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst TablePlugin = /*#__PURE__*/ pluginFactory({\n components: { BTable, BTableLite }\n})\n\nexport { TablePlugin, BTable, BTableLite }\n\nexport default TablePlugin\n","import Vue from '../../utils/vue'\nimport KeyCodes from '../../utils/key-codes'\nimport stableSort from '../../utils/stable-sort'\nimport { requestAF, selectAll } from '../../utils/dom'\nimport { arrayIncludes, concat } from '../../utils/array'\nimport { omit } from '../../utils/object'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BLink } from '../link/link'\nimport { BNav, props as BNavProps } from '../nav/nav'\n\n// -- Constants --\n\nconst navProps = omit(BNavProps, ['tabs', 'isNavBar'])\n\n// -- Utils --\n\n// Filter function to filter out disabled tabs\nconst notDisabled = tab => !tab.disabled\n\n// --- Helper components ---\n\n// @vue/component\nconst BTabButtonHelper = /*#__PURE__*/ Vue.extend({\n name: 'BTabButtonHelper',\n inject: {\n bvTabs: {\n default() /* istanbul ignore next */ {\n return {}\n }\n }\n },\n props: {\n // Reference to the child <b-tab> instance\n tab: { default: null },\n tabs: {\n type: Array,\n default() /* istanbul ignore next */ {\n return []\n }\n },\n id: { type: String, default: null },\n controls: { type: String, default: null },\n tabIndex: { type: Number, default: null },\n posInSet: { type: Number, default: null },\n setSize: { type: Number, default: null },\n noKeyNav: { type: Boolean, default: false }\n },\n methods: {\n focus() {\n if (this.$refs && this.$refs.link && this.$refs.link.focus) {\n this.$refs.link.focus()\n }\n },\n handleEvt(evt) {\n function stop() {\n evt.preventDefault()\n evt.stopPropagation()\n }\n if (this.tab.disabled) {\n /* istanbul ignore next */\n return\n }\n const type = evt.type\n const key = evt.keyCode\n const shift = evt.shiftKey\n if (type === 'click') {\n stop()\n this.$emit('click', evt)\n } else if (type === 'keydown' && !this.noKeyNav && key === KeyCodes.SPACE) {\n // In keynav mode, SPACE press will also trigger a click/select\n stop()\n this.$emit('click', evt)\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if (key === KeyCodes.UP || key === KeyCodes.LEFT || key === KeyCodes.HOME) {\n stop()\n if (shift || key === KeyCodes.HOME) {\n this.$emit('first', evt)\n } else {\n this.$emit('prev', evt)\n }\n } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT || key === KeyCodes.END) {\n stop()\n if (shift || key === KeyCodes.END) {\n this.$emit('last', evt)\n } else {\n this.$emit('next', evt)\n }\n }\n }\n }\n },\n render(h) {\n const link = h(\n BLink,\n {\n ref: 'link',\n staticClass: 'nav-link',\n class: [\n {\n active: this.tab.localActive && !this.tab.disabled,\n disabled: this.tab.disabled\n },\n this.tab.titleLinkClass,\n // Apply <b-tabs> `activeNavItemClass` styles when the tab is active\n this.tab.localActive ? this.bvTabs.activeNavItemClass : null\n ],\n props: {\n href: this.tab.href, // To be deprecated to always be '#'\n disabled: this.tab.disabled\n },\n attrs: {\n role: 'tab',\n id: this.id,\n // Roving tab index when keynav enabled\n tabindex: this.tabIndex,\n 'aria-selected': this.tab.localActive && !this.tab.disabled ? 'true' : 'false',\n 'aria-setsize': this.setSize,\n 'aria-posinset': this.posInSet,\n 'aria-controls': this.controls\n },\n on: {\n click: this.handleEvt,\n keydown: this.handleEvt\n }\n },\n [this.tab.normalizeSlot('title') || this.tab.title]\n )\n return h(\n 'li',\n {\n staticClass: 'nav-item',\n class: [this.tab.titleItemClass],\n attrs: { role: 'presentation' }\n },\n [link]\n )\n }\n})\n\n// @vue/component\nexport const BTabs = /*#__PURE__*/ Vue.extend({\n name: 'BTabs',\n mixins: [idMixin, normalizeSlotMixin],\n provide() {\n return {\n bvTabs: this\n }\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n ...navProps,\n tag: {\n type: String,\n default: 'div'\n },\n card: {\n type: Boolean,\n default: false\n },\n bottom: {\n type: Boolean,\n default: false\n },\n end: {\n // Synonym for 'bottom'\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noNavStyle: {\n type: Boolean,\n default: false\n },\n noKeyNav: {\n type: Boolean,\n default: false\n },\n lazy: {\n // This prop is sniffed by the <b-tab> child\n type: Boolean,\n default: false\n },\n contentClass: {\n type: [String, Array, Object],\n default: null\n },\n navClass: {\n type: [String, Array, Object],\n default: null\n },\n navWrapperClass: {\n type: [String, Array, Object],\n default: null\n },\n activeNavItemClass: {\n // Only applied to the currently active <b-nav-item>\n type: [String, Array, Object],\n default: null\n },\n activeTabClass: {\n // Only applied to the currently active <b-tab>\n // This prop is sniffed by the <b-tab> child\n type: [String, Array, Object],\n default: null\n },\n value: {\n // v-model\n type: Number,\n default: null\n }\n },\n data() {\n let tabIdx = parseInt(this.value, 10)\n tabIdx = isNaN(tabIdx) ? -1 : tabIdx\n return {\n // Index of current tab\n currentTab: tabIdx,\n // Array of direct child <b-tab> instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: [],\n // Flag to know if we are mounted or not\n isMounted: false\n }\n },\n computed: {\n fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade\n },\n navStyle() {\n return this.pills ? 'pills' : 'tabs'\n },\n localNavClass() {\n let classes = []\n if (this.card) {\n if (this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0')\n } else {\n classes.push(`card-header-${this.navStyle}`)\n }\n }\n return [...classes, this.navClass]\n }\n },\n watch: {\n currentTab(val, old) {\n let index = -1\n // Ensure only one tab is active at most\n this.tabs.forEach((tab, idx) => {\n if (val === idx && !tab.disabled) {\n tab.localActive = true\n index = idx\n } else {\n tab.localActive = false\n }\n })\n // Update the v-model\n this.$emit('input', index)\n },\n value(val, old) {\n if (val !== old) {\n val = parseInt(val, 10)\n val = isNaN(val) ? -1 : val\n old = parseInt(old, 10) || 0\n const tabs = this.tabs\n if (tabs[val] && !tabs[val].disabled) {\n this.currentTab = val\n } else {\n // Try next or prev tabs\n if (val < old) {\n this.previousTab()\n } else {\n this.nextTab()\n }\n }\n }\n },\n registeredTabs(newVal, oldVal) {\n // Each b-tab will register/unregister itself.\n // We use this to detect when tabs are added/removed\n // to trigger the update of the tabs.\n this.$nextTick(() => {\n requestAF(() => {\n this.updateTabs()\n })\n })\n },\n isMounted(newVal, oldVal) {\n // Trigger an update after mounted. Needed\n // for tabs inside lazy modals.\n if (newVal) {\n requestAF(() => {\n this.updateTabs()\n })\n }\n }\n },\n created() {\n let tabIdx = parseInt(this.value, 10)\n this.currentTab = isNaN(tabIdx) ? -1 : tabIdx\n // For SSR and to make sure only a single tab is shown on mount\n // We wrap this in a `$nextTick()` to ensure the child tabs have been created\n this.$nextTick(() => {\n this.updateTabs()\n })\n },\n mounted() {\n // Call `updateTabs()` just in case...\n this.updateTabs()\n this.$nextTick(() => {\n // Flag we are now mounted and to switch to DOM for tab probing.\n // As this.$slots.default appears to lie about component instances\n // after b-tabs is destroyed and re-instantiated.\n // And this.$children does not respect DOM order.\n this.isMounted = true\n })\n },\n deactivated() /* istanbul ignore next */ {\n this.isMounted = false\n },\n activated() /* istanbul ignore next */ {\n let tabIdx = parseInt(this.value, 10)\n this.currentTab = isNaN(tabIdx) ? -1 : tabIdx\n this.$nextTick(() => {\n this.updateTabs()\n this.isMounted = true\n })\n },\n destroyed() {\n // Ensure no references to child instances exist\n this.tabs = []\n },\n methods: {\n registerTab(tab) {\n if (!arrayIncludes(this.registeredTabs, tab)) {\n this.registeredTabs.push(tab)\n tab.$once('hook:destroyed', () => {\n this.unregisterTab(tab)\n })\n }\n },\n unregisterTab(tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(t => t !== tab)\n },\n getTabs() {\n // We use registeredTabs as the shouce of truth for child tab components. And we\n // filter out any BTab components that are extended BTab with a root child BTab.\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3260\n const tabs = this.registeredTabs.filter(\n tab => tab.$children.filter(t => t._isTab).length === 0\n )\n // DOM Order of Tabs\n let order = []\n if (this.isMounted && tabs.length > 0) {\n // We rely on the DOM when mounted to get the 'true' order of the b-tab children.\n // querySelectorAll(...) always returns elements in document order, regardless of\n // order specified in the selector.\n const selector = tabs.map(tab => `#${tab.safeId()}`).join(', ')\n order = selectAll(selector, this.$el)\n .map(el => el.id)\n .filter(Boolean)\n }\n // Stable sort keeps the original order if not found in the\n // `order` array, which will be an empty array before mount.\n return stableSort(tabs, (a, b) => {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId())\n })\n },\n // Update list of <b-tab> children\n updateTabs() {\n // Probe tabs\n const tabs = this.getTabs()\n\n // Find *last* active non-disabled tab in current tabs\n // We trust tab state over currentTab, in case tabs were added/removed/re-ordered\n let tabIndex = tabs.indexOf(\n tabs\n .slice()\n .reverse()\n .find(tab => tab.localActive && !tab.disabled)\n )\n\n // Else try setting to currentTab\n if (tabIndex < 0) {\n const currentTab = this.currentTab\n if (currentTab >= tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = tabs.indexOf(\n tabs\n .slice()\n .reverse()\n .find(notDisabled)\n )\n } else if (tabs[currentTab] && !tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab\n }\n }\n\n // Else find *first* non-disabled tab in current tabs\n if (tabIndex < 0) {\n tabIndex = tabs.indexOf(tabs.find(notDisabled))\n }\n\n // Set the current tab state to active\n tabs.forEach((tab, idx) => {\n // tab.localActive = idx === tabIndex && !tab.disabled\n tab.localActive = false\n })\n if (tabs[tabIndex]) {\n tabs[tabIndex].localActive = true\n }\n\n // Update the array of tab children\n this.tabs = tabs\n // Set the currentTab index (can be -1 if no non-disabled tabs)\n this.currentTab = tabIndex\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab(tab) {\n return (this.$refs.buttons || []).find(btn => btn.tab === tab)\n },\n // Force a button to re-render it's content, given a <b-tab> instance\n // Called by <b-tab> on `update()`\n updateButton(tab) {\n const button = this.getButtonForTab(tab)\n if (button && button.$forceUpdate) {\n button.$forceUpdate()\n }\n },\n // Activate a tab given a <b-tab> instance\n // Also accessed by <b-tab>\n activateTab(tab) {\n let result = false\n if (tab) {\n const index = this.tabs.indexOf(tab)\n if (!tab.disabled && index > -1) {\n result = true\n this.currentTab = index\n }\n }\n if (!result) {\n // Couldn't set tab, so ensure v-model is set to `this.currentTab`\n /* istanbul ignore next: should rarely happen */\n this.$emit('input', this.currentTab)\n }\n return result\n },\n // Deactivate a tab given a <b-tab> instance\n // Accessed by <b-tab>\n deactivateTab(tab) {\n if (tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(t => t !== tab).find(notDisabled))\n } else {\n // No tab specified\n /* istanbul ignore next: should never happen */\n return false\n }\n },\n // Focus a tab button given it's <b-tab> instance\n focusButton(tab) {\n // Wrap in `$nextTick()` to ensure DOM has completed rendering/updating before focusing\n this.$nextTick(() => {\n const button = this.getButtonForTab(tab)\n if (button && button.focus) {\n button.focus()\n }\n })\n },\n // Emit a click event on a specified <b-tab> component instance\n emitTabClick(tab, evt) {\n if (evt && evt instanceof Event && tab && tab.$emit && !tab.disabled) {\n tab.$emit('click', evt)\n }\n },\n // Click handler\n clickTab(tab, evt) {\n this.activateTab(tab)\n this.emitTabClick(tab, evt)\n },\n // Move to first non-disabled tab\n firstTab(focus) {\n const tab = this.tabs.find(notDisabled)\n if (this.activateTab(tab) && focus) {\n this.focusButton(tab)\n this.emitTabClick(tab, focus)\n }\n },\n // Move to previous non-disabled tab\n previousTab(focus) {\n const currentIndex = Math.max(this.currentTab, 0)\n const tab = this.tabs\n .slice(0, currentIndex)\n .reverse()\n .find(notDisabled)\n if (this.activateTab(tab) && focus) {\n this.focusButton(tab)\n this.emitTabClick(tab, focus)\n }\n },\n // Move to next non-disabled tab\n nextTab(focus) {\n const currentIndex = Math.max(this.currentTab, -1)\n const tab = this.tabs.slice(currentIndex + 1).find(notDisabled)\n if (this.activateTab(tab) && focus) {\n this.focusButton(tab)\n this.emitTabClick(tab, focus)\n }\n },\n // Move to last non-disabled tab\n lastTab(focus) {\n const tab = this.tabs\n .slice()\n .reverse()\n .find(notDisabled)\n if (this.activateTab(tab) && focus) {\n this.focusButton(tab)\n this.emitTabClick(tab, focus)\n }\n }\n },\n render(h) {\n const tabs = this.tabs\n\n // Currently active tab\n let activeTab = tabs.find(tab => tab.localActive && !tab.disabled)\n\n // Tab button to allow focusing when no active tab found (keynav only)\n const fallbackTab = tabs.find(tab => !tab.disabled)\n\n // For each <b-tab> found create the tab buttons\n const buttons = tabs.map((tab, index) => {\n let tabIndex = null\n // Ensure at least one tab button is focusable when keynav enabled (if possible)\n if (!this.noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1\n if (activeTab === tab || (!activeTab && fallbackTab === tab)) {\n // Place tab button in tab sequence\n tabIndex = null\n }\n }\n return h(BTabButtonHelper, {\n key: tab._uid || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true,\n props: {\n tab: tab,\n tabs: tabs,\n id:\n tab.controlledBy ||\n (this.tab && this.tab.safeId ? this.tab.safeId(`_BV_tab_button_`) : null),\n controls: this.tab && this.tab.safeId ? this.tab.safeId() : null,\n tabIndex,\n setSize: tabs.length,\n posInSet: index + 1,\n noKeyNav: this.noKeyNav\n },\n on: {\n click: evt => {\n this.clickTab(tab, evt)\n },\n first: this.firstTab,\n prev: this.previousTab,\n next: this.nextTab,\n last: this.lastTab\n }\n })\n })\n\n // Nav\n let nav = h(\n BNav,\n {\n ref: 'nav',\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: this.fill,\n justified: this.justified,\n align: this.align,\n tabs: !this.noNavStyle && !this.pills,\n pills: !this.noNavStyle && this.pills,\n vertical: this.vertical,\n small: this.small\n }\n },\n [buttons, this.normalizeSlot('tabs')]\n )\n nav = h(\n 'div',\n {\n key: 'bv-tabs-nav',\n class: [\n {\n 'card-header': this.card && !this.vertical && !(this.end || this.bottom),\n 'card-footer': this.card && !this.vertical && (this.end || this.bottom),\n 'col-auto': this.vertical\n },\n this.navWrapperClass\n ]\n },\n [nav]\n )\n\n let empty = h(false)\n if (!tabs || tabs.length === 0) {\n empty = h(\n 'div',\n { key: 'bv-empty-tab', class: ['tab-pane', 'active', { 'card-body': this.card }] },\n this.normalizeSlot('empty')\n )\n }\n\n // Main content section\n const content = h(\n 'div',\n {\n ref: 'tabsContainer',\n key: 'bv-tabs-container',\n staticClass: 'tab-content',\n class: [{ col: this.vertical }, this.contentClass],\n attrs: { id: this.safeId('_BV_tab_container_') }\n },\n concat(this.normalizeSlot('default'), empty)\n )\n\n // Render final output\n return h(\n this.tag,\n {\n staticClass: 'tabs',\n class: {\n row: this.vertical,\n 'no-gutters': this.vertical && this.card\n },\n attrs: { id: this.safeId() }\n },\n [\n this.end || this.bottom ? content : h(false),\n [nav],\n this.end || this.bottom ? h(false) : content\n ]\n )\n }\n})\n\nexport default BTabs\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport BVTransition from '../../utils/bv-transition'\nimport warn from '../../utils/warn'\n\nconst DEPRECATED_MSG = 'Setting prop \"href\" is deprecated. Use the <b-nav> component instead.'\n\n// @vue/component\nexport const BTab = /*#__PURE__*/ Vue.extend({\n name: 'BTab',\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default() {\n return {\n // Don't set a tab index if not rendered inside <b-tabs>\n noKeyNav: true\n }\n }\n }\n },\n props: {\n active: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n },\n buttonId: {\n type: String,\n default: ''\n },\n title: {\n type: String,\n default: ''\n },\n titleItemClass: {\n // Sniffed by tabs.js and added to nav 'li.nav-item'\n type: [String, Array, Object],\n default: null\n },\n titleLinkClass: {\n // Sniffed by tabs.js and added to nav 'a.nav-link'\n type: [String, Array, Object],\n default: null\n },\n headHtml: {\n // Is this actually ever used?\n type: String,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noBody: {\n type: Boolean,\n default: false\n },\n href: {\n // This should be deprecated, as tabs are not navigation (URL) based\n // <b-nav> + <b-card> + <router-view>/<nuxt-child> should be used instead\n // We don't support router-links here\n type: String,\n default: '#',\n // `deprecated` -> Don't use this prop\n // `deprecation` -> Refers to a change in prop usage\n deprecated: DEPRECATED_MSG\n },\n lazy: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n localActive: this.active && !this.disabled,\n show: false\n }\n },\n computed: {\n tabClasses() {\n return [\n {\n active: this.localActive,\n disabled: this.disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n },\n // Apply <b-tabs> `activeTabClass` styles when this tab is active\n this.localActive ? this.bvTabs.activeTabClass : null\n ]\n },\n controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__')\n },\n computedNoFade() {\n return !(this.bvTabs.fade || false)\n },\n computedLazy() {\n return this.bvTabs.lazy || this.lazy\n },\n _isTab() {\n // For parent sniffing of child\n return true\n }\n },\n watch: {\n localActive(newVal, oldVal) {\n // Make 'active' prop work with `.sync` modifier\n this.$emit('update:active', newVal)\n },\n active(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal) {\n // If activated post mount\n this.activate()\n } else {\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit('update:active', this.localActive)\n }\n }\n }\n },\n disabled(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal && this.localActive && this.bvTabs.firstTab) {\n this.localActive = false\n this.bvTabs.firstTab()\n }\n }\n }\n },\n mounted() {\n // Inform b-tabs of our presence\n this.registerTab()\n // Initially show on mount if active and not disabled\n this.show = this.localActive\n // Deprecate use of `href` prop\n if (this.href && this.href !== '#') {\n /* istanbul ignore next */\n warn(`b-tab: ${DEPRECATED_MSG}`)\n }\n },\n updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n if (this.hasNormalizedSlot('title') && this.bvTabs.updateButton) {\n this.bvTabs.updateButton(this)\n }\n },\n destroyed() {\n // inform b-tabs of our departure\n this.unregisterTab()\n },\n methods: {\n // Private methods\n registerTab() {\n // Inform `b-tabs` of our presence\n this.bvTabs.registerTab && this.bvTabs.registerTab(this)\n },\n unregisterTab() {\n // Inform `b-tabs` of our departure\n this.bvTabs.unregisterTab && this.bvTabs.unregisterTab(this)\n },\n // Public methods\n activate() {\n if (this.bvTabs.activateTab && !this.disabled) {\n return this.bvTabs.activateTab(this)\n } else {\n // Not inside a <b-tabs> component or tab is disabled\n return false\n }\n },\n deactivate() {\n if (this.bvTabs.deactivateTab && this.localActive) {\n return this.bvTabs.deactivateTab(this)\n } else {\n // Not inside a <b-tabs> component or not active to begin with\n return false\n }\n }\n },\n render(h) {\n let content = h(\n this.tag,\n {\n ref: 'panel',\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [\n {\n name: 'show',\n rawName: 'v-show',\n value: this.localActive,\n expression: 'localActive'\n }\n ],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n tabindex: this.localActive && !this.bvTabs.noKeyNav ? '-1' : null,\n 'aria-hidden': this.localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n }\n },\n // Render content lazily if requested\n [this.localActive || !this.computedLazy ? this.normalizeSlot('default') : h(false)]\n )\n return h(BVTransition, { props: { mode: 'out-in', noFade: this.computedNoFade } }, [content])\n }\n})\n\nexport default BTab\n","import { BTabs } from './tabs'\nimport { BTab } from './tab'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst TabsPlugin = /*#__PURE__*/ pluginFactory({\n components: {\n BTabs,\n BTab\n }\n})\n\nexport { TabsPlugin, BTabs, BTab }\n\nexport default TabsPlugin\n","import Vue from '../../utils/vue'\nimport { PortalTarget, Wormhole } from 'portal-vue'\nimport warn from '../../utils/warn'\nimport { getComponentConfig } from '../../utils/config'\nimport { removeClass, requestAF } from '../../utils/dom'\n\n// --- Constants ---\n\nconst NAME = 'BToaster'\n\nexport const props = {\n name: {\n type: String,\n required: true\n },\n ariaLive: {\n type: String,\n default: () => getComponentConfig(NAME, 'ariaLive')\n },\n ariaAtomic: {\n type: String,\n default: () => getComponentConfig(NAME, 'ariaAtomic') // Allowed: 'true' or 'false' or null\n },\n role: {\n // Aria role\n type: String,\n default: () => getComponentConfig(NAME, 'role')\n }\n /*\n transition: {\n type: [Boolean, String, Object],\n default: false\n }\n */\n}\n\n// @vue/component\nexport const DefaultTransition = /*#__PURE__*/ Vue.extend({\n data() {\n return {\n // Transition classes base name\n name: 'b-toaster'\n }\n },\n methods: {\n onAfterEnter(el) {\n // Handle bug where enter-to class is not removed.\n // Bug is related to portal-vue and transition-groups.\n requestAF(() => {\n removeClass(el, `${this.name}-enter-to`)\n // The *-move class is also stuck on elements that moved,\n // but there are no javascript hooks to handle after move.\n })\n }\n },\n render(h) {\n return h(\n 'transition-group',\n {\n props: { tag: 'div', name: this.name },\n on: { afterEnter: this.onAfterEnter }\n },\n this.$slots.default\n )\n }\n})\n\n// @vue/component\nexport const BToaster = /*#__PURE__*/ Vue.extend({\n name: NAME,\n props,\n data() {\n return {\n // We don't render on SSR or if a an existing target found\n doRender: false,\n dead: false,\n // Toaster names cannot change once created\n staticName: this.name\n }\n },\n beforeMount() {\n this.staticName = this.name\n /* istanbul ignore if */\n if (Wormhole.hasTarget(this.staticName)) {\n warn(`b-toaster: A <portal-target> with name '${this.name}' already exists in the document.`)\n this.dead = true\n } else {\n this.doRender = true\n this.$once('hook:beforeDestroy', () => {\n // Let toasts made with `this.$bvToast.toast()` know that this toaster\n // is being destroyed and should should also destroy/hide themselves\n this.$root.$emit('bv::toaster::destroyed', this.staticName)\n })\n }\n },\n destroyed() {\n // Remove from DOM if needed\n /* istanbul ignore next: difficult to test */\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el)\n }\n },\n render(h) {\n let $toaster = h('div', { class: ['d-none', { 'b-dead-toaster': this.dead }] })\n if (this.doRender) {\n const $target = h(PortalTarget, {\n staticClass: 'b-toaster-slot',\n props: {\n name: this.staticName,\n multiple: true,\n tag: 'div',\n slim: false,\n // transition: this.transition || DefaultTransition\n transition: DefaultTransition\n }\n })\n $toaster = h(\n 'div',\n {\n staticClass: 'b-toaster',\n class: [this.staticName],\n attrs: {\n id: this.staticName,\n role: this.role || null, // Fallback to null to make sure attribute doesn't exist\n 'aria-live': this.ariaLive,\n 'aria-atomic': this.ariaAtomic\n }\n },\n [$target]\n )\n }\n return $toaster\n }\n})\n\nexport default BToaster\n","import Vue from '../../utils/vue'\nimport { Portal, Wormhole } from 'portal-vue'\nimport BvEvent from '../../utils/bv-event.class'\nimport BVTransition from '../../utils/bv-transition'\nimport { getComponentConfig } from '../../utils/config'\nimport { requestAF, eventOn, eventOff } from '../../utils/dom'\nimport idMixin from '../../mixins/id'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BToaster } from './toaster'\nimport { BButtonClose } from '../button/button-close'\nimport { BLink } from '../link/link'\n\n// --- Constants ---\n\nconst NAME = 'BToast'\n\nconst MIN_DURATION = 1000\n\nconst EVENT_OPTIONS = { passive: true, capture: false }\n\n// --- Props ---\n\nexport const props = {\n id: {\n // Even though the ID prop is provided by idMixin, we\n // add it here for $bvToast props filtering\n type: String,\n default: null\n },\n title: {\n type: String,\n default: null\n },\n toaster: {\n type: String,\n default: () => getComponentConfig(NAME, 'toaster')\n },\n visible: {\n type: Boolean,\n default: false\n },\n variant: {\n type: String,\n default: () => getComponentConfig(NAME, 'variant')\n },\n isStatus: {\n // Switches role to 'status' and aria-live to 'polite'\n type: Boolean,\n default: false\n },\n appendToast: {\n type: Boolean,\n default: false\n },\n noAutoHide: {\n type: Boolean,\n default: false\n },\n autoHideDelay: {\n type: [Number, String],\n default: () => getComponentConfig(NAME, 'autoHideDelay')\n },\n noCloseButton: {\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noHoverPause: {\n type: Boolean,\n default: false\n },\n solid: {\n type: Boolean,\n default: false\n },\n toastClass: {\n type: [String, Object, Array],\n default: () => getComponentConfig(NAME, 'toastClass')\n },\n headerClass: {\n type: [String, Object, Array],\n default: () => getComponentConfig(NAME, 'headerClass')\n },\n bodyClass: {\n type: [String, Object, Array],\n default: () => getComponentConfig(NAME, 'bodyClass')\n },\n href: {\n type: String,\n default: null\n },\n to: {\n type: [String, Object],\n default: null\n },\n static: {\n // Render the toast in place, rather than in a portal-target\n type: Boolean,\n default: false\n }\n}\n\n// @vue/component\nexport const BToast = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [idMixin, listenOnRootMixin, normalizeSlotMixin],\n inheritAttrs: false,\n model: {\n prop: 'visible',\n event: 'change'\n },\n props,\n data() {\n return {\n isMounted: false,\n doRender: false,\n localShow: false,\n isTransitioning: false,\n isHiding: false,\n order: 0,\n timer: null,\n dismissStarted: 0,\n resumeDismiss: 0\n }\n },\n computed: {\n bToastClasses() {\n return {\n 'b-toast-solid': this.solid,\n 'b-toast-append': this.appendToast,\n 'b-toast-prepend': !this.appendToast,\n [`b-toast-${this.variant}`]: this.variant\n }\n },\n slotScope() {\n return {\n hide: this.hide\n }\n },\n computedDuration() {\n // Minimum supported duration is 1 second\n return Math.max(parseInt(this.autoHideDelay, 10) || 0, MIN_DURATION)\n },\n computedToaster() {\n return String(this.toaster)\n },\n transitionHandlers() {\n return {\n beforeEnter: this.onBeforeEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n afterLeave: this.onAfterLeave\n }\n }\n },\n watch: {\n visible(newVal) {\n newVal ? this.show() : this.hide()\n },\n localShow(newVal) {\n if (newVal !== this.visible) {\n this.$emit('change', newVal)\n }\n },\n toaster(newVal) /* istanbul ignore next */ {\n // If toaster target changed, make sure toaster exists\n this.$nextTick(() => this.ensureToaster)\n },\n static(newVal) /* istanbul ignore next */ {\n // If static changes to true, and the toast is showing,\n // ensure the toaster target exists\n if (newVal && this.localShow) {\n this.ensureToaster()\n }\n }\n },\n mounted() {\n this.isMounted = true\n this.$nextTick(() => {\n if (this.visible) {\n requestAF(() => {\n this.show()\n })\n }\n })\n // Listen for global $root show events\n this.listenOnRoot('bv::show::toast', id => {\n if (id === this.safeId()) {\n this.show()\n }\n })\n // Listen for global $root hide events\n this.listenOnRoot('bv::hide::toast', id => {\n if (!id || id === this.safeId()) {\n this.hide()\n }\n })\n // Make sure we hide when toaster is destroyed\n /* istanbul ignore next: difficult to test */\n this.listenOnRoot('bv::toaster::destroyed', toaster => {\n if (toaster === this.computedToaster) {\n this.hide()\n }\n })\n },\n beforeDestroy() {\n this.clearDismissTimer()\n },\n methods: {\n show() {\n if (!this.localShow) {\n this.ensureToaster()\n const showEvt = this.buildEvent('show')\n this.emitEvent(showEvt)\n this.dismissStarted = this.resumeDismiss = 0\n this.order = Date.now() * (this.appendToast ? 1 : -1)\n this.isHiding = false\n this.doRender = true\n this.$nextTick(() => {\n // We show the toast after we have rendered the portal and b-toast wrapper\n // so that screen readers will properly announce the toast\n requestAF(() => {\n this.localShow = true\n })\n })\n }\n },\n hide() {\n if (this.localShow) {\n const hideEvt = this.buildEvent('hide')\n this.emitEvent(hideEvt)\n this.setHoverHandler(false)\n this.dismissStarted = this.resumeDismiss = 0\n this.clearDismissTimer()\n this.isHiding = true\n requestAF(() => {\n this.localShow = false\n })\n }\n },\n buildEvent(type, opts = {}) {\n return new BvEvent(type, {\n cancelable: false,\n target: this.$el || null,\n relatedTarget: null,\n ...opts,\n vueTarget: this,\n componentId: this.safeId()\n })\n },\n emitEvent(bvEvt) {\n const type = bvEvt.type\n this.$root.$emit(`bv::toast:${type}`, bvEvt)\n this.$emit(type, bvEvt)\n },\n ensureToaster() {\n if (this.static) {\n return\n }\n if (!Wormhole.hasTarget(this.computedToaster)) {\n const div = document.createElement('div')\n document.body.appendChild(div)\n const toaster = new BToaster({\n parent: this.$root,\n propsData: {\n name: this.computedToaster\n }\n })\n toaster.$mount(div)\n }\n },\n startDismissTimer() {\n this.clearDismissTimer()\n if (!this.noAutoHide) {\n this.timer = setTimeout(this.hide, this.resumeDismiss || this.computedDuration)\n this.dismissStarted = Date.now()\n this.resumeDismiss = 0\n }\n },\n clearDismissTimer() {\n clearTimeout(this.timer)\n this.timer = null\n },\n setHoverHandler(on) {\n const method = on ? eventOn : eventOff\n method(this.$refs.btoast, 'mouseenter', this.onPause, EVENT_OPTIONS)\n method(this.$refs.btoast, 'mouseleave', this.onUnPause, EVENT_OPTIONS)\n },\n onPause(evt) {\n // Determine time remaining, and then pause timer\n if (this.noAutoHide || this.noHoverPause || !this.timer || this.resumeDismiss) {\n return\n }\n const passed = Date.now() - this.dismissStarted\n if (passed > 0) {\n this.clearDismissTimer()\n this.resumeDismiss = Math.max(this.computedDuration - passed, MIN_DURATION)\n }\n },\n onUnPause(evt) {\n // Restart timer with max of time remaining or 1 second\n if (this.noAutoHide || this.noHoverPause || !this.resumeDismiss) {\n this.resumeDismiss = this.dismissStarted = 0\n return\n }\n this.startDismissTimer()\n },\n onLinkClick() {\n // We delay the close to allow time for the\n // browser to process the link click\n this.$nextTick(() => {\n requestAF(() => {\n this.hide()\n })\n })\n },\n onBeforeEnter() {\n this.isTransitioning = true\n },\n onAfterEnter() {\n this.isTransitioning = false\n const hiddenEvt = this.buildEvent('shown')\n this.emitEvent(hiddenEvt)\n this.startDismissTimer()\n this.setHoverHandler(true)\n },\n onBeforeLeave() {\n this.isTransitioning = true\n },\n onAfterLeave() {\n this.isTransitioning = false\n this.order = 0\n this.resumeDismiss = this.dismissStarted = 0\n const hiddenEvt = this.buildEvent('hidden')\n this.emitEvent(hiddenEvt)\n this.doRender = false\n },\n makeToast(h) {\n // Render helper for generating the toast\n // Assemble the header content\n const $headerContent = []\n let $title = this.normalizeSlot('toast-title', this.slotScope)\n if ($title) {\n $headerContent.push($title)\n } else if (this.title) {\n $headerContent.push(h('strong', { staticClass: 'mr-2' }, this.title))\n }\n if (!this.noCloseButton) {\n $headerContent.push(\n h(BButtonClose, {\n staticClass: 'ml-auto mb-1',\n on: {\n click: evt => {\n this.hide()\n }\n }\n })\n )\n }\n // Assemble the header (if needed)\n let $header = h(false)\n if ($headerContent.length > 0) {\n $header = h(\n 'header',\n { staticClass: 'toast-header', class: this.headerClass },\n $headerContent\n )\n }\n // Toast body\n const isLink = this.href || this.to\n const $body = h(\n isLink ? BLink : 'div',\n {\n staticClass: 'toast-body',\n class: this.bodyClass,\n props: isLink ? { to: this.to, href: this.href } : {},\n on: isLink ? { click: this.onLinkClick } : {}\n },\n [this.normalizeSlot('default', this.slotScope) || h(false)]\n )\n // Build the toast\n const $toast = h(\n 'div',\n {\n key: `toast-${this._uid}`,\n ref: 'toast',\n staticClass: 'toast',\n class: this.toastClass,\n attrs: {\n ...this.$attrs,\n tabindex: '0',\n id: this.safeId()\n }\n },\n [$header, $body]\n )\n return $toast\n }\n },\n render(h) {\n if (!this.doRender || !this.isMounted) {\n return h(false)\n }\n const name = `b-toast-${this._uid}`\n return h(\n Portal,\n {\n props: {\n name: name,\n to: this.computedToaster,\n order: this.order,\n slim: true,\n disabled: this.static\n }\n },\n [\n h(\n 'div',\n {\n key: name,\n ref: 'btoast',\n staticClass: 'b-toast',\n class: this.bToastClasses,\n attrs: {\n id: this.safeId('_toast_outer'),\n role: this.isHiding ? null : this.isStatus ? 'status' : 'alert',\n 'aria-live': this.isHiding ? null : this.isStatus ? 'polite' : 'assertive',\n 'aria-atomic': this.isHiding ? null : 'true'\n }\n },\n [\n h(BVTransition, { props: { noFade: this.noFade }, on: this.transitionHandlers }, [\n this.localShow ? this.makeToast(h) : h(false)\n ])\n ]\n )\n ]\n )\n }\n})\n\nexport default BToast\n","/**\n * Plugin for adding `$bvToast` property to all Vue instances\n */\n\nimport { concat } from '../../../utils/array'\nimport { getComponentConfig } from '../../../utils/config'\nimport { requestAF } from '../../../utils/dom'\nimport { isUndefined, isString } from '../../../utils/inspect'\nimport {\n assign,\n defineProperties,\n defineProperty,\n keys,\n omit,\n readonlyDescriptor\n} from '../../../utils/object'\nimport { pluginFactory } from '../../../utils/plugins'\nimport { warn, warnNotClient } from '../../../utils/warn'\nimport { BToast, props as toastProps } from '../toast'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvToast'\nconst PROP_NAME_PRIV = '_bv__toast'\n\n// Base toast props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\nconst BASE_PROPS = ['id', ...keys(omit(toastProps, ['static', 'visible']))]\n\n// Map prop names to toast slot names\nconst propsToSlots = {\n toastContent: 'default',\n title: 'toast-title'\n}\n\n// --- Utility methods ---\n\n// Method to filter only recognized props that are not undefined\nconst filterOptions = options => {\n return BASE_PROPS.reduce((memo, key) => {\n if (!isUndefined(options[key])) {\n memo[key] = options[key]\n }\n return memo\n }, {})\n}\n\n// Method to install `$bvToast` VM injection\nconst plugin = Vue => {\n // Create a private sub-component constructor that\n // extends BToast and self-destructs after hidden\n // @vue/component\n const BToastPop = Vue.extend({\n name: 'BToastPop',\n extends: BToast,\n destroyed() {\n // Make sure we not in document any more\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el)\n }\n },\n mounted() {\n const self = this\n // Self destruct handler\n const handleDestroy = () => {\n // Ensure the toast has been force hidden\n self.localShow = false\n self.doRender = false\n self.$nextTick(() => {\n self.$nextTick(() => {\n // In a `requestAF()` to release control back to application\n // and to allow the portal-target time to remove the content\n requestAF(() => {\n self.$destroy()\n })\n })\n })\n }\n // Self destruct if parent destroyed\n this.$parent.$once('hook:destroyed', handleDestroy)\n // Self destruct after hidden\n this.$once('hidden', handleDestroy)\n // Self destruct when toaster is destroyed\n this.listenOnRoot('bv::toaster::destroyed', toaster => {\n /* istanbul ignore next: hard to test */\n if (toaster === self.toaster) {\n handleDestroy()\n }\n })\n }\n })\n\n // Private method to generate the on-demand toast\n const makeToast = (props, $parent) => {\n if (warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return\n }\n // Create an instance of `BToastPop` component\n const toast = new BToastPop({\n // We set parent as the local VM so these toasts can emit events on the\n // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed\n parent: $parent,\n propsData: {\n ...filterOptions(getComponentConfig('BToast') || {}),\n // Add in (filtered) user supplied props\n ...omit(props, keys(propsToSlots)),\n // Props that can't be overridden\n static: false,\n visible: true\n }\n })\n // Convert certain props to slots\n keys(propsToSlots).forEach(prop => {\n let value = props[prop]\n if (!isUndefined(value)) {\n // Can be a string, or array of VNodes\n if (prop === 'title' && isString(value)) {\n // Special case for title if it is a string, we wrap in a <strong>\n value = [$parent.$createElement('strong', { class: 'mr-2' }, value)]\n }\n toast.$slots[propsToSlots[prop]] = concat(value)\n }\n })\n // Create a mount point (a DIV) and mount it (which triggers the show)\n const div = document.createElement('div')\n document.body.appendChild(div)\n toast.$mount(div)\n }\n\n // Declare BvToast instance property class\n class BvToast {\n constructor(vm) {\n // Assign the new properties to this instance\n assign(this, { _vm: vm, _root: vm.$root })\n // Set these properties as read-only and non-enumerable\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n })\n }\n\n // --- Public Instance methods ---\n\n // Opens a user defined toast and returns immediately\n toast(content, options = {}) {\n if (!content || warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return\n }\n makeToast({ ...filterOptions(options), toastContent: content }, this._vm)\n }\n\n // shows a `<b-toast>` component with the specified ID\n show(id) {\n if (id) {\n this._root.$emit('bv::show::toast', id)\n }\n }\n\n // Hide a toast with specified ID, or if not ID all toasts\n hide(id = null) {\n this._root.$emit('bv::hide::toast', id)\n }\n }\n\n // Add our instance mixin\n Vue.mixin({\n beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvToast` for each VM\n this[PROP_NAME_PRIV] = new BvToast(this)\n }\n })\n\n // Define our read-only `$bvToast` instance property\n // Placed in an if just in case in HMR mode\n if (!Vue.prototype.hasOwnProperty(PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(`'${PROP_NAME}' must be accessed from a Vue instance 'this' context`)\n }\n return this[PROP_NAME_PRIV]\n }\n })\n }\n}\n\nexport const BVToastPlugin = /*#__PURE__*/ pluginFactory({\n plugins: { plugin }\n})\n\n// Default export is the Plugin\nexport default BVToastPlugin\n","import { BVToastPlugin } from './helpers/bv-toast'\nimport { BToast } from './toast'\nimport { BToaster } from './toaster'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ToastPlugin = /*#__PURE__*/ pluginFactory({\n components: { BToast, BToaster },\n // $bvToast injection\n plugins: { BVToastPlugin }\n})\n\nexport { ToastPlugin, BToast, BToaster }\n\nexport default ToastPlugin\n","import Vue from '../../utils/vue'\nimport ToolTip from '../../utils/tooltip.class'\nimport warn from '../../utils/warn'\nimport { isArray, arrayIncludes } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { HTMLElement } from '../../utils/safe-types'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport toolpopMixin from '../../mixins/toolpop'\n\nconst NAME = 'BTooltip'\n\n// @vue/component\nexport const BTooltip = /*#__PURE__*/ Vue.extend({\n name: NAME,\n mixins: [toolpopMixin, normalizeSlotMixin],\n props: {\n title: {\n type: String,\n default: ''\n },\n triggers: {\n type: [String, Array],\n default: 'hover focus'\n },\n placement: {\n type: String,\n default: 'top'\n },\n fallbackPlacement: {\n type: [String, Array],\n default: 'flip',\n validator(value) {\n return isArray(value) || arrayIncludes(['flip', 'clockwise', 'counterclockwise'], value)\n }\n },\n delay: {\n type: [Number, Object, String],\n default: () => getComponentConfig(NAME, 'delay')\n },\n boundary: {\n // String: scrollParent, window, or viewport\n // Element: element reference\n type: [String, HTMLElement],\n default: () => getComponentConfig(NAME, 'boundary')\n },\n boundaryPadding: {\n type: Number,\n default: () => getComponentConfig(NAME, 'boundaryPadding')\n }\n },\n data() {\n return {}\n },\n methods: {\n createToolpop() {\n // getTarget is in toolpop mixin\n const target = this.getTarget()\n /* istanbul ignore else */\n if (target) {\n this._toolpop = new ToolTip(target, this.getConfig(), this.$root)\n } else {\n this._toolpop = null\n warn(\"b-tooltip: 'target' element not found!\")\n }\n return this._toolpop\n }\n },\n render(h) {\n return h(\n 'div',\n { class: ['d-none'], style: { display: 'none' }, attrs: { 'aria-hidden': true } },\n [h('div', { ref: 'title' }, this.normalizeSlot('default'))]\n )\n }\n})\n\nexport default BTooltip\n","import Popper from 'popper.js'\nimport ToolTip from '../../utils/tooltip.class'\nimport warn from '../../utils/warn'\nimport { getComponentConfig } from '../../utils/config'\nimport { isBrowser } from '../../utils/env'\nimport { isFunction, isObject, isString } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\n\n// Key which we use to store tooltip object on element\nconst BV_TOOLTIP = '__BV_ToolTip__'\n\n// Valid event triggers\nconst validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true\n}\n\n// Build a ToolTip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n/* istanbul ignore next: not easy to test */\nconst parseBindings = bindings => /* istanbul ignore next: not easy to test */ {\n // We start out with a basic config\n const NAME = 'BTooltip'\n let config = {\n delay: getComponentConfig(NAME, 'delay'),\n boundary: String(getComponentConfig(NAME, 'boundary')),\n boundaryPadding: parseInt(getComponentConfig(NAME, 'boundaryPadding'), 10) || 0\n }\n\n // Process bindings.value\n if (isString(bindings.value)) {\n // Value is tooltip content (html optionally supported)\n config.title = bindings.value\n } else if (isFunction(bindings.value)) {\n // Title generator function\n config.title = bindings.value\n } else if (isObject(bindings.value)) {\n // Value is config object, so merge\n config = { ...config, ...bindings.value }\n }\n\n // If argument, assume element ID of container element\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = `#${bindings.arg}`\n }\n\n // Process modifiers\n keys(bindings.modifiers).forEach(mod => {\n if (/^html$/.test(mod)) {\n // Title allows HTML\n config.html = true\n } else if (/^nofade$/.test(mod)) {\n // No animation\n config.animation = false\n } else if (\n /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)\n ) {\n // Placement of tooltip\n config.placement = mod\n } else if (/^(window|viewport|scrollParent)$/.test(mod)) {\n // Boundary of tooltip\n config.boundary = mod\n } else if (/^d\\d+$/.test(mod)) {\n // Delay value\n const delay = parseInt(mod.slice(1), 10) || 0\n if (delay) {\n config.delay = delay\n }\n } else if (/^o-?\\d+$/.test(mod)) {\n // Offset value, negative allowed\n const offset = parseInt(mod.slice(1), 10) || 0\n if (offset) {\n config.offset = offset\n }\n }\n })\n\n // Special handling of event trigger modifiers trigger is\n // a space separated list\n const selectedTriggers = {}\n\n // Parse current config object trigger\n let triggers = isString(config.trigger) ? config.trigger.trim().split(/\\s+/) : []\n triggers.forEach(trigger => {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true\n }\n })\n\n // Parse modifiers for triggers\n keys(validTriggers).forEach(trigger => {\n if (bindings.modifiers[trigger]) {\n selectedTriggers[trigger] = true\n }\n })\n\n // Sanitize triggers\n config.trigger = keys(selectedTriggers).join(' ')\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus'\n }\n if (!config.trigger) {\n // Remove trigger config\n delete config.trigger\n }\n\n return config\n}\n\n// Add or update ToolTip on our element\nconst applyTooltip = (el, bindings, vnode) => {\n if (!isBrowser) {\n /* istanbul ignore next */\n return\n }\n if (!Popper) {\n // Popper is required for ToolTips to work\n /* istanbul ignore next */\n warn('v-b-tooltip: Popper.js is required for ToolTips to work')\n /* istanbul ignore next */\n return\n }\n const config = parseBindings(bindings)\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].updateConfig(config)\n } else {\n el[BV_TOOLTIP] = new ToolTip(el, config, vnode.context.$root)\n }\n}\n\n// Remove ToolTip on our element\nconst removeTooltip = el => {\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].destroy()\n el[BV_TOOLTIP] = null\n delete el[BV_TOOLTIP]\n }\n}\n\n/*\n * Export our directive\n */\nexport const VBTooltip = {\n bind(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode)\n },\n inserted(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode)\n },\n update(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n if (bindings.value !== bindings.oldValue) {\n applyTooltip(el, bindings, vnode)\n }\n },\n componentUpdated(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n if (bindings.value !== bindings.oldValue) {\n applyTooltip(el, bindings, vnode)\n }\n },\n unbind(el) {\n removeTooltip(el)\n }\n}\n\nexport default VBTooltip\n","import { BTooltip } from './tooltip'\nimport { VBTooltip } from '../../directives/tooltip/tooltip'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst TooltipPlugin = /*#__PURE__*/ pluginFactory({\n components: { BTooltip },\n directives: { VBTooltip }\n})\n\nexport { TooltipPlugin, BTooltip }\n\nexport default TooltipPlugin\n","// Index file used for the main builds, which does not include legacy plugin names\n// Once es/ buld is removed, then this file will be renamed to index.js\nimport { pluginFactory } from '../utils/plugins'\n\n// Component group plugins\nimport { AlertPlugin } from './alert'\nimport { BadgePlugin } from './badge'\nimport { BreadcrumbPlugin } from './breadcrumb'\nimport { ButtonPlugin } from './button'\nimport { ButtonGroupPlugin } from './button-group'\nimport { ButtonToolbarPlugin } from './button-toolbar'\nimport { CardPlugin } from './card'\nimport { CarouselPlugin } from './carousel'\nimport { CollapsePlugin } from './collapse'\nimport { DropdownPlugin } from './dropdown'\nimport { EmbedPlugin } from './embed'\nimport { FormPlugin } from './form'\nimport { FormGroupPlugin } from './form-group'\nimport { FormCheckboxPlugin } from './form-checkbox'\nimport { FormRadioPlugin } from './form-radio'\nimport { FormInputPlugin } from './form-input'\nimport { FormTextareaPlugin } from './form-textarea'\nimport { FormFilePlugin } from './form-file'\nimport { FormSelectPlugin } from './form-select'\nimport { ImagePlugin } from './image'\nimport { InputGroupPlugin } from './input-group'\nimport { JumbotronPlugin } from './jumbotron'\nimport { LayoutPlugin } from './layout'\nimport { LinkPlugin } from './link'\nimport { ListGroupPlugin } from './list-group'\nimport { MediaPlugin } from './media'\nimport { ModalPlugin } from './modal'\nimport { NavPlugin } from './nav'\nimport { NavbarPlugin } from './navbar'\nimport { PaginationPlugin } from './pagination'\nimport { PaginationNavPlugin } from './pagination-nav'\nimport { PopoverPlugin } from './popover'\nimport { ProgressPlugin } from './progress'\nimport { SpinnerPlugin } from './spinner'\nimport { TablePlugin } from './table'\nimport { TabsPlugin } from './tabs'\nimport { ToastPlugin } from './toast'\nimport { TooltipPlugin } from './tooltip'\n\n// Main plugin to install all component group plugins\nexport const componentsPlugin = /*#__PURE__*/ pluginFactory({\n plugins: {\n AlertPlugin,\n BadgePlugin,\n BreadcrumbPlugin,\n ButtonPlugin,\n ButtonGroupPlugin,\n ButtonToolbarPlugin,\n CardPlugin,\n CarouselPlugin,\n CollapsePlugin,\n DropdownPlugin,\n EmbedPlugin,\n FormPlugin,\n FormGroupPlugin,\n FormCheckboxPlugin,\n FormRadioPlugin,\n FormInputPlugin,\n FormTextareaPlugin,\n FormFilePlugin,\n FormSelectPlugin,\n ImagePlugin,\n InputGroupPlugin,\n JumbotronPlugin,\n LayoutPlugin,\n LinkPlugin,\n ListGroupPlugin,\n MediaPlugin,\n ModalPlugin,\n NavPlugin,\n NavbarPlugin,\n PaginationPlugin,\n PaginationNavPlugin,\n PopoverPlugin,\n ProgressPlugin,\n SpinnerPlugin,\n TablePlugin,\n TabsPlugin,\n ToastPlugin,\n TooltipPlugin\n }\n})\n\n// Export named injection plugins\n// These two plugins are not directly included in the above installer, as they are\n// installed via the ModalPlugin and ToastPlugin respectively.\nexport { BVModalPlugin } from './modal/helpers/bv-modal'\nexport { BVToastPlugin } from './toast/helpers/bv-toast'\n\n// Export all individual components and component group plugins as named exports.\n// This is mainly for users who import individual components, directives or plugins.\n//\n// Webpack 4 has optimization difficulties with re-eport of re-exports, so\n// we import the components individulaly here for better tree shaking,\n//\n// Webpack v5 fixes the optimizations with re-export of re-exports so this\n// can be reverted back to `export * from './table'` when Webpack v5 is released.\n// https://github.com/webpack/webpack/pull/9203 (available in Webpack v5.0.0-alpha.15)\n\n// export * from './alert'\nexport { AlertPlugin } from './alert'\nexport { BAlert } from './alert/alert'\n\n// export * from './badge'\nexport { BadgePlugin } from './badge'\nexport { BBadge } from './badge/badge'\n\n// export * from './breadcrumb'\nexport { BreadcrumbPlugin } from './breadcrumb'\nexport { BBreadcrumb } from './breadcrumb/breadcrumb'\nexport { BBreadcrumbItem } from './breadcrumb/breadcrumb-item'\n\n// export * from './button'\nexport { ButtonPlugin } from './button'\nexport { BButton } from './button/button'\nexport { BButtonClose } from './button/button-close'\n\n// export * from './button-group'\nexport { ButtonGroupPlugin } from './button-group'\nexport { BButtonGroup } from './button-group/button-group'\n\n// export * from './button-toolbar'\nexport { ButtonToolbarPlugin } from './button-toolbar'\nexport { BButtonToolbar } from './button-toolbar/button-toolbar'\n\n// export * from './card'\nexport { CardPlugin } from './card'\nexport { BCard } from './card/card'\nexport { BCardBody } from './card/card-body'\nexport { BCardFooter } from './card/card-footer'\nexport { BCardGroup } from './card/card-group'\nexport { BCardHeader } from './card/card-header'\nexport { BCardImg } from './card/card-img'\nexport { BCardImgLazy } from './card/card-img-lazy'\nexport { BCardSubTitle } from './card/card-sub-title'\nexport { BCardText } from './card/card-text'\nexport { BCardTitle } from './card/card-title'\n\n// export * from './carousel'\nexport { CarouselPlugin } from './carousel'\nexport { BCarousel } from './carousel/carousel'\nexport { BCarouselSlide } from './carousel/carousel-slide'\n\n// export * from './collapse'\nexport { CollapsePlugin } from './collapse'\nexport { BCollapse } from './collapse/collapse'\n\n// export * from './dropdown'\nexport { DropdownPlugin } from './dropdown'\nexport { BDropdown } from './dropdown/dropdown'\nexport { BDropdownItem } from './dropdown/dropdown-item'\nexport { BDropdownItemButton } from './dropdown/dropdown-item-button'\nexport { BDropdownDivider } from './dropdown/dropdown-divider'\nexport { BDropdownForm } from './dropdown/dropdown-form'\nexport { BDropdownGroup } from './dropdown/dropdown-group'\nexport { BDropdownHeader } from './dropdown/dropdown-header'\nexport { BDropdownText } from './dropdown/dropdown-text'\n\n// export * from './embed'\nexport { EmbedPlugin } from './embed'\nexport { BEmbed } from './embed/embed'\n\n// export * from './form'\nexport { FormPlugin } from './form'\nexport { BForm } from './form/form'\nexport { BFormDatalist } from './form/form-datalist'\nexport { BFormText } from './form/form-text'\nexport { BFormInvalidFeedback } from './form/form-invalid-feedback'\nexport { BFormValidFeedback } from './form/form-valid-feedback'\n\n// export * from './form-checkbox'\nexport { FormCheckboxPlugin } from './form-checkbox'\nexport { BFormCheckbox } from './form-checkbox/form-checkbox'\nexport { BFormCheckboxGroup } from './form-checkbox/form-checkbox-group'\n\n// export * from './form-file'\nexport { FormFilePlugin } from './form-file'\nexport { BFormFile } from './form-file/form-file'\n\n// export * from './form-group'\nexport { FormGroupPlugin } from './form-group'\nexport { BFormGroup } from './form-group/form-group'\n\n// export * from './form-input'\nexport { FormInputPlugin } from './form-input'\nexport { BFormInput } from './form-input/form-input'\n\n// export * from './form-radio'\nexport { FormRadioPlugin } from './form-radio'\nexport { BFormRadio } from './form-radio/form-radio'\nexport { BFormRadioGroup } from './form-radio/form-radio-group'\n\n// export * from './form-select'\nexport { FormSelectPlugin } from './form-select'\nexport { BFormSelect } from './form-select/form-select'\n\n// export * from './form-textarea'\nexport { FormTextareaPlugin } from './form-textarea'\nexport { BFormTextarea } from './form-textarea/form-textarea'\n\n// export * from './image'\nexport { ImagePlugin } from './image'\nexport { BImg } from './image/img'\nexport { BImgLazy } from './image/img-lazy'\n\n// export * from './input-group'\nexport { InputGroupPlugin } from './input-group'\nexport { BInputGroup } from './input-group/input-group'\nexport { BInputGroupAddon } from './input-group/input-group-addon'\nexport { BInputGroupAppend } from './input-group/input-group-append'\nexport { BInputGroupPrepend } from './input-group/input-group-prepend'\nexport { BInputGroupText } from './input-group/input-group-text'\n\n// export * from './jumbotron'\nexport { JumbotronPlugin } from './jumbotron'\nexport { BJumbotron } from './jumbotron/jumbotron'\n\n// export * from './layout'\nexport { LayoutPlugin } from './layout'\nexport { BContainer } from './layout/container'\nexport { BRow } from './layout/row'\nexport { BCol } from './layout/col'\nexport { BFormRow } from './layout/form-row'\n\n// export * from './link'\nexport { LinkPlugin } from './link'\nexport { BLink } from './link/link'\n\n// export * from './list-group'\nexport { ListGroupPlugin } from './list-group'\nexport { BListGroup } from './list-group/list-group'\nexport { BListGroupItem } from './list-group/list-group-item'\n\n// export * from './media'\nexport { MediaPlugin } from './media'\nexport { BMedia } from './media/media'\nexport { BMediaAside } from './media/media-aside'\nexport { BMediaBody } from './media/media-body'\n\n// export * from './modal'\nexport { ModalPlugin } from './modal'\nexport { BModal } from './modal/modal'\n\n// export * from './nav'\nexport { NavPlugin } from './nav'\nexport { BNav } from './nav/nav'\nexport { BNavForm } from './nav/nav-form'\nexport { BNavItem } from './nav/nav-item'\nexport { BNavItemDropdown } from './nav/nav-item-dropdown'\nexport { BNavText } from './nav/nav-text'\n\n// export * from './navbar'\nexport { NavbarPlugin } from './navbar'\nexport { BNavbar } from './navbar/navbar'\nexport { BNavbarBrand } from './navbar/navbar-brand'\nexport { BNavbarNav } from './navbar/navbar-nav'\nexport { BNavbarToggle } from './navbar/navbar-toggle'\n\n// export * from './pagination'\nexport { PaginationPlugin } from './pagination'\nexport { BPagination } from './pagination/pagination'\n\n// export * from './pagination-nav'\nexport { PaginationNavPlugin } from './pagination-nav'\nexport { BPaginationNav } from './pagination-nav/pagination-nav'\n\n// export * from './popover'\nexport { PopoverPlugin } from './popover'\nexport { BPopover } from './popover/popover'\n\n// export * from './progress'\nexport { ProgressPlugin } from './progress'\nexport { BProgress } from './progress/progress'\nexport { BProgressBar } from './progress/progress-bar'\n\n// export * from './spinner'\nexport { SpinnerPlugin } from './spinner'\nexport { BSpinner } from './spinner/spinner'\n\n// export * from './table'\nexport { TablePlugin } from './table'\nexport { BTable } from './table/table'\nexport { BTableLite } from './table/table-lite'\n\n// export * from './tabs'\nexport { TabsPlugin } from './tabs'\nexport { BTabs } from './tabs/tabs'\nexport { BTab } from './tabs/tab'\n\n// export * from './toast'\nexport { ToastPlugin } from './toast'\nexport { BToast } from './toast/toast'\nexport { BToaster } from './toast/toaster'\n\n// export * from './tooltip'\nexport { TooltipPlugin } from './tooltip'\nexport { BTooltip } from './tooltip/tooltip'\n","import { VBModal } from './modal'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBModalPlugin = /*#__PURE__*/ pluginFactory({\n directives: { VBModal }\n})\n\nexport { VBModalPlugin, VBModal }\n\nexport default VBModalPlugin\n","import { VBPopover } from './popover'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBPopoverPlugin = /*#__PURE__*/ pluginFactory({\n directives: { VBPopover }\n})\n\nexport { VBPopoverPlugin, VBPopover }\n\nexport default VBPopoverPlugin\n","/*\n * ScrollSpy class definition\n */\n\nimport observeDom from '../../utils/observe-dom'\nimport warn from '../../utils/warn'\nimport {\n isElement,\n isVisible,\n closest,\n matches,\n getBCR,\n offset,\n position,\n selectAll,\n select,\n hasClass,\n addClass,\n removeClass,\n getAttr,\n eventOn,\n eventOff\n} from '../../utils/dom'\nimport { isString, isUndefined } from '../../utils/inspect'\n\n/*\n * Constants / Defaults\n */\n\nconst NAME = 'v-b-scrollspy'\nconst ACTIVATE_EVENT = 'bv::scrollspy::activate'\n\nconst Default = {\n element: 'body',\n offset: 10,\n method: 'auto',\n throttle: 75\n}\n\nconst DefaultType = {\n element: '(string|element|component)',\n offset: 'number',\n method: 'string',\n throttle: 'number'\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown, .dropup',\n DROPDOWN_ITEMS: '.dropdown-item',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n// HREFs must end with a hash followed by at least one non-hash character.\n// HREFs in the links are assumed to point to non-external links.\n// Comparison to the current page base URL is not performed!\nconst HREF_REGEX = /^.*(#[^#]+)$/\n\n// Transition Events\nconst TransitionEndEvents = [\n 'webkitTransitionEnd',\n 'transitionend',\n 'otransitionend',\n 'oTransitionEnd'\n]\n\n// Options for events\nconst EventOptions = { passive: true, capture: false }\n\n/*\n * Utility Methods\n */\n\n// Better var type detection\nfunction toType(obj) /* istanbul ignore next: not easy to test */ {\n return {}.toString\n .call(obj)\n .match(/\\s([a-zA-Z]+)/)[1]\n .toLowerCase()\n}\n\n// Check config properties for expected types\nfunction typeCheckConfig(\n componentName,\n config,\n configTypes\n) /* istanbul ignore next: not easy to test */ {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n let valueType = value && isElement(value) ? 'element' : toType(value)\n // handle Vue instances\n valueType = value && value._isVue ? 'component' : valueType\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n /* istanbul ignore next */\n warn(\n `${componentName}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\"`\n )\n }\n }\n }\n}\n\n/*\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n/* istanbul ignore next: not easy to test */\nclass ScrollSpy /* istanbul ignore next: not easy to test */ {\n constructor(element, config, $root) {\n // The element we activate links in\n this.$el = element\n this.$scroller = null\n this.$selector = [Selector.NAV_LINKS, Selector.LIST_ITEMS, Selector.DROPDOWN_ITEMS].join(',')\n this.$offsets = []\n this.$targets = []\n this.$activeTarget = null\n this.$scrollHeight = 0\n this.$resizeTimeout = null\n this.$obs_scroller = null\n this.$obs_targets = null\n this.$root = $root || null\n this.$config = null\n\n this.updateConfig(config)\n }\n\n static get Name() {\n return NAME\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n updateConfig(config, $root) {\n if (this.$scroller) {\n // Just in case out scroll element has changed\n this.unlisten()\n this.$scroller = null\n }\n const cfg = { ...this.constructor.Default, ...config }\n if ($root) {\n this.$root = $root\n }\n typeCheckConfig(this.constructor.Name, cfg, this.constructor.DefaultType)\n this.$config = cfg\n\n if (this.$root) {\n const self = this\n this.$root.$nextTick(() => {\n self.listen()\n })\n } else {\n this.listen()\n }\n }\n\n dispose() {\n this.unlisten()\n clearTimeout(this.$resizeTimeout)\n this.$resizeTimeout = null\n this.$el = null\n this.$config = null\n this.$scroller = null\n this.$selector = null\n this.$offsets = null\n this.$targets = null\n this.$activeTarget = null\n this.$scrollHeight = null\n }\n\n listen() {\n const scroller = this.getScroller()\n if (scroller && scroller.tagName !== 'BODY') {\n eventOn(scroller, 'scroll', this, EventOptions)\n }\n eventOn(window, 'scroll', this, EventOptions)\n eventOn(window, 'resize', this, EventOptions)\n eventOn(window, 'orientationchange', this, EventOptions)\n TransitionEndEvents.forEach(evtName => {\n eventOn(window, evtName, this, EventOptions)\n })\n this.setObservers(true)\n // Schedule a refresh\n this.handleEvent('refresh')\n }\n\n unlisten() {\n const scroller = this.getScroller()\n this.setObservers(false)\n if (scroller && scroller.tagName !== 'BODY') {\n eventOff(scroller, 'scroll', this, EventOptions)\n }\n eventOff(window, 'scroll', this, EventOptions)\n eventOff(window, 'resize', this, EventOptions)\n eventOff(window, 'orientationchange', this, EventOptions)\n TransitionEndEvents.forEach(evtName => {\n eventOff(window, evtName, this, EventOptions)\n })\n }\n\n setObservers(on) {\n // We observe both the scroller for content changes, and the target links\n if (this.$obs_scroller) {\n this.$obs_scroller.disconnect()\n this.$obs_scroller = null\n }\n if (this.$obs_targets) {\n this.$obs_targets.disconnect()\n this.$obs_targets = null\n }\n if (on) {\n this.$obs_targets = observeDom(\n this.$el,\n () => {\n this.handleEvent('mutation')\n },\n {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['href']\n }\n )\n this.$obs_scroller = observeDom(\n this.getScroller(),\n () => {\n this.handleEvent('mutation')\n },\n {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['id', 'style', 'class']\n }\n )\n }\n }\n\n // general event handler\n handleEvent(evt) {\n const type = isString(evt) ? evt : evt.type\n\n const self = this\n function resizeThrottle() {\n if (!self.$resizeTimeout) {\n self.$resizeTimeout = setTimeout(() => {\n self.refresh()\n self.process()\n self.$resizeTimeout = null\n }, self.$config.throttle)\n }\n }\n\n if (type === 'scroll') {\n if (!this.$obs_scroller) {\n // Just in case we are added to the DOM before the scroll target is\n // We re-instantiate our listeners, just in case\n this.listen()\n }\n this.process()\n } else if (/(resize|orientationchange|mutation|refresh)/.test(type)) {\n // Postpone these events by throttle time\n resizeThrottle()\n }\n }\n\n // Refresh the list of target links on the element we are applied to\n refresh() {\n const scroller = this.getScroller()\n if (!scroller) {\n return\n }\n const autoMethod = scroller !== scroller.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET\n const method = this.$config.method === 'auto' ? autoMethod : this.$config.method\n const methodFn = method === OffsetMethod.POSITION ? position : offset\n const offsetBase = method === OffsetMethod.POSITION ? this.getScrollTop() : 0\n\n this.$offsets = []\n this.$targets = []\n\n this.$scrollHeight = this.getScrollHeight()\n\n // Find all the unique link HREFs that we will control\n selectAll(this.$selector, this.$el)\n // Get HREF value\n .map(link => getAttr(link, 'href'))\n // Filter out HREFs that do not match our RegExp\n .filter(href => href && HREF_REGEX.test(href || ''))\n // Find all elements with ID that match HREF hash\n .map(href => {\n // Convert HREF into an ID (including # at beginning)\n const id = href.replace(HREF_REGEX, '$1').trim()\n if (!id) {\n return null\n }\n // Find the element with the ID specified by id\n const el = select(id, scroller)\n if (el && isVisible(el)) {\n return {\n offset: parseInt(methodFn(el).top, 10) + offsetBase,\n target: id\n }\n }\n return null\n })\n .filter(Boolean)\n // Sort them by their offsets (smallest first)\n .sort((a, b) => a.offset - b.offset)\n // record only unique targets/offsets\n .reduce((memo, item) => {\n if (!memo[item.target]) {\n this.$offsets.push(item.offset)\n this.$targets.push(item.target)\n memo[item.target] = true\n }\n return memo\n }, {})\n\n // Return this for easy chaining\n return this\n }\n\n // Handle activating/clearing\n process() {\n const scrollTop = this.getScrollTop() + this.$config.offset\n const scrollHeight = this.getScrollHeight()\n const maxScroll = this.$config.offset + scrollHeight - this.getOffsetHeight()\n\n if (this.$scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this.$targets[this.$targets.length - 1]\n if (this.$activeTarget !== target) {\n this.activate(target)\n }\n return\n }\n\n if (this.$activeTarget && scrollTop < this.$offsets[0] && this.$offsets[0] > 0) {\n this.$activeTarget = null\n this.clear()\n return\n }\n\n for (let i = this.$offsets.length; i--; ) {\n const isActiveTarget =\n this.$activeTarget !== this.$targets[i] &&\n scrollTop >= this.$offsets[i] &&\n (isUndefined(this.$offsets[i + 1]) || scrollTop < this.$offsets[i + 1])\n\n if (isActiveTarget) {\n this.activate(this.$targets[i])\n }\n }\n }\n\n getScroller() {\n if (this.$scroller) {\n return this.$scroller\n }\n let scroller = this.$config.element\n if (!scroller) {\n return null\n } else if (isElement(scroller.$el)) {\n scroller = scroller.$el\n } else if (isString(scroller)) {\n scroller = select(scroller)\n }\n if (!scroller) {\n return null\n }\n this.$scroller = scroller.tagName === 'BODY' ? window : scroller\n return this.$scroller\n }\n\n getScrollTop() {\n const scroller = this.getScroller()\n return scroller === window ? scroller.pageYOffset : scroller.scrollTop\n }\n\n getScrollHeight() {\n return (\n this.getScroller().scrollHeight ||\n Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)\n )\n }\n\n getOffsetHeight() {\n const scroller = this.getScroller()\n return scroller === window ? window.innerHeight : getBCR(scroller).height\n }\n\n activate(target) {\n this.$activeTarget = target\n this.clear()\n\n // Grab the list of target links (<a href=\"{$target}\">)\n const links = selectAll(\n this.$selector\n // Split out the base selectors\n .split(',')\n // Map to a selector that matches links with HREF ending in the ID (including '#')\n .map(selector => `${selector}[href$=\"${target}\"]`)\n // Join back into a single selector string\n .join(','),\n this.$el\n )\n\n links.forEach(link => {\n if (hasClass(link, ClassName.DROPDOWN_ITEM)) {\n // This is a dropdown item, so find the .dropdown-toggle and set it's state\n const dropdown = closest(Selector.DROPDOWN, link)\n if (dropdown) {\n this.setActiveState(select(Selector.DROPDOWN_TOGGLE, dropdown), true)\n }\n // Also set this link's state\n this.setActiveState(link, true)\n } else {\n // Set triggered link as active\n this.setActiveState(link, true)\n if (matches(link.parentElement, Selector.NAV_ITEMS)) {\n // Handle nav-link inside nav-item, and set nav-item active\n this.setActiveState(link.parentElement, true)\n }\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n let el = link\n while (el) {\n el = closest(Selector.NAV_LIST_GROUP, el)\n const sibling = el ? el.previousElementSibling : null\n if (sibling && matches(sibling, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)) {\n this.setActiveState(sibling, true)\n }\n // Handle special case where nav-link is inside a nav-item\n if (sibling && matches(sibling, Selector.NAV_ITEMS)) {\n this.setActiveState(select(Selector.NAV_LINKS, sibling), true)\n // Add active state to nav-item as well\n this.setActiveState(sibling, true)\n }\n }\n }\n })\n\n // Signal event to via $root, passing ID of activated target and reference to array of links\n if (links && links.length > 0 && this.$root) {\n this.$root.$emit(ACTIVATE_EVENT, target, links)\n }\n }\n\n clear() {\n selectAll(`${this.$selector}, ${Selector.NAV_ITEMS}`, this.$el)\n .filter(el => hasClass(el, ClassName.ACTIVE))\n .forEach(el => this.setActiveState(el, false))\n }\n\n setActiveState(el, active) {\n if (!el) {\n return\n }\n if (active) {\n addClass(el, ClassName.ACTIVE)\n } else {\n removeClass(el, ClassName.ACTIVE)\n }\n }\n}\n\nexport default ScrollSpy\n","import ScrollSpy from './scrollspy.class'\nimport { isBrowser } from '../../utils/env'\nimport { keys } from '../../utils/object'\nimport { isNumber, isObject, isString } from '../../utils/inspect'\n\n// Key we use to store our instance\nconst BV_SCROLLSPY = '__BV_ScrollSpy__'\n\n// Build a ScrollSpy config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n/* istanbul ignore next: not easy to test */\nconst parseBindings = bindings => /* istanbul ignore next: not easy to test */ {\n const config = {}\n\n // If argument, assume element ID\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.element = `#${bindings.arg}`\n }\n\n // Process modifiers\n keys(bindings.modifiers).forEach(mod => {\n if (/^\\d+$/.test(mod)) {\n // Offset value\n config.offset = parseInt(mod, 10)\n } else if (/^(auto|position|offset)$/.test(mod)) {\n // Offset method\n config.method = mod\n }\n })\n\n // Process value\n if (isString(bindings.value)) {\n // Value is a CSS ID or selector\n config.element = bindings.value\n } else if (isNumber(bindings.value)) {\n // Value is offset\n config.offset = Math.round(bindings.value)\n } else if (isObject(bindings.value)) {\n // Value is config object\n // Filter the object based on our supported config options\n keys(bindings.value)\n .filter(k => Boolean(ScrollSpy.DefaultType[k]))\n .forEach(k => {\n config[k] = bindings.value[k]\n })\n }\n\n return config\n}\n\n// Add or update ScrollSpy on our element\nconst applyScrollspy = (el, bindings, vnode) => /* istanbul ignore next: not easy to test */ {\n if (!isBrowser) {\n /* istanbul ignore next */\n return\n }\n const config = parseBindings(bindings)\n if (el[BV_SCROLLSPY]) {\n el[BV_SCROLLSPY].updateConfig(config, vnode.context.$root)\n } else {\n el[BV_SCROLLSPY] = new ScrollSpy(el, config, vnode.context.$root)\n }\n}\n\n// Remove ScrollSpy on our element\n/* istanbul ignore next: not easy to test */\nconst removeScrollspy = el => /* istanbul ignore next: not easy to test */ {\n if (el[BV_SCROLLSPY]) {\n el[BV_SCROLLSPY].dispose()\n el[BV_SCROLLSPY] = null\n delete el[BV_SCROLLSPY]\n }\n}\n\n/*\n * Export our directive\n */\nexport const VBScrollspy = {\n bind(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n applyScrollspy(el, bindings, vnode)\n },\n inserted(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n applyScrollspy(el, bindings, vnode)\n },\n update(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n if (bindings.value !== bindings.oldValue) {\n applyScrollspy(el, bindings, vnode)\n }\n },\n componentUpdated(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n if (bindings.value !== bindings.oldValue) {\n applyScrollspy(el, bindings, vnode)\n }\n },\n unbind(el) /* istanbul ignore next: not easy to test */ {\n removeScrollspy(el)\n }\n}\n\nexport default VBScrollspy\n","import { VBScrollspy } from './scrollspy'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBScrollspyPlugin = /*#__PURE__*/ pluginFactory({\n directives: { VBScrollspy }\n})\n\nexport { VBScrollspyPlugin, VBScrollspy }\n\nexport default VBScrollspyPlugin\n","import { VBToggle } from './toggle'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBTogglePlugin = /*#__PURE__*/ pluginFactory({\n directives: { VBToggle }\n})\n\nexport { VBTogglePlugin, VBToggle }\n\nexport default VBTogglePlugin\n","import { VBTooltip } from './tooltip'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBTooltipPlugin = /*#__PURE__*/ pluginFactory({\n directives: { VBTooltip }\n})\n\nexport { VBTooltipPlugin, VBTooltip }\n\nexport default VBTooltipPlugin\n","// Index file used for the main builds, which does not include legacy plugin names\n// Once es/ buld is removed, then this file will be renamed to index.js\nimport { pluginFactory } from '../utils/plugins'\n\nimport { VBModalPlugin } from './modal'\nimport { VBPopoverPlugin } from './popover'\nimport { VBScrollspyPlugin } from './scrollspy'\nimport { VBTogglePlugin } from './toggle'\nimport { VBTooltipPlugin } from './tooltip'\n\n// Main plugin for installing all directive plugins\nexport const directivesPlugin = /*#__PURE__*/ pluginFactory({\n plugins: {\n VBModalPlugin,\n VBPopoverPlugin,\n VBScrollspyPlugin,\n VBTogglePlugin,\n VBTooltipPlugin\n }\n})\n\n// Named exports of all directives (VB<Name>) and Plugins (VB<name>Plugin)\n// See src/compinents/index.esm.js for notes/comment\n\n// export * from './modal'\nexport { VBModalPlugin } from './modal'\nexport { VBModal } from './modal/modal'\n\n// export * from './popover'\nexport { VBPopoverPlugin } from './popover'\nexport { VBPopover } from './popover/popover'\n\n// export * from './scrollspy'\nexport { VBScrollspyPlugin } from './scrollspy'\nexport { VBScrollspy } from './scrollspy/scrollspy'\n\n// export * from './toggle'\nexport { VBTogglePlugin } from './toggle'\nexport { VBToggle } from './toggle/toggle'\n\n// export * from './tooltip'\nexport { VBTooltipPlugin } from './tooltip'\nexport { VBTooltip } from './tooltip/tooltip'\n","//\n// Utility Plugin for setting the configuration\n//\nimport { pluginFactory } from './utils/plugins'\n\nconst BVConfigPlugin = /*#__PURE__*/ pluginFactory()\n\nexport default BVConfigPlugin\n","import { installFactory } from './utils/plugins'\nimport { setConfig } from './utils/config-set'\nimport { componentsPlugin } from './components/index.esm'\nimport { directivesPlugin } from './directives/index.esm'\nimport BVConfigPlugin from './bv-config'\n\n// Named exports of all components and component group plugins\nexport * from './components/index.esm'\n\n// Named exports of all directives and directive group plugins\nexport * from './directives/index.esm'\n\n// BootstrapVue installer\nconst install = /*#__PURE__*/ installFactory({ plugins: { componentsPlugin, directivesPlugin } })\n\n// BootstrapVue plugin\nconst BootstrapVue = /*#__PURE__*/ {\n install: install,\n // To be deprecated. not documented\n setConfig: setConfig\n}\n\n// Named exports for BvConfigPlugin and BootstrapVue\nexport {\n // BV Config Plugin\n BVConfigPlugin,\n // BVConfigPlugin has been documented as BVConfig as well,\n // so we add an alias to the shorter name for backwards compat\n BVConfigPlugin as BVConfig,\n // Main BootstrapVue Plugin\n BootstrapVue,\n // Installer and setConfig exported in case the consumer does not\n // import `default` as the plugin in CommonJS build (or does not\n // have interop enabled for CommonJS). Both the following will work:\n // BootstrapVue = require('bootstrap-vue')\n // BootstrapVue = require('bootstrap-vue').default\n // Vue.use(BootstrapVue)\n install,\n // To be deprecated. not documented\n setConfig\n}\n\n// Default export is the BootstrapVue plugin\nexport default BootstrapVue\n"],"names":["hasWindowSupport","window","hasDocumentSupport","document","hasNavigatorSupport","navigator","hasPromiseSupport","Promise","hasMutationObserverSupport","MutationObserver","WebKitMutationObserver","MozMutationObserver","isBrowser","userAgent","toLowerCase","isJSDOM","indexOf","isIE","test","hasPassiveEventSupport","passiveEventSupported","options","passive","addEventListener","removeEventListener","err","hasTouchSupport","documentElement","maxTouchPoints","hasPointerEventSupport","Boolean","PointerEvent","MSPointerEvent","hasIntersectionObserverSupport","IntersectionObserverEntry","prototype","getEnv","key","fallback","env","process","getNoWarn","warn","message","console","warnNotClient","source","warnNoPromiseSupport","warnNoMutationObserverSupport","defined","toInteger","aFunction","isObject","require$$0","require$$1","require$$2","anObject","toPrimitive","IE8_DOM_DEFINE","dP","createDesc","core","global","has","ctx","hide","cof","IObject","min","toIObject","toLength","toAbsoluteIndex","uid","$keys","enumBugKeys","getKeys","IE_PROTO","PROTOTYPE","dPs","create","descriptor","setToStringTag","toObject","$iterCreate","getPrototypeOf","Iterators","redefine","$export","ITERATOR","$defineProperty","TAG","classof","getIterFn","isArrayIter","createProperty","call","from","Array","fromPolyfill","isArray","isArrayPolyfill","arrayIncludes","array","value","concat","args","apply","gOPS","pIE","assign","Object","assignPolyfill","getOwnPropertyNames","keys","defineProperties","defineProperty","freeze","hasOwnProperty","obj","prop","deepFreeze","props","isPlainObject","toString","omit","filter","reduce","result","readonlyDescriptor","enumerable","configurable","writable","toType","val","toRawType","slice","isUndefined","undefined","isNull","isFunction","isBoolean","isString","isNumber","isDate","Date","isRegExp","cloneDeep","defaultValue","get","path","join","String","replace","steps","split","length","every","step","breakpoints","BAlert","dismissLabel","variant","BBadge","BButton","BButtonClose","textVariant","ariaLabel","BCardSubTitle","subTitleTextVariant","BCarousel","labelPrev","labelNext","labelGotoSlide","labelIndicators","BDropdown","toggleText","splitVariant","BFormFile","browseText","placeholder","dropPlaceholder","BFormText","BImg","blankColor","BImgLazy","BJumbotron","bgVariant","borderVariant","BListGroupItem","BModal","titleTag","size","headerBgVariant","headerBorderVariant","headerTextVariant","headerCloseVariant","bodyBgVariant","bodyTextVariant","footerBgVariant","footerBorderVariant","footerTextVariant","cancelTitle","cancelVariant","okTitle","okVariant","headerCloseLabel","BNavbar","BNavbarToggle","label","BProgress","BProgressBar","BSpinner","BTable","selectedVariant","headVariant","footVariant","BToast","toaster","autoHideDelay","toastClass","headerClass","bodyClass","solid","BToaster","ariaLive","ariaAtomic","role","BTooltip","delay","boundary","boundaryPadding","BPopover","PROP_NAME","BvConfig","$_config","$_cachedBreakpoints","defaults","config","configKeys","cmpName","DEFAULTS","cmpConfig","some","b","setConfig","Vue","OurVue","checkMultipleVue","checkMultipleVueWarned","MULTIPLE_VUE_WARNING","installFactory","components","directives","plugins","install","installed","registerComponents","registerDirectives","registerPlugins","pluginFactory","opts","extend","plugin","use","registerComponent","name","def","component","registerDirective","directive","memoize","fn","cache","argsKey","JSON","stringify","VueProto","getConfigValue","getComponentConfig","getBreakpoints","_getBreakpointsCached","getBreakpointsCached","getBreakpointsUpCached","w","d","elProto","Element","matchesEl","matches","msMatchesSelector","webkitMatchesSelector","closestEl","closest","sel","el","parentElement","parentNode","nodeType","Node","ELEMENT_NODE","requestAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","cb","setTimeout","MutationObs","parseEventOptions","useCapture","eventOn","evtName","handler","eventOff","isElement","isVisible","contains","body","style","display","bcr","getBCR","height","width","isDisabled","disabled","getAttr","hasClass","reflow","offsetHeight","selectAll","selector","root","arrayFrom","querySelectorAll","select","querySelector","parent","child","getById","id","getElementById","addClass","className","classList","add","removeClass","remove","setAttr","attr","setAttribute","removeAttr","removeAttribute","getAttribute","hasAttr","hasAttribute","getBoundingClientRect","getCS","getComputedStyle","offset","_offset","top","left","getClientRects","win","ownerDocument","defaultView","pageYOffset","pageXOffset","position","parentOffset","elStyles","doc","offsetParent","offsetParentStyles","parseFloat","borderTopWidth","borderLeftWidth","marginTop","marginLeft","NO_FADE_PROPS","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","FADE_PROPS","BVTransition","functional","noFade","type","default","mode","transProps","render","h","children","data","listeners","css","mergeData","hasNormalizedSlot","$scopedSlots","$slots","normalizeSlot","scope","slot","methods","vNodes","NAME","slots","scopedSlots","componentData","staticClass","class","attrs","on","click","e","Event","stopPropagation","preventDefault","domProps","innerHTML","parseCountDown","show","parseInt","parseShow","isNumericLike","isNaN","mixins","normalizeSlotMixin","model","event","dismissible","Number","fade","countDownTimerId","countDown","localShow","watch","newVal","clearTimer","$emit","$nextTick","created","mounted","beforeDestroy","dismiss","clearInterval","$alert","$dismissBtn","_uid","AlertPlugin","identity","x","pluckProps","keysToPluck","objToPluck","transformFn","memo","spaces","ANCHOR_TAG","commaRE","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","encode","str","encodeURIComponent","decode","decodeURIComponent","stringifyQueryObj","query","map","results","val2","push","parseQuery","parsed","trim","forEach","param","parts","shift","isRouterLink","tag","computeTag","to","thisOrParent","$router","$nuxt","computeRel","target","rel","computeHref","href","toFallback","hash","charAt","propsFactory","active","append","activeClass","exact","exactActiveClass","routerTag","noPrefetch","clickHandlerFactory","suppliedHandler","onClick","evt","stopImmediatePropagation","currentTarget","__vue__","arguments","$root","BLink","eventType","handlers","tabindex","linkProps","linkPropsFactory","pill","BadgePlugin","stripTagsRegex","stripTags","text","htmlOrText","textContent","html","ariaCurrent","BBreadcrumbLink","suppliedProps","BBreadcrumbItem","items","BBreadcrumb","childNodes","activeDefined","item","idx","BreadcrumbPlugin","btnProps","block","squared","pressed","linkPropKeys","handleFocus","isLink","isToggle","isButton","isNonStandardTag","computeClass","computeLinkProps","computeAttrs","button","link","toggle","nonStdTag","autocomplete","focusin","focusout","ButtonPlugin","BBtn","BBtnClose","vertical","ariaRole","BButtonGroup","ButtonGroupPlugin","BBtnGroup","KEY_CODES","SPACE","ENTER","ESC","LEFT","UP","RIGHT","DOWN","PAGEUP","PAGEDOWN","HOME","END","TAB","SHIFT","CTRL","BACKSPACE","ALT","PAUSE","BREAK","INSERT","INS","DELETE","ITEM_SELECTOR","BButtonToolbar","justify","keyNav","getItems","onFocusin","$el","focusFirst","stop","onKeydown","keyCode","shiftKey","KeyCodes","focusPrev","focusLast","focusNext","setItemFocus","focus","index","reverse","tabIndex","keydown","ButtonToolbarPlugin","BBtnToolbar","upperFirst","toUpperCase","prefixPropName","prefix","lowerFirst","unprefixPropName","copyProps","copied","title","BCardTitle","subTitle","subTitleTag","cardMixin","bind","titleProps","subTitleProps","overlay","BCardBody","cardTitle","cardSubTitle","cardContent","bodyTag","bodyBorderVariant","header","headerHtml","BCardHeader","headerTag","footer","footerHtml","footerClass","BCardFooter","footerTag","src","required","alt","bottom","start","right","end","BCardImg","baseClass","cardImgProps","imgProps","imgSrc","bodyProps","headerProps","footerProps","align","noBody","BCard","imgFirst","content","imgLast","img","unPrefixPropName","imgBottom","imgLeft","imgStart","imgRight","imgEnd","BLANK_TEMPLATE","fluid","fluidGrow","rounded","thumbnail","center","blank","makeBlankImgSrc","color","THROTTLE","EVENT_OPTIONS","capture","blankSrc","blankWidth","blankHeight","throttle","isShown","scrollTimeout","observer","computed","computedSrc","computedBlank","computedWidth","computedHeight","oldVal","setListeners","activated","deactivated","clearTimeout","unobserve","disconnect","winEvts","onScroll","checkView","IntersectionObserver","doShow","rootMargin","threshold","observe","entries","isIntersecting","intersectionRatio","docElement","view","l","t","clientHeight","r","clientWidth","box","lazyProps","imgLazyProps","BCardImgLazy","textTag","BCardText","deck","columns","BCardGroup","CardPlugin","noop","observeDom","callback","obs","mutations","changed","i","mutation","TEXT_NODE","addedNodes","removedNodes","childList","subtree","localId_","safeId","suffix","DIRECTION","next","dirClass","overlayClass","prev","TRANS_DURATION","TOUCH_EVENT_COMPAT_WAIT","SWIPE_THRESHOLD","PointerType","TOUCH","PEN","TransitionEndEvents","WebkitTransition","MozTransition","OTransition","transition","EventOptions","getTransitionEndEvent","idMixin","provide","bvCarousel","interval","indicators","controls","noAnimation","noTouch","noHoverPause","imgWidth","imgHeight","background","isSliding","transitionEndEvent","slides","direction","isPaused","touchStartX","touchDeltaX","setSlide","pause","doSlide","_intervalId","_animationTimeout","_touchTimeout","updateSlides","$refs","inner","attributes","attributeFilter","slide","visibilityState","hidden","len","$once","Math","floor","setInterval","max","restart","activeElement","isCycling","calcDirection","currentSlide","nextSlide","called","onceTransEnd","events","numSlides","n","curIndex","nextIndex","handleClick","handleSwipe","absDeltaX","abs","touchStart","pointerType","clientX","touches","touchMove","touchEnd","ref","rawName","expression","mouseenter","mouseleave","tagName","imgAlt","imgBlank","imgBlankColor","contentVisibleUp","contentTag","caption","captionHtml","captionTag","textHtml","BCarouselSlide","inject","contentClasses","noDrag","dragstart","CarouselPlugin","listenOnRoot","$on","$off","listenOnRootOnce","emitOnRoot","EVENT_STATE","EVENT_ACCORDION","EVENT_STATE_SYNC","EVENT_TOGGLE","EVENT_STATE_REQUEST","BCollapse","listenOnRootMixin","isNav","accordion","visible","transitioning","classObject","collapse","emitState","handleToggleEvt","handleAccordionEvt","setWindowEvents","handleResize","emitSync","updated","method","onEnter","scrollHeight","onAfterEnter","onLeave","onAfterLeave","checkDisplayBlock","restore","isBlock","clickHandler","openedId","enter","afterEnter","leave","afterLeave","compareArrays","a","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","allListenTypes","hover","BVBoundListeners","getTargets","binding","targets","modifiers","bindTargets","vnode","listenTypes","listener","elm","boundListeners","unbindTargets","BV_TOGGLE","BV_TOGGLE_STATE","BV_TOGGLE_CONTROLS","BV_TOGGLE_TARGETS","resetProp","handleTargets","context","handleUpdate","VBToggle","toggleDirectiveHandler","state","componentUpdated","unbind","CollapsePlugin","HTMLElement","BvEvent","eventInit","TypeError","constructor","Defaults","cancelable","nativeEvent","relatedTarget","vueTarget","componentId","defaultPrevented","listenForClickOut","newValue","oldValue","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","isClickOut","clickOutHandler","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","filterVisibles","els","Selector","FORM_CHILD","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","clickOutMixin","focusInMixin","bvDropdown","dropup","dropright","dropleft","noFlip","popperOpts","inNavbar","visibleChangePrevented","toggler","directionClass","bvEvt","menu","emitEvent","focusToggler","showMenu","hideMenu","_popper","whileOpenListen","removePopper","Popper","element","createPopper","focusMenu","getPopperConfig","destroy","placement","popperConfig","flip","enabled","preventOverflow","boundariesElement","open","rootCloseListener","vm","refocus","onEsc","up","focusItem","find","menuClass","toggleTag","toggleClass","noCaret","splitHref","splitTo","dropdownMixin","dropdownClasses","menuClasses","toggleClasses","buttonContent","BDropdownItem","nomalizeSlotMixin","inheritAttrs","closeDropdown","$props","$attrs","BDropdownItemButton","BDropdownHeader","BDropdownDivider","inline","novalidate","validated","BForm","BDropdownForm","formProps","BDropdownText","headerVariant","headerClasses","ariaDescribedby","BDropdownGroup","headerId","adb","ariaDescribedBy","DropdownPlugin","BDd","BDdItem","BDropdownItemBtn","BDdItemButton","BDdItemBtn","BDdHeader","BDdDivider","BDdForm","BDdText","BDdGroup","validator","aspect","BEmbed","EmbedPlugin","valueField","textField","htmlField","disabledField","formOptions","option","BFormDatalist","formOptionsMixin","tooltip","forceShow","BFormInvalidFeedback","BFormValidFeedback","BFormRow","FormPlugin","BDatalist","BFormFeedback","computedState","stateClass","suffixPropName","boolStrNum","strNum","computeBkPtClass","computeBkPt","breakpoint","breakpointPropMap","generateProps","breakpointCol","propMap","breakpointOffset","breakpointOrder","col","order","cols","alignSelf","BCol","hasColClasses","SELECTOR","DEPRECATED_MSG","renderInvalidFeedback","invalidFeedback","invalidFeedbackId","feedbackAriaLive","renderValidFeedback","validFeedback","validFeedbackId","renderHelpText","description","descriptionId","renderLabel","labelFor","isLegend","isHorizontal","labelTag","labelSrOnly","labelId","for","labelColProps","legendClick","labelSize","labelAlignClasses","labelClass","makePropName","BREAKPOINTS","bpLabelColProps","bpLabelAlignProps","horizontal","deprecated","BFormGroup","formStateMixin","bp","labelCols","propVal","bColPropName","classes","hasInvalidFeedback","hasValidFeedback","describedByIds","setInputDescribedBy","inputs","input","ids","isFieldset","FormGroupPlugin","BFormFieldset","looseIndexOf","arr","form","autofocus","handleAutofocus","checked","plain","buttonVariant","ariaLabelledby","localChecked","isGroup","bvGroup","hasFocus","computedLocalChecked","set","isBtnMode","buttons","isPlain","isCustom","isSwitch","isRadio","switches","switch","isInline","isRequired","getName","groupName","getForm","getSize","getState","getButtonVariant","buttonClasses","isChecked","blur","defaultSlot","change","handleChange","isCheck","sizeFormClass","sizeBtnClass","BFormCheckbox","formRadioCheckMixin","formMixin","formSizeMixin","uncheckedValue","indeterminate","setIndeterminate","isArr","BFormRadio","ariaInvalid","stacked","groupClasses","computedAriaInvalid","isRadioGroup","BFormCheckboxGroup","formRadioCheckGroupMixin","bvCheckGroup","FormCheckboxPlugin","BCheckbox","BCheck","BCheckboxGroup","BCheckGroup","BFormRadioGroup","bvRadioGroup","FormRadioPlugin","BRadio","BRadioGroup","readonly","plaintext","formatter","Function","number","lazyFormatter","localValue","stringifyValue","computedClass","getFormatted","force","updateValue","num","onInput","composing","formatted","onChange","onBlur","selectionStart","selectionEnd","selectionDirection","setSelectionRange","setRangeText","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","TYPES","BFormInput","formTextMixin","formSelectionMixin","formValidityMixin","noWheel","list","localType","setWheelStopper","onWheelFocus","onWheelBlur","stopWheel","self","$listeners","FormInputPlugin","BInput","BFormTextarea","rows","maxRows","wrap","noResize","noAutoShrink","dontResize","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","computedMaxRows","oldval","setHeight","computeHeight","$isServer","lineHeight","border","borderBottomWidth","padding","paddingTop","paddingBottom","minHeight","oldHeight","contentRows","ceil","FormTextareaPlugin","BTextarea","custom","formCustomMixin","accept","multiple","directory","noTraverse","noDrop","fileNameFormatter","selectedFile","dragging","selectLabel","files","names","f","file","v","reset","focusHandler","onFileChange","dataTransfer","queue","webkitGetAsEntry","traverseFileTree","all","then","filesArr","setFiles","filesArray","onReset","onDragover","dropEffect","onDragleave","onDrop","resolve","isFile","$path","isDirectory","createReader","readEntries","webkitdirectory","dragover","dragleave","drop","FormFilePlugin","BFile","BFormSelect","selectSize","computedSelectSize","inputClass","selectedVal","o","selected","_value","FormSelectPlugin","BSelect","ImagePlugin","BInputGroupText","commonProps","isText","BInputGroupAddon","BInputGroupPrepend","BInputGroupAppend","prepend","prependHTML","appendHTML","BInputGroup","InputGroupPlugin","BContainer","container","containerFluid","headerLevel","lead","leadHtml","leadTag","JumbotronPlugin","COMMON_ALIGNMENT","noGutters","alignV","alignH","alignContent","BRow","LayoutPlugin","LinkPlugin","flush","BListGroup","actionTags","action","isAction","itemProps","ListGroupPlugin","BMediaBody","verticalAlign","BMediaAside","rightAlign","BMedia","$aside","$default","MediaPlugin","DEFAULT_ZINDEX","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","ModalManager","modals","baseZIndex","scrollbarWidth","isBodyOverflowing","modalCount","modalsAreOpen","newCount","oldCount","getScrollbarWidth","checkScrollbar","setScrollbar","resetScrollbar","updateModals","registerModal","modal","unregisterModal","splice","_isBeingDestroyed","_isDestroyed","resetModal","getBaseZIndex","div","createElement","appendChild","zIndex","removeChild","isTop","innerWidth","_paddingChangedForModal","_marginChangedForModal","actualPadding","paddingRight","calculatedPadding","actualMargin","marginRight","calculatedMargin","BvModalEvent","trigger","BTransporterTargetSingle","abstract","nodes","updatedNodes","destroyed","BTransporterSingle","immediate","unmountTarget","mountTarget","_bv_defaultFn","_bv_target","beforeMount","updateTarget","getContainer","propsData","defaultFn","$destroy","OBSERVER_CONFIG","characterData","EVT_OPTIONS","titleHtml","centered","scrollable","buttonSize","noStacking","noCloseOnBackdrop","noCloseOnEsc","noEnforceFocus","modalClass","dialogClass","contentClass","hideHeader","hideFooter","hideHeaderClose","hideBackdrop","okOnly","okDisabled","cancelDisabled","returnFocus","cancelTitleHtml","okTitleHtml","lazy","busy","static","isHidden","isTransitioning","isShow","isOpening","isClosing","ignoreBackdropClick","isModalOverflowing","return_focus","modalManager","modalClasses","modalStyles","sbWidth","paddingLeft","dialogClasses","bodyClasses","footerClasses","modalOuterStyle","slotScope","ok","onOk","cancel","onCancel","close","onClose","_observer","showHandler","hideHandler","toggleHandler","modalListener","setEnforceFocus","setResizeEvent","updateModel","buildEvent","getActiveElement","showEvt","hideEvt","triggerEl","checkModalOverflow","onBeforeEnter","onBeforeLeave","returnFocusTo","bvModalEvt","onDialogMousedown","onceModalMouseup","onClickOut","preventScroll","scrollTop","makeModal","modalHeader","closeButton","modalFooter","cancelButton","cancelHtml","okHtml","okButton","modalContent","modalDialog","mousedown","beforeEnter","beforeLeave","backdrop","tabTrap","EVENT_SHOW","setRole","VBModal","PROP_NAME_PRIV","BASE_PROPS","modalProps","defaultResolver","propsToSlots","msgBoxContent","filterOptions","BMsgBox","extends","handleDestroy","$parent","$route","unwatch","$watch","asyncMsgBox","resolver","msgBox","reject","resolved","Error","$mount","BvModal","_vm","_root","mixin","BVModalPlugin","ModalPlugin","fill","justified","tabs","pills","small","isNavBar","computeJustifyContent","BNav","nav","BNavItem","linkAttrs","linkClasses","BNavText","BFormProps","BNavForm","BDropdownProps","extraMenuClasses","extraToggleClasses","BNavItemDropdown","NavPlugin","BNavItemDd","BNavDropdown","BNavDd","toggleable","fixed","sticky","print","xs","BNavProps","BNavbarNav","BNavbarBrand","toggleState","handleStateEvt","NavbarPlugin","BNavToggle","range","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","makePageArray","startNum","numPages","sanitizeLimit","limit","sanitizeCurPage","page","onSpaceKey","hideGotoEndButtons","labelFirstPage","firstText","labelPrevPage","prevText","labelNextPage","nextText","labelLastPage","lastText","labelPage","hideEllipsis","ellipsisText","curr","currentPage","localNumPages","localLimit","btnSize","alignment","computedCurrentPage","paginationParams","curPage","showFirstDots","showLastDots","numLinks","pageList","currPage","pages","getButtons","btn","setBtnFocus","focusCurrent","cnt","numberOfPages","isActivePage","pageNum","noCurrPage","makeEndBtn","linkTo","btnSlot","btnText","pageTest","btnContent","ariaControls","makeEllipsis","isLast","makePage","pagination","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","sanitizePerPage","perPage","sanitizeTotalRows","totalRows","BPagination","paginationMixin","PaginationPlugin","baseUrl","useRouter","linkGen","pageGen","noPageDetect","sanitizeNumPages","BPaginationNav","computedValue","setNumPages","guessCurrentPage","getPageInfo","info","makeLink","resolveLink","pathname","search","resolveRoute","route","guess","currRoute","loc","location","currLink","PaginationNavPlugin","CLASS_PREFIX","BS_CLASS_PREFIX_REGEX","RegExp","TRANSITION_DURATION","MODAL_CLOSE_EVENT","MODAL_CLASS","AUTO","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","HoverState","SHOW","OUT","ClassName","FADE","TOOLTIP","TOOLTIP_INNER","ARROW","animation","template","arrowPadding","fallbackPlacement","callbacks","EvtOpts","NEXTID","generateId","ToolTip","$isEnabled","$fadeTimeout","$hoverTimeout","$visibleInterval","$hoverState","$activeTrigger","$popper","$element","$tip","$id","$routeWatcher","$forceHide","forceHide","$doHide","doHide","$doShow","$doDisable","doDisable","$doEnable","doEnable","_noop","updateConfig","updatedConfig","Default","fixTitle","$config","unListen","listen","setWhileOpenListeners","enabledEvt","disabledEvt","isWithActiveTrigger","getTipElement","tip","setContent","isWithContent","addAriaDescribedby","getPlacement","attachment","getAttachment","addAttachmentClass","complete","fixTransition","prevHoverState","shownEvt","transitionOnce","setModalListener","visibleCheck","setRouteWatcher","setOnTouchStartListener","removeAriaDescribedby","hiddenEvt","desc","transEvents","getTransitionEndEvents","fnOnce","scheduleUpdate","compileTemplate","node","firstElementChild","setElementContent","getTitle","allowHtml","innerText","triggers","setRootListener","disable","enable","getOffset","behavior","arrow","onCreate","originalPlacement","handlePopperPlacementChange","onUpdate","arrowOffset","tabClass","match","cls","cleanTipClass","initConfigAnimation","TITLE","CONTENT","PopOver","hasTitle","hasContent","getContent","PLACEMENTS","topleft","topright","righttop","rightbottom","bottomleft","bottomright","lefttop","leftbottom","auto","baseConfig","cont","onShow","shown","onShown","onHide","onHidden","onEnabled","onDisabled","old","onOpen","onDisable","onEnable","_toolpop","_obs_title","_obs_content","createToolpop","setObservers","getConfig","bringItBack","cfg","updatePosition","update","getTarget","toolpopMixin","BV_POPOVER","validTriggers","parseBindings","bindings","arg","mod","selectedTriggers","applyPopover","removePopover","VBPopover","inserted","PopoverPlugin","bvProgress","labelHtml","precision","striped","animated","showProgress","showValue","progressBarClasses","computedVariant","computedStriped","computedAnimated","progressBarStyles","computedMax","computedProgress","p","pow","computedPrecision","round","computedShowProgress","computedShowValue","toFixed","progressHeight","ProgressPlugin","SpinnerPlugin","startCase","$1","$2","IGNORED_FIELD_KEYS","_rowVariant","_cellVariants","_showDetails","EVENT_FILTER","processField","field","normalizeFields","origFields","fields","sample","k","primaryKey","localItems","computedFields","computedFieldsObj","computedItems","paginatedItems","sortedItems","filteredItems","localFilter","sortBy","localSortBy","sortDesc","localSortDesc","apiUrl","newItems","sanitizeRow","row","stringifyObjectValues","sort","stringifyRecordValues","DEPRECATION_MSG","deprecation","filterFunction","isFiltered","localFiltering","hasProvider","noProviderFiltering","filteredCheck","localFilterFn","filterFn","criteria","filterFnFactory","defaultFilterFnFactory","regexp","pattern","lastIndex","stableSort","compareFn","defaultSortCompare","localeCompare","numeric","sortDirection","sortCompare","noSortReset","labelSortAsc","labelSortDesc","labelSortClear","noLocalSorting","noFooterSorting","localSorting","noProviderSorting","isSortable","sortable","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortTheadThClasses","sortTheadThAttrs","headerTitle","ariaLabelSorting","ariaSort","localPaging","noProviderPaging","captionTop","captionClasses","captionId","isStacked","renderCaption","$createElement","$captionSlot","$caption","renderColgroup","$colgroup","filterEvent","control","textSelectionActive","getSelection","containsNode","theadClass","theadTrClass","headClasses","fieldClasses","thClass","headClicked","stopIfBusy","renderThead","makeCell","colIndex","hasHeadClickListener","sortAttrs","sortClass","thStyle","abbr","headerAbbr","fieldScope","column","$cells","th","$trs","tfootTrClass","footClasses","footClone","tfootClass","renderTfoot","tbodyTrClass","tdClasses","cellVariant","dark","getTdValues","tdClass","tdAttrs","isRowHeader","tdAttr","rowClasses","tdValue","defValue","getFormattedValue","tbodyRowKeydown","rowIndex","trs","itemRows","rowClicked","middleMouseRowClicked","rowDblClicked","rowHovered","rowUnhovered","rowContextmenu","renderTbodyRowCell","$scoped","detailsSlot","toggleDetailsFn","$set","unformatted","toggleDetails","detailsShowing","selectedRows","rowSelected","$childNodes","renderTbodyRow","tableStriped","hasRowClickHandler","selectable","$detailsSlot","rowShowDetails","$rows","detailsId","$tds","ariaRowIndex","rowKey","rowId","selectableClasses","selectableRowClasses","selectableAttrs","selectableRowAttrs","refInFor","auxclick","which","contextmenu","dblclick","colspan","trAttrs","$details","tbodyRowMixin","tbodyClass","tbodyTransitionProps","tbodyTransitionHandlers","renderTbody","$busy","renderBusy","renderTopRow","renderEmpty","renderBottomRow","isTransGroup","tbodyProps","tbodyOn","$tbody","showEmpty","emptyText","emptyHtml","emptyFilteredText","emptyFilteredHtml","$empty","computedBusy","localBusy","selectMode","selectedLastRow","selectableTableClasses","isSelecting","selectableTableAttrs","selectableIsMultiSelect","clearSelected","setSelectionHandlers","isRowSelected","base","hasSelection","selectedLastClicked","selectionHandler","ctrlKey","metaKey","providerTriggerContext","_providerUpdate","refresh","_providerSetLocal","bordered","borderless","outlined","responsive","tableClass","isResponsive","responsiveClass","tableClasses","tableAttrs","$thead","$tfoot","$table","itemsMixin","tableRendererMixin","theadMixin","tfootMixin","tbodyMixin","filteringMixin","sortingMixin","captionMixin","colgroupMixin","selectableMixin","emptyMixin","topRowMixin","bottomRowMixin","busyMixin","providerMixin","BTableLite","TablePlugin","navProps","notDisabled","tab","BTabButtonHelper","bvTabs","posInSet","setSize","noKeyNav","handleEvt","localActive","titleLinkClass","activeNavItemClass","titleItemClass","BTabs","card","noNavStyle","navClass","navWrapperClass","activeTabClass","tabIdx","currentTab","registeredTabs","isMounted","navStyle","localNavClass","previousTab","nextTab","updateTabs","registerTab","unregisterTab","getTabs","$children","_isTab","getButtonForTab","updateButton","$forceUpdate","activateTab","deactivateTab","focusButton","emitTabClick","clickTab","firstTab","currentIndex","lastTab","activeTab","fallbackTab","controlledBy","first","last","empty","BTab","buttonId","headHtml","tabClasses","computedNoFade","computedLazy","activate","deactivate","TabsPlugin","DefaultTransition","doRender","dead","staticName","Wormhole","hasTarget","$toaster","$target","PortalTarget","slim","MIN_DURATION","isStatus","appendToast","noAutoHide","noCloseButton","isHiding","timer","dismissStarted","resumeDismiss","bToastClasses","computedDuration","computedToaster","transitionHandlers","ensureToaster","clearDismissTimer","now","setHoverHandler","startDismissTimer","btoast","onPause","onUnPause","passed","onLinkClick","makeToast","$headerContent","$title","$header","$body","$toast","Portal","toastProps","toastContent","BToastPop","toast","BvToast","BVToastPlugin","ToastPlugin","BV_TOOLTIP","applyTooltip","removeTooltip","VBTooltip","TooltipPlugin","componentsPlugin","VBModalPlugin","VBPopoverPlugin","ACTIVATE_EVENT","DefaultType","DROPDOWN_ITEM","ACTIVE","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","HREF_REGEX","typeCheckConfig","componentName","configTypes","property","expectedTypes","valueType","_isVue","ScrollSpy","$scroller","$selector","$offsets","$targets","$activeTarget","$scrollHeight","$resizeTimeout","$obs_scroller","$obs_targets","unlisten","Name","scroller","getScroller","handleEvent","resizeThrottle","autoMethod","methodFn","offsetBase","getScrollTop","getScrollHeight","maxScroll","getOffsetHeight","clear","isActiveTarget","innerHeight","links","dropdown","setActiveState","sibling","previousElementSibling","BV_SCROLLSPY","applyScrollspy","removeScrollspy","dispose","VBScrollspy","VBScrollspyPlugin","VBTogglePlugin","VBTooltipPlugin","directivesPlugin","BVConfigPlugin","BootstrapVue"],"mappings":"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"} |