{"version":3,"file":"js/app.c5db08a1.js","mappings":"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","sources":["webpack://es_web/./src/bootstrap-vue/bootstrap-vue.js","webpack://es_web/./src/App.vue","webpack://es_web/./src/App.vue?8fb8","webpack://es_web/./src/store.js","webpack://es_web/./src/components/Tabs/ProductInfo.vue","webpack://es_web/./src/lib/number.js","webpack://es_web/./src/lib/contractPeriodUnitDic.js","webpack://es_web/./src/components/Tabs/ProductInfo.vue?c1c1","webpack://es_web/./src/components/Tabs/PositionDetails.vue","webpack://es_web/./src/lib/datetime.js","webpack://es_web/./src/lib/string.js","webpack://es_web/./src/lib/Workbook.js","webpack://es_web/./src/components/button/XlsxButton.vue","webpack://es_web/./src/components/button/XlsxButton.vue?a018","webpack://es_web/./src/components/Tabs/PositionDetails.vue?5672","webpack://es_web/./src/components/Tabs/TransactionDetails.vue","webpack://es_web/./src/lib/contractInOutDic.js","webpack://es_web/./src/components/Tabs/TransactionDetails.vue?285f","webpack://es_web/./src/components/mid_site/StaffPanel.vue","webpack://es_web/./src/components/mid_site/StaffPanel.vue?7adb","webpack://es_web/./src/components/mid_site/WhiteListPanel.vue","webpack://es_web/./src/components/mid_site/WhiteListPanel.vue?4d1d","webpack://es_web/./src/components/mid_site/AnnouncementPanel.vue","webpack://es_web/./src/lib/statusCodeDic.js","webpack://es_web/./src/components/mid_site/ITSettingPanel.vue","webpack://es_web/./src/components/mid_site/ITSettingPanel.vue?ae3b","webpack://es_web/./src/components/ESWeb.vue","webpack://es_web/./src/components/mid_site/AnnouncementPanel.vue?5450","webpack://es_web/./src/components/ESWeb.vue?c700","webpack://es_web/./src/components/front_site/Login.vue","webpack://es_web/./src/components/front_site/RecaptchaV2.vue","webpack://es_web/./src/components/front_site/RecaptchaV2.vue?01d5","webpack://es_web/./src/lib/caComponent.js","webpack://es_web/./src/components/front_site/WebCaCert.vue","webpack://es_web/./src/components/front_site/WebCaCert.vue?445c","webpack://es_web/./src/components/front_site/Login.vue?d4e3","webpack://es_web/./src/components/front_site/Mainpage.vue","webpack://es_web/./src/lib/idleLogout.js","webpack://es_web/./src/components/front_site/Mainpage.vue?0115","webpack://es_web/./src/components/mid_site/Mainpage.vue","webpack://es_web/./src/components/mid_site/Mainpage.vue?deed","webpack://es_web/./src/main.js"],"sourcesContent":["/*!\r\n * BootstrapVue 2.23.1\r\n *\r\n * @link https://bootstrap-vue.org\r\n * @source https://github.com/bootstrap-vue/bootstrap-vue\r\n * @copyright (c) 2016-2022 BootstrapVue\r\n * @license MIT\r\n * https://github.com/bootstrap-vue/bootstrap-vue/blob/master/LICENSE\r\n */\r\n\r\n(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('vue')) :\r\n typeof define === 'function' && define.amd ? define(['vue'], factory) :\r\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrapVue = factory(global.Vue));\r\n}(this, (function (Vue) { 'use strict';\r\n\r\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\r\n\r\n var Vue__default = /*#__PURE__*/_interopDefaultLegacy(Vue);\r\n\r\n function ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n enumerableOnly && (symbols = symbols.filter(function (sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\r\n })), keys.push.apply(keys, symbols);\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n function _objectSpread2$3(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\r\n _defineProperty(target, key, source[key]);\r\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\r\n });\r\n }\r\n\r\n return target;\r\n }\r\n\r\n function _typeof$1(obj) {\r\n \"@babel/helpers - typeof\";\r\n\r\n return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\r\n return typeof obj;\r\n } : function (obj) {\r\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n }, _typeof$1(obj);\r\n }\r\n\r\n function _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\");\r\n }\r\n }\r\n\r\n function _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n function _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) _defineProperties(Constructor, staticProps);\r\n Object.defineProperty(Constructor, \"prototype\", {\r\n writable: false\r\n });\r\n return Constructor;\r\n }\r\n\r\n function _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n });\r\n } else {\r\n obj[key] = value;\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n function _inherits(subClass, superClass) {\r\n if (typeof superClass !== \"function\" && superClass !== null) {\r\n throw new TypeError(\"Super expression must either be null or a function\");\r\n }\r\n\r\n Object.defineProperty(subClass, \"prototype\", {\r\n value: Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n }),\r\n writable: false\r\n });\r\n if (superClass) _setPrototypeOf(subClass, superClass);\r\n }\r\n\r\n function _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o);\r\n };\r\n return _getPrototypeOf(o);\r\n }\r\n\r\n function _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\r\n o.__proto__ = p;\r\n return o;\r\n };\r\n\r\n return _setPrototypeOf(o, p);\r\n }\r\n\r\n function _isNativeReflectConstruct() {\r\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\r\n if (Reflect.construct.sham) return false;\r\n if (typeof Proxy === \"function\") return true;\r\n\r\n try {\r\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n function _construct(Parent, args, Class) {\r\n if (_isNativeReflectConstruct()) {\r\n _construct = Reflect.construct;\r\n } else {\r\n _construct = function _construct(Parent, args, Class) {\r\n var a = [null];\r\n a.push.apply(a, args);\r\n var Constructor = Function.bind.apply(Parent, a);\r\n var instance = new Constructor();\r\n if (Class) _setPrototypeOf(instance, Class.prototype);\r\n return instance;\r\n };\r\n }\r\n\r\n return _construct.apply(null, arguments);\r\n }\r\n\r\n function _isNativeFunction(fn) {\r\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\r\n }\r\n\r\n function _wrapNativeSuper(Class) {\r\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\r\n\r\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\r\n if (Class === null || !_isNativeFunction(Class)) return Class;\r\n\r\n if (typeof Class !== \"function\") {\r\n throw new TypeError(\"Super expression must either be null or a function\");\r\n }\r\n\r\n if (typeof _cache !== \"undefined\") {\r\n if (_cache.has(Class)) return _cache.get(Class);\r\n\r\n _cache.set(Class, Wrapper);\r\n }\r\n\r\n function Wrapper() {\r\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\r\n }\r\n\r\n Wrapper.prototype = Object.create(Class.prototype, {\r\n constructor: {\r\n value: Wrapper,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n return _setPrototypeOf(Wrapper, Class);\r\n };\r\n\r\n return _wrapNativeSuper(Class);\r\n }\r\n\r\n function _objectWithoutPropertiesLoose(source, excluded) {\r\n if (source == null) return {};\r\n var target = {};\r\n var sourceKeys = Object.keys(source);\r\n var key, i;\r\n\r\n for (i = 0; i < sourceKeys.length; i++) {\r\n key = sourceKeys[i];\r\n if (excluded.indexOf(key) >= 0) continue;\r\n target[key] = source[key];\r\n }\r\n\r\n return target;\r\n }\r\n\r\n function _objectWithoutProperties(source, excluded) {\r\n if (source == null) return {};\r\n\r\n var target = _objectWithoutPropertiesLoose(source, excluded);\r\n\r\n var key, i;\r\n\r\n if (Object.getOwnPropertySymbols) {\r\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\r\n\r\n for (i = 0; i < sourceSymbolKeys.length; i++) {\r\n key = sourceSymbolKeys[i];\r\n if (excluded.indexOf(key) >= 0) continue;\r\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\r\n target[key] = source[key];\r\n }\r\n }\r\n\r\n return target;\r\n }\r\n\r\n function _assertThisInitialized(self) {\r\n if (self === void 0) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\r\n }\r\n\r\n return self;\r\n }\r\n\r\n function _possibleConstructorReturn(self, call) {\r\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\r\n return call;\r\n } else if (call !== void 0) {\r\n throw new TypeError(\"Derived constructors may only return object or undefined\");\r\n }\r\n\r\n return _assertThisInitialized(self);\r\n }\r\n\r\n function _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n\r\n return function _createSuperInternal() {\r\n var Super = _getPrototypeOf(Derived),\r\n result;\r\n\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n\r\n result = Reflect.construct(Super, arguments, NewTarget);\r\n } else {\r\n result = Super.apply(this, arguments);\r\n }\r\n\r\n return _possibleConstructorReturn(this, result);\r\n };\r\n }\r\n\r\n function _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (object === null) break;\r\n }\r\n\r\n return object;\r\n }\r\n\r\n function _get() {\r\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\r\n _get = Reflect.get;\r\n } else {\r\n _get = function _get(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n\r\n if (!base) return;\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n\r\n if (desc.get) {\r\n return desc.get.call(arguments.length < 3 ? target : receiver);\r\n }\r\n\r\n return desc.value;\r\n };\r\n }\r\n\r\n return _get.apply(this, arguments);\r\n }\r\n\r\n function _slicedToArray(arr, i) {\r\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\r\n }\r\n\r\n function _toConsumableArray$1(arr) {\r\n return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread$1();\r\n }\r\n\r\n function _arrayWithoutHoles$1(arr) {\r\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\r\n }\r\n\r\n function _arrayWithHoles(arr) {\r\n if (Array.isArray(arr)) return arr;\r\n }\r\n\r\n function _iterableToArray$1(iter) {\r\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\r\n }\r\n\r\n function _iterableToArrayLimit(arr, i) {\r\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\r\n\r\n if (_i == null) return;\r\n var _arr = [];\r\n var _n = true;\r\n var _d = false;\r\n\r\n var _s, _e;\r\n\r\n try {\r\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\r\n _arr.push(_s.value);\r\n\r\n if (i && _arr.length === i) break;\r\n }\r\n } catch (err) {\r\n _d = true;\r\n _e = err;\r\n } finally {\r\n try {\r\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\r\n } finally {\r\n if (_d) throw _e;\r\n }\r\n }\r\n\r\n return _arr;\r\n }\r\n\r\n function _unsupportedIterableToArray(o, minLen) {\r\n if (!o) return;\r\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\r\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\r\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\r\n }\r\n\r\n function _arrayLikeToArray(arr, len) {\r\n if (len == null || len > arr.length) len = arr.length;\r\n\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\r\n\r\n return arr2;\r\n }\r\n\r\n function _nonIterableSpread$1() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\r\n }\r\n\r\n function _nonIterableRest() {\r\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\r\n }\r\n\r\n var e=function(){return (e=Object.assign||function(e){for(var t,r=1,s=arguments.length;r 0;\r\n /msie|trident/.test(USER_AGENT); // Determine if the browser supports the option passive for events\r\n\r\n var HAS_PASSIVE_EVENT_SUPPORT = function () {\r\n var passiveEventSupported = false;\r\n\r\n if (IS_BROWSER) {\r\n try {\r\n var options = {\r\n // This function will be called when the browser\r\n // attempts to access the passive property\r\n get passive() {\r\n /* istanbul ignore next: will never be called in JSDOM */\r\n passiveEventSupported = true;\r\n }\r\n\r\n };\r\n WINDOW.addEventListener('test', options, options);\r\n WINDOW.removeEventListener('test', options, options);\r\n } catch (_unused) {\r\n /* istanbul ignore next: will never be called in JSDOM */\r\n passiveEventSupported = false;\r\n }\r\n }\r\n\r\n return passiveEventSupported;\r\n }();\r\n var HAS_TOUCH_SUPPORT = IS_BROWSER && ('ontouchstart' in DOCUMENT.documentElement || NAVIGATOR.maxTouchPoints > 0);\r\n var HAS_POINTER_EVENT_SUPPORT = IS_BROWSER && Boolean(WINDOW.PointerEvent || WINDOW.MSPointerEvent);\r\n /* istanbul ignore next: JSDOM only checks for 'IntersectionObserver' */\r\n\r\n var HAS_INTERACTION_OBSERVER_SUPPORT = IS_BROWSER && 'IntersectionObserver' in WINDOW && 'IntersectionObserverEntry' in WINDOW && // Edge 15 and UC Browser lack support for `isIntersecting`\r\n // but we an use `intersectionRatio > 0` instead\r\n // 'isIntersecting' in window.IntersectionObserverEntry.prototype &&\r\n 'intersectionRatio' in WINDOW.IntersectionObserverEntry.prototype;\r\n\r\n var NAME$2 = 'BvConfig';\r\n var PROP_NAME$2 = '$bvConfig';\r\n var DEFAULT_BREAKPOINT = ['xs', 'sm', 'md', 'lg', 'xl'];\r\n\r\n // --- General ---\r\n var RX_ARRAY_NOTATION = /\\[(\\d+)]/g;\r\n var RX_BV_PREFIX = /^(BV?)/;\r\n var RX_DIGITS = /^\\d+$/;\r\n var RX_EXTENSION = /^\\..+/;\r\n var RX_HASH = /^#/;\r\n var RX_HASH_ID = /^#[A-Za-z]+[\\w\\-:.]*$/;\r\n var RX_HTML_TAGS = /(<([^>]+)>)/gi;\r\n var RX_HYPHENATE = /\\B([A-Z])/g;\r\n var RX_LOWER_UPPER = /([a-z])([A-Z])/g;\r\n var RX_NUMBER = /^[0-9]*\\.?[0-9]+$/;\r\n var RX_PLUS = /\\+/g;\r\n var RX_REGEXP_REPLACE = /[-/\\\\^$*+?.()|[\\]{}]/g;\r\n var RX_SPACES = /[\\s\\uFEFF\\xA0]+/g;\r\n var RX_SPACE_SPLIT = /\\s+/;\r\n var RX_STAR = /\\/\\*$/;\r\n var RX_START_SPACE_WORD = /(\\s|^)(\\w)/g;\r\n var RX_TRIM_LEFT = /^\\s+/;\r\n var RX_UNDERSCORE = /_/g;\r\n var RX_UN_KEBAB = /-(\\w)/g; // --- Date ---\r\n // Loose YYYY-MM-DD matching, ignores any appended time inforation\r\n // Matches '1999-12-20', '1999-1-1', '1999-01-20T22:51:49.118Z', '1999-01-02 13:00:00'\r\n\r\n var RX_DATE = /^\\d+-\\d\\d?-\\d\\d?(?:\\s|T|$)/; // Used to split off the date parts of the YYYY-MM-DD string\r\n\r\n var RX_DATE_SPLIT = /-|\\s|T/; // Time string RegEx (optional seconds)\r\n\r\n var RX_TIME = /^([0-1]?[0-9]|2[0-3]):[0-5]?[0-9](:[0-5]?[0-9])?$/; // --- URL ---\r\n // HREFs must end with a hash followed by at least one non-hash character\r\n\r\n var RX_HREF = /^.*(#[^#]+)$/;\r\n var RX_ENCODED_COMMA = /%2C/g;\r\n var RX_ENCODE_REVERSE = /[!'()*]/g;\r\n var RX_QUERY_START = /^(\\?|#|&)/; // --- Aspect ---\r\n\r\n var RX_ASPECT = /^\\d+(\\.\\d*)?[/:]\\d+(\\.\\d*)?$/;\r\n var RX_ASPECT_SEPARATOR = /[/:]/; // --- Grid ---\r\n\r\n var RX_COL_CLASS = /^col-/; // --- Icon ---\r\n\r\n var RX_ICON_PREFIX = /^BIcon/; // --- Locale ---\r\n\r\n var RX_STRIP_LOCALE_MODS = /-u-.+/;\r\n\r\n /* istanbul ignore next */\r\n\r\n var Element = HAS_WINDOW_SUPPORT ? WINDOW.Element : /*#__PURE__*/function (_Object) {\r\n _inherits(Element, _Object);\r\n\r\n var _super = _createSuper(Element);\r\n\r\n function Element() {\r\n _classCallCheck(this, Element);\r\n\r\n return _super.apply(this, arguments);\r\n }\r\n\r\n return Element;\r\n }( /*#__PURE__*/_wrapNativeSuper(Object));\r\n /* istanbul ignore next */\r\n\r\n var HTMLElement = HAS_WINDOW_SUPPORT ? WINDOW.HTMLElement : /*#__PURE__*/function (_Element) {\r\n _inherits(HTMLElement, _Element);\r\n\r\n var _super2 = _createSuper(HTMLElement);\r\n\r\n function HTMLElement() {\r\n _classCallCheck(this, HTMLElement);\r\n\r\n return _super2.apply(this, arguments);\r\n }\r\n\r\n return HTMLElement;\r\n }(Element);\r\n /* istanbul ignore next */\r\n\r\n var SVGElement = HAS_WINDOW_SUPPORT ? WINDOW.SVGElement : /*#__PURE__*/function (_Element2) {\r\n _inherits(SVGElement, _Element2);\r\n\r\n var _super3 = _createSuper(SVGElement);\r\n\r\n function SVGElement() {\r\n _classCallCheck(this, SVGElement);\r\n\r\n return _super3.apply(this, arguments);\r\n }\r\n\r\n return SVGElement;\r\n }(Element);\r\n /* istanbul ignore next */\r\n\r\n var File = HAS_WINDOW_SUPPORT ? WINDOW.File : /*#__PURE__*/function (_Object2) {\r\n _inherits(File, _Object2);\r\n\r\n var _super4 = _createSuper(File);\r\n\r\n function File() {\r\n _classCallCheck(this, File);\r\n\r\n return _super4.apply(this, arguments);\r\n }\r\n\r\n return File;\r\n }( /*#__PURE__*/_wrapNativeSuper(Object));\r\n\r\n var toType$1 = function toType(value) {\r\n return _typeof$1(value);\r\n };\r\n var toRawType = function toRawType(value) {\r\n return Object.prototype.toString.call(value).slice(8, -1);\r\n };\r\n var isUndefined = function isUndefined(value) {\r\n return value === undefined;\r\n };\r\n var isNull = function isNull(value) {\r\n return value === null;\r\n };\r\n var isUndefinedOrNull = function isUndefinedOrNull(value) {\r\n return isUndefined(value) || isNull(value);\r\n };\r\n var isFunction$1 = function isFunction(value) {\r\n return toType$1(value) === 'function';\r\n };\r\n var isBoolean = function isBoolean(value) {\r\n return toType$1(value) === 'boolean';\r\n };\r\n var isString = function isString(value) {\r\n return toType$1(value) === 'string';\r\n };\r\n var isNumber = function isNumber(value) {\r\n return toType$1(value) === 'number';\r\n };\r\n var isNumeric$1 = function isNumeric(value) {\r\n return RX_NUMBER.test(String(value));\r\n };\r\n var isArray = function isArray(value) {\r\n return Array.isArray(value);\r\n }; // Quick object check\r\n // This is primarily used to tell Objects from primitive values\r\n // when we know the value is a JSON-compliant type\r\n // Note object could be a complex type like array, Date, etc.\r\n\r\n var isObject = function isObject(obj) {\r\n return obj !== null && _typeof$1(obj) === 'object';\r\n }; // Strict object type check\r\n // Only returns true for plain JavaScript objects\r\n\r\n var isPlainObject = function isPlainObject(obj) {\r\n return Object.prototype.toString.call(obj) === '[object Object]';\r\n };\r\n var isDate = function isDate(value) {\r\n return value instanceof Date;\r\n };\r\n var isEvent = function isEvent(value) {\r\n return value instanceof Event;\r\n };\r\n var isFile = function isFile(value) {\r\n return value instanceof File;\r\n };\r\n var isRegExp = function isRegExp(value) {\r\n return toRawType(value) === 'RegExp';\r\n };\r\n var isPromise = function isPromise(value) {\r\n return !isUndefinedOrNull(value) && isFunction$1(value.then) && isFunction$1(value.catch);\r\n };\r\n\r\n var assign = function assign() {\r\n return Object.assign.apply(Object, arguments);\r\n };\r\n var create = function create(proto, optionalProps) {\r\n return Object.create(proto, optionalProps);\r\n };\r\n var defineProperties = function defineProperties(obj, props) {\r\n return Object.defineProperties(obj, props);\r\n };\r\n var defineProperty$1 = function defineProperty(obj, prop, descriptor) {\r\n return Object.defineProperty(obj, prop, descriptor);\r\n };\r\n var getOwnPropertyNames = function getOwnPropertyNames(obj) {\r\n return Object.getOwnPropertyNames(obj);\r\n };\r\n var keys = function keys(obj) {\r\n return Object.keys(obj);\r\n }; // --- \"Instance\" ---\r\n\r\n var hasOwnProperty = function hasOwnProperty(obj, prop) {\r\n return Object.prototype.hasOwnProperty.call(obj, prop);\r\n };\r\n var toString$1 = function toString(obj) {\r\n return Object.prototype.toString.call(obj);\r\n }; // --- Utilities ---\r\n // Shallow copy an object\r\n\r\n var clone = function clone(obj) {\r\n return _objectSpread2$3({}, obj);\r\n }; // Return a shallow copy of object with the specified properties only\r\n // See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\r\n\r\n var pick$1 = function pick(obj, props) {\r\n return keys(obj).filter(function (key) {\r\n return props.indexOf(key) !== -1;\r\n }).reduce(function (result, key) {\r\n return _objectSpread2$3(_objectSpread2$3({}, result), {}, _defineProperty({}, key, obj[key]));\r\n }, {});\r\n }; // Return a shallow copy of object with the specified properties omitted\r\n // See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\r\n\r\n var omit = function omit(obj, props) {\r\n return keys(obj).filter(function (key) {\r\n return props.indexOf(key) === -1;\r\n }).reduce(function (result, key) {\r\n return _objectSpread2$3(_objectSpread2$3({}, result), {}, _defineProperty({}, key, obj[key]));\r\n }, {});\r\n }; // Merges two object deeply together\r\n // See: https://gist.github.com/Salakar/1d7137de9cb8b704e48a\r\n\r\n var mergeDeep = function mergeDeep(target, source) {\r\n if (isObject(target) && isObject(source)) {\r\n keys(source).forEach(function (key) {\r\n if (isObject(source[key])) {\r\n if (!target[key] || !isObject(target[key])) {\r\n target[key] = source[key];\r\n }\r\n\r\n mergeDeep(target[key], source[key]);\r\n } else {\r\n assign(target, _defineProperty({}, key, source[key]));\r\n }\r\n });\r\n }\r\n\r\n return target;\r\n }; // Returns a shallow copy of the object with keys in sorted order\r\n\r\n var sortKeys = function sortKeys(obj) {\r\n return keys(obj).sort().reduce(function (result, key) {\r\n return _objectSpread2$3(_objectSpread2$3({}, result), {}, _defineProperty({}, key, obj[key]));\r\n }, {});\r\n }; // Convenience method to create a read-only descriptor\r\n\r\n var readonlyDescriptor = function readonlyDescriptor() {\r\n return {\r\n enumerable: true,\r\n configurable: false,\r\n writable: false\r\n };\r\n };\r\n\r\n var cloneDeep = function cloneDeep(obj) {\r\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : obj;\r\n\r\n if (isArray(obj)) {\r\n return obj.reduce(function (result, val) {\r\n return [].concat(_toConsumableArray$1(result), [cloneDeep(val, val)]);\r\n }, []);\r\n }\r\n\r\n if (isPlainObject(obj)) {\r\n return keys(obj).reduce(function (result, key) {\r\n return _objectSpread2$3(_objectSpread2$3({}, result), {}, _defineProperty({}, key, cloneDeep(obj[key], obj[key])));\r\n }, {});\r\n }\r\n\r\n return defaultValue;\r\n };\r\n\r\n var identity = function identity(x) {\r\n return x;\r\n };\r\n\r\n /**\r\n * Get property defined by dot/array notation in string, returns undefined if not found\r\n *\r\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\r\n *\r\n * @param {Object} obj\r\n * @param {string|Array} path\r\n * @return {*}\r\n */\r\n\r\n var getRaw = function getRaw(obj, path) {\r\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\r\n // Handle array of path values\r\n path = isArray(path) ? path.join('.') : path; // If no path or no object passed\r\n\r\n if (!path || !isObject(obj)) {\r\n return defaultValue;\r\n } // Handle edge case where user has dot(s) in top-level item field key\r\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\r\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\r\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\r\n\r\n\r\n if (path in obj) {\r\n return obj[path];\r\n } // Handle string array notation (numeric indices only)\r\n\r\n\r\n path = String(path).replace(RX_ARRAY_NOTATION, '.$1');\r\n var steps = path.split('.').filter(identity); // Handle case where someone passes a string of only dots\r\n\r\n if (steps.length === 0) {\r\n return defaultValue;\r\n } // Traverse path in object to find result\r\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\r\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\r\n\r\n\r\n return steps.every(function (step) {\r\n return isObject(obj) && step in obj && !isUndefinedOrNull(obj = obj[step]);\r\n }) ? obj : isNull(obj) ? null : defaultValue;\r\n };\r\n /**\r\n * Get property defined by dot/array notation in string.\r\n *\r\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\r\n *\r\n * @param {Object} obj\r\n * @param {string|Array} path\r\n * @param {*} defaultValue (optional)\r\n * @return {*}\r\n */\r\n\r\n var get = function get(obj, path) {\r\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\r\n var value = getRaw(obj, path);\r\n return isUndefinedOrNull(value) ? defaultValue : value;\r\n };\r\n\r\n /**\r\n * Utilities to get information about the current environment\r\n */\r\n var getEnv = function getEnv(key) {\r\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\r\n var env = typeof process !== 'undefined' && process ? process.env || {} : {};\r\n\r\n if (!key) {\r\n /* istanbul ignore next */\r\n return env;\r\n }\r\n\r\n return env[key] || fallback;\r\n };\r\n var getNoWarn = function getNoWarn() {\r\n return getEnv('BOOTSTRAP_VUE_NO_WARN') || getEnv('NODE_ENV') === 'production';\r\n };\r\n\r\n /**\r\n * Log a warning message to the console with BootstrapVue formatting\r\n * @param {string} message\r\n */\r\n\r\n var warn = function warn(message)\r\n /* istanbul ignore next */\r\n {\r\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\r\n\r\n if (!getNoWarn()) {\r\n console.warn(\"[BootstrapVue warn]: \".concat(source ? \"\".concat(source, \" - \") : '').concat(message));\r\n }\r\n };\r\n /**\r\n * Warn when no Promise support is given\r\n * @param {string} source\r\n * @returns {boolean} warned\r\n */\r\n\r\n var warnNotClient = function warnNotClient(source) {\r\n /* istanbul ignore else */\r\n if (IS_BROWSER) {\r\n return false;\r\n } else {\r\n warn(\"\".concat(source, \": Can not be called during SSR.\"));\r\n return true;\r\n }\r\n };\r\n /**\r\n * Warn when no Promise support is given\r\n * @param {string} source\r\n * @returns {boolean} warned\r\n */\r\n\r\n var warnNoPromiseSupport = function warnNoPromiseSupport(source) {\r\n /* istanbul ignore else */\r\n if (HAS_PROMISE_SUPPORT) {\r\n return false;\r\n } else {\r\n warn(\"\".concat(source, \": Requires Promise support.\"));\r\n return true;\r\n }\r\n };\r\n /**\r\n * Warn when no MutationObserver support is given\r\n * @param {string} source\r\n * @returns {boolean} warned\r\n */\r\n\r\n var warnNoMutationObserverSupport = function warnNoMutationObserverSupport(source) {\r\n /* istanbul ignore else */\r\n if (HAS_MUTATION_OBSERVER_SUPPORT) {\r\n return false;\r\n } else {\r\n warn(\"\".concat(source, \": Requires MutationObserver support.\"));\r\n return true;\r\n }\r\n };\r\n\r\n var BvConfig = /*#__PURE__*/function () {\r\n function BvConfig() {\r\n _classCallCheck(this, BvConfig);\r\n\r\n this.$_config = {};\r\n } // Method to merge in user config parameters\r\n\r\n\r\n _createClass(BvConfig, [{\r\n key: \"setConfig\",\r\n value: function setConfig() {\r\n var _this = this;\r\n\r\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n\r\n /* istanbul ignore next */\r\n if (!isPlainObject(config)) {\r\n return;\r\n }\r\n\r\n var configKeys = getOwnPropertyNames(config);\r\n configKeys.forEach(function (key) {\r\n /* istanbul ignore next */\r\n var subConfig = config[key];\r\n\r\n if (key === 'breakpoints') {\r\n /* istanbul ignore if */\r\n if (!isArray(subConfig) || subConfig.length < 2 || subConfig.some(function (b) {\r\n return !isString(b) || b.length === 0;\r\n })) {\r\n warn('\"breakpoints\" must be an array of at least 2 breakpoint names', NAME$2);\r\n } else {\r\n _this.$_config[key] = cloneDeep(subConfig);\r\n }\r\n } else if (isPlainObject(subConfig)) {\r\n // Component prop defaults\r\n _this.$_config[key] = getOwnPropertyNames(subConfig).reduce(function (config, prop) {\r\n if (!isUndefined(subConfig[prop])) {\r\n config[prop] = cloneDeep(subConfig[prop]);\r\n }\r\n\r\n return config;\r\n }, _this.$_config[key] || {});\r\n }\r\n });\r\n } // Clear the config\r\n\r\n }, {\r\n key: \"resetConfig\",\r\n value: function resetConfig() {\r\n this.$_config = {};\r\n } // Returns a deep copy of the user config\r\n\r\n }, {\r\n key: \"getConfig\",\r\n value: function getConfig() {\r\n return cloneDeep(this.$_config);\r\n } // Returns a deep copy of the config value\r\n\r\n }, {\r\n key: \"getConfigValue\",\r\n value: function getConfigValue(key) {\r\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\r\n return cloneDeep(getRaw(this.$_config, key, defaultValue));\r\n }\r\n }]);\r\n\r\n return BvConfig;\r\n }(); // Method for applying a global config\r\n\r\n\r\n var setConfig = function setConfig() {\r\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n var Vue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Vue__default['default'];\r\n // Ensure we have a `$bvConfig` Object on the Vue prototype\r\n // We set on Vue and OurVue just in case consumer has not set an alias of `vue`\r\n Vue.prototype[PROP_NAME$2] = Vue__default['default'].prototype[PROP_NAME$2] = Vue.prototype[PROP_NAME$2] || Vue__default['default'].prototype[PROP_NAME$2] || new BvConfig(); // Apply the config values\r\n\r\n Vue.prototype[PROP_NAME$2].setConfig(config);\r\n }; // Method for resetting the user config\r\n\r\n /**\r\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\r\n * @param {object} Vue\r\n */\r\n\r\n var checkMultipleVue = function () {\r\n var checkMultipleVueWarned = false;\r\n var MULTIPLE_VUE_WARNING = ['Multiple instances of Vue detected!', 'You may need to set up an alias for Vue in your bundler config.', 'See: https://bootstrap-vue.org/docs#using-module-bundlers'].join('\\n');\r\n return function (Vue) {\r\n /* istanbul ignore next */\r\n if (!checkMultipleVueWarned && Vue__default['default'] !== Vue && !IS_JSDOM) {\r\n warn(MULTIPLE_VUE_WARNING);\r\n }\r\n\r\n checkMultipleVueWarned = true;\r\n };\r\n }();\r\n /**\r\n * Plugin install factory function.\r\n * @param {object} { components, directives }\r\n * @returns {function} plugin install function\r\n */\r\n\r\n var installFactory = function installFactory() {\r\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\r\n components = _ref.components,\r\n directives = _ref.directives,\r\n plugins = _ref.plugins;\r\n\r\n var install = function install(Vue) {\r\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\r\n if (install.installed) {\r\n /* istanbul ignore next */\r\n return;\r\n }\r\n\r\n install.installed = true;\r\n checkMultipleVue(Vue);\r\n setConfig(config, Vue);\r\n registerComponents(Vue, components);\r\n registerDirectives(Vue, directives);\r\n registerPlugins(Vue, plugins);\r\n };\r\n\r\n install.installed = false;\r\n return install;\r\n };\r\n /**\r\n * Plugin object factory function.\r\n * @param {object} { components, directives, plugins }\r\n * @returns {object} plugin install object\r\n */\r\n\r\n var pluginFactory = function pluginFactory() {\r\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n return _objectSpread2$3(_objectSpread2$3({}, extend), {}, {\r\n install: installFactory(options)\r\n });\r\n };\r\n /**\r\n * Load a group of plugins.\r\n * @param {object} Vue\r\n * @param {object} Plugin definitions\r\n */\r\n\r\n var registerPlugins = function registerPlugins(Vue) {\r\n var plugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\r\n for (var plugin in plugins) {\r\n if (plugin && plugins[plugin]) {\r\n Vue.use(plugins[plugin]);\r\n }\r\n }\r\n };\r\n /**\r\n * Load a component.\r\n * @param {object} Vue\r\n * @param {string} Component name\r\n * @param {object} Component definition\r\n */\r\n\r\n var registerComponent = function registerComponent(Vue, name, def) {\r\n if (Vue && name && def) {\r\n Vue.component(name, def);\r\n }\r\n };\r\n /**\r\n * Load a group of components.\r\n * @param {object} Vue\r\n * @param {object} Object of component definitions\r\n */\r\n\r\n var registerComponents = function registerComponents(Vue) {\r\n var components = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\r\n for (var component in components) {\r\n registerComponent(Vue, component, components[component]);\r\n }\r\n };\r\n /**\r\n * Load a directive.\r\n * @param {object} Vue\r\n * @param {string} Directive name\r\n * @param {object} Directive definition\r\n */\r\n\r\n var registerDirective = function registerDirective(Vue, name, def) {\r\n if (Vue && name && def) {\r\n // Ensure that any leading V is removed from the\r\n // name, as Vue adds it automatically\r\n Vue.directive(name.replace(/^VB/, 'B'), def);\r\n }\r\n };\r\n /**\r\n * Load a group of directives.\r\n * @param {object} Vue\r\n * @param {object} Object of directive definitions\r\n */\r\n\r\n var registerDirectives = function registerDirectives(Vue) {\r\n var directives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\r\n for (var directive in directives) {\r\n registerDirective(Vue, directive, directives[directive]);\r\n }\r\n };\r\n /**\r\n * Install plugin if window.Vue available\r\n * @param {object} Plugin definition\r\n */\r\n\r\n var vueUse = function vueUse(VuePlugin) {\r\n /* istanbul ignore next */\r\n if (HAS_WINDOW_SUPPORT && window.Vue) {\r\n window.Vue.use(VuePlugin);\r\n }\r\n /* istanbul ignore next */\r\n\r\n\r\n if (HAS_WINDOW_SUPPORT && VuePlugin.NAME) {\r\n window[VuePlugin.NAME] = VuePlugin;\r\n }\r\n };\r\n\r\n // Component names\r\n var NAME_ALERT = 'BAlert';\r\n var NAME_ASPECT = 'BAspect';\r\n var NAME_AVATAR = 'BAvatar';\r\n var NAME_AVATAR_GROUP = 'BAvatarGroup';\r\n var NAME_BADGE = 'BBadge';\r\n var NAME_BREADCRUMB = 'BBreadcrumb';\r\n var NAME_BREADCRUMB_ITEM = 'BBreadcrumbItem';\r\n var NAME_BREADCRUMB_LINK = 'BBreadcrumbLink';\r\n var NAME_BUTTON = 'BButton';\r\n var NAME_BUTTON_CLOSE = 'BButtonClose';\r\n var NAME_BUTTON_GROUP = 'BButtonGroup';\r\n var NAME_BUTTON_TOOLBAR = 'BButtonToolbar';\r\n var NAME_CALENDAR = 'BCalendar';\r\n var NAME_CARD = 'BCard';\r\n var NAME_CARD_BODY = 'BCardBody';\r\n var NAME_CARD_FOOTER = 'BCardFooter';\r\n var NAME_CARD_GROUP = 'BCardGroup';\r\n var NAME_CARD_HEADER = 'BCardHeader';\r\n var NAME_CARD_IMG = 'BCardImg';\r\n var NAME_CARD_IMG_LAZY = 'BCardImgLazy';\r\n var NAME_CARD_SUB_TITLE = 'BCardSubTitle';\r\n var NAME_CARD_TEXT = 'BCardText';\r\n var NAME_CARD_TITLE = 'BCardTitle';\r\n var NAME_CAROUSEL = 'BCarousel';\r\n var NAME_CAROUSEL_SLIDE = 'BCarouselSlide';\r\n var NAME_COL = 'BCol';\r\n var NAME_COLLAPSE = 'BCollapse';\r\n var NAME_CONTAINER = 'BContainer';\r\n var NAME_DROPDOWN = 'BDropdown';\r\n var NAME_DROPDOWN_DIVIDER = 'BDropdownDivider';\r\n var NAME_DROPDOWN_FORM = 'BDropdownForm';\r\n var NAME_DROPDOWN_GROUP = 'BDropdownGroup';\r\n var NAME_DROPDOWN_HEADER = 'BDropdownHeader';\r\n var NAME_DROPDOWN_ITEM = 'BDropdownItem';\r\n var NAME_DROPDOWN_ITEM_BUTTON = 'BDropdownItemButton';\r\n var NAME_DROPDOWN_TEXT = 'BDropdownText';\r\n var NAME_EMBED = 'BEmbed';\r\n var NAME_FORM = 'BForm';\r\n var NAME_FORM_CHECKBOX = 'BFormCheckbox';\r\n var NAME_FORM_CHECKBOX_GROUP = 'BFormCheckboxGroup';\r\n var NAME_FORM_DATALIST = 'BFormDatalist';\r\n var NAME_FORM_DATEPICKER = 'BFormDatepicker';\r\n var NAME_FORM_FILE = 'BFormFile';\r\n var NAME_FORM_GROUP = 'BFormGroup';\r\n var NAME_FORM_INPUT = 'BFormInput';\r\n var NAME_FORM_INVALID_FEEDBACK = 'BFormInvalidFeedback';\r\n var NAME_FORM_RADIO = 'BFormRadio';\r\n var NAME_FORM_RADIO_GROUP = 'BFormRadioGroup';\r\n var NAME_FORM_RATING = 'BFormRating';\r\n var NAME_FORM_ROW = 'BFormRow';\r\n var NAME_FORM_SELECT = 'BFormSelect';\r\n var NAME_FORM_SELECT_OPTION = 'BFormSelectOption';\r\n var NAME_FORM_SELECT_OPTION_GROUP = 'BFormSelectOptionGroup';\r\n var NAME_FORM_SPINBUTTON = 'BFormSpinbutton';\r\n var NAME_FORM_TAG = 'BFormTag';\r\n var NAME_FORM_TAGS = 'BFormTags';\r\n var NAME_FORM_TEXT = 'BFormText';\r\n var NAME_FORM_TEXTAREA = 'BFormTextarea';\r\n var NAME_FORM_TIMEPICKER = 'BFormTimepicker';\r\n var NAME_FORM_VALID_FEEDBACK = 'BFormValidFeedback';\r\n var NAME_ICON = 'BIcon';\r\n var NAME_ICONSTACK = 'BIconstack';\r\n var NAME_ICON_BASE = 'BIconBase';\r\n var NAME_IMG = 'BImg';\r\n var NAME_IMG_LAZY = 'BImgLazy';\r\n var NAME_INPUT_GROUP = 'BInputGroup';\r\n var NAME_INPUT_GROUP_ADDON = 'BInputGroupAddon';\r\n var NAME_INPUT_GROUP_APPEND = 'BInputGroupAppend';\r\n var NAME_INPUT_GROUP_PREPEND = 'BInputGroupPrepend';\r\n var NAME_INPUT_GROUP_TEXT = 'BInputGroupText';\r\n var NAME_JUMBOTRON = 'BJumbotron';\r\n var NAME_LINK = 'BLink';\r\n var NAME_LIST_GROUP = 'BListGroup';\r\n var NAME_LIST_GROUP_ITEM = 'BListGroupItem';\r\n var NAME_MEDIA = 'BMedia';\r\n var NAME_MEDIA_ASIDE = 'BMediaAside';\r\n var NAME_MEDIA_BODY = 'BMediaBody';\r\n var NAME_MODAL = 'BModal';\r\n var NAME_MSG_BOX = 'BMsgBox';\r\n var NAME_NAV = 'BNav';\r\n var NAME_NAVBAR = 'BNavbar';\r\n var NAME_NAVBAR_BRAND = 'BNavbarBrand';\r\n var NAME_NAVBAR_NAV = 'BNavbarNav';\r\n var NAME_NAVBAR_TOGGLE = 'BNavbarToggle';\r\n var NAME_NAV_FORM = 'BNavForm';\r\n var NAME_NAV_ITEM = 'BNavItem';\r\n var NAME_NAV_ITEM_DROPDOWN = 'BNavItemDropdown';\r\n var NAME_NAV_TEXT = 'BNavText';\r\n var NAME_OVERLAY = 'BOverlay';\r\n var NAME_PAGINATION = 'BPagination';\r\n var NAME_PAGINATION_NAV = 'BPaginationNav';\r\n var NAME_POPOVER = 'BPopover';\r\n var NAME_PROGRESS = 'BProgress';\r\n var NAME_PROGRESS_BAR = 'BProgressBar';\r\n var NAME_ROW = 'BRow';\r\n var NAME_SIDEBAR = 'BSidebar';\r\n var NAME_SKELETON = 'BSkeleton';\r\n var NAME_SKELETON_ICON = 'BSkeletonIcon';\r\n var NAME_SKELETON_IMG = 'BSkeletonImg';\r\n var NAME_SKELETON_TABLE = 'BSkeletonTable';\r\n var NAME_SKELETON_WRAPPER = 'BSkeletonWrapper';\r\n var NAME_SPINNER = 'BSpinner';\r\n var NAME_TAB = 'BTab';\r\n var NAME_TABLE = 'BTable';\r\n var NAME_TABLE_CELL = 'BTableCell';\r\n var NAME_TABLE_LITE = 'BTableLite';\r\n var NAME_TABLE_SIMPLE = 'BTableSimple';\r\n var NAME_TABS = 'BTabs';\r\n var NAME_TBODY = 'BTbody';\r\n var NAME_TFOOT = 'BTfoot';\r\n var NAME_TH = 'BTh';\r\n var NAME_THEAD = 'BThead';\r\n var NAME_TIME = 'BTime';\r\n var NAME_TOAST = 'BToast';\r\n var NAME_TOASTER = 'BToaster';\r\n var NAME_TOOLTIP = 'BTooltip';\r\n var NAME_TR = 'BTr'; // Helper component names\r\n\r\n var NAME_COLLAPSE_HELPER = 'BVCollapse';\r\n var NAME_FORM_BUTTON_LABEL_CONTROL = 'BVFormBtnLabelControl';\r\n var NAME_FORM_RATING_STAR = 'BVFormRatingStar';\r\n var NAME_POPOVER_HELPER = 'BVPopover';\r\n var NAME_POPOVER_TEMPLATE = 'BVPopoverTemplate';\r\n var NAME_POPPER = 'BVPopper';\r\n var NAME_TAB_BUTTON_HELPER = 'BVTabButton';\r\n var NAME_TOAST_POP = 'BVToastPop';\r\n var NAME_TOOLTIP_HELPER = 'BVTooltip';\r\n var NAME_TOOLTIP_TEMPLATE = 'BVTooltipTemplate';\r\n var NAME_TRANSITION = 'BVTransition';\r\n var NAME_TRANSPORTER = 'BVTransporter';\r\n var NAME_TRANSPORTER_TARGET = 'BVTransporterTarget';\r\n\r\n var EVENT_NAME_ACTIVATE_TAB = 'activate-tab';\r\n var EVENT_NAME_BLUR = 'blur';\r\n var EVENT_NAME_CANCEL = 'cancel';\r\n var EVENT_NAME_CHANGE = 'change';\r\n var EVENT_NAME_CHANGED = 'changed';\r\n var EVENT_NAME_CLICK = 'click';\r\n var EVENT_NAME_CLOSE = 'close';\r\n var EVENT_NAME_CONTEXT = 'context';\r\n var EVENT_NAME_CONTEXT_CHANGED = 'context-changed';\r\n var EVENT_NAME_DESTROYED = 'destroyed';\r\n var EVENT_NAME_DISABLE = 'disable';\r\n var EVENT_NAME_DISABLED = 'disabled';\r\n var EVENT_NAME_DISMISSED = 'dismissed';\r\n var EVENT_NAME_DISMISS_COUNT_DOWN = 'dismiss-count-down';\r\n var EVENT_NAME_ENABLE = 'enable';\r\n var EVENT_NAME_ENABLED = 'enabled';\r\n var EVENT_NAME_FILTERED = 'filtered';\r\n var EVENT_NAME_FIRST = 'first';\r\n var EVENT_NAME_FOCUS = 'focus';\r\n var EVENT_NAME_FOCUSIN = 'focusin';\r\n var EVENT_NAME_FOCUSOUT = 'focusout';\r\n var EVENT_NAME_HEAD_CLICKED = 'head-clicked';\r\n var EVENT_NAME_HIDDEN = 'hidden';\r\n var EVENT_NAME_HIDE = 'hide';\r\n var EVENT_NAME_IMG_ERROR = 'img-error';\r\n var EVENT_NAME_INPUT = 'input';\r\n var EVENT_NAME_LAST = 'last';\r\n var EVENT_NAME_MOUSEENTER = 'mouseenter';\r\n var EVENT_NAME_MOUSELEAVE = 'mouseleave';\r\n var EVENT_NAME_NEXT = 'next';\r\n var EVENT_NAME_OK = 'ok';\r\n var EVENT_NAME_OPEN = 'open';\r\n var EVENT_NAME_PAGE_CLICK = 'page-click';\r\n var EVENT_NAME_PAUSED = 'paused';\r\n var EVENT_NAME_PREV = 'prev';\r\n var EVENT_NAME_REFRESH = 'refresh';\r\n var EVENT_NAME_REFRESHED = 'refreshed';\r\n var EVENT_NAME_REMOVE = 'remove';\r\n var EVENT_NAME_ROW_CLICKED = 'row-clicked';\r\n var EVENT_NAME_ROW_CONTEXTMENU = 'row-contextmenu';\r\n var EVENT_NAME_ROW_DBLCLICKED = 'row-dblclicked';\r\n var EVENT_NAME_ROW_HOVERED = 'row-hovered';\r\n var EVENT_NAME_ROW_MIDDLE_CLICKED = 'row-middle-clicked';\r\n var EVENT_NAME_ROW_SELECTED = 'row-selected';\r\n var EVENT_NAME_ROW_UNHOVERED = 'row-unhovered';\r\n var EVENT_NAME_SELECTED = 'selected';\r\n var EVENT_NAME_SHOW = 'show';\r\n var EVENT_NAME_SHOWN = 'shown';\r\n var EVENT_NAME_SLIDING_END = 'sliding-end';\r\n var EVENT_NAME_SLIDING_START = 'sliding-start';\r\n var EVENT_NAME_SORT_CHANGED = 'sort-changed';\r\n var EVENT_NAME_TAG_STATE = 'tag-state';\r\n var EVENT_NAME_TOGGLE = 'toggle';\r\n var EVENT_NAME_UNPAUSED = 'unpaused';\r\n var EVENT_NAME_UPDATE = 'update';\r\n var HOOK_EVENT_NAME_BEFORE_DESTROY = isVue3 ? 'vnodeBeforeUnmount' : 'hook:beforeDestroy';\r\n var HOOK_EVENT_NAME_DESTROYED = isVue3 ? 'vNodeUnmounted' : 'hook:destroyed';\r\n var MODEL_EVENT_NAME_PREFIX = 'update:';\r\n var ROOT_EVENT_NAME_PREFIX = 'bv';\r\n var ROOT_EVENT_NAME_SEPARATOR = '::';\r\n var EVENT_OPTIONS_PASSIVE = {\r\n passive: true\r\n };\r\n var EVENT_OPTIONS_NO_CAPTURE = {\r\n passive: true,\r\n capture: false\r\n };\r\n\r\n // General types\r\n var PROP_TYPE_ANY = undefined;\r\n var PROP_TYPE_ARRAY = Array;\r\n var PROP_TYPE_BOOLEAN = Boolean;\r\n var PROP_TYPE_DATE = Date;\r\n var PROP_TYPE_FUNCTION = Function;\r\n var PROP_TYPE_NUMBER = Number;\r\n var PROP_TYPE_OBJECT = Object;\r\n var PROP_TYPE_REG_EXP = RegExp;\r\n var PROP_TYPE_STRING = String; // Multiple types\r\n\r\n var PROP_TYPE_ARRAY_FUNCTION = [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION];\r\n var PROP_TYPE_ARRAY_OBJECT = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT];\r\n var PROP_TYPE_ARRAY_OBJECT_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\r\n var PROP_TYPE_ARRAY_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_STRING];\r\n var PROP_TYPE_BOOLEAN_NUMBER = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER];\r\n var PROP_TYPE_BOOLEAN_NUMBER_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING];\r\n var PROP_TYPE_BOOLEAN_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING];\r\n var PROP_TYPE_DATE_STRING = [PROP_TYPE_DATE, PROP_TYPE_STRING];\r\n var PROP_TYPE_FUNCTION_STRING = [PROP_TYPE_FUNCTION, PROP_TYPE_STRING];\r\n var PROP_TYPE_NUMBER_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_STRING];\r\n var PROP_TYPE_NUMBER_OBJECT_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\r\n var PROP_TYPE_OBJECT_FUNCTION = [PROP_TYPE_OBJECT, PROP_TYPE_FUNCTION];\r\n var PROP_TYPE_OBJECT_STRING = [PROP_TYPE_OBJECT, PROP_TYPE_STRING];\r\n\r\n var SLOT_NAME_ADD_BUTTON_TEXT = 'add-button-text';\r\n var SLOT_NAME_APPEND = 'append';\r\n var SLOT_NAME_ASIDE = 'aside';\r\n var SLOT_NAME_BADGE = 'badge';\r\n var SLOT_NAME_BOTTOM_ROW = 'bottom-row';\r\n var SLOT_NAME_BUTTON_CONTENT = 'button-content';\r\n var SLOT_NAME_CUSTOM_FOOT = 'custom-foot';\r\n var SLOT_NAME_DECREMENT = 'decrement';\r\n var SLOT_NAME_DEFAULT = 'default';\r\n var SLOT_NAME_DESCRIPTION = 'description';\r\n var SLOT_NAME_DISMISS = 'dismiss';\r\n var SLOT_NAME_DROP_PLACEHOLDER = 'drop-placeholder';\r\n var SLOT_NAME_ELLIPSIS_TEXT = 'ellipsis-text';\r\n var SLOT_NAME_EMPTY = 'empty';\r\n var SLOT_NAME_EMPTYFILTERED = 'emptyfiltered';\r\n var SLOT_NAME_FILE_NAME = 'file-name';\r\n var SLOT_NAME_FIRST = 'first';\r\n var SLOT_NAME_FIRST_TEXT = 'first-text';\r\n var SLOT_NAME_FOOTER = 'footer';\r\n var SLOT_NAME_HEADER = 'header';\r\n var SLOT_NAME_HEADER_CLOSE = 'header-close';\r\n var SLOT_NAME_ICON_CLEAR = 'icon-clear';\r\n var SLOT_NAME_ICON_EMPTY = 'icon-empty';\r\n var SLOT_NAME_ICON_FULL = 'icon-full';\r\n var SLOT_NAME_ICON_HALF = 'icon-half';\r\n var SLOT_NAME_IMG = 'img';\r\n var SLOT_NAME_INCREMENT = 'increment';\r\n var SLOT_NAME_INVALID_FEEDBACK = 'invalid-feedback';\r\n var SLOT_NAME_LABEL = 'label';\r\n var SLOT_NAME_LAST_TEXT = 'last-text';\r\n var SLOT_NAME_LEAD = 'lead';\r\n var SLOT_NAME_LOADING = 'loading';\r\n var SLOT_NAME_MODAL_BACKDROP = 'modal-backdrop';\r\n var SLOT_NAME_MODAL_CANCEL = 'modal-cancel';\r\n var SLOT_NAME_MODAL_FOOTER = 'modal-footer';\r\n var SLOT_NAME_MODAL_HEADER = 'modal-header';\r\n var SLOT_NAME_MODAL_HEADER_CLOSE = 'modal-header-close';\r\n var SLOT_NAME_MODAL_OK = 'modal-ok';\r\n var SLOT_NAME_MODAL_TITLE = 'modal-title';\r\n var SLOT_NAME_NAV_NEXT_DECADE = 'nav-next-decade';\r\n var SLOT_NAME_NAV_NEXT_MONTH = 'nav-next-month';\r\n var SLOT_NAME_NAV_NEXT_YEAR = 'nav-next-year';\r\n var SLOT_NAME_NAV_PEV_DECADE = 'nav-prev-decade';\r\n var SLOT_NAME_NAV_PEV_MONTH = 'nav-prev-month';\r\n var SLOT_NAME_NAV_PEV_YEAR = 'nav-prev-year';\r\n var SLOT_NAME_NAV_THIS_MONTH = 'nav-this-month';\r\n var SLOT_NAME_NEXT_TEXT = 'next-text';\r\n var SLOT_NAME_OVERLAY = 'overlay';\r\n var SLOT_NAME_PAGE = 'page';\r\n var SLOT_NAME_PLACEHOLDER = 'placeholder';\r\n var SLOT_NAME_PREPEND = 'prepend';\r\n var SLOT_NAME_PREV_TEXT = 'prev-text';\r\n var SLOT_NAME_ROW_DETAILS = 'row-details';\r\n var SLOT_NAME_TABLE_BUSY = 'table-busy';\r\n var SLOT_NAME_TABLE_CAPTION = 'table-caption';\r\n var SLOT_NAME_TABLE_COLGROUP = 'table-colgroup';\r\n var SLOT_NAME_TABS_END = 'tabs-end';\r\n var SLOT_NAME_TABS_START = 'tabs-start';\r\n var SLOT_NAME_TEXT = 'text';\r\n var SLOT_NAME_THEAD_TOP = 'thead-top';\r\n var SLOT_NAME_TITLE = 'title';\r\n var SLOT_NAME_TOAST_TITLE = 'toast-title';\r\n var SLOT_NAME_TOP_ROW = 'top-row';\r\n var SLOT_NAME_VALID_FEEDBACK = 'valid-feedback';\r\n\r\n var from = function from() {\r\n return Array.from.apply(Array, arguments);\r\n }; // --- Instance ---\r\n\r\n var arrayIncludes = function arrayIncludes(array, value) {\r\n return array.indexOf(value) !== -1;\r\n };\r\n var concat = function concat() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key];\r\n }\r\n\r\n return Array.prototype.concat.apply([], args);\r\n }; // --- Utilities ---\r\n\r\n var createArray = function createArray(length, fillFn) {\r\n var mapFn = isFunction$1(fillFn) ? fillFn : function () {\r\n return fillFn;\r\n };\r\n return Array.apply(null, {\r\n length: length\r\n }).map(mapFn);\r\n };\r\n var flatten = function flatten(array) {\r\n return array.reduce(function (result, item) {\r\n return concat(result, item);\r\n }, []);\r\n };\r\n var flattenDeep = function flattenDeep(array) {\r\n return array.reduce(function (result, item) {\r\n return concat(result, Array.isArray(item) ? flattenDeep(item) : item);\r\n }, []);\r\n };\r\n\r\n // In functional components, `slots` is a function so it must be called\r\n // first before passing to the below methods. `scopedSlots` is always an\r\n // object and may be undefined (for Vue < 2.6.x)\r\n\r\n /**\r\n * Returns true if either scoped or unscoped named slot exists\r\n *\r\n * @param {String, Array} name or name[]\r\n * @param {Object} scopedSlots\r\n * @param {Object} slots\r\n * @returns {Array|undefined} VNodes\r\n */\r\n\r\n var hasNormalizedSlot = function hasNormalizedSlot(names) {\r\n var $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n // Ensure names is an array\r\n names = concat(names).filter(identity); // Returns true if the either a $scopedSlot or $slot exists with the specified name\r\n\r\n return names.some(function (name) {\r\n return $scopedSlots[name] || $slots[name];\r\n });\r\n };\r\n /**\r\n * Returns VNodes for named slot either scoped or unscoped\r\n *\r\n * @param {String, Array} name or name[]\r\n * @param {String} scope\r\n * @param {Object} scopedSlots\r\n * @param {Object} slots\r\n * @returns {Array|undefined} VNodes\r\n */\r\n\r\n var normalizeSlot = function normalizeSlot(names) {\r\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n var $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\r\n // Ensure names is an array\r\n names = concat(names).filter(identity);\r\n var slot;\r\n\r\n for (var i = 0; i < names.length && !slot; i++) {\r\n var name = names[i];\r\n slot = $scopedSlots[name] || $slots[name];\r\n } // Note: in Vue 2.6.x, all named slots are also scoped slots\r\n\r\n\r\n return isFunction$1(slot) ? slot(scope) : slot;\r\n };\r\n\r\n var normalizeSlotMixin = extend({\r\n methods: {\r\n // Returns `true` if the either a `$scopedSlot` or `$slot` exists with the specified name\r\n // `name` can be a string name or an array of names\r\n hasNormalizedSlot: function hasNormalizedSlot$1() {\r\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\r\n var scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.$scopedSlots;\r\n var slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$slots;\r\n return hasNormalizedSlot(name, scopedSlots, slots);\r\n },\r\n // Returns an array of rendered VNodes if slot found, otherwise `undefined`\r\n // `name` can be a string name or an array of names\r\n normalizeSlot: function normalizeSlot$1() {\r\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\r\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$scopedSlots;\r\n var slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.$slots;\r\n\r\n var vNodes = normalizeSlot(name, scope, scopedSlots, slots);\r\n\r\n return vNodes ? concat(vNodes) : vNodes;\r\n }\r\n }\r\n });\r\n\r\n // Number utilities\r\n // Converts a value (string, number, etc.) to an integer number\r\n // Assumes radix base 10\r\n var toInteger = function toInteger(value) {\r\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\r\n var integer = parseInt(value, 10);\r\n return isNaN(integer) ? defaultValue : integer;\r\n }; // Converts a value (string, number, etc.) to a number\r\n\r\n var toFloat = function toFloat(value) {\r\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\r\n var float = parseFloat(value);\r\n return isNaN(float) ? defaultValue : float;\r\n }; // Converts a value (string, number, etc.) to a string\r\n // representation with `precision` digits after the decimal\r\n // Returns the string 'NaN' if the value cannot be converted\r\n\r\n var toFixed = function toFixed(val, precision) {\r\n return toFloat(val).toFixed(toInteger(precision, 0));\r\n };\r\n\r\n // String utilities\r\n // Converts PascalCase or camelCase to kebab-case\r\n\r\n var kebabCase = function kebabCase(str) {\r\n return str.replace(RX_HYPHENATE, '-$1').toLowerCase();\r\n }; // Converts a kebab-case or camelCase string to PascalCase\r\n\r\n var pascalCase = function pascalCase(str) {\r\n str = kebabCase(str).replace(RX_UN_KEBAB, function (_, c) {\r\n return c ? c.toUpperCase() : '';\r\n });\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n }; // Converts a string, including strings in camelCase or snake_case, into Start Case\r\n // It keeps original single quote and hyphen in the word\r\n // https://github.com/UrbanCompass/to-start-case\r\n\r\n var startCase = function startCase(str) {\r\n return str.replace(RX_UNDERSCORE, ' ').replace(RX_LOWER_UPPER, function (str, $1, $2) {\r\n return $1 + ' ' + $2;\r\n }).replace(RX_START_SPACE_WORD, function (str, $1, $2) {\r\n return $1 + $2.toUpperCase();\r\n });\r\n }; // Lowercases the first letter of a string and returns a new string\r\n\r\n var lowerFirst = function lowerFirst(str) {\r\n str = isString(str) ? str.trim() : String(str);\r\n return str.charAt(0).toLowerCase() + str.slice(1);\r\n }; // Uppercases the first letter of a string and returns a new string\r\n\r\n var upperFirst = function upperFirst(str) {\r\n str = isString(str) ? str.trim() : String(str);\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n }; // Escape characters to be used in building a regular expression\r\n\r\n var escapeRegExp = function escapeRegExp(str) {\r\n return str.replace(RX_REGEXP_REPLACE, '\\\\$&');\r\n }; // Convert a value to a string that can be rendered\r\n // `undefined`/`null` will be converted to `''`\r\n // Plain objects and arrays will be JSON stringified\r\n\r\n var toString = function toString(val) {\r\n var spaces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\r\n return isUndefinedOrNull(val) ? '' : isArray(val) || isPlainObject(val) && val.toString === Object.prototype.toString ? JSON.stringify(val, null, spaces) : String(val);\r\n }; // Remove leading white space from a string\r\n\r\n var trimLeft = function trimLeft(str) {\r\n return toString(str).replace(RX_TRIM_LEFT, '');\r\n }; // Remove Trailing white space from a string\r\n\r\n var trim = function trim(str) {\r\n return toString(str).trim();\r\n }; // Lower case a string\r\n\r\n var lowerCase = function lowerCase(str) {\r\n return toString(str).toLowerCase();\r\n }; // Upper case a string\r\n\r\n var ELEMENT_PROTO = Element.prototype;\r\n var TABABLE_SELECTOR = ['button', '[href]:not(.disabled)', 'input', 'select', 'textarea', '[tabindex]', '[contenteditable]'].map(function (s) {\r\n return \"\".concat(s, \":not(:disabled):not([disabled])\");\r\n }).join(', '); // --- Normalization utils ---\r\n // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\r\n\r\n /* istanbul ignore next */\r\n\r\n var matchesEl = ELEMENT_PROTO.matches || ELEMENT_PROTO.msMatchesSelector || ELEMENT_PROTO.webkitMatchesSelector; // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\r\n\r\n /* istanbul ignore next */\r\n\r\n var closestEl = ELEMENT_PROTO.closest || function (sel) {\r\n var el = this;\r\n\r\n do {\r\n // Use our \"patched\" matches function\r\n if (matches(el, sel)) {\r\n return el;\r\n }\r\n\r\n el = el.parentElement || el.parentNode;\r\n } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE);\r\n\r\n return null;\r\n }; // `requestAnimationFrame()` convenience method\r\n\r\n /* istanbul ignore next: JSDOM always returns the first option */\r\n\r\n var requestAF = (WINDOW.requestAnimationFrame || WINDOW.webkitRequestAnimationFrame || WINDOW.mozRequestAnimationFrame || WINDOW.msRequestAnimationFrame || WINDOW.oRequestAnimationFrame || // Fallback, but not a true polyfill\r\n // Only needed for Opera Mini\r\n\r\n /* istanbul ignore next */\r\n function (cb) {\r\n return setTimeout(cb, 16);\r\n }).bind(WINDOW);\r\n var MutationObs = WINDOW.MutationObserver || WINDOW.WebKitMutationObserver || WINDOW.MozMutationObserver || null; // --- Utils ---\r\n // Remove a node from DOM\r\n\r\n var removeNode = function removeNode(el) {\r\n return el && el.parentNode && el.parentNode.removeChild(el);\r\n }; // Determine if an element is an HTML element\r\n\r\n var isElement = function isElement(el) {\r\n return !!(el && el.nodeType === Node.ELEMENT_NODE);\r\n }; // Get the currently active HTML element\r\n\r\n var getActiveElement = function getActiveElement() {\r\n var excludes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\r\n var activeElement = DOCUMENT.activeElement;\r\n return activeElement && !excludes.some(function (el) {\r\n return el === activeElement;\r\n }) ? activeElement : null;\r\n }; // Returns `true` if a tag's name equals `name`\r\n\r\n var isTag = function isTag(tag, name) {\r\n return toString(tag).toLowerCase() === toString(name).toLowerCase();\r\n }; // Determine if an HTML element is the currently active element\r\n\r\n var isActiveElement = function isActiveElement(el) {\r\n return isElement(el) && el === getActiveElement();\r\n }; // Determine if an HTML element is visible - Faster than CSS check\r\n\r\n var isVisible = function isVisible(el) {\r\n if (!isElement(el) || !el.parentNode || !contains(DOCUMENT.body, el)) {\r\n // Note this can fail for shadow dom elements since they\r\n // are not a direct descendant of document.body\r\n return false;\r\n }\r\n\r\n if (getStyle(el, 'display') === 'none') {\r\n // We do this check to help with vue-test-utils when using v-show\r\n\r\n /* istanbul ignore next */\r\n return false;\r\n } // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\r\n // So any tests that need isVisible will fail in JSDOM\r\n // Except when we override the getBCR prototype in some tests\r\n\r\n\r\n var bcr = getBCR(el);\r\n return !!(bcr && bcr.height > 0 && bcr.width > 0);\r\n }; // Determine if an element is disabled\r\n\r\n var isDisabled = function isDisabled(el) {\r\n return !isElement(el) || el.disabled || hasAttr(el, 'disabled') || hasClass(el, 'disabled');\r\n }; // Cause/wait-for an element to reflow its content (adjusting its height/width)\r\n\r\n var reflow = function reflow(el) {\r\n // Requesting an elements offsetHight will trigger a reflow of the element content\r\n\r\n /* istanbul ignore next: reflow doesn't happen in JSDOM */\r\n return isElement(el) && el.offsetHeight;\r\n }; // Select all elements matching selector. Returns `[]` if none found\r\n\r\n var selectAll = function selectAll(selector, root) {\r\n return from((isElement(root) ? root : DOCUMENT).querySelectorAll(selector));\r\n }; // Select a single element, returns `null` if not found\r\n\r\n var select = function select(selector, root) {\r\n return (isElement(root) ? root : DOCUMENT).querySelector(selector) || null;\r\n }; // Determine if an element matches a selector\r\n\r\n var matches = function matches(el, selector) {\r\n return isElement(el) ? matchesEl.call(el, selector) : false;\r\n }; // Finds closest element matching selector. Returns `null` if not found\r\n\r\n var closest = function closest(selector, root) {\r\n var includeRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n\r\n if (!isElement(root)) {\r\n return null;\r\n }\r\n\r\n var el = closestEl.call(root, selector); // Native closest behaviour when `includeRoot` is truthy,\r\n // else emulate jQuery closest and return `null` if match is\r\n // the passed in root element when `includeRoot` is falsey\r\n\r\n return includeRoot ? el : el === root ? null : el;\r\n }; // Returns true if the parent element contains the child element\r\n\r\n var contains = function contains(parent, child) {\r\n return parent && isFunction$1(parent.contains) ? parent.contains(child) : false;\r\n }; // Get an element given an ID\r\n\r\n var getById = function getById(id) {\r\n return DOCUMENT.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\r\n }; // Add a class to an element\r\n\r\n var addClass = function addClass(el, className) {\r\n // We are checking for `el.classList` existence here since IE 11\r\n // returns `undefined` for some elements (e.g. SVG elements)\r\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\r\n if (className && isElement(el) && el.classList) {\r\n el.classList.add(className);\r\n }\r\n }; // Remove a class from an element\r\n\r\n var removeClass = function removeClass(el, className) {\r\n // We are checking for `el.classList` existence here since IE 11\r\n // returns `undefined` for some elements (e.g. SVG elements)\r\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\r\n if (className && isElement(el) && el.classList) {\r\n el.classList.remove(className);\r\n }\r\n }; // Test if an element has a class\r\n\r\n var hasClass = function hasClass(el, className) {\r\n // We are checking for `el.classList` existence here since IE 11\r\n // returns `undefined` for some elements (e.g. SVG elements)\r\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\r\n if (className && isElement(el) && el.classList) {\r\n return el.classList.contains(className);\r\n }\r\n\r\n return false;\r\n }; // Set an attribute on an element\r\n\r\n var setAttr = function setAttr(el, attr, value) {\r\n if (attr && isElement(el)) {\r\n el.setAttribute(attr, value);\r\n }\r\n }; // Remove an attribute from an element\r\n\r\n var removeAttr = function removeAttr(el, attr) {\r\n if (attr && isElement(el)) {\r\n el.removeAttribute(attr);\r\n }\r\n }; // Get an attribute value from an element\r\n // Returns `null` if not found\r\n\r\n var getAttr = function getAttr(el, attr) {\r\n return attr && isElement(el) ? el.getAttribute(attr) : null;\r\n }; // Determine if an attribute exists on an element\r\n // Returns `true` or `false`, or `null` if element not found\r\n\r\n var hasAttr = function hasAttr(el, attr) {\r\n return attr && isElement(el) ? el.hasAttribute(attr) : null;\r\n }; // Set an style property on an element\r\n\r\n var setStyle = function setStyle(el, prop, value) {\r\n if (prop && isElement(el)) {\r\n el.style[prop] = value;\r\n }\r\n }; // Remove an style property from an element\r\n\r\n var removeStyle = function removeStyle(el, prop) {\r\n if (prop && isElement(el)) {\r\n el.style[prop] = '';\r\n }\r\n }; // Get an style property value from an element\r\n // Returns `null` if not found\r\n\r\n var getStyle = function getStyle(el, prop) {\r\n return prop && isElement(el) ? el.style[prop] || null : null;\r\n }; // Return the Bounding Client Rect of an element\r\n // Returns `null` if not an element\r\n\r\n /* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\r\n\r\n var getBCR = function getBCR(el) {\r\n return isElement(el) ? el.getBoundingClientRect() : null;\r\n }; // Get computed style object for an element\r\n\r\n /* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\r\n\r\n var getCS = function getCS(el) {\r\n var getComputedStyle = WINDOW.getComputedStyle;\r\n return getComputedStyle && isElement(el) ? getComputedStyle(el) : {};\r\n }; // Returns a `Selection` object representing the range of text selected\r\n // Returns `null` if no window support is given\r\n\r\n /* istanbul ignore next: getSelection() doesn't work in JSDOM */\r\n\r\n var getSel = function getSel() {\r\n var getSelection = WINDOW.getSelection;\r\n return getSelection ? WINDOW.getSelection() : null;\r\n }; // Return an element's offset with respect to document element\r\n // https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\r\n\r\n var offset$1 = function offset(el)\r\n /* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */\r\n {\r\n var _offset = {\r\n top: 0,\r\n left: 0\r\n };\r\n\r\n if (!isElement(el) || el.getClientRects().length === 0) {\r\n return _offset;\r\n }\r\n\r\n var bcr = getBCR(el);\r\n\r\n if (bcr) {\r\n var win = el.ownerDocument.defaultView;\r\n _offset.top = bcr.top + win.pageYOffset;\r\n _offset.left = bcr.left + win.pageXOffset;\r\n }\r\n\r\n return _offset;\r\n }; // Return an element's offset with respect to to its offsetParent\r\n // https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\r\n\r\n var position = function position(el)\r\n /* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\r\n {\r\n var _offset = {\r\n top: 0,\r\n left: 0\r\n };\r\n\r\n if (!isElement(el)) {\r\n return _offset;\r\n }\r\n\r\n var parentOffset = {\r\n top: 0,\r\n left: 0\r\n };\r\n var elStyles = getCS(el);\r\n\r\n if (elStyles.position === 'fixed') {\r\n _offset = getBCR(el) || _offset;\r\n } else {\r\n _offset = offset$1(el);\r\n var doc = el.ownerDocument;\r\n var offsetParent = el.offsetParent || doc.documentElement;\r\n\r\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\r\n offsetParent = offsetParent.parentNode;\r\n }\r\n\r\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\r\n parentOffset = offset$1(offsetParent);\r\n var offsetParentStyles = getCS(offsetParent);\r\n parentOffset.top += toFloat(offsetParentStyles.borderTopWidth, 0);\r\n parentOffset.left += toFloat(offsetParentStyles.borderLeftWidth, 0);\r\n }\r\n }\r\n\r\n return {\r\n top: _offset.top - parentOffset.top - toFloat(elStyles.marginTop, 0),\r\n left: _offset.left - parentOffset.left - toFloat(elStyles.marginLeft, 0)\r\n };\r\n }; // Find all tabable elements in the given element\r\n // Assumes users have not used `tabindex` > `0` on elements\r\n\r\n var getTabables = function getTabables() {\r\n var rootEl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\r\n return selectAll(TABABLE_SELECTOR, rootEl).filter(isVisible).filter(function (el) {\r\n return el.tabIndex > -1 && !el.disabled;\r\n });\r\n }; // Attempt to focus an element, and return `true` if successful\r\n\r\n var attemptFocus = function attemptFocus(el) {\r\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\r\n try {\r\n el.focus(options);\r\n } catch (_unused) {}\r\n\r\n return isActiveElement(el);\r\n }; // Attempt to blur an element, and return `true` if successful\r\n\r\n var attemptBlur = function attemptBlur(el) {\r\n try {\r\n el.blur();\r\n } catch (_unused2) {}\r\n\r\n return !isActiveElement(el);\r\n };\r\n\r\n var memoize = function memoize(fn) {\r\n var cache = create(null);\r\n return function () {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key];\r\n }\r\n\r\n var argsKey = JSON.stringify(args);\r\n return cache[argsKey] = cache[argsKey] || fn.apply(null, args);\r\n };\r\n };\r\n\r\n var VueProto = Vue__default['default'].prototype; // --- Getter methods ---\r\n\r\n var getConfigValue = function getConfigValue(key) {\r\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\r\n var bvConfig = VueProto[PROP_NAME$2];\r\n return bvConfig ? bvConfig.getConfigValue(key, defaultValue) : cloneDeep(defaultValue);\r\n }; // Method to grab a config value for a particular component\r\n\r\n var getComponentConfig = function getComponentConfig(key) {\r\n var propKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\r\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\r\n // Return the particular config value for key if specified,\r\n // otherwise we return the full config (or an empty object if not found)\r\n return propKey ? getConfigValue(\"\".concat(key, \".\").concat(propKey), defaultValue) : getConfigValue(key, {});\r\n }; // Get all breakpoint names\r\n\r\n var getBreakpoints = function getBreakpoints() {\r\n return getConfigValue('breakpoints', DEFAULT_BREAKPOINT);\r\n }; // Private method for caching breakpoint names\r\n\r\n var _getBreakpointsCached = memoize(function () {\r\n return getBreakpoints();\r\n }); // Get all breakpoint names (cached)\r\n\r\n\r\n var getBreakpointsCached = function getBreakpointsCached() {\r\n return cloneDeep(_getBreakpointsCached());\r\n }; // Get breakpoints with the smallest breakpoint set as ''\r\n // Useful for components that create breakpoint specific props\r\n\r\n var getBreakpointsUpCached = memoize(function () {\r\n var breakpoints = getBreakpointsCached();\r\n breakpoints[0] = '';\r\n return breakpoints;\r\n }); // Get breakpoints with the largest breakpoint set as ''\r\n\r\n var prefixPropName = function prefixPropName(prefix, value) {\r\n return prefix + upperFirst(value);\r\n }; // Remove a prefix from a property\r\n\r\n var unprefixPropName = function unprefixPropName(prefix, value) {\r\n return lowerFirst(value.replace(prefix, ''));\r\n }; // Suffix can be a falsey value so nothing is appended to string\r\n // (helps when looping over props & some shouldn't change)\r\n // Use data last parameters to allow for currying\r\n\r\n var suffixPropName = function suffixPropName(suffix, value) {\r\n return value + (suffix ? upperFirst(suffix) : '');\r\n }; // Generates a prop object\r\n\r\n var makeProp = function makeProp() {\r\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PROP_TYPE_ANY;\r\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\r\n var requiredOrValidator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\r\n var validator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\r\n var required = requiredOrValidator === true;\r\n validator = required ? validator : requiredOrValidator;\r\n return _objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, type ? {\r\n type: type\r\n } : {}), required ? {\r\n required: required\r\n } : isUndefined(value) ? {} : {\r\n default: isObject(value) ? function () {\r\n return value;\r\n } : value\r\n }), isUndefined(validator) ? {} : {\r\n validator: validator\r\n });\r\n }; // Copies props from one array/object to a new array/object\r\n // Prop values are also cloned as new references to prevent possible\r\n // mutation of original prop object values\r\n // Optionally accepts a function to transform the prop name\r\n\r\n var copyProps = function copyProps(props) {\r\n var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\r\n\r\n if (isArray(props)) {\r\n return props.map(transformFn);\r\n }\r\n\r\n var copied = {};\r\n\r\n for (var prop in props) {\r\n /* istanbul ignore else */\r\n if (hasOwnProperty(props, prop)) {\r\n // If the prop value is an object, do a shallow clone\r\n // to prevent potential mutations to the original object\r\n copied[transformFn(prop)] = isObject(props[prop]) ? clone(props[prop]) : props[prop];\r\n }\r\n }\r\n\r\n return copied;\r\n }; // Given an array of properties or an object of property keys,\r\n // plucks all the values off the target object, returning a new object\r\n // that has props that reference the original prop values\r\n\r\n var pluckProps = function pluckProps(keysToPluck, objToPluck) {\r\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\r\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce(function (memo, prop) {\r\n memo[transformFn(prop)] = objToPluck[prop];\r\n return memo;\r\n }, {});\r\n }; // Make a prop object configurable by global configuration\r\n // Replaces the current `default` key of each prop with a `getComponentConfig()`\r\n // call that falls back to the current default value of the prop\r\n\r\n var makePropConfigurable = function makePropConfigurable(prop, key, componentKey) {\r\n return _objectSpread2$3(_objectSpread2$3({}, cloneDeep(prop)), {}, {\r\n default: function bvConfigurablePropDefault() {\r\n var value = getComponentConfig(componentKey, key, prop.default);\r\n return isFunction$1(value) ? value() : value;\r\n }\r\n });\r\n }; // Make a props object configurable by global configuration\r\n // Replaces the current `default` key of each prop with a `getComponentConfig()`\r\n // call that falls back to the current default value of the prop\r\n\r\n var makePropsConfigurable = function makePropsConfigurable(props, componentKey) {\r\n return keys(props).reduce(function (result, key) {\r\n return _objectSpread2$3(_objectSpread2$3({}, result), {}, _defineProperty({}, key, makePropConfigurable(props[key], key, componentKey)));\r\n }, {});\r\n }; // Get function name we use in `makePropConfigurable()`\r\n // for the prop default value override to compare\r\n // against in `hasPropFunction()`\r\n\r\n var configurablePropDefaultFnName = makePropConfigurable({}, '', '').default.name; // Detect wether the given value is currently a function\r\n // and isn't the props default function\r\n\r\n var hasPropFunction = function hasPropFunction(fn) {\r\n return isFunction$1(fn) && fn.name && fn.name !== configurablePropDefaultFnName;\r\n };\r\n\r\n var makeModelMixin = function makeModelMixin(prop) {\r\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\r\n _ref$type = _ref.type,\r\n type = _ref$type === void 0 ? PROP_TYPE_ANY : _ref$type,\r\n _ref$defaultValue = _ref.defaultValue,\r\n defaultValue = _ref$defaultValue === void 0 ? undefined : _ref$defaultValue,\r\n _ref$validator = _ref.validator,\r\n validator = _ref$validator === void 0 ? undefined : _ref$validator,\r\n _ref$event = _ref.event,\r\n event = _ref$event === void 0 ? EVENT_NAME_INPUT : _ref$event;\r\n\r\n var props = _defineProperty({}, prop, makeProp(type, defaultValue, validator)); // @vue/component\r\n\r\n\r\n var mixin = extend({\r\n model: {\r\n prop: prop,\r\n event: event\r\n },\r\n props: props\r\n });\r\n return {\r\n mixin: mixin,\r\n props: props,\r\n prop: prop,\r\n event: event\r\n };\r\n };\r\n\r\n // Normalize event options based on support of passive option\r\n // Exported only for testing purposes\r\n\r\n var parseEventOptions = function parseEventOptions(options) {\r\n /* istanbul ignore else: can't test in JSDOM, as it supports passive */\r\n if (HAS_PASSIVE_EVENT_SUPPORT) {\r\n return isObject(options) ? options : {\r\n capture: !!options || false\r\n };\r\n } else {\r\n // Need to translate to actual Boolean value\r\n return !!(isObject(options) ? options.capture : options);\r\n }\r\n }; // Attach an event listener to an element\r\n\r\n var eventOn = function eventOn(el, eventName, handler, options) {\r\n if (el && el.addEventListener) {\r\n el.addEventListener(eventName, handler, parseEventOptions(options));\r\n }\r\n }; // Remove an event listener from an element\r\n\r\n var eventOff = function eventOff(el, eventName, handler, options) {\r\n if (el && el.removeEventListener) {\r\n el.removeEventListener(eventName, handler, parseEventOptions(options));\r\n }\r\n }; // Utility method to add/remove a event listener based on first argument (boolean)\r\n // It passes all other arguments to the `eventOn()` or `eventOff` method\r\n\r\n var eventOnOff = function eventOnOff(on) {\r\n var method = on ? eventOn : eventOff;\r\n\r\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n args[_key - 1] = arguments[_key];\r\n }\r\n\r\n method.apply(void 0, args);\r\n }; // Utility method to prevent the default event handling and propagation\r\n\r\n var stopEvent = function stopEvent(event) {\r\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\r\n _ref$preventDefault = _ref.preventDefault,\r\n preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,\r\n _ref$propagation = _ref.propagation,\r\n propagation = _ref$propagation === void 0 ? true : _ref$propagation,\r\n _ref$immediatePropaga = _ref.immediatePropagation,\r\n immediatePropagation = _ref$immediatePropaga === void 0 ? false : _ref$immediatePropaga;\r\n\r\n if (preventDefault) {\r\n event.preventDefault();\r\n }\r\n\r\n if (propagation) {\r\n event.stopPropagation();\r\n }\r\n\r\n if (immediatePropagation) {\r\n event.stopImmediatePropagation();\r\n }\r\n }; // Helper method to convert a component/directive name to a base event name\r\n // `getBaseEventName('BNavigationItem')` => 'navigation-item'\r\n // `getBaseEventName('BVToggle')` => 'toggle'\r\n\r\n var getBaseEventName = function getBaseEventName(value) {\r\n return kebabCase(value.replace(RX_BV_PREFIX, ''));\r\n }; // Get a root event name by component/directive and event name\r\n // `getBaseEventName('BModal', 'show')` => 'bv::modal::show'\r\n\r\n\r\n var getRootEventName = function getRootEventName(name, eventName) {\r\n return [ROOT_EVENT_NAME_PREFIX, getBaseEventName(name), eventName].join(ROOT_EVENT_NAME_SEPARATOR);\r\n }; // Get a root action event name by component/directive and action name\r\n // `getRootActionEventName('BModal', 'show')` => 'bv::show::modal'\r\n\r\n var getRootActionEventName = function getRootActionEventName(name, actionName) {\r\n return [ROOT_EVENT_NAME_PREFIX, actionName, getBaseEventName(name)].join(ROOT_EVENT_NAME_SEPARATOR);\r\n };\r\n\r\n var props$2l = makePropsConfigurable({\r\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Close'),\r\n content: makeProp(PROP_TYPE_STRING, '×'),\r\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\r\n textVariant: makeProp(PROP_TYPE_STRING)\r\n }, NAME_BUTTON_CLOSE); // --- Main component ---\r\n // @vue/component\r\n\r\n var BButtonClose = /*#__PURE__*/extend({\r\n name: NAME_BUTTON_CLOSE,\r\n functional: true,\r\n props: props$2l,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n slots = _ref.slots,\r\n scopedSlots = _ref.scopedSlots;\r\n var $slots = slots();\r\n var $scopedSlots = scopedSlots || {};\r\n var componentData = {\r\n staticClass: 'close',\r\n class: _defineProperty({}, \"text-\".concat(props.textVariant), props.textVariant),\r\n attrs: {\r\n type: 'button',\r\n disabled: props.disabled,\r\n 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\r\n },\r\n on: {\r\n click: function click(event) {\r\n // Ensure click on button HTML content is also disabled\r\n\r\n /* istanbul ignore if: bug in JSDOM still emits click on inner element */\r\n if (props.disabled && isEvent(event)) {\r\n stopEvent(event);\r\n }\r\n }\r\n }\r\n }; // Careful not to override the default slot with innerHTML\r\n\r\n if (!hasNormalizedSlot(SLOT_NAME_DEFAULT, $scopedSlots, $slots)) {\r\n componentData.domProps = {\r\n innerHTML: props.content\r\n };\r\n }\r\n\r\n return h('button', a(data, componentData), normalizeSlot(SLOT_NAME_DEFAULT, {}, $scopedSlots, $slots));\r\n }\r\n });\r\n\r\n var NO_FADE_PROPS = {\r\n name: '',\r\n enterClass: '',\r\n enterActiveClass: '',\r\n enterToClass: 'show',\r\n leaveClass: 'show',\r\n leaveActiveClass: '',\r\n leaveToClass: ''\r\n };\r\n\r\n var FADE_PROPS = _objectSpread2$3(_objectSpread2$3({}, NO_FADE_PROPS), {}, {\r\n enterActiveClass: 'fade',\r\n leaveActiveClass: 'fade'\r\n }); // --- Props ---\r\n\r\n\r\n var props$2k = {\r\n // Has no effect if `trans-props` provided\r\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Can be overridden by user supplied `trans-props`\r\n mode: makeProp(PROP_TYPE_STRING),\r\n // Only applicable to the built in transition\r\n // Has no effect if `trans-props` provided\r\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // For user supplied transitions (if needed)\r\n transProps: makeProp(PROP_TYPE_OBJECT)\r\n }; // --- Main component ---\r\n // @vue/component\r\n\r\n var BVTransition = /*#__PURE__*/extend({\r\n name: NAME_TRANSITION,\r\n functional: true,\r\n props: props$2k,\r\n render: function render(h, _ref) {\r\n var children = _ref.children,\r\n data = _ref.data,\r\n props = _ref.props;\r\n var transProps = props.transProps;\r\n\r\n if (!isPlainObject(transProps)) {\r\n transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS;\r\n\r\n if (props.appear) {\r\n // Default the appear classes to equal the enter classes\r\n transProps = _objectSpread2$3(_objectSpread2$3({}, transProps), {}, {\r\n appear: true,\r\n appearClass: transProps.enterClass,\r\n appearActiveClass: transProps.enterActiveClass,\r\n appearToClass: transProps.enterToClass\r\n });\r\n }\r\n }\r\n\r\n transProps = _objectSpread2$3(_objectSpread2$3({\r\n mode: props.mode\r\n }, transProps), {}, {\r\n // We always need `css` true\r\n css: true\r\n });\r\n\r\n var dataCopy = _objectSpread2$3({}, data);\r\n\r\n delete dataCopy.props;\r\n return h('transition', // Any transition event listeners will get merged here\r\n a(dataCopy, {\r\n props: transProps\r\n }), children);\r\n }\r\n });\r\n\r\n var _watch$k;\r\n\r\n var _makeModelMixin$k = makeModelMixin('show', {\r\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\r\n defaultValue: false\r\n }),\r\n modelMixin$j = _makeModelMixin$k.mixin,\r\n modelProps$j = _makeModelMixin$k.props,\r\n MODEL_PROP_NAME$j = _makeModelMixin$k.prop,\r\n MODEL_EVENT_NAME$j = _makeModelMixin$k.event; // --- Helper methods ---\r\n // Convert `show` value to a number\r\n\r\n\r\n var parseCountDown = function parseCountDown(show) {\r\n if (show === '' || isBoolean(show)) {\r\n return 0;\r\n }\r\n\r\n show = toInteger(show, 0);\r\n return show > 0 ? show : 0;\r\n }; // Convert `show` value to a boolean\r\n\r\n\r\n var parseShow = function parseShow(show) {\r\n if (show === '' || show === true) {\r\n return true;\r\n }\r\n\r\n if (toInteger(show, 0) < 1) {\r\n // Boolean will always return false for the above comparison\r\n return false;\r\n }\r\n\r\n return !!show;\r\n }; // --- Props ---\r\n\r\n\r\n var props$2j = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, modelProps$j), {}, {\r\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\r\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\r\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\r\n variant: makeProp(PROP_TYPE_STRING, 'info')\r\n })), NAME_ALERT); // --- Main component ---\r\n // @vue/component\r\n\r\n var BAlert = /*#__PURE__*/extend({\r\n name: NAME_ALERT,\r\n mixins: [modelMixin$j, normalizeSlotMixin],\r\n props: props$2j,\r\n data: function data() {\r\n return {\r\n countDown: 0,\r\n // If initially shown, we need to set these for SSR\r\n localShow: parseShow(this[MODEL_PROP_NAME$j])\r\n };\r\n },\r\n watch: (_watch$k = {}, _defineProperty(_watch$k, MODEL_PROP_NAME$j, function (newValue) {\r\n this.countDown = parseCountDown(newValue);\r\n this.localShow = parseShow(newValue);\r\n }), _defineProperty(_watch$k, \"countDown\", function countDown(newValue) {\r\n var _this = this;\r\n\r\n this.clearCountDownInterval();\r\n var show = this[MODEL_PROP_NAME$j]; // Ignore if `show` transitions to a boolean value\r\n\r\n if (isNumeric$1(show)) {\r\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\r\n\r\n if (show !== newValue) {\r\n this.$emit(MODEL_EVENT_NAME$j, newValue);\r\n }\r\n\r\n if (newValue > 0) {\r\n this.localShow = true;\r\n this.$_countDownTimeout = setTimeout(function () {\r\n _this.countDown--;\r\n }, 1000);\r\n } else {\r\n // Slightly delay the hide to allow any UI updates\r\n this.$nextTick(function () {\r\n requestAF(function () {\r\n _this.localShow = false;\r\n });\r\n });\r\n }\r\n }\r\n }), _defineProperty(_watch$k, \"localShow\", function localShow(newValue) {\r\n var show = this[MODEL_PROP_NAME$j]; // Only emit dismissed events for dismissible or auto-dismissing alerts\r\n\r\n if (!newValue && (this.dismissible || isNumeric$1(show))) {\r\n this.$emit(EVENT_NAME_DISMISSED);\r\n } // Only emit booleans if we weren't passed a number via v-model\r\n\r\n\r\n if (!isNumeric$1(show) && show !== newValue) {\r\n this.$emit(MODEL_EVENT_NAME$j, newValue);\r\n }\r\n }), _watch$k),\r\n created: function created() {\r\n // Create private non-reactive props\r\n this.$_filterTimer = null;\r\n var show = this[MODEL_PROP_NAME$j];\r\n this.countDown = parseCountDown(show);\r\n this.localShow = parseShow(show);\r\n },\r\n beforeDestroy: function beforeDestroy() {\r\n this.clearCountDownInterval();\r\n },\r\n methods: {\r\n dismiss: function dismiss() {\r\n this.clearCountDownInterval();\r\n this.countDown = 0;\r\n this.localShow = false;\r\n },\r\n clearCountDownInterval: function clearCountDownInterval() {\r\n clearTimeout(this.$_countDownTimeout);\r\n this.$_countDownTimeout = null;\r\n }\r\n },\r\n render: function render(h) {\r\n var $alert = h();\r\n\r\n if (this.localShow) {\r\n var dismissible = this.dismissible,\r\n variant = this.variant;\r\n var $dismissButton = h();\r\n\r\n if (dismissible) {\r\n // Add dismiss button\r\n $dismissButton = h(BButtonClose, {\r\n attrs: {\r\n 'aria-label': this.dismissLabel\r\n },\r\n on: {\r\n click: this.dismiss\r\n }\r\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\r\n }\r\n\r\n $alert = h('div', {\r\n staticClass: 'alert',\r\n class: _defineProperty({\r\n 'alert-dismissible': dismissible\r\n }, \"alert-\".concat(variant), variant),\r\n attrs: {\r\n role: 'alert',\r\n 'aria-live': 'polite',\r\n 'aria-atomic': true\r\n },\r\n key: this[COMPONENT_UID_KEY]\r\n }, [$dismissButton, this.normalizeSlot()]);\r\n }\r\n\r\n return h(BVTransition, {\r\n props: {\r\n noFade: !this.fade\r\n }\r\n }, [$alert]);\r\n }\r\n });\r\n\r\n var AlertPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BAlert: BAlert\r\n }\r\n });\r\n\r\n // Math utilty functions\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var mathAbs = Math.abs;\r\n var mathCeil = Math.ceil;\r\n var mathFloor = Math.floor;\r\n var mathPow = Math.pow;\r\n var mathRound = Math.round;\r\n\r\n var CLASS_NAME$3 = 'b-aspect'; // --- Props ---\r\n\r\n var props$2i = makePropsConfigurable({\r\n // Accepts a number (i.e. `16 / 9`, `1`, `4 / 3`)\r\n // Or a string (i.e. '16/9', '16:9', '4:3' '1:1')\r\n aspect: makeProp(PROP_TYPE_NUMBER_STRING, '1:1'),\r\n tag: makeProp(PROP_TYPE_STRING, 'div')\r\n }, NAME_ASPECT); // --- Main component ---\r\n // @vue/component\r\n\r\n var BAspect = /*#__PURE__*/extend({\r\n name: NAME_ASPECT,\r\n mixins: [normalizeSlotMixin],\r\n props: props$2i,\r\n computed: {\r\n padding: function padding() {\r\n var aspect = this.aspect;\r\n var ratio = 1;\r\n\r\n if (RX_ASPECT.test(aspect)) {\r\n // Width and/or Height can be a decimal value below `1`, so\r\n // we only fallback to `1` if the value is `0` or `NaN`\r\n var _aspect$split$map = aspect.split(RX_ASPECT_SEPARATOR).map(function (v) {\r\n return toFloat(v) || 1;\r\n }),\r\n _aspect$split$map2 = _slicedToArray(_aspect$split$map, 2),\r\n width = _aspect$split$map2[0],\r\n height = _aspect$split$map2[1];\r\n\r\n ratio = width / height;\r\n } else {\r\n ratio = toFloat(aspect) || 1;\r\n }\r\n\r\n return \"\".concat(100 / mathAbs(ratio), \"%\");\r\n }\r\n },\r\n render: function render(h) {\r\n var $sizer = h('div', {\r\n staticClass: \"\".concat(CLASS_NAME$3, \"-sizer flex-grow-1\"),\r\n style: {\r\n paddingBottom: this.padding,\r\n height: 0\r\n }\r\n });\r\n var $content = h('div', {\r\n staticClass: \"\".concat(CLASS_NAME$3, \"-content flex-grow-1 w-100 mw-100\"),\r\n style: {\r\n marginLeft: '-100%'\r\n }\r\n }, this.normalizeSlot());\r\n return h(this.tag, {\r\n staticClass: \"\".concat(CLASS_NAME$3, \" d-flex\")\r\n }, [$sizer, $content]);\r\n }\r\n });\r\n\r\n var AspectPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BAspect: BAspect\r\n }\r\n });\r\n\r\n function safeVueInstance(target) {\r\n if (!isVue3) {\r\n return target;\r\n }\r\n\r\n return new Proxy(target, {\r\n get: function get(target, prop) {\r\n return prop in target ? target[prop] : undefined;\r\n }\r\n });\r\n }\r\n\r\n var ANCHOR_TAG = 'a'; // Method to replace reserved chars\r\n\r\n var encodeReserveReplacer = function encodeReserveReplacer(c) {\r\n return '%' + c.charCodeAt(0).toString(16);\r\n }; // Fixed encodeURIComponent which is more conformant to RFC3986:\r\n // - escapes [!'()*]\r\n // - preserve commas\r\n\r\n\r\n var encode = function encode(str) {\r\n return encodeURIComponent(toString(str)).replace(RX_ENCODE_REVERSE, encodeReserveReplacer).replace(RX_ENCODED_COMMA, ',');\r\n };\r\n\r\n var decode = decodeURIComponent; // Stringifies an object of query parameters\r\n // See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js\r\n\r\n var stringifyQueryObj = function stringifyQueryObj(obj) {\r\n if (!isPlainObject(obj)) {\r\n return '';\r\n }\r\n\r\n var query = keys(obj).map(function (key) {\r\n var value = obj[key];\r\n\r\n if (isUndefined(value)) {\r\n return '';\r\n } else if (isNull(value)) {\r\n return encode(key);\r\n } else if (isArray(value)) {\r\n return value.reduce(function (results, value2) {\r\n if (isNull(value2)) {\r\n results.push(encode(key));\r\n } else if (!isUndefined(value2)) {\r\n // Faster than string interpolation\r\n results.push(encode(key) + '=' + encode(value2));\r\n }\r\n\r\n return results;\r\n }, []).join('&');\r\n } // Faster than string interpolation\r\n\r\n\r\n return encode(key) + '=' + encode(value);\r\n })\r\n /* must check for length, as we only want to filter empty strings, not things that look falsey! */\r\n .filter(function (x) {\r\n return x.length > 0;\r\n }).join('&');\r\n return query ? \"?\".concat(query) : '';\r\n };\r\n var parseQuery = function parseQuery(query) {\r\n var parsed = {};\r\n query = toString(query).trim().replace(RX_QUERY_START, '');\r\n\r\n if (!query) {\r\n return parsed;\r\n }\r\n\r\n query.split('&').forEach(function (param) {\r\n var parts = param.replace(RX_PLUS, ' ').split('=');\r\n var key = decode(parts.shift());\r\n var value = parts.length > 0 ? decode(parts.join('=')) : null;\r\n\r\n if (isUndefined(parsed[key])) {\r\n parsed[key] = value;\r\n } else if (isArray(parsed[key])) {\r\n parsed[key].push(value);\r\n } else {\r\n parsed[key] = [parsed[key], value];\r\n }\r\n });\r\n return parsed;\r\n };\r\n var isLink$1 = function isLink(props) {\r\n return !!(props.href || props.to);\r\n };\r\n var isRouterLink = function isRouterLink(tag) {\r\n return !!(tag && !isTag(tag, 'a'));\r\n };\r\n var computeTag = function computeTag(_ref, thisOrParent) {\r\n var to = _ref.to,\r\n disabled = _ref.disabled,\r\n routerComponentName = _ref.routerComponentName;\r\n var hasRouter = !!safeVueInstance(thisOrParent).$router;\r\n var hasNuxt = !!safeVueInstance(thisOrParent).$nuxt;\r\n\r\n if (!hasRouter || hasRouter && (disabled || !to)) {\r\n return ANCHOR_TAG;\r\n } // TODO:\r\n // Check registered components for existence of user supplied router link component name\r\n // We would need to check PascalCase, kebab-case, and camelCase versions of name:\r\n // const name = routerComponentName\r\n // const names = [name, PascalCase(name), KebabCase(name), CamelCase(name)]\r\n // exists = names.some(name => !!thisOrParent.$options.components[name])\r\n // And may want to cache the result for performance or we just let the render fail\r\n // if the component is not registered\r\n\r\n\r\n return routerComponentName || (hasNuxt ? 'nuxt-link' : 'router-link');\r\n };\r\n var computeRel = function computeRel() {\r\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\r\n target = _ref2.target,\r\n rel = _ref2.rel;\r\n\r\n return target === '_blank' && isNull(rel) ? 'noopener' : rel || null;\r\n };\r\n var computeHref = function computeHref() {\r\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\r\n href = _ref3.href,\r\n to = _ref3.to;\r\n\r\n var tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ANCHOR_TAG;\r\n var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '#';\r\n var toFallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/';\r\n\r\n // Return `href` when explicitly provided\r\n if (href) {\r\n return href;\r\n } // We've checked for `$router` in `computeTag()`, so `isRouterLink()` indicates a live router\r\n // When deferring to Vue Router's ``, don't use the `href` attribute at all\r\n // We return `null`, and then remove `href` from the attributes passed to ``\r\n\r\n\r\n if (isRouterLink(tag)) {\r\n return null;\r\n } // Fallback to `to` prop (if `to` is a string)\r\n\r\n\r\n if (isString(to)) {\r\n return to || toFallback;\r\n } // Fallback to `to.path' + `to.query` + `to.hash` prop (if `to` is an object)\r\n\r\n\r\n if (isPlainObject(to) && (to.path || to.query || to.hash)) {\r\n var path = toString(to.path);\r\n var query = stringifyQueryObj(to.query);\r\n var hash = toString(to.hash);\r\n hash = !hash || hash.charAt(0) === '#' ? hash : \"#\".concat(hash);\r\n return \"\".concat(path).concat(query).concat(hash) || toFallback;\r\n } // If nothing is provided return the fallback\r\n\r\n\r\n return fallback;\r\n };\r\n\r\n // Base attributes needed on all icons\r\n\r\n var BASE_ATTRS = {\r\n viewBox: '0 0 16 16',\r\n width: '1em',\r\n height: '1em',\r\n focusable: 'false',\r\n role: 'img',\r\n 'aria-label': 'icon'\r\n }; // Attributes that are nulled out when stacked\r\n\r\n var STACKED_ATTRS = {\r\n width: null,\r\n height: null,\r\n focusable: null,\r\n role: null,\r\n 'aria-label': null\r\n }; // --- Props ---\r\n\r\n var props$2h = {\r\n animation: makeProp(PROP_TYPE_STRING),\r\n content: makeProp(PROP_TYPE_STRING),\r\n flipH: makeProp(PROP_TYPE_BOOLEAN, false),\r\n flipV: makeProp(PROP_TYPE_BOOLEAN, false),\r\n fontScale: makeProp(PROP_TYPE_NUMBER_STRING, 1),\r\n rotate: makeProp(PROP_TYPE_NUMBER_STRING, 0),\r\n scale: makeProp(PROP_TYPE_NUMBER_STRING, 1),\r\n shiftH: makeProp(PROP_TYPE_NUMBER_STRING, 0),\r\n shiftV: makeProp(PROP_TYPE_NUMBER_STRING, 0),\r\n stacked: makeProp(PROP_TYPE_BOOLEAN, false),\r\n title: makeProp(PROP_TYPE_STRING),\r\n variant: makeProp(PROP_TYPE_STRING)\r\n }; // --- Main component ---\r\n // Shared private base component to reduce bundle/runtime size\r\n // @vue/component\r\n\r\n var BVIconBase = /*#__PURE__*/extend({\r\n name: NAME_ICON_BASE,\r\n functional: true,\r\n props: props$2h,\r\n render: function render(h, _ref) {\r\n var _class;\r\n\r\n var data = _ref.data,\r\n props = _ref.props,\r\n children = _ref.children;\r\n var animation = props.animation,\r\n content = props.content,\r\n flipH = props.flipH,\r\n flipV = props.flipV,\r\n stacked = props.stacked,\r\n title = props.title,\r\n variant = props.variant;\r\n var fontScale = mathMax(toFloat(props.fontScale, 1), 0) || 1;\r\n var scale = mathMax(toFloat(props.scale, 1), 0) || 1;\r\n var rotate = toFloat(props.rotate, 0);\r\n var shiftH = toFloat(props.shiftH, 0);\r\n var shiftV = toFloat(props.shiftV, 0); // Compute the transforms\r\n // Note that order is important as SVG transforms are applied in order from\r\n // left to right and we want flipping/scale to occur before rotation\r\n // Note shifting is applied separately\r\n // Assumes that the viewbox is `0 0 16 16` (`8 8` is the center)\r\n\r\n var hasScale = flipH || flipV || scale !== 1;\r\n var hasTransforms = hasScale || rotate;\r\n var hasShift = shiftH || shiftV;\r\n var hasContent = !isUndefinedOrNull(content);\r\n var transforms = [hasTransforms ? 'translate(8 8)' : null, hasScale ? \"scale(\".concat((flipH ? -1 : 1) * scale, \" \").concat((flipV ? -1 : 1) * scale, \")\") : null, rotate ? \"rotate(\".concat(rotate, \")\") : null, hasTransforms ? 'translate(-8 -8)' : null].filter(identity); // We wrap the content in a `` for handling the transforms (except shift)\r\n\r\n var $inner = h('g', {\r\n attrs: {\r\n transform: transforms.join(' ') || null\r\n },\r\n domProps: hasContent ? {\r\n innerHTML: content || ''\r\n } : {}\r\n }, children); // If needed, we wrap in an additional `` in order to handle the shifting\r\n\r\n if (hasShift) {\r\n $inner = h('g', {\r\n attrs: {\r\n transform: \"translate(\".concat(16 * shiftH / 16, \" \").concat(-16 * shiftV / 16, \")\")\r\n }\r\n }, [$inner]);\r\n } // Wrap in an additional `` for proper animation handling if stacked\r\n\r\n\r\n if (stacked) {\r\n $inner = h('g', [$inner]);\r\n }\r\n\r\n var $title = title ? h('title', title) : null;\r\n var $content = [$title, $inner].filter(identity);\r\n return h('svg', a({\r\n staticClass: 'b-icon bi',\r\n class: (_class = {}, _defineProperty(_class, \"text-\".concat(variant), variant), _defineProperty(_class, \"b-icon-animation-\".concat(animation), animation), _class),\r\n attrs: BASE_ATTRS,\r\n style: stacked ? {} : {\r\n fontSize: fontScale === 1 ? null : \"\".concat(fontScale * 100, \"%\")\r\n }\r\n }, // Merge in user supplied data\r\n data, // If icon is stacked, null-out some attrs\r\n stacked ? {\r\n attrs: STACKED_ATTRS\r\n } : {}, // These cannot be overridden by users\r\n {\r\n attrs: {\r\n xmlns: stacked ? null : 'http://www.w3.org/2000/svg',\r\n fill: 'currentColor'\r\n }\r\n }), $content);\r\n }\r\n });\r\n\r\n var iconProps$1 = omit(props$2h, ['content']);\r\n /**\r\n * Icon component generator function\r\n *\r\n * @param {string} icon name (minus the leading `BIcon`)\r\n * @param {string} raw `innerHTML` for SVG\r\n * @return {VueComponent}\r\n */\r\n\r\n var makeIcon = function makeIcon(name, content) {\r\n // For performance reason we pre-compute some values, so that\r\n // they are not computed on each render of the icon component\r\n var kebabName = kebabCase(name);\r\n var iconName = \"BIcon\".concat(pascalCase(name));\r\n var iconNameClass = \"bi-\".concat(kebabName);\r\n var iconTitle = kebabName.replace(/-/g, ' ');\r\n var svgContent = trim(content || '');\r\n return /*#__PURE__*/extend({\r\n name: iconName,\r\n functional: true,\r\n props: iconProps$1,\r\n render: function render(h, _ref) {\r\n var data = _ref.data,\r\n props = _ref.props;\r\n return h(BVIconBase, a( // Defaults\r\n {\r\n props: {\r\n title: iconTitle\r\n },\r\n attrs: {\r\n 'aria-label': iconTitle\r\n }\r\n }, // User data\r\n data, // Required data\r\n {\r\n staticClass: iconNameClass,\r\n props: _objectSpread2$3(_objectSpread2$3({}, props), {}, {\r\n content: svgContent\r\n })\r\n }));\r\n }\r\n });\r\n };\r\n\r\n // --- BEGIN AUTO-GENERATED FILE ---\r\n var BIconBlank=/*#__PURE__*/makeIcon('Blank','');// --- Bootstrap Icons ---\r\n var BIconCalendar=/*#__PURE__*/makeIcon('Calendar','');// eslint-disable-next-line\r\n var BIconCalendarFill=/*#__PURE__*/makeIcon('CalendarFill','');// eslint-disable-next-line\r\n var BIconChevronBarLeft=/*#__PURE__*/makeIcon('ChevronBarLeft','');// eslint-disable-next-line\r\n var BIconChevronDoubleLeft=/*#__PURE__*/makeIcon('ChevronDoubleLeft','');// eslint-disable-next-line\r\n var BIconChevronDown=/*#__PURE__*/makeIcon('ChevronDown','');// eslint-disable-next-line\r\n var BIconChevronLeft=/*#__PURE__*/makeIcon('ChevronLeft','');// eslint-disable-next-line\r\n var BIconChevronUp=/*#__PURE__*/makeIcon('ChevronUp','');// eslint-disable-next-line\r\n var BIconCircleFill=/*#__PURE__*/makeIcon('CircleFill','');// eslint-disable-next-line\r\n var BIconClock=/*#__PURE__*/makeIcon('Clock','');// eslint-disable-next-line\r\n var BIconClockFill=/*#__PURE__*/makeIcon('ClockFill','');// eslint-disable-next-line\r\n var BIconDash=/*#__PURE__*/makeIcon('Dash','');// eslint-disable-next-line\r\n var BIconPersonFill=/*#__PURE__*/makeIcon('PersonFill','');// eslint-disable-next-line\r\n var BIconPlus=/*#__PURE__*/makeIcon('Plus','');// eslint-disable-next-line\r\n var BIconStar=/*#__PURE__*/makeIcon('Star','');// eslint-disable-next-line\r\n var BIconStarFill=/*#__PURE__*/makeIcon('StarFill','');// eslint-disable-next-line\r\n var BIconStarHalf=/*#__PURE__*/makeIcon('StarHalf','');// eslint-disable-next-line\r\n var BIconX=/*#__PURE__*/makeIcon('X','');// eslint-disable-next-line\r\n // --- END AUTO-GENERATED FILE ---\r\n\r\n var findIconComponent = function findIconComponent(ctx, iconName) {\r\n if (!ctx) {\r\n return Vue__default['default'].component(iconName);\r\n }\r\n\r\n var components = (ctx.$options || {}).components;\r\n var iconComponent = components && components[iconName];\r\n return iconComponent || findIconComponent(ctx.$parent, iconName);\r\n }; // --- Props ---\r\n\r\n\r\n var iconProps = omit(props$2h, ['content']);\r\n var props$2g = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, iconProps), {}, {\r\n icon: makeProp(PROP_TYPE_STRING)\r\n })), NAME_ICON); // --- Main component ---\r\n // Helper BIcon component\r\n // Requires the requested icon component to be installed\r\n // @vue/component\r\n\r\n var BIcon = /*#__PURE__*/extend({\r\n name: NAME_ICON,\r\n functional: true,\r\n props: props$2g,\r\n render: function render(h, _ref) {\r\n var data = _ref.data,\r\n props = _ref.props,\r\n parent = _ref.parent;\r\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\r\n // either locally in the parent component, or globally at the `$root` level\r\n // If not registered, we render a blank icon\r\n\r\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, a(data, {\r\n props: pluckProps(iconProps, props)\r\n }));\r\n }\r\n });\r\n\r\n var CODE_BACKSPACE = 8;\r\n var CODE_DELETE = 46;\r\n var CODE_DOWN = 40;\r\n var CODE_END = 35;\r\n var CODE_ENTER = 13;\r\n var CODE_ESC = 27;\r\n var CODE_HOME = 36;\r\n var CODE_LEFT = 37;\r\n var CODE_PAGEDOWN = 34;\r\n var CODE_PAGEUP = 33;\r\n var CODE_RIGHT = 39;\r\n var CODE_SPACE = 32;\r\n var CODE_UP = 38;\r\n\r\n // Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\r\n\r\n var compareArrays = function compareArrays(a, b) {\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n\r\n var equal = true;\r\n\r\n for (var i = 0; equal && i < a.length; i++) {\r\n equal = looseEqual(a[i], b[i]);\r\n }\r\n\r\n return equal;\r\n };\r\n /**\r\n * Check if two values are loosely equal - that is,\r\n * if they are plain objects, do they have the same shape?\r\n * Returns boolean true or false\r\n */\r\n\r\n\r\n var looseEqual = function looseEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n\r\n var aValidType = isDate(a);\r\n var bValidType = isDate(b);\r\n\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\r\n }\r\n\r\n aValidType = isArray(a);\r\n bValidType = isArray(b);\r\n\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? compareArrays(a, b) : false;\r\n }\r\n\r\n aValidType = isObject(a);\r\n bValidType = isObject(b);\r\n\r\n if (aValidType || bValidType) {\r\n /* istanbul ignore if: this if will probably never be called */\r\n if (!aValidType || !bValidType) {\r\n return false;\r\n }\r\n\r\n var aKeysCount = keys(a).length;\r\n var bKeysCount = keys(b).length;\r\n\r\n if (aKeysCount !== bKeysCount) {\r\n return false;\r\n }\r\n\r\n for (var key in a) {\r\n var aHasKey = hasOwnProperty(a, key);\r\n var bHasKey = hasOwnProperty(b, key);\r\n\r\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return String(a) === String(b);\r\n };\r\n\r\n var isEmpty = function isEmpty(value) {\r\n return !value || keys(value).length === 0;\r\n };\r\n\r\n var makePropWatcher = function makePropWatcher(propName) {\r\n return {\r\n handler: function handler(newValue, oldValue) {\r\n if (looseEqual(newValue, oldValue)) {\r\n return;\r\n }\r\n\r\n if (isEmpty(newValue) || isEmpty(oldValue)) {\r\n this[propName] = cloneDeep(newValue);\r\n return;\r\n }\r\n\r\n for (var key in oldValue) {\r\n if (!hasOwnProperty(newValue, key)) {\r\n this.$delete(this.$data[propName], key);\r\n }\r\n }\r\n\r\n for (var _key in newValue) {\r\n this.$set(this.$data[propName], _key, newValue[_key]);\r\n }\r\n }\r\n };\r\n };\r\n var makePropCacheMixin = function makePropCacheMixin(propName, proxyPropName) {\r\n return extend({\r\n data: function data() {\r\n return _defineProperty({}, proxyPropName, cloneDeep(this[propName]));\r\n },\r\n watch: _defineProperty({}, propName, makePropWatcher(proxyPropName))\r\n });\r\n };\r\n\r\n var attrsMixinVue2 = makePropCacheMixin('$attrs', 'bvAttrs');\r\n var attrsMixinVue3 = extend({\r\n computed: {\r\n bvAttrs: function bvAttrs() {\r\n var bvAttrs = _objectSpread2$3({}, this.$attrs);\r\n\r\n Object.keys(bvAttrs).forEach(function (key) {\r\n if (bvAttrs[key] === undefined) {\r\n delete bvAttrs[key];\r\n }\r\n });\r\n return bvAttrs;\r\n }\r\n }\r\n });\r\n var attrsMixin = isVue3 ? attrsMixinVue3 : attrsMixinVue2;\r\n\r\n var getEventRoot = function getEventRoot(vm) {\r\n return vm.$root.$options.bvEventRoot || vm.$root;\r\n };\r\n\r\n var PROP$3 = '$_rootListeners'; // --- Mixin ---\r\n // @vue/component\r\n\r\n var listenOnRootMixin = extend({\r\n computed: {\r\n bvEventRoot: function bvEventRoot() {\r\n return getEventRoot(this);\r\n }\r\n },\r\n created: function created() {\r\n // Define non-reactive property\r\n // Object of arrays, keyed by event name,\r\n // where value is an array of callbacks\r\n this[PROP$3] = {};\r\n },\r\n beforeDestroy: function beforeDestroy() {\r\n var _this = this;\r\n\r\n // Unregister all registered listeners\r\n keys(this[PROP$3] || {}).forEach(function (event) {\r\n _this[PROP$3][event].forEach(function (callback) {\r\n _this.listenOffRoot(event, callback);\r\n });\r\n });\r\n this[PROP$3] = null;\r\n },\r\n methods: {\r\n registerRootListener: function registerRootListener(event, callback) {\r\n if (this[PROP$3]) {\r\n this[PROP$3][event] = this[PROP$3][event] || [];\r\n\r\n if (!arrayIncludes(this[PROP$3][event], callback)) {\r\n this[PROP$3][event].push(callback);\r\n }\r\n }\r\n },\r\n unregisterRootListener: function unregisterRootListener(event, callback) {\r\n if (this[PROP$3] && this[PROP$3][event]) {\r\n this[PROP$3][event] = this[PROP$3][event].filter(function (cb) {\r\n return cb !== callback;\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Safely register event listeners on the root Vue node\r\n * While Vue automatically removes listeners for individual components,\r\n * when a component registers a listener on `$root` and is destroyed,\r\n * this orphans a callback because the node is gone, but the `$root`\r\n * does not clear the callback\r\n *\r\n * When registering a `$root` listener, it also registers the listener\r\n * to be removed in the component's `beforeDestroy()` hook\r\n *\r\n * @param {string} event\r\n * @param {function} callback\r\n */\r\n listenOnRoot: function listenOnRoot(event, callback) {\r\n if (this.bvEventRoot) {\r\n this.bvEventRoot.$on(event, callback);\r\n this.registerRootListener(event, callback);\r\n }\r\n },\r\n\r\n /**\r\n * Safely register a `$once()` event listener on the root Vue node\r\n * While Vue automatically removes listeners for individual components,\r\n * when a component registers a listener on `$root` and is destroyed,\r\n * this orphans a callback because the node is gone, but the `$root`\r\n * does not clear the callback\r\n *\r\n * When registering a `$root` listener, it also registers the listener\r\n * to be removed in the component's `beforeDestroy()` hook\r\n *\r\n * @param {string} event\r\n * @param {function} callback\r\n */\r\n listenOnRootOnce: function listenOnRootOnce(event, callback) {\r\n var _this2 = this;\r\n\r\n if (this.bvEventRoot) {\r\n var _callback = function _callback() {\r\n _this2.unregisterRootListener(_callback); // eslint-disable-next-line node/no-callback-literal\r\n\r\n\r\n callback.apply(void 0, arguments);\r\n };\r\n\r\n this.bvEventRoot.$once(event, _callback);\r\n this.registerRootListener(event, _callback);\r\n }\r\n },\r\n\r\n /**\r\n * Safely unregister event listeners from the root Vue node\r\n *\r\n * @param {string} event\r\n * @param {function} callback\r\n */\r\n listenOffRoot: function listenOffRoot(event, callback) {\r\n this.unregisterRootListener(event, callback);\r\n\r\n if (this.bvEventRoot) {\r\n this.bvEventRoot.$off(event, callback);\r\n }\r\n },\r\n\r\n /**\r\n * Convenience method for calling `vm.$emit()` on `$root`\r\n *\r\n * @param {string} event\r\n * @param {*} args\r\n */\r\n emitOnRoot: function emitOnRoot(event) {\r\n if (this.bvEventRoot) {\r\n var _this$bvEventRoot;\r\n\r\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n args[_key - 1] = arguments[_key];\r\n }\r\n\r\n (_this$bvEventRoot = this.bvEventRoot).$emit.apply(_this$bvEventRoot, [event].concat(args));\r\n }\r\n }\r\n }\r\n });\r\n\r\n var listenersMixinVue2 = makePropCacheMixin('$listeners', 'bvListeners');\r\n var listenersMixinVue3 = extend({\r\n data: function data() {\r\n return {\r\n bvListeners: {}\r\n };\r\n },\r\n created: function created() {\r\n this.bvListeners = _objectSpread2$3({}, this.$listeners);\r\n },\r\n beforeUpdate: function beforeUpdate() {\r\n this.bvListeners = _objectSpread2$3({}, this.$listeners);\r\n }\r\n });\r\n var listenersMixin = isVue3 ? listenersMixinVue3 : listenersMixinVue2;\r\n\r\n var ROOT_EVENT_NAME_CLICKED = getRootEventName(NAME_LINK, 'clicked'); // --- Props ---\r\n // `` specific props\r\n\r\n var routerLinkProps = {\r\n activeClass: makeProp(PROP_TYPE_STRING),\r\n append: makeProp(PROP_TYPE_BOOLEAN, false),\r\n event: makeProp(PROP_TYPE_ARRAY_STRING),\r\n exact: makeProp(PROP_TYPE_BOOLEAN, false),\r\n exactActiveClass: makeProp(PROP_TYPE_STRING),\r\n exactPath: makeProp(PROP_TYPE_BOOLEAN, false),\r\n exactPathActiveClass: makeProp(PROP_TYPE_STRING),\r\n replace: makeProp(PROP_TYPE_BOOLEAN, false),\r\n routerTag: makeProp(PROP_TYPE_STRING),\r\n to: makeProp(PROP_TYPE_OBJECT_STRING)\r\n }; // `` specific props\r\n\r\n var nuxtLinkProps = {\r\n noPrefetch: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Must be `null` to fall back to the value defined in the\r\n // `nuxt.config.js` configuration file for `router.prefetchLinks`\r\n // We convert `null` to `undefined`, so that Nuxt.js will use the\r\n // compiled default\r\n // Vue treats `undefined` as default of `false` for Boolean props,\r\n // so we must set it as `null` here to be a true tri-state prop\r\n prefetch: makeProp(PROP_TYPE_BOOLEAN, null)\r\n }; // All `` props\r\n\r\n var props$2f = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, nuxtLinkProps), routerLinkProps), {}, {\r\n active: makeProp(PROP_TYPE_BOOLEAN, false),\r\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\r\n href: makeProp(PROP_TYPE_STRING),\r\n // Must be `null` if no value provided\r\n rel: makeProp(PROP_TYPE_STRING, null),\r\n // To support 3rd party router links based on `` (i.e. `g-link` for Gridsome)\r\n // Default is to auto choose between `` and ``\r\n // Gridsome doesn't provide a mechanism to auto detect and has caveats\r\n // such as not supporting FQDN URLs or hash only URLs\r\n routerComponentName: makeProp(PROP_TYPE_STRING),\r\n target: makeProp(PROP_TYPE_STRING, '_self')\r\n })), NAME_LINK); // --- Main component ---\r\n // @vue/component\r\n\r\n var BLink = /*#__PURE__*/extend({\r\n name: NAME_LINK,\r\n // Mixin order is important!\r\n mixins: [attrsMixin, listenersMixin, listenOnRootMixin, normalizeSlotMixin],\r\n inheritAttrs: false,\r\n props: props$2f,\r\n computed: {\r\n computedTag: function computedTag() {\r\n // We don't pass `this` as the first arg as we need reactivity of the props\r\n var to = this.to,\r\n disabled = this.disabled,\r\n routerComponentName = this.routerComponentName;\r\n return computeTag({\r\n to: to,\r\n disabled: disabled,\r\n routerComponentName: routerComponentName\r\n }, this);\r\n },\r\n isRouterLink: function isRouterLink$1() {\r\n return isRouterLink(this.computedTag);\r\n },\r\n computedRel: function computedRel() {\r\n // We don't pass `this` as the first arg as we need reactivity of the props\r\n var target = this.target,\r\n rel = this.rel;\r\n return computeRel({\r\n target: target,\r\n rel: rel\r\n });\r\n },\r\n computedHref: function computedHref() {\r\n // We don't pass `this` as the first arg as we need reactivity of the props\r\n var to = this.to,\r\n href = this.href;\r\n return computeHref({\r\n to: to,\r\n href: href\r\n }, this.computedTag);\r\n },\r\n computedProps: function computedProps() {\r\n var event = this.event,\r\n prefetch = this.prefetch,\r\n routerTag = this.routerTag;\r\n return this.isRouterLink ? _objectSpread2$3(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, pluckProps(omit(_objectSpread2$3(_objectSpread2$3({}, routerLinkProps), this.computedTag === 'nuxt-link' ? nuxtLinkProps : {}), ['event', 'prefetch', 'routerTag']), this)), event ? {\r\n event: event\r\n } : {}), isBoolean(prefetch) ? {\r\n prefetch: prefetch\r\n } : {}), routerTag ? {\r\n tag: routerTag\r\n } : {}) : {};\r\n },\r\n computedAttrs: function computedAttrs() {\r\n var bvAttrs = this.bvAttrs,\r\n href = this.computedHref,\r\n rel = this.computedRel,\r\n disabled = this.disabled,\r\n target = this.target,\r\n routerTag = this.routerTag,\r\n isRouterLink = this.isRouterLink;\r\n return _objectSpread2$3(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, bvAttrs), href ? {\r\n href: href\r\n } : {}), isRouterLink && routerTag && !isTag(routerTag, 'a') ? {} : {\r\n rel: rel,\r\n target: target\r\n }), {}, {\r\n tabindex: disabled ? '-1' : isUndefined(bvAttrs.tabindex) ? null : bvAttrs.tabindex,\r\n 'aria-disabled': disabled ? 'true' : null\r\n });\r\n },\r\n computedListeners: function computedListeners() {\r\n return _objectSpread2$3(_objectSpread2$3({}, this.bvListeners), {}, {\r\n // We want to overwrite any click handler since our callback\r\n // will invoke the user supplied handler(s) if `!this.disabled`\r\n click: this.onClick\r\n });\r\n }\r\n },\r\n methods: {\r\n onClick: function onClick(event) {\r\n var _arguments = arguments;\r\n var eventIsEvent = isEvent(event);\r\n var isRouterLink = this.isRouterLink;\r\n var suppliedHandler = this.bvListeners.click;\r\n\r\n if (eventIsEvent && this.disabled) {\r\n // Stop event from bubbling up\r\n // Kill the event loop attached to this specific `EventTarget`\r\n // Needed to prevent `vue-router` for doing its thing\r\n stopEvent(event, {\r\n immediatePropagation: true\r\n });\r\n } else {\r\n // Router links do not emit instance `click` events, so we\r\n // add in an `$emit('click', event)` on its Vue instance\r\n //\r\n // seems not to be required for Vue3 compat build\r\n\r\n /* istanbul ignore next: difficult to test, but we know it works */\r\n if (isRouterLink) {\r\n var _event$currentTarget$;\r\n\r\n (_event$currentTarget$ = event.currentTarget.__vue__) === null || _event$currentTarget$ === void 0 ? void 0 : _event$currentTarget$.$emit(EVENT_NAME_CLICK, event);\r\n } // Call the suppliedHandler(s), if any provided\r\n\r\n\r\n concat(suppliedHandler).filter(function (h) {\r\n return isFunction$1(h);\r\n }).forEach(function (handler) {\r\n handler.apply(void 0, _toConsumableArray$1(_arguments));\r\n }); // Emit the global `$root` click event\r\n\r\n this.emitOnRoot(ROOT_EVENT_NAME_CLICKED, event); // TODO: Remove deprecated 'clicked::link' event with next major release\r\n\r\n this.emitOnRoot('clicked::link', event);\r\n } // Stop scroll-to-top behavior or navigation on\r\n // regular links when href is just '#'\r\n\r\n\r\n if (eventIsEvent && !isRouterLink && this.computedHref === '#') {\r\n stopEvent(event, {\r\n propagation: false\r\n });\r\n }\r\n },\r\n focus: function focus() {\r\n attemptFocus(this.$el);\r\n },\r\n blur: function blur() {\r\n attemptBlur(this.$el);\r\n }\r\n },\r\n render: function render(h) {\r\n var active = this.active,\r\n disabled = this.disabled;\r\n return h(this.computedTag, _defineProperty({\r\n class: {\r\n active: active,\r\n disabled: disabled\r\n },\r\n attrs: this.computedAttrs,\r\n props: this.computedProps\r\n }, this.isRouterLink ? 'nativeOn' : 'on', this.computedListeners), this.normalizeSlot());\r\n }\r\n });\r\n\r\n var linkProps$7 = omit(props$2f, ['event', 'routerTag']);\r\n delete linkProps$7.href.default;\r\n delete linkProps$7.to.default;\r\n var props$2e = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, linkProps$7), {}, {\r\n block: makeProp(PROP_TYPE_BOOLEAN, false),\r\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\r\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Tri-state: `true`, `false` or `null`\r\n // => On, off, not a toggle\r\n pressed: makeProp(PROP_TYPE_BOOLEAN, null),\r\n size: makeProp(PROP_TYPE_STRING),\r\n squared: makeProp(PROP_TYPE_BOOLEAN, false),\r\n tag: makeProp(PROP_TYPE_STRING, 'button'),\r\n type: makeProp(PROP_TYPE_STRING, 'button'),\r\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\r\n })), NAME_BUTTON); // --- Helper methods ---\r\n // Focus handler for toggle buttons\r\n // Needs class of 'focus' when focused\r\n\r\n var handleFocus = function handleFocus(event) {\r\n if (event.type === 'focusin') {\r\n addClass(event.target, 'focus');\r\n } else if (event.type === 'focusout') {\r\n removeClass(event.target, 'focus');\r\n }\r\n }; // Is the requested button a link?\r\n // If tag prop is set to `a`, we use a to get proper disabled handling\r\n\r\n\r\n var isLink = function isLink(props) {\r\n return isLink$1(props) || isTag(props.tag, 'a');\r\n }; // Is the button to be a toggle button?\r\n\r\n\r\n var isToggle = function isToggle(props) {\r\n return isBoolean(props.pressed);\r\n }; // Is the button \"really\" a button?\r\n\r\n\r\n var isButton = function isButton(props) {\r\n return !(isLink(props) || props.tag && !isTag(props.tag, 'button'));\r\n }; // Is the requested tag not a button or link?\r\n\r\n\r\n var isNonStandardTag$1 = function isNonStandardTag(props) {\r\n return !isLink(props) && !isButton(props);\r\n }; // Compute required classes (non static classes)\r\n\r\n\r\n var computeClass = function computeClass(props) {\r\n var _ref;\r\n\r\n return [\"btn-\".concat(props.variant || 'secondary'), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(props.size), props.size), _defineProperty(_ref, 'btn-block', props.block), _defineProperty(_ref, 'rounded-pill', props.pill), _defineProperty(_ref, 'rounded-0', props.squared && !props.pill), _defineProperty(_ref, \"disabled\", props.disabled), _defineProperty(_ref, \"active\", props.pressed), _ref)];\r\n }; // Compute the link props to pass to b-link (if required)\r\n\r\n\r\n var computeLinkProps = function computeLinkProps(props) {\r\n return isLink(props) ? pluckProps(linkProps$7, props) : {};\r\n }; // Compute the attributes for a button\r\n\r\n\r\n var computeAttrs = function computeAttrs(props, data) {\r\n var button = isButton(props);\r\n var link = isLink(props);\r\n var toggle = isToggle(props);\r\n var nonStandardTag = isNonStandardTag$1(props);\r\n var hashLink = link && props.href === '#';\r\n var role = data.attrs && data.attrs.role ? data.attrs.role : null;\r\n var tabindex = data.attrs ? data.attrs.tabindex : null;\r\n\r\n if (nonStandardTag || hashLink) {\r\n tabindex = '0';\r\n }\r\n\r\n return {\r\n // Type only used for \"real\" buttons\r\n type: button && !link ? props.type : null,\r\n // Disabled only set on \"real\" buttons\r\n disabled: button ? props.disabled : null,\r\n // We add a role of button when the tag is not a link or button for ARIA\r\n // Don't bork any role provided in `data.attrs` when `isLink` or `isButton`\r\n // Except when link has `href` of `#`\r\n role: nonStandardTag || hashLink ? 'button' : role,\r\n // We set the `aria-disabled` state for non-standard tags\r\n 'aria-disabled': nonStandardTag ? String(props.disabled) : null,\r\n // For toggles, we need to set the pressed state for ARIA\r\n 'aria-pressed': toggle ? String(props.pressed) : null,\r\n // `autocomplete=\"off\"` is needed in toggle mode to prevent some browsers\r\n // from remembering the previous setting when using the back button\r\n autocomplete: toggle ? 'off' : null,\r\n // `tabindex` is used when the component is not a button\r\n // Links are tabbable, but don't allow disabled, while non buttons or links\r\n // are not tabbable, so we mimic that functionality by disabling tabbing\r\n // when disabled, and adding a `tabindex=\"0\"` to non buttons or non links\r\n tabindex: props.disabled && !button ? '-1' : tabindex\r\n };\r\n }; // --- Main component ---\r\n // @vue/component\r\n\r\n\r\n var BButton = /*#__PURE__*/extend({\r\n name: NAME_BUTTON,\r\n functional: true,\r\n props: props$2e,\r\n render: function render(h, _ref2) {\r\n var props = _ref2.props,\r\n data = _ref2.data,\r\n listeners = _ref2.listeners,\r\n children = _ref2.children;\r\n var toggle = isToggle(props);\r\n var link = isLink(props);\r\n var nonStandardTag = isNonStandardTag$1(props);\r\n var hashLink = link && props.href === '#';\r\n var on = {\r\n keydown: function keydown(event) {\r\n // When the link is a `href=\"#\"` or a non-standard tag (has `role=\"button\"`),\r\n // we add a keydown handlers for CODE_SPACE/CODE_ENTER\r\n\r\n /* istanbul ignore next */\r\n if (props.disabled || !(nonStandardTag || hashLink)) {\r\n return;\r\n }\r\n\r\n var keyCode = event.keyCode; // Add CODE_SPACE handler for `href=\"#\"` and CODE_ENTER handler for non-standard tags\r\n\r\n if (keyCode === CODE_SPACE || keyCode === CODE_ENTER && nonStandardTag) {\r\n var target = event.currentTarget || event.target;\r\n stopEvent(event, {\r\n propagation: false\r\n });\r\n target.click();\r\n }\r\n },\r\n click: function click(event) {\r\n /* istanbul ignore if: blink/button disabled should handle this */\r\n if (props.disabled && isEvent(event)) {\r\n stopEvent(event);\r\n } else if (toggle && listeners && listeners['update:pressed']) {\r\n // Send `.sync` updates to any \"pressed\" prop (if `.sync` listeners)\r\n // `concat()` will normalize the value to an array without\r\n // double wrapping an array value in an array\r\n concat(listeners['update:pressed']).forEach(function (fn) {\r\n if (isFunction$1(fn)) {\r\n fn(!props.pressed);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n if (toggle) {\r\n on.focusin = handleFocus;\r\n on.focusout = handleFocus;\r\n }\r\n\r\n var componentData = {\r\n staticClass: 'btn',\r\n class: computeClass(props),\r\n props: computeLinkProps(props),\r\n attrs: computeAttrs(props, data),\r\n on: on\r\n };\r\n return h(link ? BLink : props.tag, a(_objectSpread2$3(_objectSpread2$3({}, data), {}, {\r\n props: undefined\r\n }), componentData), children);\r\n }\r\n });\r\n\r\n var CLASS_NAME$2 = 'b-avatar';\r\n var SIZES = ['sm', null, 'lg'];\r\n var FONT_SIZE_SCALE = 0.4;\r\n var BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\r\n\r\n var computeSize = function computeSize(value) {\r\n // Parse to number when value is a float-like string\r\n value = isString(value) && isNumeric$1(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\r\n\r\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\r\n }; // --- Props ---\r\n\r\n var linkProps$6 = omit(props$2f, ['active', 'event', 'routerTag']);\r\n var props$2d = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, linkProps$6), {}, {\r\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\r\n ariaLabel: makeProp(PROP_TYPE_STRING),\r\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\r\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\r\n badgeOffset: makeProp(PROP_TYPE_STRING),\r\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\r\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\r\n button: makeProp(PROP_TYPE_BOOLEAN, false),\r\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\r\n icon: makeProp(PROP_TYPE_STRING),\r\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\r\n size: makeProp(PROP_TYPE_NUMBER_STRING),\r\n square: makeProp(PROP_TYPE_BOOLEAN, false),\r\n src: makeProp(PROP_TYPE_STRING),\r\n text: makeProp(PROP_TYPE_STRING),\r\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\r\n })), NAME_AVATAR); // --- Main component ---\r\n // @vue/component\r\n\r\n var BAvatar = /*#__PURE__*/extend({\r\n name: NAME_AVATAR,\r\n mixins: [normalizeSlotMixin],\r\n inject: {\r\n getBvAvatarGroup: {\r\n default: function _default() {\r\n return function () {\r\n return null;\r\n };\r\n }\r\n }\r\n },\r\n props: props$2d,\r\n data: function data() {\r\n return {\r\n localSrc: this.src || null\r\n };\r\n },\r\n computed: {\r\n bvAvatarGroup: function bvAvatarGroup() {\r\n return this.getBvAvatarGroup();\r\n },\r\n computedSize: function computedSize() {\r\n // Always use the avatar group size\r\n var bvAvatarGroup = this.bvAvatarGroup;\r\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\r\n },\r\n computedVariant: function computedVariant() {\r\n var bvAvatarGroup = this.bvAvatarGroup;\r\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\r\n },\r\n computedRounded: function computedRounded() {\r\n var bvAvatarGroup = this.bvAvatarGroup;\r\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\r\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\r\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\r\n },\r\n fontStyle: function fontStyle() {\r\n var size = this.computedSize;\r\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\r\n return fontSize ? {\r\n fontSize: fontSize\r\n } : {};\r\n },\r\n marginStyle: function marginStyle() {\r\n var size = this.computedSize,\r\n bvAvatarGroup = this.bvAvatarGroup;\r\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\r\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\r\n return value ? {\r\n marginLeft: value,\r\n marginRight: value\r\n } : {};\r\n },\r\n badgeStyle: function badgeStyle() {\r\n var size = this.computedSize,\r\n badgeTop = this.badgeTop,\r\n badgeLeft = this.badgeLeft,\r\n badgeOffset = this.badgeOffset;\r\n var offset = badgeOffset || '0px';\r\n return {\r\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\r\n top: badgeTop ? offset : null,\r\n bottom: badgeTop ? null : offset,\r\n left: badgeLeft ? offset : null,\r\n right: badgeLeft ? null : offset\r\n };\r\n }\r\n },\r\n watch: {\r\n src: function src(newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n this.localSrc = newValue || null;\r\n }\r\n }\r\n },\r\n methods: {\r\n onImgError: function onImgError(event) {\r\n this.localSrc = null;\r\n this.$emit(EVENT_NAME_IMG_ERROR, event);\r\n },\r\n onClick: function onClick(event) {\r\n this.$emit(EVENT_NAME_CLICK, event);\r\n }\r\n },\r\n render: function render(h) {\r\n var _class2;\r\n\r\n var variant = this.computedVariant,\r\n disabled = this.disabled,\r\n rounded = this.computedRounded,\r\n icon = this.icon,\r\n src = this.localSrc,\r\n text = this.text,\r\n fontStyle = this.fontStyle,\r\n marginStyle = this.marginStyle,\r\n size = this.computedSize,\r\n button = this.button,\r\n type = this.buttonType,\r\n badge = this.badge,\r\n badgeVariant = this.badgeVariant,\r\n badgeStyle = this.badgeStyle;\r\n var link = !button && isLink$1(this);\r\n var tag = button ? BButton : link ? BLink : 'span';\r\n var alt = this.alt;\r\n var ariaLabel = this.ariaLabel || null;\r\n var $content = null;\r\n\r\n if (this.hasNormalizedSlot()) {\r\n // Default slot overrides props\r\n $content = h('span', {\r\n staticClass: 'b-avatar-custom'\r\n }, [this.normalizeSlot()]);\r\n } else if (src) {\r\n $content = h('img', {\r\n style: variant ? {} : {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n attrs: {\r\n src: src,\r\n alt: alt\r\n },\r\n on: {\r\n error: this.onImgError\r\n }\r\n });\r\n $content = h('span', {\r\n staticClass: 'b-avatar-img'\r\n }, [$content]);\r\n } else if (icon) {\r\n $content = h(BIcon, {\r\n props: {\r\n icon: icon\r\n },\r\n attrs: {\r\n 'aria-hidden': 'true',\r\n alt: alt\r\n }\r\n });\r\n } else if (text) {\r\n $content = h('span', {\r\n staticClass: 'b-avatar-text',\r\n style: fontStyle\r\n }, [h('span', text)]);\r\n } else {\r\n // Fallback default avatar content\r\n $content = h(BIconPersonFill, {\r\n attrs: {\r\n 'aria-hidden': 'true',\r\n alt: alt\r\n }\r\n });\r\n }\r\n\r\n var $badge = h();\r\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\r\n\r\n if (badge || badge === '' || hasBadgeSlot) {\r\n var badgeText = badge === true ? '' : badge;\r\n $badge = h('span', {\r\n staticClass: 'b-avatar-badge',\r\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\r\n style: badgeStyle\r\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\r\n }\r\n\r\n var componentData = {\r\n staticClass: CLASS_NAME$2,\r\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME$2, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\r\n style: _objectSpread2$3(_objectSpread2$3({}, marginStyle), {}, {\r\n width: size,\r\n height: size\r\n }),\r\n attrs: {\r\n 'aria-label': ariaLabel || null\r\n },\r\n props: button ? {\r\n variant: variant,\r\n disabled: disabled,\r\n type: type\r\n } : link ? pluckProps(linkProps$6, this) : {},\r\n on: button || link ? {\r\n click: this.onClick\r\n } : {}\r\n };\r\n return h(tag, componentData, [$content, $badge]);\r\n }\r\n });\r\n\r\n var props$2c = makePropsConfigurable({\r\n overlap: makeProp(PROP_TYPE_NUMBER_STRING, 0.3),\r\n // Child avatars will prefer this prop (if set) over their own\r\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\r\n // Child avatars will always use this over their own size\r\n size: makeProp(PROP_TYPE_STRING),\r\n // Child avatars will prefer this prop (if set) over their own\r\n square: makeProp(PROP_TYPE_BOOLEAN, false),\r\n tag: makeProp(PROP_TYPE_STRING, 'div'),\r\n // Child avatars will prefer this variant over their own\r\n variant: makeProp(PROP_TYPE_STRING)\r\n }, NAME_AVATAR_GROUP); // --- Main component ---\r\n // @vue/component\r\n\r\n var BAvatarGroup = /*#__PURE__*/extend({\r\n name: NAME_AVATAR_GROUP,\r\n mixins: [normalizeSlotMixin],\r\n provide: function provide() {\r\n var _this = this;\r\n\r\n return {\r\n getBvAvatarGroup: function getBvAvatarGroup() {\r\n return _this;\r\n }\r\n };\r\n },\r\n props: props$2c,\r\n computed: {\r\n computedSize: function computedSize() {\r\n return computeSize(this.size);\r\n },\r\n overlapScale: function overlapScale() {\r\n return mathMin(mathMax(toFloat(this.overlap, 0), 0), 1) / 2;\r\n },\r\n paddingStyle: function paddingStyle() {\r\n var value = this.computedSize;\r\n value = value ? \"calc(\".concat(value, \" * \").concat(this.overlapScale, \")\") : null;\r\n return value ? {\r\n paddingLeft: value,\r\n paddingRight: value\r\n } : {};\r\n }\r\n },\r\n render: function render(h) {\r\n var $inner = h('div', {\r\n staticClass: 'b-avatar-group-inner',\r\n style: this.paddingStyle\r\n }, this.normalizeSlot());\r\n return h(this.tag, {\r\n staticClass: 'b-avatar-group',\r\n attrs: {\r\n role: 'group'\r\n }\r\n }, [$inner]);\r\n }\r\n });\r\n\r\n var AvatarPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BAvatar: BAvatar,\r\n BAvatarGroup: BAvatarGroup\r\n }\r\n });\r\n\r\n var linkProps$5 = omit(props$2f, ['event', 'routerTag']);\r\n delete linkProps$5.href.default;\r\n delete linkProps$5.to.default;\r\n var props$2b = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, linkProps$5), {}, {\r\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\r\n tag: makeProp(PROP_TYPE_STRING, 'span'),\r\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\r\n })), NAME_BADGE); // --- Main component ---\r\n // @vue/component\r\n\r\n var BBadge = /*#__PURE__*/extend({\r\n name: NAME_BADGE,\r\n functional: true,\r\n props: props$2b,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n var active = props.active,\r\n disabled = props.disabled;\r\n var link = isLink$1(props);\r\n var tag = link ? BLink : props.tag;\r\n var variant = props.variant || 'secondary';\r\n return h(tag, a(data, {\r\n staticClass: 'badge',\r\n class: [\"badge-\".concat(variant), {\r\n 'badge-pill': props.pill,\r\n active: active,\r\n disabled: disabled\r\n }],\r\n props: link ? pluckProps(linkProps$5, props) : {}\r\n }), children);\r\n }\r\n });\r\n\r\n var BadgePlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BBadge: BBadge\r\n }\r\n });\r\n\r\n var stripTags = function stripTags() {\r\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\r\n return String(text).replace(RX_HTML_TAGS, '');\r\n }; // Generate a `domProps` object for either `innerHTML`, `textContent` or an empty object\r\n\r\n var htmlOrText = function htmlOrText(innerHTML, textContent) {\r\n return innerHTML ? {\r\n innerHTML: innerHTML\r\n } : textContent ? {\r\n textContent: textContent\r\n } : {};\r\n };\r\n\r\n var props$2a = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, omit(props$2f, ['event', 'routerTag'])), {}, {\r\n ariaCurrent: makeProp(PROP_TYPE_STRING, 'location'),\r\n html: makeProp(PROP_TYPE_STRING),\r\n text: makeProp(PROP_TYPE_STRING)\r\n })), NAME_BREADCRUMB_LINK); // --- Main component ---\r\n // @vue/component\r\n\r\n var BBreadcrumbLink = /*#__PURE__*/extend({\r\n name: NAME_BREADCRUMB_LINK,\r\n functional: true,\r\n props: props$2a,\r\n render: function render(h, _ref) {\r\n var suppliedProps = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n var active = suppliedProps.active;\r\n var tag = active ? 'span' : BLink;\r\n var componentData = {\r\n attrs: {\r\n 'aria-current': active ? suppliedProps.ariaCurrent : null\r\n },\r\n props: pluckProps(props$2a, suppliedProps)\r\n };\r\n\r\n if (!children) {\r\n componentData.domProps = htmlOrText(suppliedProps.html, suppliedProps.text);\r\n }\r\n\r\n return h(tag, a(data, componentData), children);\r\n }\r\n });\r\n\r\n var props$29 = makePropsConfigurable(props$2a, NAME_BREADCRUMB_ITEM); // --- Main component ---\r\n // @vue/component\r\n\r\n var BBreadcrumbItem = /*#__PURE__*/extend({\r\n name: NAME_BREADCRUMB_ITEM,\r\n functional: true,\r\n props: props$29,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n return h('li', a(data, {\r\n staticClass: 'breadcrumb-item',\r\n class: {\r\n active: props.active\r\n }\r\n }), [h(BBreadcrumbLink, {\r\n props: props\r\n }, children)]);\r\n }\r\n });\r\n\r\n var props$28 = makePropsConfigurable({\r\n items: makeProp(PROP_TYPE_ARRAY)\r\n }, NAME_BREADCRUMB); // --- Main component ---\r\n // @vue/component\r\n\r\n var BBreadcrumb = /*#__PURE__*/extend({\r\n name: NAME_BREADCRUMB,\r\n functional: true,\r\n props: props$28,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n var items = props.items; // Build child nodes from items, if given\r\n\r\n var childNodes = children;\r\n\r\n if (isArray(items)) {\r\n var activeDefined = false;\r\n childNodes = items.map(function (item, idx) {\r\n if (!isObject(item)) {\r\n item = {\r\n text: toString(item)\r\n };\r\n } // Copy the value here so we can normalize it\r\n\r\n\r\n var _item = item,\r\n active = _item.active;\r\n\r\n if (active) {\r\n activeDefined = true;\r\n } // Auto-detect active by position in list\r\n\r\n\r\n if (!active && !activeDefined) {\r\n active = idx + 1 === items.length;\r\n }\r\n\r\n return h(BBreadcrumbItem, {\r\n props: _objectSpread2$3(_objectSpread2$3({}, item), {}, {\r\n active: active\r\n })\r\n });\r\n });\r\n }\r\n\r\n return h('ol', a(data, {\r\n staticClass: 'breadcrumb'\r\n }), childNodes);\r\n }\r\n });\r\n\r\n var BreadcrumbPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BBreadcrumb: BBreadcrumb,\r\n BBreadcrumbItem: BBreadcrumbItem,\r\n BBreadcrumbLink: BBreadcrumbLink\r\n }\r\n });\r\n\r\n var ButtonPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BButton: BButton,\r\n BBtn: BButton,\r\n BButtonClose: BButtonClose,\r\n BBtnClose: BButtonClose\r\n }\r\n });\r\n\r\n var props$27 = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, pick$1(props$2e, ['size'])), {}, {\r\n ariaRole: makeProp(PROP_TYPE_STRING, 'group'),\r\n size: makeProp(PROP_TYPE_STRING),\r\n tag: makeProp(PROP_TYPE_STRING, 'div'),\r\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\r\n })), NAME_BUTTON_GROUP); // --- Main component ---\r\n // @vue/component\r\n\r\n var BButtonGroup = /*#__PURE__*/extend({\r\n name: NAME_BUTTON_GROUP,\r\n functional: true,\r\n props: props$27,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n return h(props.tag, a(data, {\r\n class: _defineProperty({\r\n 'btn-group': !props.vertical,\r\n 'btn-group-vertical': props.vertical\r\n }, \"btn-group-\".concat(props.size), props.size),\r\n attrs: {\r\n role: props.ariaRole\r\n }\r\n }), children);\r\n }\r\n });\r\n\r\n var ButtonGroupPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BButtonGroup: BButtonGroup,\r\n BBtnGroup: BButtonGroup\r\n }\r\n });\r\n\r\n var ITEM_SELECTOR = ['.btn:not(.disabled):not([disabled]):not(.dropdown-item)', '.form-control:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'input[type=\"checkbox\"]:not(.disabled)', 'input[type=\"radio\"]:not(.disabled)'].join(','); // --- Props ---\r\n\r\n var props$26 = makePropsConfigurable({\r\n justify: makeProp(PROP_TYPE_BOOLEAN, false),\r\n keyNav: makeProp(PROP_TYPE_BOOLEAN, false)\r\n }, NAME_BUTTON_TOOLBAR); // --- Main component ---\r\n // @vue/component\r\n\r\n var BButtonToolbar = /*#__PURE__*/extend({\r\n name: NAME_BUTTON_TOOLBAR,\r\n mixins: [normalizeSlotMixin],\r\n props: props$26,\r\n mounted: function mounted() {\r\n // Pre-set the tabindexes if the markup does not include\r\n // `tabindex=\"-1\"` on the toolbar items\r\n if (this.keyNav) {\r\n this.getItems();\r\n }\r\n },\r\n methods: {\r\n getItems: function getItems() {\r\n var items = selectAll(ITEM_SELECTOR, this.$el); // Ensure `tabindex=\"-1\"` is set on every item\r\n\r\n items.forEach(function (item) {\r\n item.tabIndex = -1;\r\n });\r\n return items.filter(function (el) {\r\n return isVisible(el);\r\n });\r\n },\r\n focusFirst: function focusFirst() {\r\n var items = this.getItems();\r\n attemptFocus(items[0]);\r\n },\r\n focusPrev: function focusPrev(event) {\r\n var items = this.getItems();\r\n var index = items.indexOf(event.target);\r\n\r\n if (index > -1) {\r\n items = items.slice(0, index).reverse();\r\n attemptFocus(items[0]);\r\n }\r\n },\r\n focusNext: function focusNext(event) {\r\n var items = this.getItems();\r\n var index = items.indexOf(event.target);\r\n\r\n if (index > -1) {\r\n items = items.slice(index + 1);\r\n attemptFocus(items[0]);\r\n }\r\n },\r\n focusLast: function focusLast() {\r\n var items = this.getItems().reverse();\r\n attemptFocus(items[0]);\r\n },\r\n onFocusin: function onFocusin(event) {\r\n var $el = this.$el;\r\n\r\n if (event.target === $el && !contains($el, event.relatedTarget)) {\r\n stopEvent(event);\r\n this.focusFirst(event);\r\n }\r\n },\r\n onKeydown: function onKeydown(event) {\r\n var keyCode = event.keyCode,\r\n shiftKey = event.shiftKey;\r\n\r\n if (keyCode === CODE_UP || keyCode === CODE_LEFT) {\r\n stopEvent(event);\r\n shiftKey ? this.focusFirst(event) : this.focusPrev(event);\r\n } else if (keyCode === CODE_DOWN || keyCode === CODE_RIGHT) {\r\n stopEvent(event);\r\n shiftKey ? this.focusLast(event) : this.focusNext(event);\r\n }\r\n }\r\n },\r\n render: function render(h) {\r\n var keyNav = this.keyNav;\r\n return h('div', {\r\n staticClass: 'btn-toolbar',\r\n class: {\r\n 'justify-content-between': this.justify\r\n },\r\n attrs: {\r\n role: 'toolbar',\r\n tabindex: keyNav ? '0' : null\r\n },\r\n on: keyNav ? {\r\n focusin: this.onFocusin,\r\n keydown: this.onKeydown\r\n } : {}\r\n }, [this.normalizeSlot()]);\r\n }\r\n });\r\n\r\n var ButtonToolbarPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BButtonToolbar: BButtonToolbar,\r\n BBtnToolbar: BButtonToolbar\r\n }\r\n });\r\n\r\n var CALENDAR_GREGORY = 'gregory';\r\n var CALENDAR_LONG = 'long';\r\n var CALENDAR_NARROW = 'narrow';\r\n var CALENDAR_SHORT = 'short';\r\n var DATE_FORMAT_2_DIGIT = '2-digit';\r\n var DATE_FORMAT_NUMERIC = 'numeric';\r\n\r\n // Create or clone a date (`new Date(...)` shortcut)\r\n\r\n var createDate = function createDate() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key];\r\n }\r\n\r\n return _construct(Date, args);\r\n }; // Parse a date sting, or Date object, into a Date object (with no time information)\r\n\r\n var parseYMD = function parseYMD(date) {\r\n if (isString(date) && RX_DATE.test(date.trim())) {\r\n var _date$split$map = date.split(RX_DATE_SPLIT).map(function (v) {\r\n return toInteger(v, 1);\r\n }),\r\n _date$split$map2 = _slicedToArray(_date$split$map, 3),\r\n year = _date$split$map2[0],\r\n month = _date$split$map2[1],\r\n day = _date$split$map2[2];\r\n\r\n return createDate(year, month - 1, day);\r\n } else if (isDate(date)) {\r\n return createDate(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n\r\n return null;\r\n }; // Format a date object as `YYYY-MM-DD` format\r\n\r\n var formatYMD = function formatYMD(date) {\r\n date = parseYMD(date);\r\n\r\n if (!date) {\r\n return null;\r\n }\r\n\r\n var year = date.getFullYear();\r\n var month = \"0\".concat(date.getMonth() + 1).slice(-2);\r\n var day = \"0\".concat(date.getDate()).slice(-2);\r\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\r\n }; // Given a locale (or locales), resolve the browser available locale\r\n\r\n var resolveLocale = function resolveLocale(locales)\r\n /* istanbul ignore next */\r\n {\r\n var calendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_GREGORY;\r\n locales = concat(locales).filter(identity);\r\n var fmt = new Intl.DateTimeFormat(locales, {\r\n calendar: calendar\r\n });\r\n return fmt.resolvedOptions().locale;\r\n }; // Create a `Intl.DateTimeFormat` formatter function\r\n\r\n var createDateFormatter = function createDateFormatter(locale, options)\r\n /* istanbul ignore next */\r\n {\r\n var dtf = new Intl.DateTimeFormat(locale, options);\r\n return dtf.format;\r\n }; // Determine if two dates are the same date (ignoring time portion)\r\n\r\n var datesEqual = function datesEqual(date1, date2) {\r\n // Returns true of the date portion of two date objects are equal\r\n // We don't compare the time portion\r\n return formatYMD(date1) === formatYMD(date2);\r\n }; // --- Date \"math\" utility methods (for BCalendar component mainly) ---\r\n\r\n var firstDateOfMonth = function firstDateOfMonth(date) {\r\n date = createDate(date);\r\n date.setDate(1);\r\n return date;\r\n };\r\n var lastDateOfMonth = function lastDateOfMonth(date) {\r\n date = createDate(date);\r\n date.setMonth(date.getMonth() + 1);\r\n date.setDate(0);\r\n return date;\r\n };\r\n var addYears = function addYears(date, numberOfYears) {\r\n date = createDate(date);\r\n var month = date.getMonth();\r\n date.setFullYear(date.getFullYear() + numberOfYears); // Handle Feb 29th for leap years\r\n\r\n if (date.getMonth() !== month) {\r\n date.setDate(0);\r\n }\r\n\r\n return date;\r\n };\r\n var oneMonthAgo = function oneMonthAgo(date) {\r\n date = createDate(date);\r\n var month = date.getMonth();\r\n date.setMonth(month - 1); // Handle when days in month are different\r\n\r\n if (date.getMonth() === month) {\r\n date.setDate(0);\r\n }\r\n\r\n return date;\r\n };\r\n var oneMonthAhead = function oneMonthAhead(date) {\r\n date = createDate(date);\r\n var month = date.getMonth();\r\n date.setMonth(month + 1); // Handle when days in month are different\r\n\r\n if (date.getMonth() === (month + 2) % 12) {\r\n date.setDate(0);\r\n }\r\n\r\n return date;\r\n };\r\n var oneYearAgo = function oneYearAgo(date) {\r\n return addYears(date, -1);\r\n };\r\n var oneYearAhead = function oneYearAhead(date) {\r\n return addYears(date, 1);\r\n };\r\n var oneDecadeAgo = function oneDecadeAgo(date) {\r\n return addYears(date, -10);\r\n };\r\n var oneDecadeAhead = function oneDecadeAhead(date) {\r\n return addYears(date, 10);\r\n }; // Helper function to constrain a date between two values\r\n // Always returns a `Date` object or `null` if no date passed\r\n\r\n var constrainDate = function constrainDate(date) {\r\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\r\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\r\n // Ensure values are `Date` objects (or `null`)\r\n date = parseYMD(date);\r\n min = parseYMD(min) || date;\r\n max = parseYMD(max) || date; // Return a new `Date` object (or `null`)\r\n\r\n return date ? date < min ? min : date > max ? max : date : null;\r\n };\r\n\r\n // Localization utilities\r\n\r\n var RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(function (locale) {\r\n return locale.toLowerCase();\r\n }); // Returns true if the locale is RTL\r\n\r\n var isLocaleRTL = function isLocaleRTL(locale) {\r\n // Determines if the locale is RTL (only single locale supported)\r\n var parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');\r\n var locale1 = parts.slice(0, 2).join('-');\r\n var locale2 = parts[0];\r\n return arrayIncludes(RTL_LANGS, locale1) || arrayIncludes(RTL_LANGS, locale2);\r\n };\r\n\r\n // SSR safe client-side ID attribute generation\r\n\r\n var props$25 = {\r\n id: makeProp(PROP_TYPE_STRING)\r\n }; // --- Mixin ---\r\n // @vue/component\r\n\r\n var idMixin = extend({\r\n props: props$25,\r\n data: function data() {\r\n return {\r\n localId_: null\r\n };\r\n },\r\n computed: {\r\n safeId: function safeId() {\r\n // Computed property that returns a dynamic function for creating the ID\r\n // Reacts to changes in both `.id` and `.localId_` and regenerates a new function\r\n var id = this.id || this.localId_; // We return a function that accepts an optional suffix string\r\n // So this computed prop looks and works like a method\r\n // but benefits from Vue's computed prop caching\r\n\r\n var fn = function fn(suffix) {\r\n if (!id) {\r\n return null;\r\n }\r\n\r\n suffix = String(suffix || '').replace(/\\s+/g, '_');\r\n return suffix ? id + '_' + suffix : id;\r\n };\r\n\r\n return fn;\r\n }\r\n },\r\n mounted: function mounted() {\r\n var _this = this;\r\n\r\n // `mounted()` only occurs client-side\r\n this.$nextTick(function () {\r\n // Update DOM with auto-generated ID after mount\r\n // to prevent SSR hydration errors\r\n _this.localId_ = \"__BVID__\".concat(_this[COMPONENT_UID_KEY]);\r\n });\r\n }\r\n });\r\n\r\n var _watch$j;\r\n\r\n var _makeModelMixin$j = makeModelMixin('value', {\r\n type: PROP_TYPE_DATE_STRING\r\n }),\r\n modelMixin$i = _makeModelMixin$j.mixin,\r\n modelProps$i = _makeModelMixin$j.props,\r\n MODEL_PROP_NAME$i = _makeModelMixin$j.prop,\r\n MODEL_EVENT_NAME$i = _makeModelMixin$j.event; // --- Props ---\r\n\r\n\r\n var props$24 = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, props$25), modelProps$i), {}, {\r\n ariaControls: makeProp(PROP_TYPE_STRING),\r\n // Makes calendar the full width of its parent container\r\n block: makeProp(PROP_TYPE_BOOLEAN, false),\r\n dateDisabledFn: makeProp(PROP_TYPE_FUNCTION),\r\n // `Intl.DateTimeFormat` object\r\n dateFormatOptions: makeProp(PROP_TYPE_OBJECT, {\r\n year: DATE_FORMAT_NUMERIC,\r\n month: CALENDAR_LONG,\r\n day: DATE_FORMAT_NUMERIC,\r\n weekday: CALENDAR_LONG\r\n }),\r\n // Function to set a class of (classes) on the date cell\r\n // if passed a string or an array\r\n // TODO:\r\n // If the function returns an object, look for class prop for classes,\r\n // and other props for handling events/details/descriptions\r\n dateInfoFn: makeProp(PROP_TYPE_FUNCTION),\r\n // 'ltr', 'rtl', or `null` (for auto detect)\r\n direction: makeProp(PROP_TYPE_STRING),\r\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\r\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\r\n // When `true`, renders a comment node, but keeps the component instance active\r\n // Mainly for , so that we can get the component's value and locale\r\n // But we might just use separate date formatters, using the resolved locale\r\n // (adjusted for the gregorian calendar)\r\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // When `true` makes the selected date header `sr-only`\r\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // This specifies the calendar year/month/day that will be shown when\r\n // first opening the datepicker if no v-model value is provided\r\n // Default is the current date (or `min`/`max`)\r\n initialDate: makeProp(PROP_TYPE_DATE_STRING),\r\n // Labels for buttons and keyboard shortcuts\r\n labelCalendar: makeProp(PROP_TYPE_STRING, 'Calendar'),\r\n labelCurrentMonth: makeProp(PROP_TYPE_STRING, 'Current month'),\r\n labelHelp: makeProp(PROP_TYPE_STRING, 'Use cursor keys to navigate calendar dates'),\r\n labelNav: makeProp(PROP_TYPE_STRING, 'Calendar navigation'),\r\n labelNextDecade: makeProp(PROP_TYPE_STRING, 'Next decade'),\r\n labelNextMonth: makeProp(PROP_TYPE_STRING, 'Next month'),\r\n labelNextYear: makeProp(PROP_TYPE_STRING, 'Next year'),\r\n labelNoDateSelected: makeProp(PROP_TYPE_STRING, 'No date selected'),\r\n labelPrevDecade: makeProp(PROP_TYPE_STRING, 'Previous decade'),\r\n labelPrevMonth: makeProp(PROP_TYPE_STRING, 'Previous month'),\r\n labelPrevYear: makeProp(PROP_TYPE_STRING, 'Previous year'),\r\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected date'),\r\n labelToday: makeProp(PROP_TYPE_STRING, 'Today'),\r\n // Locale(s) to use\r\n // Default is to use page/browser default setting\r\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\r\n max: makeProp(PROP_TYPE_DATE_STRING),\r\n min: makeProp(PROP_TYPE_DATE_STRING),\r\n // Variant color to use for the navigation buttons\r\n navButtonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\r\n // Disable highlighting today's date\r\n noHighlightToday: makeProp(PROP_TYPE_BOOLEAN, false),\r\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\r\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\r\n roleDescription: makeProp(PROP_TYPE_STRING),\r\n // Variant color to use for the selected date\r\n selectedVariant: makeProp(PROP_TYPE_STRING, 'primary'),\r\n // When `true` enables the decade navigation buttons\r\n showDecadeNav: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Day of week to start calendar on\r\n // `0` (Sunday), `1` (Monday), ... `6` (Saturday)\r\n startWeekday: makeProp(PROP_TYPE_NUMBER_STRING, 0),\r\n // Variant color to use for today's date (defaults to `selectedVariant`)\r\n todayVariant: makeProp(PROP_TYPE_STRING),\r\n // Always return the `v-model` value as a date object\r\n valueAsDate: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Format of the weekday names at the top of the calendar\r\n // `short` is typically a 3 letter abbreviation,\r\n // `narrow` is typically a single letter\r\n // `long` is the full week day name\r\n // Although some locales may override this (i.e `ar`, etc.)\r\n weekdayHeaderFormat: makeProp(PROP_TYPE_STRING, CALENDAR_SHORT, function (value) {\r\n return arrayIncludes([CALENDAR_LONG, CALENDAR_SHORT, CALENDAR_NARROW], value);\r\n }),\r\n // Has no effect if prop `block` is set\r\n width: makeProp(PROP_TYPE_STRING, '270px')\r\n })), NAME_CALENDAR); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCalendar = extend({\r\n name: NAME_CALENDAR,\r\n // Mixin order is important!\r\n mixins: [attrsMixin, idMixin, modelMixin$i, normalizeSlotMixin],\r\n props: props$24,\r\n data: function data() {\r\n var selected = formatYMD(this[MODEL_PROP_NAME$i]) || '';\r\n return {\r\n // Selected date\r\n selectedYMD: selected,\r\n // Date in calendar grid that has `tabindex` of `0`\r\n activeYMD: selected || formatYMD(constrainDate(this.initialDate || this.getToday()), this.min, this.max),\r\n // Will be true if the calendar grid has/contains focus\r\n gridHasFocus: false,\r\n // Flag to enable the `aria-live` region(s) after mount\r\n // to prevent screen reader \"outbursts\" when mounting\r\n isLive: false\r\n };\r\n },\r\n computed: {\r\n valueId: function valueId() {\r\n return this.safeId();\r\n },\r\n widgetId: function widgetId() {\r\n return this.safeId('_calendar-wrapper_');\r\n },\r\n navId: function navId() {\r\n return this.safeId('_calendar-nav_');\r\n },\r\n gridId: function gridId() {\r\n return this.safeId('_calendar-grid_');\r\n },\r\n gridCaptionId: function gridCaptionId() {\r\n return this.safeId('_calendar-grid-caption_');\r\n },\r\n gridHelpId: function gridHelpId() {\r\n return this.safeId('_calendar-grid-help_');\r\n },\r\n activeId: function activeId() {\r\n return this.activeYMD ? this.safeId(\"_cell-\".concat(this.activeYMD, \"_\")) : null;\r\n },\r\n // TODO: Use computed props to convert `YYYY-MM-DD` to `Date` object\r\n selectedDate: function selectedDate() {\r\n // Selected as a `Date` object\r\n return parseYMD(this.selectedYMD);\r\n },\r\n activeDate: function activeDate() {\r\n // Active as a `Date` object\r\n return parseYMD(this.activeYMD);\r\n },\r\n computedMin: function computedMin() {\r\n return parseYMD(this.min);\r\n },\r\n computedMax: function computedMax() {\r\n return parseYMD(this.max);\r\n },\r\n computedWeekStarts: function computedWeekStarts() {\r\n // `startWeekday` is a prop (constrained to `0` through `6`)\r\n return mathMax(toInteger(this.startWeekday, 0), 0) % 7;\r\n },\r\n computedLocale: function computedLocale() {\r\n // Returns the resolved locale used by the calendar\r\n return resolveLocale(concat(this.locale).filter(identity), CALENDAR_GREGORY);\r\n },\r\n computedDateDisabledFn: function computedDateDisabledFn() {\r\n var dateDisabledFn = this.dateDisabledFn;\r\n return hasPropFunction(dateDisabledFn) ? dateDisabledFn : function () {\r\n return false;\r\n };\r\n },\r\n // TODO: Change `dateInfoFn` to handle events and notes as well as classes\r\n computedDateInfoFn: function computedDateInfoFn() {\r\n var dateInfoFn = this.dateInfoFn;\r\n return hasPropFunction(dateInfoFn) ? dateInfoFn : function () {\r\n return {};\r\n };\r\n },\r\n calendarLocale: function calendarLocale() {\r\n // This locale enforces the gregorian calendar (for use in formatter functions)\r\n // Needed because IE 11 resolves `ar-IR` as islamic-civil calendar\r\n // and IE 11 (and some other browsers) do not support the `calendar` option\r\n // And we currently only support the gregorian calendar\r\n var fmt = new Intl.DateTimeFormat(this.computedLocale, {\r\n calendar: CALENDAR_GREGORY\r\n });\r\n var calendar = fmt.resolvedOptions().calendar;\r\n var locale = fmt.resolvedOptions().locale;\r\n /* istanbul ignore if: mainly for IE 11 and a few other browsers, hard to test in JSDOM */\r\n\r\n if (calendar !== CALENDAR_GREGORY) {\r\n // Ensure the locale requests the gregorian calendar\r\n // Mainly for IE 11, and currently we can't handle non-gregorian calendars\r\n // TODO: Should we always return this value?\r\n locale = locale.replace(/-u-.+$/i, '').concat('-u-ca-gregory');\r\n }\r\n\r\n return locale;\r\n },\r\n calendarYear: function calendarYear() {\r\n return this.activeDate.getFullYear();\r\n },\r\n calendarMonth: function calendarMonth() {\r\n return this.activeDate.getMonth();\r\n },\r\n calendarFirstDay: function calendarFirstDay() {\r\n // We set the time for this date to 12pm to work around\r\n // date formatting issues in Firefox and Safari\r\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/5818\r\n return createDate(this.calendarYear, this.calendarMonth, 1, 12);\r\n },\r\n calendarDaysInMonth: function calendarDaysInMonth() {\r\n // We create a new date as to not mutate the original\r\n var date = createDate(this.calendarFirstDay);\r\n date.setMonth(date.getMonth() + 1, 0);\r\n return date.getDate();\r\n },\r\n computedVariant: function computedVariant() {\r\n return \"btn-\".concat(this.selectedVariant || 'primary');\r\n },\r\n computedTodayVariant: function computedTodayVariant() {\r\n return \"btn-outline-\".concat(this.todayVariant || this.selectedVariant || 'primary');\r\n },\r\n computedNavButtonVariant: function computedNavButtonVariant() {\r\n return \"btn-outline-\".concat(this.navButtonVariant || 'primary');\r\n },\r\n isRTL: function isRTL() {\r\n // `true` if the language requested is RTL\r\n var dir = toString(this.direction).toLowerCase();\r\n\r\n if (dir === 'rtl') {\r\n /* istanbul ignore next */\r\n return true;\r\n } else if (dir === 'ltr') {\r\n /* istanbul ignore next */\r\n return false;\r\n }\r\n\r\n return isLocaleRTL(this.computedLocale);\r\n },\r\n context: function context() {\r\n var selectedYMD = this.selectedYMD,\r\n activeYMD = this.activeYMD;\r\n var selectedDate = parseYMD(selectedYMD);\r\n var activeDate = parseYMD(activeYMD);\r\n return {\r\n // The current value of the `v-model`\r\n selectedYMD: selectedYMD,\r\n selectedDate: selectedDate,\r\n selectedFormatted: selectedDate ? this.formatDateString(selectedDate) : this.labelNoDateSelected,\r\n // Which date cell is considered active due to navigation\r\n activeYMD: activeYMD,\r\n activeDate: activeDate,\r\n activeFormatted: activeDate ? this.formatDateString(activeDate) : '',\r\n // `true` if the date is disabled (when using keyboard navigation)\r\n disabled: this.dateDisabled(activeDate),\r\n // Locales used in formatting dates\r\n locale: this.computedLocale,\r\n calendarLocale: this.calendarLocale,\r\n rtl: this.isRTL\r\n };\r\n },\r\n // Computed props that return a function reference\r\n dateOutOfRange: function dateOutOfRange() {\r\n // Check whether a date is within the min/max range\r\n // Returns a new function ref if the pops change\r\n // We do this as we need to trigger the calendar computed prop\r\n // to update when these props update\r\n var min = this.computedMin,\r\n max = this.computedMax;\r\n return function (date) {\r\n // Handle both `YYYY-MM-DD` and `Date` objects\r\n date = parseYMD(date);\r\n return min && date < min || max && date > max;\r\n };\r\n },\r\n dateDisabled: function dateDisabled() {\r\n var _this = this;\r\n\r\n // Returns a function for validating if a date is within range\r\n // We grab this variables first to ensure a new function ref\r\n // is generated when the props value changes\r\n // We do this as we need to trigger the calendar computed prop\r\n // to update when these props update\r\n var rangeFn = this.dateOutOfRange; // Return the function ref\r\n\r\n return function (date) {\r\n // Handle both `YYYY-MM-DD` and `Date` objects\r\n date = parseYMD(date);\r\n var ymd = formatYMD(date);\r\n return !!(rangeFn(date) || _this.computedDateDisabledFn(ymd, date));\r\n };\r\n },\r\n // Computed props that return date formatter functions\r\n formatDateString: function formatDateString() {\r\n // Returns a date formatter function\r\n return createDateFormatter(this.calendarLocale, _objectSpread2$3(_objectSpread2$3({\r\n // Ensure we have year, month, day shown for screen readers/ARIA\r\n // If users really want to leave one of these out, they can\r\n // pass `undefined` for the property value\r\n year: DATE_FORMAT_NUMERIC,\r\n month: DATE_FORMAT_2_DIGIT,\r\n day: DATE_FORMAT_2_DIGIT\r\n }, this.dateFormatOptions), {}, {\r\n // Ensure hours/minutes/seconds are not shown\r\n // As we do not support the time portion (yet)\r\n hour: undefined,\r\n minute: undefined,\r\n second: undefined,\r\n // Ensure calendar is gregorian\r\n calendar: CALENDAR_GREGORY\r\n }));\r\n },\r\n formatYearMonth: function formatYearMonth() {\r\n // Returns a date formatter function\r\n return createDateFormatter(this.calendarLocale, {\r\n year: DATE_FORMAT_NUMERIC,\r\n month: CALENDAR_LONG,\r\n calendar: CALENDAR_GREGORY\r\n });\r\n },\r\n formatWeekdayName: function formatWeekdayName() {\r\n // Long weekday name for weekday header aria-label\r\n return createDateFormatter(this.calendarLocale, {\r\n weekday: CALENDAR_LONG,\r\n calendar: CALENDAR_GREGORY\r\n });\r\n },\r\n formatWeekdayNameShort: function formatWeekdayNameShort() {\r\n // Weekday header cell format\r\n // defaults to 'short' 3 letter days, where possible\r\n return createDateFormatter(this.calendarLocale, {\r\n weekday: this.weekdayHeaderFormat || CALENDAR_SHORT,\r\n calendar: CALENDAR_GREGORY\r\n });\r\n },\r\n formatDay: function formatDay() {\r\n // Calendar grid day number formatter\r\n // We don't use DateTimeFormatter here as it can place extra\r\n // character(s) after the number (i.e the `zh` locale)\r\n var nf = new Intl.NumberFormat([this.computedLocale], {\r\n style: 'decimal',\r\n minimumIntegerDigits: 1,\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 0,\r\n notation: 'standard'\r\n }); // Return a formatter function instance\r\n\r\n return function (date) {\r\n return nf.format(date.getDate());\r\n };\r\n },\r\n // Disabled states for the nav buttons\r\n prevDecadeDisabled: function prevDecadeDisabled() {\r\n var min = this.computedMin;\r\n return this.disabled || min && lastDateOfMonth(oneDecadeAgo(this.activeDate)) < min;\r\n },\r\n prevYearDisabled: function prevYearDisabled() {\r\n var min = this.computedMin;\r\n return this.disabled || min && lastDateOfMonth(oneYearAgo(this.activeDate)) < min;\r\n },\r\n prevMonthDisabled: function prevMonthDisabled() {\r\n var min = this.computedMin;\r\n return this.disabled || min && lastDateOfMonth(oneMonthAgo(this.activeDate)) < min;\r\n },\r\n thisMonthDisabled: function thisMonthDisabled() {\r\n // TODO: We could/should check if today is out of range\r\n return this.disabled;\r\n },\r\n nextMonthDisabled: function nextMonthDisabled() {\r\n var max = this.computedMax;\r\n return this.disabled || max && firstDateOfMonth(oneMonthAhead(this.activeDate)) > max;\r\n },\r\n nextYearDisabled: function nextYearDisabled() {\r\n var max = this.computedMax;\r\n return this.disabled || max && firstDateOfMonth(oneYearAhead(this.activeDate)) > max;\r\n },\r\n nextDecadeDisabled: function nextDecadeDisabled() {\r\n var max = this.computedMax;\r\n return this.disabled || max && firstDateOfMonth(oneDecadeAhead(this.activeDate)) > max;\r\n },\r\n // Calendar dates generation\r\n calendar: function calendar() {\r\n var matrix = [];\r\n var firstDay = this.calendarFirstDay;\r\n var calendarYear = firstDay.getFullYear();\r\n var calendarMonth = firstDay.getMonth();\r\n var daysInMonth = this.calendarDaysInMonth;\r\n var startIndex = firstDay.getDay(); // `0`..`6`\r\n\r\n var weekOffset = (this.computedWeekStarts > startIndex ? 7 : 0) - this.computedWeekStarts; // Build the calendar matrix\r\n\r\n var currentDay = 0 - weekOffset - startIndex;\r\n\r\n for (var week = 0; week < 6 && currentDay < daysInMonth; week++) {\r\n // For each week\r\n matrix[week] = []; // The following could be a map function\r\n\r\n for (var j = 0; j < 7; j++) {\r\n // For each day in week\r\n currentDay++;\r\n var date = createDate(calendarYear, calendarMonth, currentDay);\r\n var month = date.getMonth();\r\n var dayYMD = formatYMD(date);\r\n var dayDisabled = this.dateDisabled(date); // TODO: This could be a normalizer method\r\n\r\n var dateInfo = this.computedDateInfoFn(dayYMD, parseYMD(dayYMD));\r\n dateInfo = isString(dateInfo) || isArray(dateInfo) ?\r\n /* istanbul ignore next */\r\n {\r\n class: dateInfo\r\n } : isPlainObject(dateInfo) ? _objectSpread2$3({\r\n class: ''\r\n }, dateInfo) :\r\n /* istanbul ignore next */\r\n {\r\n class: ''\r\n };\r\n matrix[week].push({\r\n ymd: dayYMD,\r\n // Cell content\r\n day: this.formatDay(date),\r\n label: this.formatDateString(date),\r\n // Flags for styling\r\n isThisMonth: month === calendarMonth,\r\n isDisabled: dayDisabled,\r\n // TODO: Handle other dateInfo properties such as notes/events\r\n info: dateInfo\r\n });\r\n }\r\n }\r\n\r\n return matrix;\r\n },\r\n calendarHeadings: function calendarHeadings() {\r\n var _this2 = this;\r\n\r\n return this.calendar[0].map(function (d) {\r\n return {\r\n text: _this2.formatWeekdayNameShort(parseYMD(d.ymd)),\r\n label: _this2.formatWeekdayName(parseYMD(d.ymd))\r\n };\r\n });\r\n }\r\n },\r\n watch: (_watch$j = {}, _defineProperty(_watch$j, MODEL_PROP_NAME$i, function (newValue, oldValue) {\r\n var selected = formatYMD(newValue) || '';\r\n var old = formatYMD(oldValue) || '';\r\n\r\n if (!datesEqual(selected, old)) {\r\n this.activeYMD = selected || this.activeYMD;\r\n this.selectedYMD = selected;\r\n }\r\n }), _defineProperty(_watch$j, \"selectedYMD\", function selectedYMD(newYMD, oldYMD) {\r\n // TODO:\r\n // Should we compare to `formatYMD(this.value)` and emit\r\n // only if they are different?\r\n if (newYMD !== oldYMD) {\r\n this.$emit(MODEL_EVENT_NAME$i, this.valueAsDate ? parseYMD(newYMD) || null : newYMD || '');\r\n }\r\n }), _defineProperty(_watch$j, \"context\", function context(newValue, oldValue) {\r\n if (!looseEqual(newValue, oldValue)) {\r\n this.$emit(EVENT_NAME_CONTEXT, newValue);\r\n }\r\n }), _defineProperty(_watch$j, \"hidden\", function hidden(newValue) {\r\n // Reset the active focused day when hidden\r\n this.activeYMD = this.selectedYMD || formatYMD(this[MODEL_PROP_NAME$i] || this.constrainDate(this.initialDate || this.getToday())); // Enable/disable the live regions\r\n\r\n this.setLive(!newValue);\r\n }), _watch$j),\r\n created: function created() {\r\n var _this3 = this;\r\n\r\n this.$nextTick(function () {\r\n _this3.$emit(EVENT_NAME_CONTEXT, _this3.context);\r\n });\r\n },\r\n mounted: function mounted() {\r\n this.setLive(true);\r\n },\r\n\r\n /* istanbul ignore next */\r\n activated: function activated() {\r\n this.setLive(true);\r\n },\r\n\r\n /* istanbul ignore next */\r\n deactivated: function deactivated() {\r\n this.setLive(false);\r\n },\r\n beforeDestroy: function beforeDestroy() {\r\n this.setLive(false);\r\n },\r\n methods: {\r\n // Public method(s)\r\n focus: function focus() {\r\n if (!this.disabled) {\r\n attemptFocus(this.$refs.grid);\r\n }\r\n },\r\n blur: function blur() {\r\n if (!this.disabled) {\r\n attemptBlur(this.$refs.grid);\r\n }\r\n },\r\n // Private methods\r\n setLive: function setLive(on) {\r\n var _this4 = this;\r\n\r\n if (on) {\r\n this.$nextTick(function () {\r\n requestAF(function () {\r\n _this4.isLive = true;\r\n });\r\n });\r\n } else {\r\n this.isLive = false;\r\n }\r\n },\r\n getToday: function getToday() {\r\n return parseYMD(createDate());\r\n },\r\n constrainDate: function constrainDate$1(date) {\r\n // Constrains a date between min and max\r\n // returns a new `Date` object instance\r\n return constrainDate(date, this.computedMin, this.computedMax);\r\n },\r\n emitSelected: function emitSelected(date) {\r\n var _this5 = this;\r\n\r\n // Performed in a `$nextTick()` to (probably) ensure\r\n // the input event has emitted first\r\n this.$nextTick(function () {\r\n _this5.$emit(EVENT_NAME_SELECTED, formatYMD(date) || '', parseYMD(date) || null);\r\n });\r\n },\r\n // Event handlers\r\n setGridFocusFlag: function setGridFocusFlag(event) {\r\n // Sets the gridHasFocus flag to make date \"button\" look focused\r\n this.gridHasFocus = !this.disabled && event.type === 'focus';\r\n },\r\n onKeydownWrapper: function onKeydownWrapper(event) {\r\n // Calendar keyboard navigation\r\n // Handles PAGEUP/PAGEDOWN/END/HOME/LEFT/UP/RIGHT/DOWN\r\n // Focuses grid after updating\r\n if (this.noKeyNav) {\r\n /* istanbul ignore next */\r\n return;\r\n }\r\n\r\n var altKey = event.altKey,\r\n ctrlKey = event.ctrlKey,\r\n keyCode = event.keyCode;\r\n\r\n if (!arrayIncludes([CODE_PAGEUP, CODE_PAGEDOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_UP, CODE_RIGHT, CODE_DOWN], keyCode)) {\r\n /* istanbul ignore next */\r\n return;\r\n }\r\n\r\n stopEvent(event);\r\n var activeDate = createDate(this.activeDate);\r\n var checkDate = createDate(this.activeDate);\r\n var day = activeDate.getDate();\r\n var constrainedToday = this.constrainDate(this.getToday());\r\n var isRTL = this.isRTL;\r\n\r\n if (keyCode === CODE_PAGEUP) {\r\n // PAGEUP - Previous month/year\r\n activeDate = (altKey ? ctrlKey ? oneDecadeAgo : oneYearAgo : oneMonthAgo)(activeDate); // We check the first day of month to be in rage\r\n\r\n checkDate = createDate(activeDate);\r\n checkDate.setDate(1);\r\n } else if (keyCode === CODE_PAGEDOWN) {\r\n // PAGEDOWN - Next month/year\r\n activeDate = (altKey ? ctrlKey ? oneDecadeAhead : oneYearAhead : oneMonthAhead)(activeDate); // We check the last day of month to be in rage\r\n\r\n checkDate = createDate(activeDate);\r\n checkDate.setMonth(checkDate.getMonth() + 1);\r\n checkDate.setDate(0);\r\n } else if (keyCode === CODE_LEFT) {\r\n // LEFT - Previous day (or next day for RTL)\r\n activeDate.setDate(day + (isRTL ? 1 : -1));\r\n activeDate = this.constrainDate(activeDate);\r\n checkDate = activeDate;\r\n } else if (keyCode === CODE_RIGHT) {\r\n // RIGHT - Next day (or previous day for RTL)\r\n activeDate.setDate(day + (isRTL ? -1 : 1));\r\n activeDate = this.constrainDate(activeDate);\r\n checkDate = activeDate;\r\n } else if (keyCode === CODE_UP) {\r\n // UP - Previous week\r\n activeDate.setDate(day - 7);\r\n activeDate = this.constrainDate(activeDate);\r\n checkDate = activeDate;\r\n } else if (keyCode === CODE_DOWN) {\r\n // DOWN - Next week\r\n activeDate.setDate(day + 7);\r\n activeDate = this.constrainDate(activeDate);\r\n checkDate = activeDate;\r\n } else if (keyCode === CODE_HOME) {\r\n // HOME - Today\r\n activeDate = constrainedToday;\r\n checkDate = activeDate;\r\n } else if (keyCode === CODE_END) {\r\n // END - Selected date, or today if no selected date\r\n activeDate = parseYMD(this.selectedDate) || constrainedToday;\r\n checkDate = activeDate;\r\n }\r\n\r\n if (!this.dateOutOfRange(checkDate) && !datesEqual(activeDate, this.activeDate)) {\r\n // We only jump to date if within min/max\r\n // We don't check for individual disabled dates though (via user function)\r\n this.activeYMD = formatYMD(activeDate);\r\n } // Ensure grid is focused\r\n\r\n\r\n this.focus();\r\n },\r\n onKeydownGrid: function onKeydownGrid(event) {\r\n // Pressing enter/space on grid to select active date\r\n var keyCode = event.keyCode;\r\n var activeDate = this.activeDate;\r\n\r\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\r\n stopEvent(event);\r\n\r\n if (!this.disabled && !this.readonly && !this.dateDisabled(activeDate)) {\r\n this.selectedYMD = formatYMD(activeDate);\r\n this.emitSelected(activeDate);\r\n } // Ensure grid is focused\r\n\r\n\r\n this.focus();\r\n }\r\n },\r\n onClickDay: function onClickDay(day) {\r\n // Clicking on a date \"button\" to select it\r\n var selectedDate = this.selectedDate,\r\n activeDate = this.activeDate;\r\n var clickedDate = parseYMD(day.ymd);\r\n\r\n if (!this.disabled && !day.isDisabled && !this.dateDisabled(clickedDate)) {\r\n if (!this.readonly) {\r\n // If readonly mode, we don't set the selected date, just the active date\r\n // If the clicked date is equal to the already selected date, we don't update the model\r\n this.selectedYMD = formatYMD(datesEqual(clickedDate, selectedDate) ? selectedDate : clickedDate);\r\n this.emitSelected(clickedDate);\r\n }\r\n\r\n this.activeYMD = formatYMD(datesEqual(clickedDate, activeDate) ? activeDate : createDate(clickedDate)); // Ensure grid is focused\r\n\r\n this.focus();\r\n }\r\n },\r\n gotoPrevDecade: function gotoPrevDecade() {\r\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAgo(this.activeDate)));\r\n },\r\n gotoPrevYear: function gotoPrevYear() {\r\n this.activeYMD = formatYMD(this.constrainDate(oneYearAgo(this.activeDate)));\r\n },\r\n gotoPrevMonth: function gotoPrevMonth() {\r\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAgo(this.activeDate)));\r\n },\r\n gotoCurrentMonth: function gotoCurrentMonth() {\r\n // TODO: Maybe this goto date should be configurable?\r\n this.activeYMD = formatYMD(this.constrainDate(this.getToday()));\r\n },\r\n gotoNextMonth: function gotoNextMonth() {\r\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAhead(this.activeDate)));\r\n },\r\n gotoNextYear: function gotoNextYear() {\r\n this.activeYMD = formatYMD(this.constrainDate(oneYearAhead(this.activeDate)));\r\n },\r\n gotoNextDecade: function gotoNextDecade() {\r\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAhead(this.activeDate)));\r\n },\r\n onHeaderClick: function onHeaderClick() {\r\n if (!this.disabled) {\r\n this.activeYMD = this.selectedYMD || formatYMD(this.getToday());\r\n this.focus();\r\n }\r\n }\r\n },\r\n render: function render(h) {\r\n var _this6 = this;\r\n\r\n // If `hidden` prop is set, render just a placeholder node\r\n if (this.hidden) {\r\n return h();\r\n }\r\n\r\n var valueId = this.valueId,\r\n widgetId = this.widgetId,\r\n navId = this.navId,\r\n gridId = this.gridId,\r\n gridCaptionId = this.gridCaptionId,\r\n gridHelpId = this.gridHelpId,\r\n activeId = this.activeId,\r\n disabled = this.disabled,\r\n noKeyNav = this.noKeyNav,\r\n isLive = this.isLive,\r\n isRTL = this.isRTL,\r\n activeYMD = this.activeYMD,\r\n selectedYMD = this.selectedYMD,\r\n safeId = this.safeId;\r\n var hideDecadeNav = !this.showDecadeNav;\r\n var todayYMD = formatYMD(this.getToday());\r\n var highlightToday = !this.noHighlightToday; // Header showing current selected date\r\n\r\n var $header = h('output', {\r\n staticClass: 'form-control form-control-sm text-center',\r\n class: {\r\n 'text-muted': disabled,\r\n readonly: this.readonly || disabled\r\n },\r\n attrs: {\r\n id: valueId,\r\n for: gridId,\r\n role: 'status',\r\n tabindex: disabled ? null : '-1',\r\n // Mainly for testing purposes, as we do not know\r\n // the exact format `Intl` will format the date string\r\n 'data-selected': toString(selectedYMD),\r\n // We wait until after mount to enable `aria-live`\r\n // to prevent initial announcement on page render\r\n 'aria-live': isLive ? 'polite' : 'off',\r\n 'aria-atomic': isLive ? 'true' : null\r\n },\r\n on: {\r\n // Transfer focus/click to focus grid\r\n // and focus active date (or today if no selection)\r\n click: this.onHeaderClick,\r\n focus: this.onHeaderClick\r\n }\r\n }, this.selectedDate ? [// We use `bdi` elements here in case the label doesn't match the locale\r\n // Although IE 11 does not deal with at all (equivalent to a span)\r\n h('bdi', {\r\n staticClass: 'sr-only'\r\n }, \" (\".concat(toString(this.labelSelected), \") \")), h('bdi', this.formatDateString(this.selectedDate))] : this.labelNoDateSelected || \"\\xA0\" // ' '\r\n );\r\n $header = h(this.headerTag, {\r\n staticClass: 'b-calendar-header',\r\n class: {\r\n 'sr-only': this.hideHeader\r\n },\r\n attrs: {\r\n title: this.selectedDate ? this.labelSelected || null : null\r\n }\r\n }, [$header]); // Content for the date navigation buttons\r\n\r\n var navScope = {\r\n isRTL: isRTL\r\n };\r\n var navProps = {\r\n shiftV: 0.5\r\n };\r\n\r\n var navPrevProps = _objectSpread2$3(_objectSpread2$3({}, navProps), {}, {\r\n flipH: isRTL\r\n });\r\n\r\n var navNextProps = _objectSpread2$3(_objectSpread2$3({}, navProps), {}, {\r\n flipH: !isRTL\r\n });\r\n\r\n var $prevDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_DECADE, navScope) || h(BIconChevronBarLeft, {\r\n props: navPrevProps\r\n });\r\n var $prevYearIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_YEAR, navScope) || h(BIconChevronDoubleLeft, {\r\n props: navPrevProps\r\n });\r\n var $prevMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_MONTH, navScope) || h(BIconChevronLeft, {\r\n props: navPrevProps\r\n });\r\n var $thisMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_THIS_MONTH, navScope) || h(BIconCircleFill, {\r\n props: navProps\r\n });\r\n var $nextMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_MONTH, navScope) || h(BIconChevronLeft, {\r\n props: navNextProps\r\n });\r\n var $nextYearIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_YEAR, navScope) || h(BIconChevronDoubleLeft, {\r\n props: navNextProps\r\n });\r\n var $nextDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_DECADE, navScope) || h(BIconChevronBarLeft, {\r\n props: navNextProps\r\n }); // Utility to create the date navigation buttons\r\n\r\n var makeNavBtn = function makeNavBtn(content, label, handler, btnDisabled, shortcut) {\r\n return h('button', {\r\n staticClass: 'btn btn-sm border-0 flex-fill',\r\n class: [_this6.computedNavButtonVariant, {\r\n disabled: btnDisabled\r\n }],\r\n attrs: {\r\n title: label || null,\r\n type: 'button',\r\n tabindex: noKeyNav ? '-1' : null,\r\n 'aria-label': label || null,\r\n 'aria-disabled': btnDisabled ? 'true' : null,\r\n 'aria-keyshortcuts': shortcut || null\r\n },\r\n on: btnDisabled ? {} : {\r\n click: handler\r\n }\r\n }, [h('div', {\r\n attrs: {\r\n 'aria-hidden': 'true'\r\n }\r\n }, [content])]);\r\n }; // Generate the date navigation buttons\r\n\r\n\r\n var $nav = h('div', {\r\n staticClass: 'b-calendar-nav d-flex',\r\n attrs: {\r\n id: navId,\r\n role: 'group',\r\n tabindex: noKeyNav ? '-1' : null,\r\n 'aria-hidden': disabled ? 'true' : null,\r\n 'aria-label': this.labelNav || null,\r\n 'aria-controls': gridId\r\n }\r\n }, [hideDecadeNav ? h() : makeNavBtn($prevDecadeIcon, this.labelPrevDecade, this.gotoPrevDecade, this.prevDecadeDisabled, 'Ctrl+Alt+PageDown'), makeNavBtn($prevYearIcon, this.labelPrevYear, this.gotoPrevYear, this.prevYearDisabled, 'Alt+PageDown'), makeNavBtn($prevMonthIcon, this.labelPrevMonth, this.gotoPrevMonth, this.prevMonthDisabled, 'PageDown'), makeNavBtn($thisMonthIcon, this.labelCurrentMonth, this.gotoCurrentMonth, this.thisMonthDisabled, 'Home'), makeNavBtn($nextMonthIcon, this.labelNextMonth, this.gotoNextMonth, this.nextMonthDisabled, 'PageUp'), makeNavBtn($nextYearIcon, this.labelNextYear, this.gotoNextYear, this.nextYearDisabled, 'Alt+PageUp'), hideDecadeNav ? h() : makeNavBtn($nextDecadeIcon, this.labelNextDecade, this.gotoNextDecade, this.nextDecadeDisabled, 'Ctrl+Alt+PageUp')]); // Caption for calendar grid\r\n\r\n var $gridCaption = h('div', {\r\n staticClass: 'b-calendar-grid-caption text-center font-weight-bold',\r\n class: {\r\n 'text-muted': disabled\r\n },\r\n attrs: {\r\n id: gridCaptionId,\r\n 'aria-live': isLive ? 'polite' : null,\r\n 'aria-atomic': isLive ? 'true' : null\r\n },\r\n key: 'grid-caption'\r\n }, this.formatYearMonth(this.calendarFirstDay)); // Calendar weekday headings\r\n\r\n var $gridWeekDays = h('div', {\r\n staticClass: 'b-calendar-grid-weekdays row no-gutters border-bottom',\r\n attrs: {\r\n 'aria-hidden': 'true'\r\n }\r\n }, this.calendarHeadings.map(function (d, idx) {\r\n return h('small', {\r\n staticClass: 'col text-truncate',\r\n class: {\r\n 'text-muted': disabled\r\n },\r\n attrs: {\r\n title: d.label === d.text ? null : d.label,\r\n 'aria-label': d.label\r\n },\r\n key: idx\r\n }, d.text);\r\n })); // Calendar day grid\r\n\r\n var $gridBody = this.calendar.map(function (week) {\r\n var $cells = week.map(function (day, dIndex) {\r\n var _class;\r\n\r\n var isSelected = day.ymd === selectedYMD;\r\n var isActive = day.ymd === activeYMD;\r\n var isToday = day.ymd === todayYMD;\r\n var idCell = safeId(\"_cell-\".concat(day.ymd, \"_\")); // \"fake\" button\r\n\r\n var $btn = h('span', {\r\n staticClass: 'btn border-0 rounded-circle text-nowrap',\r\n // Should we add some classes to signify if today/selected/etc?\r\n class: (_class = {\r\n // Give the fake button a focus ring\r\n focus: isActive && _this6.gridHasFocus,\r\n // Styling\r\n disabled: day.isDisabled || disabled,\r\n active: isSelected\r\n }, _defineProperty(_class, _this6.computedVariant, isSelected), _defineProperty(_class, _this6.computedTodayVariant, isToday && highlightToday && !isSelected && day.isThisMonth), _defineProperty(_class, 'btn-outline-light', !(isToday && highlightToday) && !isSelected && !isActive), _defineProperty(_class, 'btn-light', !(isToday && highlightToday) && !isSelected && isActive), _defineProperty(_class, 'text-muted', !day.isThisMonth && !isSelected), _defineProperty(_class, 'text-dark', !(isToday && highlightToday) && !isSelected && !isActive && day.isThisMonth), _defineProperty(_class, 'font-weight-bold', (isSelected || day.isThisMonth) && !day.isDisabled), _class),\r\n on: {\r\n click: function click() {\r\n return _this6.onClickDay(day);\r\n }\r\n }\r\n }, day.day);\r\n return h('div', // Cell with button\r\n {\r\n staticClass: 'col p-0',\r\n class: day.isDisabled ? 'bg-light' : day.info.class || '',\r\n attrs: {\r\n id: idCell,\r\n role: 'button',\r\n 'data-date': day.ymd,\r\n // Primarily for testing purposes\r\n // Only days in the month are presented as buttons to screen readers\r\n 'aria-hidden': day.isThisMonth ? null : 'true',\r\n 'aria-disabled': day.isDisabled || disabled ? 'true' : null,\r\n 'aria-label': [day.label, isSelected ? \"(\".concat(_this6.labelSelected, \")\") : null, isToday ? \"(\".concat(_this6.labelToday, \")\") : null].filter(identity).join(' '),\r\n // NVDA doesn't convey `aria-selected`, but does `aria-current`,\r\n // ChromeVox doesn't convey `aria-current`, but does `aria-selected`,\r\n // so we set both attributes for robustness\r\n 'aria-selected': isSelected ? 'true' : null,\r\n 'aria-current': isSelected ? 'date' : null\r\n },\r\n key: dIndex\r\n }, [$btn]);\r\n }); // Return the week \"row\"\r\n // We use the first day of the weeks YMD value as a\r\n // key for efficient DOM patching / element re-use\r\n\r\n return h('div', {\r\n staticClass: 'row no-gutters',\r\n key: week[0].ymd\r\n }, $cells);\r\n });\r\n $gridBody = h('div', {\r\n // A key is only required on the body if we add in transition support\r\n staticClass: 'b-calendar-grid-body',\r\n style: disabled ? {\r\n pointerEvents: 'none'\r\n } : {} // key: this.activeYMD.slice(0, -3)\r\n\r\n }, $gridBody);\r\n var $gridHelp = h('div', {\r\n staticClass: 'b-calendar-grid-help border-top small text-muted text-center bg-light',\r\n attrs: {\r\n id: gridHelpId\r\n }\r\n }, [h('div', {\r\n staticClass: 'small'\r\n }, this.labelHelp)]);\r\n var $grid = h('div', {\r\n staticClass: 'b-calendar-grid form-control h-auto text-center',\r\n attrs: {\r\n id: gridId,\r\n role: 'application',\r\n tabindex: noKeyNav ? '-1' : disabled ? null : '0',\r\n 'data-month': activeYMD.slice(0, -3),\r\n // `YYYY-MM`, mainly for testing\r\n 'aria-roledescription': this.labelCalendar || null,\r\n 'aria-labelledby': gridCaptionId,\r\n 'aria-describedby': gridHelpId,\r\n // `aria-readonly` is not considered valid on `role=\"application\"`\r\n // https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\r\n // 'aria-readonly': this.readonly && !disabled ? 'true' : null,\r\n 'aria-disabled': disabled ? 'true' : null,\r\n 'aria-activedescendant': activeId\r\n },\r\n on: {\r\n keydown: this.onKeydownGrid,\r\n focus: this.setGridFocusFlag,\r\n blur: this.setGridFocusFlag\r\n },\r\n ref: 'grid'\r\n }, [$gridCaption, $gridWeekDays, $gridBody, $gridHelp]); // Optional bottom slot\r\n\r\n var $slot = this.normalizeSlot();\r\n $slot = $slot ? h('footer', {\r\n staticClass: 'b-calendar-footer'\r\n }, $slot) : h();\r\n var $widget = h('div', {\r\n staticClass: 'b-calendar-inner',\r\n style: this.block ? {} : {\r\n width: this.width\r\n },\r\n attrs: {\r\n id: widgetId,\r\n dir: isRTL ? 'rtl' : 'ltr',\r\n lang: this.computedLocale || null,\r\n role: 'group',\r\n 'aria-disabled': disabled ? 'true' : null,\r\n // If datepicker controls an input, this will specify the ID of the input\r\n 'aria-controls': this.ariaControls || null,\r\n // This should be a prop (so it can be changed to Date picker, etc, localized\r\n 'aria-roledescription': this.roleDescription || null,\r\n 'aria-describedby': [// Should the attr (if present) go last?\r\n // Or should this attr be a prop?\r\n this.bvAttrs['aria-describedby'], valueId, gridHelpId].filter(identity).join(' ')\r\n },\r\n on: {\r\n keydown: this.onKeydownWrapper\r\n }\r\n }, [$header, $nav, $grid, $slot]); // Wrap in an outer div that can be styled\r\n\r\n return h('div', {\r\n staticClass: 'b-calendar',\r\n class: {\r\n 'd-block': this.block\r\n }\r\n }, [$widget]);\r\n }\r\n });\r\n\r\n var CalendarPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BCalendar: BCalendar\r\n }\r\n });\r\n\r\n var props$23 = makePropsConfigurable({\r\n bgVariant: makeProp(PROP_TYPE_STRING),\r\n borderVariant: makeProp(PROP_TYPE_STRING),\r\n tag: makeProp(PROP_TYPE_STRING, 'div'),\r\n textVariant: makeProp(PROP_TYPE_STRING)\r\n }, NAME_CARD); // --- Mixin ---\r\n // @vue/component\r\n\r\n extend({\r\n props: props$23\r\n });\r\n\r\n var props$22 = makePropsConfigurable({\r\n title: makeProp(PROP_TYPE_STRING),\r\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\r\n }, NAME_CARD_TITLE); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCardTitle = /*#__PURE__*/extend({\r\n name: NAME_CARD_TITLE,\r\n functional: true,\r\n props: props$22,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n return h(props.titleTag, a(data, {\r\n staticClass: 'card-title'\r\n }), children || toString(props.title));\r\n }\r\n });\r\n\r\n var props$21 = makePropsConfigurable({\r\n subTitle: makeProp(PROP_TYPE_STRING),\r\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\r\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\r\n }, NAME_CARD_SUB_TITLE); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCardSubTitle = /*#__PURE__*/extend({\r\n name: NAME_CARD_SUB_TITLE,\r\n functional: true,\r\n props: props$21,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n return h(props.subTitleTag, a(data, {\r\n staticClass: 'card-subtitle',\r\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\r\n }), children || toString(props.subTitle));\r\n }\r\n });\r\n\r\n var props$20 = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, props$22), props$21), copyProps(props$23, prefixPropName.bind(null, 'body'))), {}, {\r\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\r\n })), NAME_CARD_BODY); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCardBody = /*#__PURE__*/extend({\r\n name: NAME_CARD_BODY,\r\n functional: true,\r\n props: props$20,\r\n render: function render(h, _ref) {\r\n var _ref2;\r\n\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n var bodyBgVariant = props.bodyBgVariant,\r\n bodyBorderVariant = props.bodyBorderVariant,\r\n bodyTextVariant = props.bodyTextVariant;\r\n var $title = h();\r\n\r\n if (props.title) {\r\n $title = h(BCardTitle, {\r\n props: pluckProps(props$22, props)\r\n });\r\n }\r\n\r\n var $subTitle = h();\r\n\r\n if (props.subTitle) {\r\n $subTitle = h(BCardSubTitle, {\r\n props: pluckProps(props$21, props),\r\n class: ['mb-2']\r\n });\r\n }\r\n\r\n return h(props.bodyTag, a(data, {\r\n staticClass: 'card-body',\r\n class: [(_ref2 = {\r\n 'card-img-overlay': props.overlay\r\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\r\n }), [$title, $subTitle, children]);\r\n }\r\n });\r\n\r\n var props$1$ = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, copyProps(props$23, prefixPropName.bind(null, 'header'))), {}, {\r\n header: makeProp(PROP_TYPE_STRING),\r\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n headerHtml: makeProp(PROP_TYPE_STRING)\r\n })), NAME_CARD_HEADER); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCardHeader = /*#__PURE__*/extend({\r\n name: NAME_CARD_HEADER,\r\n functional: true,\r\n props: props$1$,\r\n render: function render(h, _ref) {\r\n var _ref2;\r\n\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n var headerBgVariant = props.headerBgVariant,\r\n headerBorderVariant = props.headerBorderVariant,\r\n headerTextVariant = props.headerTextVariant;\r\n return h(props.headerTag, a(data, {\r\n staticClass: 'card-header',\r\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\r\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\r\n }), children);\r\n }\r\n });\r\n\r\n var props$1_ = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, copyProps(props$23, prefixPropName.bind(null, 'footer'))), {}, {\r\n footer: makeProp(PROP_TYPE_STRING),\r\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n footerHtml: makeProp(PROP_TYPE_STRING)\r\n })), NAME_CARD_FOOTER); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCardFooter = /*#__PURE__*/extend({\r\n name: NAME_CARD_FOOTER,\r\n functional: true,\r\n props: props$1_,\r\n render: function render(h, _ref) {\r\n var _ref2;\r\n\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n var footerBgVariant = props.footerBgVariant,\r\n footerBorderVariant = props.footerBorderVariant,\r\n footerTextVariant = props.footerTextVariant;\r\n return h(props.footerTag, a(data, {\r\n staticClass: 'card-footer',\r\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\r\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\r\n }), children);\r\n }\r\n });\r\n\r\n // Blank image with fill template\r\n\r\n var BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\r\n\r\n var makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\r\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\r\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\r\n }; // --- Props ---\r\n\r\n\r\n var props$1Z = makePropsConfigurable({\r\n alt: makeProp(PROP_TYPE_STRING),\r\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\r\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\r\n block: makeProp(PROP_TYPE_BOOLEAN, false),\r\n center: makeProp(PROP_TYPE_BOOLEAN, false),\r\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Gives fluid images class `w-100` to make them grow to fit container\r\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\r\n height: makeProp(PROP_TYPE_NUMBER_STRING),\r\n left: makeProp(PROP_TYPE_BOOLEAN, false),\r\n right: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Possible values:\r\n // `false`: no rounding of corners\r\n // `true`: slightly rounded corners\r\n // 'top': top corners rounded\r\n // 'right': right corners rounded\r\n // 'bottom': bottom corners rounded\r\n // 'left': left corners rounded\r\n // 'circle': circle/oval\r\n // '0': force rounding off\r\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\r\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\r\n src: makeProp(PROP_TYPE_STRING),\r\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\r\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\r\n width: makeProp(PROP_TYPE_NUMBER_STRING)\r\n }, NAME_IMG); // --- Main component ---\r\n // @vue/component\r\n\r\n var BImg = /*#__PURE__*/extend({\r\n name: NAME_IMG,\r\n functional: true,\r\n props: props$1Z,\r\n render: function render(h, _ref) {\r\n var _class;\r\n\r\n var props = _ref.props,\r\n data = _ref.data;\r\n var alt = props.alt,\r\n src = props.src,\r\n block = props.block,\r\n fluidGrow = props.fluidGrow,\r\n rounded = props.rounded;\r\n var width = toInteger(props.width) || null;\r\n var height = toInteger(props.height) || null;\r\n var align = null;\r\n var srcset = concat(props.srcset).filter(identity).join(',');\r\n var sizes = concat(props.sizes).filter(identity).join(',');\r\n\r\n if (props.blank) {\r\n if (!height && width) {\r\n height = width;\r\n } else if (!width && height) {\r\n width = height;\r\n }\r\n\r\n if (!width && !height) {\r\n width = 1;\r\n height = 1;\r\n } // Make a blank SVG image\r\n\r\n\r\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\r\n\r\n srcset = null;\r\n sizes = null;\r\n }\r\n\r\n if (props.left) {\r\n align = 'float-left';\r\n } else if (props.right) {\r\n align = 'float-right';\r\n } else if (props.center) {\r\n align = 'mx-auto';\r\n block = true;\r\n }\r\n\r\n return h('img', a(data, {\r\n attrs: {\r\n src: src,\r\n alt: alt,\r\n width: width ? toString(width) : null,\r\n height: height ? toString(height) : null,\r\n srcset: srcset || null,\r\n sizes: sizes || null\r\n },\r\n class: (_class = {\r\n 'img-thumbnail': props.thumbnail,\r\n 'img-fluid': props.fluid || fluidGrow,\r\n 'w-100': fluidGrow,\r\n rounded: rounded === '' || rounded === true\r\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\r\n }));\r\n }\r\n });\r\n\r\n var props$1Y = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, pick$1(props$1Z, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\r\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\r\n end: makeProp(PROP_TYPE_BOOLEAN, false),\r\n start: makeProp(PROP_TYPE_BOOLEAN, false),\r\n top: makeProp(PROP_TYPE_BOOLEAN, false)\r\n })), NAME_CARD_IMG); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCardImg = /*#__PURE__*/extend({\r\n name: NAME_CARD_IMG,\r\n functional: true,\r\n props: props$1Y,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data;\r\n var src = props.src,\r\n alt = props.alt,\r\n width = props.width,\r\n height = props.height;\r\n var baseClass = 'card-img';\r\n\r\n if (props.top) {\r\n baseClass += '-top';\r\n } else if (props.right || props.end) {\r\n baseClass += '-right';\r\n } else if (props.bottom) {\r\n baseClass += '-bottom';\r\n } else if (props.left || props.start) {\r\n baseClass += '-left';\r\n }\r\n\r\n return h('img', a(data, {\r\n class: baseClass,\r\n attrs: {\r\n src: src,\r\n alt: alt,\r\n width: width,\r\n height: height\r\n }\r\n }));\r\n }\r\n });\r\n\r\n var cardImgProps = copyProps(props$1Y, prefixPropName.bind(null, 'img'));\r\n cardImgProps.imgSrc.required = false;\r\n var props$1X = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, props$20), props$1$), props$1_), cardImgProps), props$23), {}, {\r\n align: makeProp(PROP_TYPE_STRING),\r\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\r\n })), NAME_CARD); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCard = /*#__PURE__*/extend({\r\n name: NAME_CARD,\r\n functional: true,\r\n props: props$1X,\r\n render: function render(h, _ref) {\r\n var _class;\r\n\r\n var props = _ref.props,\r\n data = _ref.data,\r\n slots = _ref.slots,\r\n scopedSlots = _ref.scopedSlots;\r\n var imgSrc = props.imgSrc,\r\n imgLeft = props.imgLeft,\r\n imgRight = props.imgRight,\r\n imgStart = props.imgStart,\r\n imgEnd = props.imgEnd,\r\n imgBottom = props.imgBottom,\r\n header = props.header,\r\n headerHtml = props.headerHtml,\r\n footer = props.footer,\r\n footerHtml = props.footerHtml,\r\n align = props.align,\r\n textVariant = props.textVariant,\r\n bgVariant = props.bgVariant,\r\n borderVariant = props.borderVariant;\r\n var $scopedSlots = scopedSlots || {};\r\n var $slots = slots();\r\n var slotScope = {};\r\n var $imgFirst = h();\r\n var $imgLast = h();\r\n\r\n if (imgSrc) {\r\n var $img = h(BCardImg, {\r\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\r\n });\r\n\r\n if (imgBottom) {\r\n $imgLast = $img;\r\n } else {\r\n $imgFirst = $img;\r\n }\r\n }\r\n\r\n var $header = h();\r\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\r\n\r\n if (hasHeaderSlot || header || headerHtml) {\r\n $header = h(BCardHeader, {\r\n props: pluckProps(props$1$, props),\r\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\r\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\r\n }\r\n\r\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\r\n\r\n if (!props.noBody) {\r\n $content = h(BCardBody, {\r\n props: pluckProps(props$20, props)\r\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\r\n // into a relative positioned wrapper to don't distract a potential header or footer\r\n\r\n if (props.overlay && imgSrc) {\r\n $content = h('div', {\r\n staticClass: 'position-relative'\r\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\r\n\r\n $imgFirst = h();\r\n $imgLast = h();\r\n }\r\n }\r\n\r\n var $footer = h();\r\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\r\n\r\n if (hasFooterSlot || footer || footerHtml) {\r\n $footer = h(BCardFooter, {\r\n props: pluckProps(props$1_, props),\r\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\r\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\r\n }\r\n\r\n return h(props.tag, a(data, {\r\n staticClass: 'card',\r\n class: (_class = {\r\n 'flex-row': imgLeft || imgStart,\r\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\r\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\r\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\r\n }\r\n });\r\n\r\n var OBSERVER_PROP_NAME = '__bv__visibility_observer';\r\n\r\n var VisibilityObserver = /*#__PURE__*/function () {\r\n function VisibilityObserver(el, options) {\r\n _classCallCheck(this, VisibilityObserver);\r\n\r\n this.el = el;\r\n this.callback = options.callback;\r\n this.margin = options.margin || 0;\r\n this.once = options.once || false;\r\n this.observer = null;\r\n this.visible = undefined;\r\n this.doneOnce = false; // Create the observer instance (if possible)\r\n\r\n this.createObserver();\r\n }\r\n\r\n _createClass(VisibilityObserver, [{\r\n key: \"createObserver\",\r\n value: function createObserver() {\r\n var _this = this;\r\n\r\n // Remove any previous observer\r\n if (this.observer) {\r\n /* istanbul ignore next */\r\n this.stop();\r\n } // Should only be called once and `callback` prop should be a function\r\n\r\n\r\n if (this.doneOnce || !isFunction$1(this.callback)) {\r\n /* istanbul ignore next */\r\n return;\r\n } // Create the observer instance\r\n\r\n\r\n try {\r\n // Future: Possibly add in other modifiers for left/right/top/bottom\r\n // offsets, root element reference, and thresholds\r\n this.observer = new IntersectionObserver(this.handler.bind(this), {\r\n // `null` = 'viewport'\r\n root: null,\r\n // Pixels away from view port to consider \"visible\"\r\n rootMargin: this.margin,\r\n // Intersection ratio of el and root (as a value from 0 to 1)\r\n threshold: 0\r\n });\r\n } catch (_unused) {\r\n // No IntersectionObserver support, so just stop trying to observe\r\n this.doneOnce = true;\r\n this.observer = undefined;\r\n this.callback(null);\r\n return;\r\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\r\n\r\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\r\n\r\n\r\n nextTick(function () {\r\n requestAF(function () {\r\n // Placed in an `if` just in case we were destroyed before\r\n // this `requestAnimationFrame` runs\r\n if (_this.observer) {\r\n _this.observer.observe(_this.el);\r\n }\r\n });\r\n });\r\n }\r\n /* istanbul ignore next */\r\n\r\n }, {\r\n key: \"handler\",\r\n value: function handler(entries) {\r\n var entry = entries ? entries[0] : {};\r\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\r\n\r\n if (isIntersecting !== this.visible) {\r\n this.visible = isIntersecting;\r\n this.callback(isIntersecting);\r\n\r\n if (this.once && this.visible) {\r\n this.doneOnce = true;\r\n this.stop();\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"stop\",\r\n value: function stop() {\r\n /* istanbul ignore next */\r\n this.observer && this.observer.disconnect();\r\n this.observer = null;\r\n }\r\n }]);\r\n\r\n return VisibilityObserver;\r\n }();\r\n\r\n var destroy$1 = function destroy(el) {\r\n var observer = el[OBSERVER_PROP_NAME];\r\n\r\n if (observer && observer.stop) {\r\n observer.stop();\r\n }\r\n\r\n delete el[OBSERVER_PROP_NAME];\r\n };\r\n\r\n var bind$1 = function bind(el, _ref) {\r\n var value = _ref.value,\r\n modifiers = _ref.modifiers;\r\n // `value` is the callback function\r\n var options = {\r\n margin: '0px',\r\n once: false,\r\n callback: value\r\n }; // Parse modifiers\r\n\r\n keys(modifiers).forEach(function (mod) {\r\n /* istanbul ignore else: Until is switched to use this directive */\r\n if (RX_DIGITS.test(mod)) {\r\n options.margin = \"\".concat(mod, \"px\");\r\n } else if (mod.toLowerCase() === 'once') {\r\n options.once = true;\r\n }\r\n }); // Destroy any previous observer\r\n\r\n destroy$1(el); // Create new observer\r\n\r\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options); // Store the current modifiers on the object (cloned)\r\n\r\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\r\n }; // When the directive options may have been updated (or element)\r\n\r\n\r\n var componentUpdated$1 = function componentUpdated(el, _ref2, vnode) {\r\n var value = _ref2.value,\r\n oldValue = _ref2.oldValue,\r\n modifiers = _ref2.modifiers;\r\n // Compare value/oldValue and modifiers to see if anything has changed\r\n // and if so, destroy old observer and create new observer\r\n\r\n /* istanbul ignore next */\r\n modifiers = clone(modifiers);\r\n /* istanbul ignore next */\r\n\r\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\r\n // Re-bind on element\r\n bind$1(el, {\r\n value: value,\r\n modifiers: modifiers\r\n });\r\n }\r\n }; // When directive un-binds from element\r\n\r\n\r\n var unbind$1 = function unbind(el) {\r\n // Remove the observer\r\n destroy$1(el);\r\n }; // Export the directive\r\n\r\n\r\n var VBVisible = {\r\n bind: bind$1,\r\n componentUpdated: componentUpdated$1,\r\n unbind: unbind$1\r\n };\r\n\r\n var _watch$i;\r\n\r\n var MODEL_PROP_NAME_SHOW$1 = 'show';\r\n var MODEL_EVENT_NAME_SHOW$1 = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SHOW$1; // --- Props ---\r\n\r\n var imgProps$1 = omit(props$1Z, ['blank']);\r\n var props$1W = makePropsConfigurable(_objectSpread2$3(_objectSpread2$3({}, imgProps$1), {}, _defineProperty({\r\n blankHeight: makeProp(PROP_TYPE_NUMBER_STRING),\r\n // If `null`, a blank image is generated\r\n blankSrc: makeProp(PROP_TYPE_STRING, null),\r\n blankWidth: makeProp(PROP_TYPE_NUMBER_STRING),\r\n // Distance away from viewport (in pixels)\r\n // before being considered \"visible\"\r\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 360)\r\n }, MODEL_PROP_NAME_SHOW$1, makeProp(PROP_TYPE_BOOLEAN, false))), NAME_IMG_LAZY); // --- Main component ---\r\n // @vue/component\r\n\r\n var BImgLazy = /*#__PURE__*/extend({\r\n name: NAME_IMG_LAZY,\r\n directives: {\r\n 'b-visible': VBVisible\r\n },\r\n props: props$1W,\r\n data: function data() {\r\n return {\r\n isShown: this[MODEL_PROP_NAME_SHOW$1]\r\n };\r\n },\r\n computed: {\r\n computedSrc: function computedSrc() {\r\n var blankSrc = this.blankSrc;\r\n return !blankSrc || this.isShown ? this.src : blankSrc;\r\n },\r\n computedBlank: function computedBlank() {\r\n return !(this.isShown || this.blankSrc);\r\n },\r\n computedWidth: function computedWidth() {\r\n var width = this.width;\r\n return this.isShown ? width : this.blankWidth || width;\r\n },\r\n computedHeight: function computedHeight() {\r\n var height = this.height;\r\n return this.isShown ? height : this.blankHeight || height;\r\n },\r\n computedSrcset: function computedSrcset() {\r\n var srcset = concat(this.srcset).filter(identity).join(',');\r\n return srcset && (!this.blankSrc || this.isShown) ? srcset : null;\r\n },\r\n computedSizes: function computedSizes() {\r\n var sizes = concat(this.sizes).filter(identity).join(',');\r\n return sizes && (!this.blankSrc || this.isShown) ? sizes : null;\r\n }\r\n },\r\n watch: (_watch$i = {}, _defineProperty(_watch$i, MODEL_PROP_NAME_SHOW$1, function (newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n // If `IntersectionObserver` support is not available, image is always shown\r\n var visible = HAS_INTERACTION_OBSERVER_SUPPORT ? newValue : true;\r\n this.isShown = visible; // Ensure the show prop is synced (when no `IntersectionObserver`)\r\n\r\n if (newValue !== visible) {\r\n this.$nextTick(this.updateShowProp);\r\n }\r\n }\r\n }), _defineProperty(_watch$i, \"isShown\", function isShown(newValue, oldValue) {\r\n // Update synched show prop\r\n if (newValue !== oldValue) {\r\n this.updateShowProp();\r\n }\r\n }), _watch$i),\r\n mounted: function mounted() {\r\n var _this = this;\r\n\r\n // If `IntersectionObserver` is not available, image is always shown\r\n this.$nextTick(function () {\r\n _this.isShown = HAS_INTERACTION_OBSERVER_SUPPORT ? _this[MODEL_PROP_NAME_SHOW$1] : true;\r\n });\r\n },\r\n methods: {\r\n updateShowProp: function updateShowProp() {\r\n this.$emit(MODEL_EVENT_NAME_SHOW$1, this.isShown);\r\n },\r\n doShow: function doShow(visible) {\r\n var _this2 = this;\r\n\r\n // If IntersectionObserver is not supported, the callback\r\n // will be called with `null` rather than `true` or `false`\r\n if ((visible || visible === null) && !this.isShown) {\r\n // In a `requestAF()` to render the `blank` placeholder properly\r\n // for fast loading images in some browsers (i.e. Firefox)\r\n requestAF(function () {\r\n _this2.isShown = true;\r\n });\r\n }\r\n }\r\n },\r\n render: function render(h) {\r\n var directives = [];\r\n\r\n if (!this.isShown) {\r\n var _modifiers;\r\n\r\n // We only add the visible directive if we are not shown\r\n directives.push({\r\n // Visible directive will silently do nothing if\r\n // `IntersectionObserver` is not supported\r\n name: 'b-visible',\r\n // Value expects a callback (passed one arg of `visible` = `true` or `false`)\r\n value: this.doShow,\r\n modifiers: (_modifiers = {}, _defineProperty(_modifiers, \"\".concat(toInteger(this.offset, 0)), true), _defineProperty(_modifiers, \"once\", true), _modifiers)\r\n });\r\n }\r\n\r\n return h(BImg, {\r\n directives: directives,\r\n props: _objectSpread2$3(_objectSpread2$3({}, pluckProps(imgProps$1, this.$props)), {}, {\r\n // Computed value props\r\n src: this.computedSrc,\r\n blank: this.computedBlank,\r\n width: this.computedWidth,\r\n height: this.computedHeight,\r\n srcset: this.computedSrcset,\r\n sizes: this.computedSizes\r\n })\r\n });\r\n }\r\n });\r\n\r\n var props$1V = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, omit(props$1W, keys(props$1Z))), omit(props$1Y, ['src', 'alt', 'width', 'height']))), NAME_CARD_IMG_LAZY); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCardImgLazy = /*#__PURE__*/extend({\r\n name: NAME_CARD_IMG_LAZY,\r\n functional: true,\r\n props: props$1V,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data;\r\n var baseClass = 'card-img';\r\n\r\n if (props.top) {\r\n baseClass += '-top';\r\n } else if (props.right || props.end) {\r\n baseClass += '-right';\r\n } else if (props.bottom) {\r\n baseClass += '-bottom';\r\n } else if (props.left || props.start) {\r\n baseClass += '-left';\r\n }\r\n\r\n return h(BImgLazy, a(data, {\r\n class: [baseClass],\r\n // Exclude `left` and `right` props before passing to ``\r\n props: omit(props, ['left', 'right'])\r\n }));\r\n }\r\n });\r\n\r\n var props$1U = makePropsConfigurable({\r\n textTag: makeProp(PROP_TYPE_STRING, 'p')\r\n }, NAME_CARD_TEXT); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCardText = /*#__PURE__*/extend({\r\n name: NAME_CARD_TEXT,\r\n functional: true,\r\n props: props$1U,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n return h(props.textTag, a(data, {\r\n staticClass: 'card-text'\r\n }), children);\r\n }\r\n });\r\n\r\n var props$1T = makePropsConfigurable({\r\n columns: makeProp(PROP_TYPE_BOOLEAN, false),\r\n deck: makeProp(PROP_TYPE_BOOLEAN, false),\r\n tag: makeProp(PROP_TYPE_STRING, 'div')\r\n }, NAME_CARD_GROUP); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCardGroup = /*#__PURE__*/extend({\r\n name: NAME_CARD_GROUP,\r\n functional: true,\r\n props: props$1T,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n return h(props.tag, a(data, {\r\n class: props.deck ? 'card-deck' : props.columns ? 'card-columns' : 'card-group'\r\n }), children);\r\n }\r\n });\r\n\r\n var CardPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BCard: BCard,\r\n BCardHeader: BCardHeader,\r\n BCardBody: BCardBody,\r\n BCardTitle: BCardTitle,\r\n BCardSubTitle: BCardSubTitle,\r\n BCardFooter: BCardFooter,\r\n BCardImg: BCardImg,\r\n BCardImgLazy: BCardImgLazy,\r\n BCardText: BCardText,\r\n BCardGroup: BCardGroup\r\n }\r\n });\r\n\r\n var noop = function noop() {};\r\n\r\n /**\r\n * Observe a DOM element changes, falls back to eventListener mode\r\n * @param {Element} el The DOM element to observe\r\n * @param {Function} callback callback to be called on change\r\n * @param {object} [options={childList: true, subtree: true}] observe options\r\n * @see https://stackoverflow.com/questions/3219758\r\n */\r\n\r\n var observeDom = function observeDom(el, callback, options)\r\n /* istanbul ignore next: difficult to test in JSDOM */\r\n {\r\n // Handle cases where we might be passed a Vue instance\r\n el = el ? el.$el || el : null; // Early exit when we have no element\r\n\r\n /* istanbul ignore next: difficult to test in JSDOM */\r\n\r\n if (!isElement(el)) {\r\n return null;\r\n } // Exit and throw a warning when `MutationObserver` isn't available\r\n\r\n\r\n if (warnNoMutationObserverSupport('observeDom')) {\r\n return null;\r\n } // Define a new observer\r\n\r\n\r\n var obs = new MutationObs(function (mutations) {\r\n var changed = false; // A mutation can contain several change records, so we loop\r\n // through them to see what has changed\r\n // We break out of the loop early if any \"significant\" change\r\n // has been detected\r\n\r\n for (var i = 0; i < mutations.length && !changed; i++) {\r\n // The mutation record\r\n var mutation = mutations[i]; // Mutation type\r\n\r\n var type = mutation.type; // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\r\n\r\n var target = mutation.target; // Detect whether a change happened based on type and target\r\n\r\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\r\n // We ignore nodes that are not TEXT (i.e. comments, etc.)\r\n // as they don't change layout\r\n changed = true;\r\n } else if (type === 'attributes') {\r\n changed = true;\r\n } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {\r\n // This includes HTMLElement and text nodes being\r\n // added/removed/re-arranged\r\n changed = true;\r\n }\r\n } // We only call the callback if a change that could affect\r\n // layout/size truly happened\r\n\r\n\r\n if (changed) {\r\n callback();\r\n }\r\n }); // Have the observer observe foo for changes in children, etc\r\n\r\n obs.observe(el, _objectSpread2$3({\r\n childList: true,\r\n subtree: true\r\n }, options)); // We return a reference to the observer so that `obs.disconnect()`\r\n // can be called if necessary\r\n // To reduce overhead when the root element is hidden\r\n\r\n return obs;\r\n };\r\n\r\n var _watch$h;\r\n\r\n var _makeModelMixin$i = makeModelMixin('value', {\r\n type: PROP_TYPE_NUMBER,\r\n defaultValue: 0\r\n }),\r\n modelMixin$h = _makeModelMixin$i.mixin,\r\n modelProps$h = _makeModelMixin$i.props,\r\n MODEL_PROP_NAME$h = _makeModelMixin$i.prop,\r\n MODEL_EVENT_NAME$h = _makeModelMixin$i.event; // Slide directional classes\r\n\r\n\r\n var DIRECTION = {\r\n next: {\r\n dirClass: 'carousel-item-left',\r\n overlayClass: 'carousel-item-next'\r\n },\r\n prev: {\r\n dirClass: 'carousel-item-right',\r\n overlayClass: 'carousel-item-prev'\r\n }\r\n }; // Fallback Transition duration (with a little buffer) in ms\r\n\r\n var TRANS_DURATION = 600 + 50; // Time for mouse compat events to fire after touch\r\n\r\n var TOUCH_EVENT_COMPAT_WAIT = 500; // Number of pixels to consider touch move a swipe\r\n\r\n var SWIPE_THRESHOLD = 40; // PointerEvent pointer types\r\n\r\n var PointerType = {\r\n TOUCH: 'touch',\r\n PEN: 'pen'\r\n }; // Transition Event names\r\n\r\n var TransitionEndEvents$1 = {\r\n WebkitTransition: 'webkitTransitionEnd',\r\n MozTransition: 'transitionend',\r\n OTransition: 'otransitionend oTransitionEnd',\r\n transition: 'transitionend'\r\n }; // --- Helper methods ---\r\n // Return the browser specific transitionEnd event name\r\n\r\n var getTransitionEndEvent = function getTransitionEndEvent(el) {\r\n for (var name in TransitionEndEvents$1) {\r\n if (!isUndefined(el.style[name])) {\r\n return TransitionEndEvents$1[name];\r\n }\r\n } // Fallback\r\n\r\n /* istanbul ignore next */\r\n\r\n\r\n return null;\r\n }; // --- Props ---\r\n\r\n\r\n var props$1S = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, props$25), modelProps$h), {}, {\r\n background: makeProp(PROP_TYPE_STRING),\r\n controls: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Enable cross-fade animation instead of slide animation\r\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Sniffed by carousel-slide\r\n imgHeight: makeProp(PROP_TYPE_NUMBER_STRING),\r\n // Sniffed by carousel-slide\r\n imgWidth: makeProp(PROP_TYPE_NUMBER_STRING),\r\n indicators: makeProp(PROP_TYPE_BOOLEAN, false),\r\n interval: makeProp(PROP_TYPE_NUMBER, 5000),\r\n labelGotoSlide: makeProp(PROP_TYPE_STRING, 'Goto slide'),\r\n labelIndicators: makeProp(PROP_TYPE_STRING, 'Select a slide to display'),\r\n labelNext: makeProp(PROP_TYPE_STRING, 'Next slide'),\r\n labelPrev: makeProp(PROP_TYPE_STRING, 'Previous slide'),\r\n // Disable slide/fade animation\r\n noAnimation: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Disable pause on hover\r\n noHoverPause: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Sniffed by carousel-slide\r\n noTouch: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Disable wrapping/looping when start/end is reached\r\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false)\r\n })), NAME_CAROUSEL); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCarousel = /*#__PURE__*/extend({\r\n name: NAME_CAROUSEL,\r\n mixins: [idMixin, modelMixin$h, normalizeSlotMixin],\r\n provide: function provide() {\r\n var _this = this;\r\n\r\n return {\r\n getBvCarousel: function getBvCarousel() {\r\n return _this;\r\n }\r\n };\r\n },\r\n props: props$1S,\r\n data: function data() {\r\n return {\r\n index: this[MODEL_PROP_NAME$h] || 0,\r\n isSliding: false,\r\n transitionEndEvent: null,\r\n slides: [],\r\n direction: null,\r\n isPaused: !(toInteger(this.interval, 0) > 0),\r\n // Touch event handling values\r\n touchStartX: 0,\r\n touchDeltaX: 0\r\n };\r\n },\r\n computed: {\r\n numSlides: function numSlides() {\r\n return this.slides.length;\r\n }\r\n },\r\n watch: (_watch$h = {}, _defineProperty(_watch$h, MODEL_PROP_NAME$h, function (newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n this.setSlide(toInteger(newValue, 0));\r\n }\r\n }), _defineProperty(_watch$h, \"interval\", function interval(newValue, oldValue) {\r\n /* istanbul ignore next */\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n if (!newValue) {\r\n // Pausing slide show\r\n this.pause(false);\r\n } else {\r\n // Restarting or Changing interval\r\n this.pause(true);\r\n this.start(false);\r\n }\r\n }), _defineProperty(_watch$h, \"isPaused\", function isPaused(newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n this.$emit(newValue ? EVENT_NAME_PAUSED : EVENT_NAME_UNPAUSED);\r\n }\r\n }), _defineProperty(_watch$h, \"index\", function index(to, from) {\r\n /* istanbul ignore next */\r\n if (to === from || this.isSliding) {\r\n return;\r\n }\r\n\r\n this.doSlide(to, from);\r\n }), _watch$h),\r\n created: function created() {\r\n // Create private non-reactive props\r\n this.$_interval = null;\r\n this.$_animationTimeout = null;\r\n this.$_touchTimeout = null;\r\n this.$_observer = null; // Set initial paused state\r\n\r\n this.isPaused = !(toInteger(this.interval, 0) > 0);\r\n },\r\n mounted: function mounted() {\r\n // Cache current browser transitionend event name\r\n this.transitionEndEvent = getTransitionEndEvent(this.$el) || null; // Get all slides\r\n\r\n this.updateSlides(); // Observe child changes so we can update slide list\r\n\r\n this.setObserver(true);\r\n },\r\n beforeDestroy: function beforeDestroy() {\r\n this.clearInterval();\r\n this.clearAnimationTimeout();\r\n this.clearTouchTimeout();\r\n this.setObserver(false);\r\n },\r\n methods: {\r\n clearInterval: function (_clearInterval) {\r\n function clearInterval() {\r\n return _clearInterval.apply(this, arguments);\r\n }\r\n\r\n clearInterval.toString = function () {\r\n return _clearInterval.toString();\r\n };\r\n\r\n return clearInterval;\r\n }(function () {\r\n clearInterval(this.$_interval);\r\n this.$_interval = null;\r\n }),\r\n clearAnimationTimeout: function clearAnimationTimeout() {\r\n clearTimeout(this.$_animationTimeout);\r\n this.$_animationTimeout = null;\r\n },\r\n clearTouchTimeout: function clearTouchTimeout() {\r\n clearTimeout(this.$_touchTimeout);\r\n this.$_touchTimeout = null;\r\n },\r\n setObserver: function setObserver() {\r\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\r\n this.$_observer && this.$_observer.disconnect();\r\n this.$_observer = null;\r\n\r\n if (on) {\r\n this.$_observer = observeDom(this.$refs.inner, this.updateSlides.bind(this), {\r\n subtree: false,\r\n childList: true,\r\n attributes: true,\r\n attributeFilter: ['id']\r\n });\r\n }\r\n },\r\n // Set slide\r\n setSlide: function setSlide(slide) {\r\n var _this2 = this;\r\n\r\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\r\n\r\n // Don't animate when page is not visible\r\n\r\n /* istanbul ignore if: difficult to test */\r\n if (IS_BROWSER && document.visibilityState && document.hidden) {\r\n return;\r\n }\r\n\r\n var noWrap = this.noWrap;\r\n var numSlides = this.numSlides; // Make sure we have an integer (you never know!)\r\n\r\n slide = mathFloor(slide); // Don't do anything if nothing to slide to\r\n\r\n if (numSlides === 0) {\r\n return;\r\n } // Don't change slide while transitioning, wait until transition is done\r\n\r\n\r\n if (this.isSliding) {\r\n // Schedule slide after sliding complete\r\n this.$once(EVENT_NAME_SLIDING_END, function () {\r\n // Wrap in `requestAF()` to allow the slide to properly finish to avoid glitching\r\n requestAF(function () {\r\n return _this2.setSlide(slide, direction);\r\n });\r\n });\r\n return;\r\n }\r\n\r\n this.direction = direction; // Set new slide index\r\n // Wrap around if necessary (if no-wrap not enabled)\r\n\r\n this.index = slide >= numSlides ? noWrap ? numSlides - 1 : 0 : slide < 0 ? noWrap ? 0 : numSlides - 1 : slide; // Ensure the v-model is synched up if no-wrap is enabled\r\n // and user tried to slide pass either ends\r\n\r\n if (noWrap && this.index !== slide && this.index !== this[MODEL_PROP_NAME$h]) {\r\n this.$emit(MODEL_EVENT_NAME$h, this.index);\r\n }\r\n },\r\n // Previous slide\r\n prev: function prev() {\r\n this.setSlide(this.index - 1, 'prev');\r\n },\r\n // Next slide\r\n next: function next() {\r\n this.setSlide(this.index + 1, 'next');\r\n },\r\n // Pause auto rotation\r\n pause: function pause(event) {\r\n if (!event) {\r\n this.isPaused = true;\r\n }\r\n\r\n this.clearInterval();\r\n },\r\n // Start auto rotate slides\r\n start: function start(event) {\r\n if (!event) {\r\n this.isPaused = false;\r\n }\r\n /* istanbul ignore next: most likely will never happen, but just in case */\r\n\r\n\r\n this.clearInterval(); // Don't start if no interval, or less than 2 slides\r\n\r\n if (this.interval && this.numSlides > 1) {\r\n this.$_interval = setInterval(this.next, mathMax(1000, this.interval));\r\n }\r\n },\r\n // Restart auto rotate slides when focus/hover leaves the carousel\r\n\r\n /* istanbul ignore next */\r\n restart: function restart() {\r\n if (!this.$el.contains(getActiveElement())) {\r\n this.start();\r\n }\r\n },\r\n doSlide: function doSlide(to, from) {\r\n var _this3 = this;\r\n\r\n var isCycling = Boolean(this.interval); // Determine sliding direction\r\n\r\n var direction = this.calcDirection(this.direction, from, to);\r\n var overlayClass = direction.overlayClass;\r\n var dirClass = direction.dirClass; // Determine current and next slides\r\n\r\n var currentSlide = this.slides[from];\r\n var nextSlide = this.slides[to]; // Don't do anything if there aren't any slides to slide to\r\n\r\n if (!currentSlide || !nextSlide) {\r\n /* istanbul ignore next */\r\n return;\r\n } // Start animating\r\n\r\n\r\n this.isSliding = true;\r\n\r\n if (isCycling) {\r\n this.pause(false);\r\n }\r\n\r\n this.$emit(EVENT_NAME_SLIDING_START, to); // Update v-model\r\n\r\n this.$emit(MODEL_EVENT_NAME$h, this.index);\r\n\r\n if (this.noAnimation) {\r\n addClass(nextSlide, 'active');\r\n removeClass(currentSlide, 'active');\r\n this.isSliding = false; // Notify ourselves that we're done sliding (slid)\r\n\r\n this.$nextTick(function () {\r\n return _this3.$emit(EVENT_NAME_SLIDING_END, to);\r\n });\r\n } else {\r\n addClass(nextSlide, overlayClass); // Trigger a reflow of next slide\r\n\r\n reflow(nextSlide);\r\n addClass(currentSlide, dirClass);\r\n addClass(nextSlide, dirClass); // Transition End handler\r\n\r\n var called = false;\r\n /* istanbul ignore next: difficult to test */\r\n\r\n var onceTransEnd = function onceTransEnd() {\r\n if (called) {\r\n return;\r\n }\r\n\r\n called = true;\r\n /* istanbul ignore if: transition events cant be tested in JSDOM */\r\n\r\n if (_this3.transitionEndEvent) {\r\n var events = _this3.transitionEndEvent.split(/\\s+/);\r\n\r\n events.forEach(function (event) {\r\n return eventOff(nextSlide, event, onceTransEnd, EVENT_OPTIONS_NO_CAPTURE);\r\n });\r\n }\r\n\r\n _this3.clearAnimationTimeout();\r\n\r\n removeClass(nextSlide, dirClass);\r\n removeClass(nextSlide, overlayClass);\r\n addClass(nextSlide, 'active');\r\n removeClass(currentSlide, 'active');\r\n removeClass(currentSlide, dirClass);\r\n removeClass(currentSlide, overlayClass);\r\n setAttr(currentSlide, 'aria-current', 'false');\r\n setAttr(nextSlide, 'aria-current', 'true');\r\n setAttr(currentSlide, 'aria-hidden', 'true');\r\n setAttr(nextSlide, 'aria-hidden', 'false');\r\n _this3.isSliding = false;\r\n _this3.direction = null; // Notify ourselves that we're done sliding (slid)\r\n\r\n _this3.$nextTick(function () {\r\n return _this3.$emit(EVENT_NAME_SLIDING_END, to);\r\n });\r\n }; // Set up transitionend handler\r\n\r\n /* istanbul ignore if: transition events cant be tested in JSDOM */\r\n\r\n\r\n if (this.transitionEndEvent) {\r\n var events = this.transitionEndEvent.split(/\\s+/);\r\n events.forEach(function (event) {\r\n return eventOn(nextSlide, event, onceTransEnd, EVENT_OPTIONS_NO_CAPTURE);\r\n });\r\n } // Fallback to setTimeout()\r\n\r\n\r\n this.$_animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION);\r\n }\r\n\r\n if (isCycling) {\r\n this.start(false);\r\n }\r\n },\r\n // Update slide list\r\n updateSlides: function updateSlides() {\r\n this.pause(true); // Get all slides as DOM elements\r\n\r\n this.slides = selectAll('.carousel-item', this.$refs.inner);\r\n var numSlides = this.slides.length; // Keep slide number in range\r\n\r\n var index = mathMax(0, mathMin(mathFloor(this.index), numSlides - 1));\r\n this.slides.forEach(function (slide, idx) {\r\n var n = idx + 1;\r\n\r\n if (idx === index) {\r\n addClass(slide, 'active');\r\n setAttr(slide, 'aria-current', 'true');\r\n } else {\r\n removeClass(slide, 'active');\r\n setAttr(slide, 'aria-current', 'false');\r\n }\r\n\r\n setAttr(slide, 'aria-posinset', String(n));\r\n setAttr(slide, 'aria-setsize', String(numSlides));\r\n }); // Set slide as active\r\n\r\n this.setSlide(index);\r\n this.start(this.isPaused);\r\n },\r\n calcDirection: function calcDirection() {\r\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\r\n var curIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\r\n var nextIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\r\n\r\n if (!direction) {\r\n return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev;\r\n }\r\n\r\n return DIRECTION[direction];\r\n },\r\n handleClick: function handleClick(event, fn) {\r\n var keyCode = event.keyCode;\r\n\r\n if (event.type === 'click' || keyCode === CODE_SPACE || keyCode === CODE_ENTER) {\r\n stopEvent(event);\r\n fn();\r\n }\r\n },\r\n\r\n /* istanbul ignore next: JSDOM doesn't support touch events */\r\n handleSwipe: function handleSwipe() {\r\n var absDeltaX = mathAbs(this.touchDeltaX);\r\n\r\n if (absDeltaX <= SWIPE_THRESHOLD) {\r\n return;\r\n }\r\n\r\n var direction = absDeltaX / this.touchDeltaX; // Reset touch delta X\r\n // https://github.com/twbs/bootstrap/pull/28558\r\n\r\n this.touchDeltaX = 0;\r\n\r\n if (direction > 0) {\r\n // Swipe left\r\n this.prev();\r\n } else if (direction < 0) {\r\n // Swipe right\r\n this.next();\r\n }\r\n },\r\n\r\n /* istanbul ignore next: JSDOM doesn't support touch events */\r\n touchStart: function touchStart(event) {\r\n if (HAS_POINTER_EVENT_SUPPORT && PointerType[event.pointerType.toUpperCase()]) {\r\n this.touchStartX = event.clientX;\r\n } else if (!HAS_POINTER_EVENT_SUPPORT) {\r\n this.touchStartX = event.touches[0].clientX;\r\n }\r\n },\r\n\r\n /* istanbul ignore next: JSDOM doesn't support touch events */\r\n touchMove: function touchMove(event) {\r\n // Ensure swiping with one touch and not pinching\r\n if (event.touches && event.touches.length > 1) {\r\n this.touchDeltaX = 0;\r\n } else {\r\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX;\r\n }\r\n },\r\n\r\n /* istanbul ignore next: JSDOM doesn't support touch events */\r\n touchEnd: function touchEnd(event) {\r\n if (HAS_POINTER_EVENT_SUPPORT && PointerType[event.pointerType.toUpperCase()]) {\r\n this.touchDeltaX = event.clientX - this.touchStartX;\r\n }\r\n\r\n this.handleSwipe(); // If it's a touch-enabled device, mouseenter/leave are fired as\r\n // part of the mouse compatibility events on first tap - the carousel\r\n // would stop cycling until user tapped out of it;\r\n // here, we listen for touchend, explicitly pause the carousel\r\n // (as if it's the second time we tap on it, mouseenter compat event\r\n // is NOT fired) and after a timeout (to allow for mouse compatibility\r\n // events to fire) we explicitly restart cycling\r\n\r\n this.pause(false);\r\n this.clearTouchTimeout();\r\n this.$_touchTimeout = setTimeout(this.start, TOUCH_EVENT_COMPAT_WAIT + mathMax(1000, this.interval));\r\n }\r\n },\r\n render: function render(h) {\r\n var _this4 = this;\r\n\r\n var indicators = this.indicators,\r\n background = this.background,\r\n noAnimation = this.noAnimation,\r\n noHoverPause = this.noHoverPause,\r\n noTouch = this.noTouch,\r\n index = this.index,\r\n isSliding = this.isSliding,\r\n pause = this.pause,\r\n restart = this.restart,\r\n touchStart = this.touchStart,\r\n touchEnd = this.touchEnd;\r\n var idInner = this.safeId('__BV_inner_'); // Wrapper for slides\r\n\r\n var $inner = h('div', {\r\n staticClass: 'carousel-inner',\r\n attrs: {\r\n id: idInner,\r\n role: 'list'\r\n },\r\n ref: 'inner'\r\n }, [this.normalizeSlot()]); // Prev and next controls\r\n\r\n var $controls = h();\r\n\r\n if (this.controls) {\r\n var makeControl = function makeControl(direction, label, handler) {\r\n var handlerWrapper = function handlerWrapper(event) {\r\n /* istanbul ignore next */\r\n if (!isSliding) {\r\n _this4.handleClick(event, handler);\r\n } else {\r\n stopEvent(event, {\r\n propagation: false\r\n });\r\n }\r\n };\r\n\r\n return h('a', {\r\n staticClass: \"carousel-control-\".concat(direction),\r\n attrs: {\r\n href: '#',\r\n role: 'button',\r\n 'aria-controls': idInner,\r\n 'aria-disabled': isSliding ? 'true' : null\r\n },\r\n on: {\r\n click: handlerWrapper,\r\n keydown: handlerWrapper\r\n }\r\n }, [h('span', {\r\n staticClass: \"carousel-control-\".concat(direction, \"-icon\"),\r\n attrs: {\r\n 'aria-hidden': 'true'\r\n }\r\n }), h('span', {\r\n class: 'sr-only'\r\n }, [label])]);\r\n };\r\n\r\n $controls = [makeControl('prev', this.labelPrev, this.prev), makeControl('next', this.labelNext, this.next)];\r\n } // Indicators\r\n\r\n\r\n var $indicators = h('ol', {\r\n staticClass: 'carousel-indicators',\r\n directives: [{\r\n name: 'show',\r\n value: indicators\r\n }],\r\n attrs: {\r\n id: this.safeId('__BV_indicators_'),\r\n 'aria-hidden': indicators ? 'false' : 'true',\r\n 'aria-label': this.labelIndicators,\r\n 'aria-owns': idInner\r\n }\r\n }, this.slides.map(function (slide, i) {\r\n var handler = function handler(event) {\r\n _this4.handleClick(event, function () {\r\n _this4.setSlide(i);\r\n });\r\n };\r\n\r\n return h('li', {\r\n class: {\r\n active: i === index\r\n },\r\n attrs: {\r\n role: 'button',\r\n id: _this4.safeId(\"__BV_indicator_\".concat(i + 1, \"_\")),\r\n tabindex: indicators ? '0' : '-1',\r\n 'aria-current': i === index ? 'true' : 'false',\r\n 'aria-label': \"\".concat(_this4.labelGotoSlide, \" \").concat(i + 1),\r\n 'aria-describedby': slide.id || null,\r\n 'aria-controls': idInner\r\n },\r\n on: {\r\n click: handler,\r\n keydown: handler\r\n },\r\n key: \"slide_\".concat(i)\r\n });\r\n }));\r\n var on = {\r\n mouseenter: noHoverPause ? noop : pause,\r\n mouseleave: noHoverPause ? noop : restart,\r\n focusin: pause,\r\n focusout: restart,\r\n keydown: function keydown(event) {\r\n /* istanbul ignore next */\r\n if (/input|textarea/i.test(event.target.tagName)) {\r\n return;\r\n }\r\n\r\n var keyCode = event.keyCode;\r\n\r\n if (keyCode === CODE_LEFT || keyCode === CODE_RIGHT) {\r\n stopEvent(event);\r\n\r\n _this4[keyCode === CODE_LEFT ? 'prev' : 'next']();\r\n }\r\n }\r\n }; // Touch support event handlers for environment\r\n\r\n if (HAS_TOUCH_SUPPORT && !noTouch) {\r\n // Attach appropriate listeners (prepend event name with '&' for passive mode)\r\n\r\n /* istanbul ignore next: JSDOM doesn't support touch events */\r\n if (HAS_POINTER_EVENT_SUPPORT) {\r\n on['&pointerdown'] = touchStart;\r\n on['&pointerup'] = touchEnd;\r\n } else {\r\n on['&touchstart'] = touchStart;\r\n on['&touchmove'] = this.touchMove;\r\n on['&touchend'] = touchEnd;\r\n }\r\n } // Return the carousel\r\n\r\n\r\n return h('div', {\r\n staticClass: 'carousel',\r\n class: {\r\n slide: !noAnimation,\r\n 'carousel-fade': !noAnimation && this.fade,\r\n 'pointer-event': HAS_TOUCH_SUPPORT && HAS_POINTER_EVENT_SUPPORT && !noTouch\r\n },\r\n style: {\r\n background: background\r\n },\r\n attrs: {\r\n role: 'region',\r\n id: this.safeId(),\r\n 'aria-busy': isSliding ? 'true' : 'false'\r\n },\r\n on: on\r\n }, [$inner, $controls, $indicators]);\r\n }\r\n });\r\n\r\n var imgProps = {\r\n imgAlt: makeProp(PROP_TYPE_STRING),\r\n imgBlank: makeProp(PROP_TYPE_BOOLEAN, false),\r\n imgBlankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\r\n imgHeight: makeProp(PROP_TYPE_NUMBER_STRING),\r\n imgSrc: makeProp(PROP_TYPE_STRING),\r\n imgWidth: makeProp(PROP_TYPE_NUMBER_STRING)\r\n };\r\n var props$1R = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, props$25), imgProps), {}, {\r\n background: makeProp(PROP_TYPE_STRING),\r\n caption: makeProp(PROP_TYPE_STRING),\r\n captionHtml: makeProp(PROP_TYPE_STRING),\r\n captionTag: makeProp(PROP_TYPE_STRING, 'h3'),\r\n contentTag: makeProp(PROP_TYPE_STRING, 'div'),\r\n contentVisibleUp: makeProp(PROP_TYPE_STRING),\r\n text: makeProp(PROP_TYPE_STRING),\r\n textHtml: makeProp(PROP_TYPE_STRING),\r\n textTag: makeProp(PROP_TYPE_STRING, 'p')\r\n })), NAME_CAROUSEL_SLIDE); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCarouselSlide = /*#__PURE__*/extend({\r\n name: NAME_CAROUSEL_SLIDE,\r\n mixins: [idMixin, normalizeSlotMixin],\r\n inject: {\r\n getBvCarousel: {\r\n // Explicitly disable touch if not a child of carousel\r\n default: function _default() {\r\n return function () {\r\n return {\r\n noTouch: true\r\n };\r\n };\r\n }\r\n }\r\n },\r\n props: props$1R,\r\n computed: {\r\n bvCarousel: function bvCarousel() {\r\n return this.getBvCarousel();\r\n },\r\n contentClasses: function contentClasses() {\r\n return [this.contentVisibleUp ? 'd-none' : '', this.contentVisibleUp ? \"d-\".concat(this.contentVisibleUp, \"-block\") : ''];\r\n },\r\n computedWidth: function computedWidth() {\r\n // Use local width, or try parent width\r\n return this.imgWidth || this.bvCarousel.imgWidth || null;\r\n },\r\n computedHeight: function computedHeight() {\r\n // Use local height, or try parent height\r\n return this.imgHeight || this.bvCarousel.imgHeight || null;\r\n }\r\n },\r\n render: function render(h) {\r\n var $img = this.normalizeSlot(SLOT_NAME_IMG);\r\n\r\n if (!$img && (this.imgSrc || this.imgBlank)) {\r\n var on = {}; // Touch support event handler\r\n\r\n /* istanbul ignore if: difficult to test in JSDOM */\r\n\r\n if (!this.bvCarousel.noTouch && HAS_TOUCH_SUPPORT) {\r\n on.dragstart = function (event) {\r\n return stopEvent(event, {\r\n propagation: false\r\n });\r\n };\r\n }\r\n\r\n $img = h(BImg, {\r\n props: _objectSpread2$3(_objectSpread2$3({}, pluckProps(imgProps, this.$props, unprefixPropName.bind(null, 'img'))), {}, {\r\n width: this.computedWidth,\r\n height: this.computedHeight,\r\n fluidGrow: true,\r\n block: true\r\n }),\r\n on: on\r\n });\r\n }\r\n\r\n var $contentChildren = [// Caption\r\n this.caption || this.captionHtml ? h(this.captionTag, {\r\n domProps: htmlOrText(this.captionHtml, this.caption)\r\n }) : false, // Text\r\n this.text || this.textHtml ? h(this.textTag, {\r\n domProps: htmlOrText(this.textHtml, this.text)\r\n }) : false, // Children\r\n this.normalizeSlot() || false];\r\n var $content = h();\r\n\r\n if ($contentChildren.some(identity)) {\r\n $content = h(this.contentTag, {\r\n staticClass: 'carousel-caption',\r\n class: this.contentClasses\r\n }, $contentChildren.map(function ($child) {\r\n return $child || h();\r\n }));\r\n }\r\n\r\n return h('div', {\r\n staticClass: 'carousel-item',\r\n style: {\r\n background: this.background || this.bvCarousel.background || null\r\n },\r\n attrs: {\r\n id: this.safeId(),\r\n role: 'listitem'\r\n }\r\n }, [$img, $content]);\r\n }\r\n });\r\n\r\n var CarouselPlugin =\r\n /*#__PURE*/\r\n pluginFactory({\r\n components: {\r\n BCarousel: BCarousel,\r\n BCarouselSlide: BCarouselSlide\r\n }\r\n });\r\n\r\n var CLASS_NAME_SHOW = 'show';\r\n\r\n // Generic collapse transion helper component\r\n // Transition event handler helpers\r\n\r\n var onEnter = function onEnter(el) {\r\n setStyle(el, 'height', 0); // In a `requestAF()` for `appear` to work\r\n\r\n requestAF(function () {\r\n reflow(el);\r\n setStyle(el, 'height', \"\".concat(el.scrollHeight, \"px\"));\r\n });\r\n };\r\n\r\n var onAfterEnter = function onAfterEnter(el) {\r\n removeStyle(el, 'height');\r\n };\r\n\r\n var onLeave = function onLeave(el) {\r\n setStyle(el, 'height', 'auto');\r\n setStyle(el, 'display', 'block');\r\n setStyle(el, 'height', \"\".concat(getBCR(el).height, \"px\"));\r\n reflow(el);\r\n setStyle(el, 'height', 0);\r\n };\r\n\r\n var onAfterLeave = function onAfterLeave(el) {\r\n removeStyle(el, 'height');\r\n }; // --- Constants ---\r\n // Default transition props\r\n // `appear` will use the enter classes\r\n\r\n\r\n var TRANSITION_PROPS = {\r\n css: true,\r\n enterClass: '',\r\n enterActiveClass: 'collapsing',\r\n enterToClass: 'collapse show',\r\n leaveClass: 'collapse show',\r\n leaveActiveClass: 'collapsing',\r\n leaveToClass: 'collapse'\r\n }; // Default transition handlers\r\n // `appear` will use the enter handlers\r\n\r\n var TRANSITION_HANDLERS = {\r\n enter: onEnter,\r\n afterEnter: onAfterEnter,\r\n leave: onLeave,\r\n afterLeave: onAfterLeave\r\n }; // --- Main component ---\r\n\r\n var props$1Q = {\r\n // // If `true` (and `visible` is `true` on mount), animate initially visible\r\n appear: makeProp(PROP_TYPE_BOOLEAN, false)\r\n }; // --- Main component ---\r\n // @vue/component\r\n\r\n var BVCollapse = /*#__PURE__*/extend({\r\n name: NAME_COLLAPSE_HELPER,\r\n functional: true,\r\n props: props$1Q,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n return h('transition', // We merge in the `appear` prop last\r\n a(data, {\r\n props: TRANSITION_PROPS,\r\n on: TRANSITION_HANDLERS\r\n }, {\r\n props: props\r\n }), // Note: `` supports a single root element only\r\n children);\r\n }\r\n });\r\n\r\n var _watch$g;\r\n\r\n var ROOT_ACTION_EVENT_NAME_TOGGLE$2 = getRootActionEventName(NAME_COLLAPSE, 'toggle');\r\n var ROOT_ACTION_EVENT_NAME_REQUEST_STATE$2 = getRootActionEventName(NAME_COLLAPSE, 'request-state');\r\n var ROOT_EVENT_NAME_ACCORDION = getRootEventName(NAME_COLLAPSE, 'accordion');\r\n var ROOT_EVENT_NAME_STATE$3 = getRootEventName(NAME_COLLAPSE, 'state');\r\n var ROOT_EVENT_NAME_SYNC_STATE$3 = getRootEventName(NAME_COLLAPSE, 'sync-state');\r\n\r\n var _makeModelMixin$h = makeModelMixin('visible', {\r\n type: PROP_TYPE_BOOLEAN,\r\n defaultValue: false\r\n }),\r\n modelMixin$g = _makeModelMixin$h.mixin,\r\n modelProps$g = _makeModelMixin$h.props,\r\n MODEL_PROP_NAME$g = _makeModelMixin$h.prop,\r\n MODEL_EVENT_NAME$g = _makeModelMixin$h.event; // --- Props ---\r\n\r\n\r\n var props$1P = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, props$25), modelProps$g), {}, {\r\n // If `true` (and `visible` is `true` on mount), animate initially visible\r\n accordion: makeProp(PROP_TYPE_STRING),\r\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\r\n isNav: makeProp(PROP_TYPE_BOOLEAN, false),\r\n tag: makeProp(PROP_TYPE_STRING, 'div')\r\n })), NAME_COLLAPSE); // --- Main component ---\r\n // @vue/component\r\n\r\n var BCollapse = /*#__PURE__*/extend({\r\n name: NAME_COLLAPSE,\r\n mixins: [idMixin, modelMixin$g, normalizeSlotMixin, listenOnRootMixin],\r\n props: props$1P,\r\n data: function data() {\r\n return {\r\n show: this[MODEL_PROP_NAME$g],\r\n transitioning: false\r\n };\r\n },\r\n computed: {\r\n classObject: function classObject() {\r\n var transitioning = this.transitioning;\r\n return {\r\n 'navbar-collapse': this.isNav,\r\n collapse: !transitioning,\r\n show: this.show && !transitioning\r\n };\r\n },\r\n slotScope: function slotScope() {\r\n var _this = this;\r\n\r\n return {\r\n visible: this.show,\r\n close: function close() {\r\n _this.show = false;\r\n }\r\n };\r\n }\r\n },\r\n watch: (_watch$g = {}, _defineProperty(_watch$g, MODEL_PROP_NAME$g, function (newValue) {\r\n if (newValue !== this.show) {\r\n this.show = newValue;\r\n }\r\n }), _defineProperty(_watch$g, \"show\", function show(newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n this.emitState();\r\n }\r\n }), _watch$g),\r\n created: function created() {\r\n this.show = this[MODEL_PROP_NAME$g];\r\n },\r\n mounted: function mounted() {\r\n var _this2 = this;\r\n\r\n this.show = this[MODEL_PROP_NAME$g]; // Listen for toggle events to open/close us\r\n\r\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE$2, this.handleToggleEvent); // Listen to other collapses for accordion events\r\n\r\n this.listenOnRoot(ROOT_EVENT_NAME_ACCORDION, this.handleAccordionEvent);\r\n\r\n if (this.isNav) {\r\n // Set up handlers\r\n this.setWindowEvents(true);\r\n this.handleResize();\r\n }\r\n\r\n this.$nextTick(function () {\r\n _this2.emitState();\r\n }); // Listen for \"Sync state\" requests from `v-b-toggle`\r\n\r\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE$2, function (id) {\r\n if (id === _this2.safeId()) {\r\n _this2.$nextTick(_this2.emitSync);\r\n }\r\n });\r\n },\r\n updated: function updated() {\r\n // Emit a private event every time this component updates to ensure\r\n // the toggle button is in sync with the collapse's state\r\n // It is emitted regardless if the visible state changes\r\n this.emitSync();\r\n },\r\n\r\n /* istanbul ignore next */\r\n deactivated: function deactivated() {\r\n if (this.isNav) {\r\n this.setWindowEvents(false);\r\n }\r\n },\r\n\r\n /* istanbul ignore next */\r\n activated: function activated() {\r\n if (this.isNav) {\r\n this.setWindowEvents(true);\r\n }\r\n\r\n this.emitSync();\r\n },\r\n beforeDestroy: function beforeDestroy() {\r\n // Trigger state emit if needed\r\n this.show = false;\r\n\r\n if (this.isNav && IS_BROWSER) {\r\n this.setWindowEvents(false);\r\n }\r\n },\r\n methods: {\r\n setWindowEvents: function setWindowEvents(on) {\r\n eventOnOff(on, window, 'resize', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\r\n eventOnOff(on, window, 'orientationchange', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\r\n },\r\n toggle: function toggle() {\r\n this.show = !this.show;\r\n },\r\n onEnter: function onEnter() {\r\n this.transitioning = true; // This should be moved out so we can add cancellable events\r\n\r\n this.$emit(EVENT_NAME_SHOW);\r\n },\r\n onAfterEnter: function onAfterEnter() {\r\n this.transitioning = false;\r\n this.$emit(EVENT_NAME_SHOWN);\r\n },\r\n onLeave: function onLeave() {\r\n this.transitioning = true; // This should be moved out so we can add cancellable events\r\n\r\n this.$emit(EVENT_NAME_HIDE);\r\n },\r\n onAfterLeave: function onAfterLeave() {\r\n this.transitioning = false;\r\n this.$emit(EVENT_NAME_HIDDEN);\r\n },\r\n emitState: function emitState() {\r\n var show = this.show,\r\n accordion = this.accordion;\r\n var id = this.safeId();\r\n this.$emit(MODEL_EVENT_NAME$g, show); // Let `v-b-toggle` know the state of this collapse\r\n\r\n this.emitOnRoot(ROOT_EVENT_NAME_STATE$3, id, show);\r\n\r\n if (accordion && show) {\r\n // Tell the other collapses in this accordion to close\r\n this.emitOnRoot(ROOT_EVENT_NAME_ACCORDION, id, accordion);\r\n }\r\n },\r\n emitSync: function emitSync() {\r\n // Emit a private event every time this component updates to ensure\r\n // the toggle button is in sync with the collapse's state\r\n // It is emitted regardless if the visible state changes\r\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE$3, this.safeId(), this.show);\r\n },\r\n checkDisplayBlock: function checkDisplayBlock() {\r\n // Check to see if the collapse has `display: block !important` set\r\n // We can't set `display: none` directly on `this.$el`, as it would\r\n // trigger a new transition to start (or cancel a current one)\r\n var $el = this.$el;\r\n var restore = hasClass($el, CLASS_NAME_SHOW);\r\n removeClass($el, CLASS_NAME_SHOW);\r\n var isBlock = getCS($el).display === 'block';\r\n\r\n if (restore) {\r\n addClass($el, CLASS_NAME_SHOW);\r\n }\r\n\r\n return isBlock;\r\n },\r\n clickHandler: function clickHandler(event) {\r\n var el = event.target; // If we are in a nav/navbar, close the collapse when non-disabled link clicked\r\n\r\n /* istanbul ignore next: can't test `getComputedStyle()` in JSDOM */\r\n\r\n if (!this.isNav || !el || getCS(this.$el).display !== 'block') {\r\n return;\r\n } // Only close the collapse if it is not forced to be `display: block !important`\r\n\r\n\r\n if ((matches(el, '.nav-link,.dropdown-item') || closest('.nav-link,.dropdown-item', el)) && !this.checkDisplayBlock()) {\r\n this.show = false;\r\n }\r\n },\r\n handleToggleEvent: function handleToggleEvent(id) {\r\n if (id === this.safeId()) {\r\n this.toggle();\r\n }\r\n },\r\n handleAccordionEvent: function handleAccordionEvent(openedId, openAccordion) {\r\n var accordion = this.accordion,\r\n show = this.show;\r\n\r\n if (!accordion || accordion !== openAccordion) {\r\n return;\r\n }\r\n\r\n var isThis = openedId === this.safeId(); // Open this collapse if not shown or\r\n // close this collapse if shown\r\n\r\n if (isThis && !show || !isThis && show) {\r\n this.toggle();\r\n }\r\n },\r\n handleResize: function handleResize() {\r\n // Handler for orientation/resize to set collapsed state in nav/navbar\r\n this.show = getCS(this.$el).display === 'block';\r\n }\r\n },\r\n render: function render(h) {\r\n var appear = this.appear;\r\n var $content = h(this.tag, {\r\n class: this.classObject,\r\n directives: [{\r\n name: 'show',\r\n value: this.show\r\n }],\r\n attrs: {\r\n id: this.safeId()\r\n },\r\n on: {\r\n click: this.clickHandler\r\n }\r\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope));\r\n return h(BVCollapse, {\r\n props: {\r\n appear: appear\r\n },\r\n on: {\r\n enter: this.onEnter,\r\n afterEnter: this.onAfterEnter,\r\n leave: this.onLeave,\r\n afterLeave: this.onAfterLeave\r\n }\r\n }, [$content]);\r\n }\r\n });\r\n\r\n var getInstanceFromDirective = function getInstanceFromDirective(vnode, bindings) {\r\n return isVue3 ? bindings.instance : vnode.context;\r\n };\r\n\r\n // Classes to apply to trigger element\r\n\r\n var CLASS_BV_TOGGLE_COLLAPSED = 'collapsed';\r\n var CLASS_BV_TOGGLE_NOT_COLLAPSED = 'not-collapsed'; // Property key for handler storage\r\n\r\n var BV_BASE = '__BV_toggle'; // Root event listener property (Function)\r\n\r\n var BV_TOGGLE_ROOT_HANDLER = \"\".concat(BV_BASE, \"_HANDLER__\"); // Trigger element click handler property (Function)\r\n\r\n var BV_TOGGLE_CLICK_HANDLER = \"\".concat(BV_BASE, \"_CLICK__\"); // Target visibility state property (Boolean)\r\n\r\n var BV_TOGGLE_STATE = \"\".concat(BV_BASE, \"_STATE__\"); // Target ID list property (Array)\r\n\r\n var BV_TOGGLE_TARGETS = \"\".concat(BV_BASE, \"_TARGETS__\"); // Commonly used strings\r\n\r\n var STRING_FALSE = 'false';\r\n var STRING_TRUE = 'true'; // Commonly used attribute names\r\n\r\n var ATTR_ARIA_CONTROLS = 'aria-controls';\r\n var ATTR_ARIA_EXPANDED = 'aria-expanded';\r\n var ATTR_ROLE = 'role';\r\n var ATTR_TABINDEX = 'tabindex'; // Commonly used style properties\r\n\r\n var STYLE_OVERFLOW_ANCHOR = 'overflow-anchor'; // Emitted control event for collapse (emitted to collapse)\r\n\r\n var ROOT_ACTION_EVENT_NAME_TOGGLE$1 = getRootActionEventName(NAME_COLLAPSE, 'toggle'); // Listen to event for toggle state update (emitted by collapse)\r\n\r\n var ROOT_EVENT_NAME_STATE$2 = getRootEventName(NAME_COLLAPSE, 'state'); // Private event emitted on `$root` to ensure the toggle state is always synced\r\n // Gets emitted even if the state of b-collapse has not changed\r\n // This event is NOT to be documented as people should not be using it\r\n\r\n var ROOT_EVENT_NAME_SYNC_STATE$2 = getRootEventName(NAME_COLLAPSE, 'sync-state'); // Private event we send to collapse to request state update sync event\r\n\r\n var ROOT_ACTION_EVENT_NAME_REQUEST_STATE$1 = getRootActionEventName(NAME_COLLAPSE, 'request-state');\r\n var KEYDOWN_KEY_CODES = [CODE_ENTER, CODE_SPACE]; // --- Helper methods ---\r\n\r\n var isNonStandardTag = function isNonStandardTag(el) {\r\n return !arrayIncludes(['button', 'a'], el.tagName.toLowerCase());\r\n };\r\n\r\n var getTargets = function getTargets(_ref, el) {\r\n var modifiers = _ref.modifiers,\r\n arg = _ref.arg,\r\n value = _ref.value;\r\n // Any modifiers are considered target IDs\r\n var targets = keys(modifiers || {}); // If value is a string, split out individual targets (if space delimited)\r\n\r\n value = isString(value) ? value.split(RX_SPACE_SPLIT) : value; // Support target ID as link href (`href=\"#id\"`)\r\n\r\n if (isTag(el.tagName, 'a')) {\r\n var href = getAttr(el, 'href') || '';\r\n\r\n if (RX_HASH_ID.test(href)) {\r\n targets.push(href.replace(RX_HASH, ''));\r\n }\r\n } // Add ID from `arg` (if provided), and support value\r\n // as a single string ID or an array of string IDs\r\n // If `value` is not an array or string, then it gets filtered out\r\n\r\n\r\n concat(arg, value).forEach(function (t) {\r\n return isString(t) && targets.push(t);\r\n }); // Return only unique and truthy target IDs\r\n\r\n return targets.filter(function (t, index, arr) {\r\n return t && arr.indexOf(t) === index;\r\n });\r\n };\r\n\r\n var removeClickListener = function removeClickListener(el) {\r\n var handler = el[BV_TOGGLE_CLICK_HANDLER];\r\n\r\n if (handler) {\r\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\r\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\r\n }\r\n\r\n el[BV_TOGGLE_CLICK_HANDLER] = null;\r\n };\r\n\r\n var addClickListener = function addClickListener(el, instance) {\r\n removeClickListener(el);\r\n\r\n if (instance) {\r\n var handler = function handler(event) {\r\n if (!(event.type === 'keydown' && !arrayIncludes(KEYDOWN_KEY_CODES, event.keyCode)) && !isDisabled(el)) {\r\n var targets = el[BV_TOGGLE_TARGETS] || [];\r\n targets.forEach(function (target) {\r\n getEventRoot(instance).$emit(ROOT_ACTION_EVENT_NAME_TOGGLE$1, target);\r\n });\r\n }\r\n };\r\n\r\n el[BV_TOGGLE_CLICK_HANDLER] = handler;\r\n eventOn(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\r\n\r\n if (isNonStandardTag(el)) {\r\n eventOn(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\r\n }\r\n }\r\n };\r\n\r\n var removeRootListeners = function removeRootListeners(el, instance) {\r\n if (el[BV_TOGGLE_ROOT_HANDLER] && instance) {\r\n getEventRoot(instance).$off([ROOT_EVENT_NAME_STATE$2, ROOT_EVENT_NAME_SYNC_STATE$2], el[BV_TOGGLE_ROOT_HANDLER]);\r\n }\r\n\r\n el[BV_TOGGLE_ROOT_HANDLER] = null;\r\n };\r\n\r\n var addRootListeners = function addRootListeners(el, instance) {\r\n removeRootListeners(el, instance);\r\n\r\n if (instance) {\r\n var handler = function handler(id, state) {\r\n // `state` will be `true` if target is expanded\r\n if (arrayIncludes(el[BV_TOGGLE_TARGETS] || [], id)) {\r\n // Set/Clear 'collapsed' visibility class state\r\n el[BV_TOGGLE_STATE] = state; // Set `aria-expanded` and class state on trigger element\r\n\r\n setToggleState(el, state);\r\n }\r\n };\r\n\r\n el[BV_TOGGLE_ROOT_HANDLER] = handler; // Listen for toggle state changes (public) and sync (private)\r\n\r\n getEventRoot(instance).$on([ROOT_EVENT_NAME_STATE$2, ROOT_EVENT_NAME_SYNC_STATE$2], handler);\r\n }\r\n };\r\n\r\n var setToggleState = function setToggleState(el, state) {\r\n // State refers to the visibility of the collapse/sidebar\r\n if (state) {\r\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\r\n addClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\r\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_TRUE);\r\n } else {\r\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\r\n addClass(el, CLASS_BV_TOGGLE_COLLAPSED);\r\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_FALSE);\r\n }\r\n }; // Reset and remove a property from the provided element\r\n\r\n\r\n var resetProp = function resetProp(el, prop) {\r\n el[prop] = null;\r\n delete el[prop];\r\n }; // Handle directive updates\r\n\r\n\r\n var handleUpdate = function handleUpdate(el, binding, vnode) {\r\n /* istanbul ignore next: should never happen */\r\n if (!IS_BROWSER || !getInstanceFromDirective(vnode, binding)) {\r\n return;\r\n } // If element is not a button or link, we add `role=\"button\"`\r\n // and `tabindex=\"0\"` for accessibility reasons\r\n\r\n\r\n if (isNonStandardTag(el)) {\r\n if (!hasAttr(el, ATTR_ROLE)) {\r\n setAttr(el, ATTR_ROLE, 'button');\r\n }\r\n\r\n if (!hasAttr(el, ATTR_TABINDEX)) {\r\n setAttr(el, ATTR_TABINDEX, '0');\r\n }\r\n } // Ensure the collapse class and `aria-*` attributes persist\r\n // after element is updated (either by parent re-rendering\r\n // or changes to this element or its contents)\r\n\r\n\r\n setToggleState(el, el[BV_TOGGLE_STATE]); // Parse list of target IDs\r\n\r\n var targets = getTargets(binding, el); // Ensure the `aria-controls` hasn't been overwritten\r\n // or removed when vnode updates\r\n // Also ensure to set `overflow-anchor` to `none` to prevent\r\n // the browser's scroll anchoring behavior\r\n\r\n /* istanbul ignore else */\r\n\r\n if (targets.length > 0) {\r\n setAttr(el, ATTR_ARIA_CONTROLS, targets.join(' '));\r\n setStyle(el, STYLE_OVERFLOW_ANCHOR, 'none');\r\n } else {\r\n removeAttr(el, ATTR_ARIA_CONTROLS);\r\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\r\n } // Add/Update our click listener(s)\r\n // Wrap in a `requestAF()` to allow any previous\r\n // click handling to occur first\r\n\r\n\r\n requestAF(function () {\r\n addClickListener(el, getInstanceFromDirective(vnode, binding));\r\n }); // If targets array has changed, update\r\n\r\n if (!looseEqual(targets, el[BV_TOGGLE_TARGETS])) {\r\n // Update targets array to element storage\r\n el[BV_TOGGLE_TARGETS] = targets; // Ensure `aria-controls` is up to date\r\n // Request a state update from targets so that we can\r\n // ensure expanded state is correct (in most cases)\r\n\r\n targets.forEach(function (target) {\r\n getEventRoot(getInstanceFromDirective(vnode, binding)).$emit(ROOT_ACTION_EVENT_NAME_REQUEST_STATE$1, target);\r\n });\r\n }\r\n };\r\n /*\r\n * Export our directive\r\n */\r\n\r\n\r\n var VBToggle = {\r\n bind: function bind(el, binding, vnode) {\r\n // State is initially collapsed until we receive a state event\r\n el[BV_TOGGLE_STATE] = false; // Assume no targets initially\r\n\r\n el[BV_TOGGLE_TARGETS] = []; // Add our root listeners\r\n\r\n addRootListeners(el, getInstanceFromDirective(vnode, binding)); // Initial update of trigger\r\n\r\n handleUpdate(el, binding, vnode);\r\n },\r\n componentUpdated: handleUpdate,\r\n updated: handleUpdate,\r\n unbind: function unbind(el, binding, vnode) {\r\n removeClickListener(el); // Remove our $root listener\r\n\r\n removeRootListeners(el, getInstanceFromDirective(vnode, binding)); // Reset custom props\r\n\r\n resetProp(el, BV_TOGGLE_ROOT_HANDLER);\r\n resetProp(el, BV_TOGGLE_CLICK_HANDLER);\r\n resetProp(el, BV_TOGGLE_STATE);\r\n resetProp(el, BV_TOGGLE_TARGETS); // Reset classes/attrs/styles\r\n\r\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\r\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\r\n removeAttr(el, ATTR_ARIA_EXPANDED);\r\n removeAttr(el, ATTR_ARIA_CONTROLS);\r\n removeAttr(el, ATTR_ROLE);\r\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\r\n }\r\n };\r\n\r\n var VBTogglePlugin = /*#__PURE__*/pluginFactory({\r\n directives: {\r\n VBToggle: VBToggle\r\n }\r\n });\r\n\r\n var CollapsePlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BCollapse: BCollapse\r\n },\r\n plugins: {\r\n VBTogglePlugin: VBTogglePlugin\r\n }\r\n });\r\n\r\n /**!\r\n * @fileOverview Kickass library to create and place poppers near their reference elements.\r\n * @version 1.16.1\r\n * @license\r\n * Copyright (c) 2016 Federico Zivolo and contributors\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n */\r\n var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\r\n\r\n var timeoutDuration = function () {\r\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\r\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\r\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\r\n return 1;\r\n }\r\n }\r\n return 0;\r\n }();\r\n\r\n function microtaskDebounce(fn) {\r\n var called = false;\r\n return function () {\r\n if (called) {\r\n return;\r\n }\r\n called = true;\r\n window.Promise.resolve().then(function () {\r\n called = false;\r\n fn();\r\n });\r\n };\r\n }\r\n\r\n function taskDebounce(fn) {\r\n var scheduled = false;\r\n return function () {\r\n if (!scheduled) {\r\n scheduled = true;\r\n setTimeout(function () {\r\n scheduled = false;\r\n fn();\r\n }, timeoutDuration);\r\n }\r\n };\r\n }\r\n\r\n var supportsMicroTasks = isBrowser && window.Promise;\r\n\r\n /**\r\n * Create a debounced version of a method, that's asynchronously deferred\r\n * but called in the minimum time possible.\r\n *\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Function} fn\r\n * @returns {Function}\r\n */\r\n var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\r\n\r\n /**\r\n * Check if the given variable is a function\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Any} functionToCheck - variable to check\r\n * @returns {Boolean} answer to: is a function?\r\n */\r\n function isFunction(functionToCheck) {\r\n var getType = {};\r\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\r\n }\r\n\r\n /**\r\n * Get CSS computed property of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Eement} element\r\n * @argument {String} property\r\n */\r\n function getStyleComputedProperty(element, property) {\r\n if (element.nodeType !== 1) {\r\n return [];\r\n }\r\n // NOTE: 1 DOM access here\r\n var window = element.ownerDocument.defaultView;\r\n var css = window.getComputedStyle(element, null);\r\n return property ? css[property] : css;\r\n }\r\n\r\n /**\r\n * Returns the parentNode or the host of the element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} parent\r\n */\r\n function getParentNode(element) {\r\n if (element.nodeName === 'HTML') {\r\n return element;\r\n }\r\n return element.parentNode || element.host;\r\n }\r\n\r\n /**\r\n * Returns the scrolling parent of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} scroll parent\r\n */\r\n function getScrollParent(element) {\r\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\r\n if (!element) {\r\n return document.body;\r\n }\r\n\r\n switch (element.nodeName) {\r\n case 'HTML':\r\n case 'BODY':\r\n return element.ownerDocument.body;\r\n case '#document':\r\n return element.body;\r\n }\r\n\r\n // Firefox want us to check `-x` and `-y` variations as well\r\n\r\n var _getStyleComputedProp = getStyleComputedProperty(element),\r\n overflow = _getStyleComputedProp.overflow,\r\n overflowX = _getStyleComputedProp.overflowX,\r\n overflowY = _getStyleComputedProp.overflowY;\r\n\r\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\r\n return element;\r\n }\r\n\r\n return getScrollParent(getParentNode(element));\r\n }\r\n\r\n /**\r\n * Returns the reference node of the reference object, or the reference object itself.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\r\n * @returns {Element} parent\r\n */\r\n function getReferenceNode(reference) {\r\n return reference && reference.referenceNode ? reference.referenceNode : reference;\r\n }\r\n\r\n var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\r\n var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\r\n\r\n /**\r\n * Determines if the browser is Internet Explorer\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Number} version to check\r\n * @returns {Boolean} isIE\r\n */\r\n function isIE(version) {\r\n if (version === 11) {\r\n return isIE11;\r\n }\r\n if (version === 10) {\r\n return isIE10;\r\n }\r\n return isIE11 || isIE10;\r\n }\r\n\r\n /**\r\n * Returns the offset parent of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} offset parent\r\n */\r\n function getOffsetParent(element) {\r\n if (!element) {\r\n return document.documentElement;\r\n }\r\n\r\n var noOffsetParent = isIE(10) ? document.body : null;\r\n\r\n // NOTE: 1 DOM access here\r\n var offsetParent = element.offsetParent || null;\r\n // Skip hidden elements which don't have an offsetParent\r\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\r\n offsetParent = (element = element.nextElementSibling).offsetParent;\r\n }\r\n\r\n var nodeName = offsetParent && offsetParent.nodeName;\r\n\r\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\r\n return element ? element.ownerDocument.documentElement : document.documentElement;\r\n }\r\n\r\n // .offsetParent will return the closest TH, TD or TABLE in case\r\n // no offsetParent is present, I hate this job...\r\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\r\n return getOffsetParent(offsetParent);\r\n }\r\n\r\n return offsetParent;\r\n }\r\n\r\n function isOffsetContainer(element) {\r\n var nodeName = element.nodeName;\r\n\r\n if (nodeName === 'BODY') {\r\n return false;\r\n }\r\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\r\n }\r\n\r\n /**\r\n * Finds the root node (document, shadowDOM root) of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} node\r\n * @returns {Element} root node\r\n */\r\n function getRoot(node) {\r\n if (node.parentNode !== null) {\r\n return getRoot(node.parentNode);\r\n }\r\n\r\n return node;\r\n }\r\n\r\n /**\r\n * Finds the offset parent common to the two provided nodes\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element1\r\n * @argument {Element} element2\r\n * @returns {Element} common offset parent\r\n */\r\n function findCommonOffsetParent(element1, element2) {\r\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\r\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\r\n return document.documentElement;\r\n }\r\n\r\n // Here we make sure to give as \"start\" the element that comes first in the DOM\r\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\r\n var start = order ? element1 : element2;\r\n var end = order ? element2 : element1;\r\n\r\n // Get common ancestor container\r\n var range = document.createRange();\r\n range.setStart(start, 0);\r\n range.setEnd(end, 0);\r\n var commonAncestorContainer = range.commonAncestorContainer;\r\n\r\n // Both nodes are inside #document\r\n\r\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\r\n if (isOffsetContainer(commonAncestorContainer)) {\r\n return commonAncestorContainer;\r\n }\r\n\r\n return getOffsetParent(commonAncestorContainer);\r\n }\r\n\r\n // one of the nodes is inside shadowDOM, find which one\r\n var element1root = getRoot(element1);\r\n if (element1root.host) {\r\n return findCommonOffsetParent(element1root.host, element2);\r\n } else {\r\n return findCommonOffsetParent(element1, getRoot(element2).host);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the scroll value of the given element in the given side (top and left)\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @argument {String} side `top` or `left`\r\n * @returns {number} amount of scrolled pixels\r\n */\r\n function getScroll(element) {\r\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\r\n\r\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\r\n var nodeName = element.nodeName;\r\n\r\n if (nodeName === 'BODY' || nodeName === 'HTML') {\r\n var html = element.ownerDocument.documentElement;\r\n var scrollingElement = element.ownerDocument.scrollingElement || html;\r\n return scrollingElement[upperSide];\r\n }\r\n\r\n return element[upperSide];\r\n }\r\n\r\n /*\r\n * Sum or subtract the element scroll values (left and top) from a given rect object\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Object} rect - Rect object you want to change\r\n * @param {HTMLElement} element - The element from the function reads the scroll values\r\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\r\n * @return {Object} rect - The modifier rect object\r\n */\r\n function includeScroll(rect, element) {\r\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n\r\n var scrollTop = getScroll(element, 'top');\r\n var scrollLeft = getScroll(element, 'left');\r\n var modifier = subtract ? -1 : 1;\r\n rect.top += scrollTop * modifier;\r\n rect.bottom += scrollTop * modifier;\r\n rect.left += scrollLeft * modifier;\r\n rect.right += scrollLeft * modifier;\r\n return rect;\r\n }\r\n\r\n /*\r\n * Helper to detect borders of a given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {CSSStyleDeclaration} styles\r\n * Result of `getStyleComputedProperty` on the given element\r\n * @param {String} axis - `x` or `y`\r\n * @return {number} borders - The borders size of the given axis\r\n */\r\n\r\n function getBordersSize(styles, axis) {\r\n var sideA = axis === 'x' ? 'Left' : 'Top';\r\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\r\n\r\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\r\n }\r\n\r\n function getSize(axis, body, html, computedStyle) {\r\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\r\n }\r\n\r\n function getWindowSizes(document) {\r\n var body = document.body;\r\n var html = document.documentElement;\r\n var computedStyle = isIE(10) && getComputedStyle(html);\r\n\r\n return {\r\n height: getSize('Height', body, html, computedStyle),\r\n width: getSize('Width', body, html, computedStyle)\r\n };\r\n }\r\n\r\n var classCallCheck = function (instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\");\r\n }\r\n };\r\n\r\n var createClass = function () {\r\n function defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n return function (Constructor, protoProps, staticProps) {\r\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) defineProperties(Constructor, staticProps);\r\n return Constructor;\r\n };\r\n }();\r\n\r\n\r\n\r\n\r\n\r\n var defineProperty = function (obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n });\r\n } else {\r\n obj[key] = value;\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n var _extends = Object.assign || function (target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n\r\n for (var key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n };\r\n\r\n /**\r\n * Given element offsets, generate an output similar to getBoundingClientRect\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Object} offsets\r\n * @returns {Object} ClientRect like output\r\n */\r\n function getClientRect(offsets) {\r\n return _extends({}, offsets, {\r\n right: offsets.left + offsets.width,\r\n bottom: offsets.top + offsets.height\r\n });\r\n }\r\n\r\n /**\r\n * Get bounding client rect of given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {HTMLElement} element\r\n * @return {Object} client rect\r\n */\r\n function getBoundingClientRect(element) {\r\n var rect = {};\r\n\r\n // IE10 10 FIX: Please, don't ask, the element isn't\r\n // considered in DOM in some circumstances...\r\n // This isn't reproducible in IE10 compatibility mode of IE11\r\n try {\r\n if (isIE(10)) {\r\n rect = element.getBoundingClientRect();\r\n var scrollTop = getScroll(element, 'top');\r\n var scrollLeft = getScroll(element, 'left');\r\n rect.top += scrollTop;\r\n rect.left += scrollLeft;\r\n rect.bottom += scrollTop;\r\n rect.right += scrollLeft;\r\n } else {\r\n rect = element.getBoundingClientRect();\r\n }\r\n } catch (e) {}\r\n\r\n var result = {\r\n left: rect.left,\r\n top: rect.top,\r\n width: rect.right - rect.left,\r\n height: rect.bottom - rect.top\r\n };\r\n\r\n // subtract scrollbar size from sizes\r\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\r\n var width = sizes.width || element.clientWidth || result.width;\r\n var height = sizes.height || element.clientHeight || result.height;\r\n\r\n var horizScrollbar = element.offsetWidth - width;\r\n var vertScrollbar = element.offsetHeight - height;\r\n\r\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\r\n // we make this check conditional for performance reasons\r\n if (horizScrollbar || vertScrollbar) {\r\n var styles = getStyleComputedProperty(element);\r\n horizScrollbar -= getBordersSize(styles, 'x');\r\n vertScrollbar -= getBordersSize(styles, 'y');\r\n\r\n result.width -= horizScrollbar;\r\n result.height -= vertScrollbar;\r\n }\r\n\r\n return getClientRect(result);\r\n }\r\n\r\n function getOffsetRectRelativeToArbitraryNode(children, parent) {\r\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n\r\n var isIE10 = isIE(10);\r\n var isHTML = parent.nodeName === 'HTML';\r\n var childrenRect = getBoundingClientRect(children);\r\n var parentRect = getBoundingClientRect(parent);\r\n var scrollParent = getScrollParent(children);\r\n\r\n var styles = getStyleComputedProperty(parent);\r\n var borderTopWidth = parseFloat(styles.borderTopWidth);\r\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\r\n\r\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\r\n if (fixedPosition && isHTML) {\r\n parentRect.top = Math.max(parentRect.top, 0);\r\n parentRect.left = Math.max(parentRect.left, 0);\r\n }\r\n var offsets = getClientRect({\r\n top: childrenRect.top - parentRect.top - borderTopWidth,\r\n left: childrenRect.left - parentRect.left - borderLeftWidth,\r\n width: childrenRect.width,\r\n height: childrenRect.height\r\n });\r\n offsets.marginTop = 0;\r\n offsets.marginLeft = 0;\r\n\r\n // Subtract margins of documentElement in case it's being used as parent\r\n // we do this only on HTML because it's the only element that behaves\r\n // differently when margins are applied to it. The margins are included in\r\n // the box of the documentElement, in the other cases not.\r\n if (!isIE10 && isHTML) {\r\n var marginTop = parseFloat(styles.marginTop);\r\n var marginLeft = parseFloat(styles.marginLeft);\r\n\r\n offsets.top -= borderTopWidth - marginTop;\r\n offsets.bottom -= borderTopWidth - marginTop;\r\n offsets.left -= borderLeftWidth - marginLeft;\r\n offsets.right -= borderLeftWidth - marginLeft;\r\n\r\n // Attach marginTop and marginLeft because in some circumstances we may need them\r\n offsets.marginTop = marginTop;\r\n offsets.marginLeft = marginLeft;\r\n }\r\n\r\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\r\n offsets = includeScroll(offsets, parent);\r\n }\r\n\r\n return offsets;\r\n }\r\n\r\n function getViewportOffsetRectRelativeToArtbitraryNode(element) {\r\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n\r\n var html = element.ownerDocument.documentElement;\r\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\r\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\r\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\r\n\r\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\r\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\r\n\r\n var offset = {\r\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\r\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\r\n width: width,\r\n height: height\r\n };\r\n\r\n return getClientRect(offset);\r\n }\r\n\r\n /**\r\n * Check if the given element is fixed or is inside a fixed parent\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @argument {Element} customContainer\r\n * @returns {Boolean} answer to \"isFixed?\"\r\n */\r\n function isFixed(element) {\r\n var nodeName = element.nodeName;\r\n if (nodeName === 'BODY' || nodeName === 'HTML') {\r\n return false;\r\n }\r\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\r\n return true;\r\n }\r\n var parentNode = getParentNode(element);\r\n if (!parentNode) {\r\n return false;\r\n }\r\n return isFixed(parentNode);\r\n }\r\n\r\n /**\r\n * Finds the first parent of an element that has a transformed property defined\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} first transformed parent or documentElement\r\n */\r\n\r\n function getFixedPositionOffsetParent(element) {\r\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\r\n if (!element || !element.parentElement || isIE()) {\r\n return document.documentElement;\r\n }\r\n var el = element.parentElement;\r\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\r\n el = el.parentElement;\r\n }\r\n return el || document.documentElement;\r\n }\r\n\r\n /**\r\n * Computed the boundaries limits and return them\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {HTMLElement} popper\r\n * @param {HTMLElement} reference\r\n * @param {number} padding\r\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\r\n * @param {Boolean} fixedPosition - Is in fixed position mode\r\n * @returns {Object} Coordinates of the boundaries\r\n */\r\n function getBoundaries(popper, reference, padding, boundariesElement) {\r\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\r\n\r\n // NOTE: 1 DOM access here\r\n\r\n var boundaries = { top: 0, left: 0 };\r\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\r\n\r\n // Handle viewport case\r\n if (boundariesElement === 'viewport') {\r\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\r\n } else {\r\n // Handle other cases based on DOM element used as boundaries\r\n var boundariesNode = void 0;\r\n if (boundariesElement === 'scrollParent') {\r\n boundariesNode = getScrollParent(getParentNode(reference));\r\n if (boundariesNode.nodeName === 'BODY') {\r\n boundariesNode = popper.ownerDocument.documentElement;\r\n }\r\n } else if (boundariesElement === 'window') {\r\n boundariesNode = popper.ownerDocument.documentElement;\r\n } else {\r\n boundariesNode = boundariesElement;\r\n }\r\n\r\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\r\n\r\n // In case of HTML, we need a different computation\r\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\r\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\r\n height = _getWindowSizes.height,\r\n width = _getWindowSizes.width;\r\n\r\n boundaries.top += offsets.top - offsets.marginTop;\r\n boundaries.bottom = height + offsets.top;\r\n boundaries.left += offsets.left - offsets.marginLeft;\r\n boundaries.right = width + offsets.left;\r\n } else {\r\n // for all the other DOM elements, this one is good\r\n boundaries = offsets;\r\n }\r\n }\r\n\r\n // Add paddings\r\n padding = padding || 0;\r\n var isPaddingNumber = typeof padding === 'number';\r\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\r\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\r\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\r\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\r\n\r\n return boundaries;\r\n }\r\n\r\n function getArea(_ref) {\r\n var width = _ref.width,\r\n height = _ref.height;\r\n\r\n return width * height;\r\n }\r\n\r\n /**\r\n * Utility used to transform the `auto` placement to the placement with more\r\n * available space.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\r\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\r\n\r\n if (placement.indexOf('auto') === -1) {\r\n return placement;\r\n }\r\n\r\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\r\n\r\n var rects = {\r\n top: {\r\n width: boundaries.width,\r\n height: refRect.top - boundaries.top\r\n },\r\n right: {\r\n width: boundaries.right - refRect.right,\r\n height: boundaries.height\r\n },\r\n bottom: {\r\n width: boundaries.width,\r\n height: boundaries.bottom - refRect.bottom\r\n },\r\n left: {\r\n width: refRect.left - boundaries.left,\r\n height: boundaries.height\r\n }\r\n };\r\n\r\n var sortedAreas = Object.keys(rects).map(function (key) {\r\n return _extends({\r\n key: key\r\n }, rects[key], {\r\n area: getArea(rects[key])\r\n });\r\n }).sort(function (a, b) {\r\n return b.area - a.area;\r\n });\r\n\r\n var filteredAreas = sortedAreas.filter(function (_ref2) {\r\n var width = _ref2.width,\r\n height = _ref2.height;\r\n return width >= popper.clientWidth && height >= popper.clientHeight;\r\n });\r\n\r\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\r\n\r\n var variation = placement.split('-')[1];\r\n\r\n return computedPlacement + (variation ? '-' + variation : '');\r\n }\r\n\r\n /**\r\n * Get offsets to the reference element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Object} state\r\n * @param {Element} popper - the popper element\r\n * @param {Element} reference - the reference element (the popper will be relative to this)\r\n * @param {Element} fixedPosition - is in fixed position mode\r\n * @returns {Object} An object containing the offsets which will be applied to the popper\r\n */\r\n function getReferenceOffsets(state, popper, reference) {\r\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\r\n\r\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\r\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\r\n }\r\n\r\n /**\r\n * Get the outer sizes of the given element (offset size + margins)\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Object} object containing width and height properties\r\n */\r\n function getOuterSizes(element) {\r\n var window = element.ownerDocument.defaultView;\r\n var styles = window.getComputedStyle(element);\r\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\r\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\r\n var result = {\r\n width: element.offsetWidth + y,\r\n height: element.offsetHeight + x\r\n };\r\n return result;\r\n }\r\n\r\n /**\r\n * Get the opposite placement of the given one\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} placement\r\n * @returns {String} flipped placement\r\n */\r\n function getOppositePlacement(placement) {\r\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\r\n return placement.replace(/left|right|bottom|top/g, function (matched) {\r\n return hash[matched];\r\n });\r\n }\r\n\r\n /**\r\n * Get offsets to the popper\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Object} position - CSS position the Popper will get applied\r\n * @param {HTMLElement} popper - the popper element\r\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\r\n * @param {String} placement - one of the valid placement options\r\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\r\n */\r\n function getPopperOffsets(popper, referenceOffsets, placement) {\r\n placement = placement.split('-')[0];\r\n\r\n // Get popper node sizes\r\n var popperRect = getOuterSizes(popper);\r\n\r\n // Add position, width and height to our offsets object\r\n var popperOffsets = {\r\n width: popperRect.width,\r\n height: popperRect.height\r\n };\r\n\r\n // depending by the popper placement we have to compute its offsets slightly differently\r\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\r\n var mainSide = isHoriz ? 'top' : 'left';\r\n var secondarySide = isHoriz ? 'left' : 'top';\r\n var measurement = isHoriz ? 'height' : 'width';\r\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\r\n\r\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\r\n if (placement === secondarySide) {\r\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\r\n } else {\r\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\r\n }\r\n\r\n return popperOffsets;\r\n }\r\n\r\n /**\r\n * Mimics the `find` method of Array\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Array} arr\r\n * @argument prop\r\n * @argument value\r\n * @returns index or -1\r\n */\r\n function find(arr, check) {\r\n // use native find if supported\r\n if (Array.prototype.find) {\r\n return arr.find(check);\r\n }\r\n\r\n // use `filter` to obtain the same behavior of `find`\r\n return arr.filter(check)[0];\r\n }\r\n\r\n /**\r\n * Return the index of the matching object\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Array} arr\r\n * @argument prop\r\n * @argument value\r\n * @returns index or -1\r\n */\r\n function findIndex(arr, prop, value) {\r\n // use native findIndex if supported\r\n if (Array.prototype.findIndex) {\r\n return arr.findIndex(function (cur) {\r\n return cur[prop] === value;\r\n });\r\n }\r\n\r\n // use `find` + `indexOf` if `findIndex` isn't supported\r\n var match = find(arr, function (obj) {\r\n return obj[prop] === value;\r\n });\r\n return arr.indexOf(match);\r\n }\r\n\r\n /**\r\n * Loop trough the list of modifiers and run them in order,\r\n * each of them will then edit the data object.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {dataObject} data\r\n * @param {Array} modifiers\r\n * @param {String} ends - Optional modifier name used as stopper\r\n * @returns {dataObject}\r\n */\r\n function runModifiers(modifiers, data, ends) {\r\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\r\n\r\n modifiersToRun.forEach(function (modifier) {\r\n if (modifier['function']) {\r\n // eslint-disable-line dot-notation\r\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\r\n }\r\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\r\n if (modifier.enabled && isFunction(fn)) {\r\n // Add properties to offsets to make them a complete clientRect object\r\n // we do this before each modifier to make sure the previous one doesn't\r\n // mess with these values\r\n data.offsets.popper = getClientRect(data.offsets.popper);\r\n data.offsets.reference = getClientRect(data.offsets.reference);\r\n\r\n data = fn(data, modifier);\r\n }\r\n });\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * Updates the position of the popper, computing the new offsets and applying\r\n * the new style.
\r\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\r\n * @method\r\n * @memberof Popper\r\n */\r\n function update() {\r\n // if popper is destroyed, don't perform any further update\r\n if (this.state.isDestroyed) {\r\n return;\r\n }\r\n\r\n var data = {\r\n instance: this,\r\n styles: {},\r\n arrowStyles: {},\r\n attributes: {},\r\n flipped: false,\r\n offsets: {}\r\n };\r\n\r\n // compute reference element offsets\r\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\r\n\r\n // compute auto placement, store placement inside the data object,\r\n // modifiers will be able to edit `placement` if needed\r\n // and refer to originalPlacement to know the original value\r\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\r\n\r\n // store the computed placement inside `originalPlacement`\r\n data.originalPlacement = data.placement;\r\n\r\n data.positionFixed = this.options.positionFixed;\r\n\r\n // compute the popper offsets\r\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\r\n\r\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\r\n\r\n // run the modifiers\r\n data = runModifiers(this.modifiers, data);\r\n\r\n // the first `update` will call `onCreate` callback\r\n // the other ones will call `onUpdate` callback\r\n if (!this.state.isCreated) {\r\n this.state.isCreated = true;\r\n this.options.onCreate(data);\r\n } else {\r\n this.options.onUpdate(data);\r\n }\r\n }\r\n\r\n /**\r\n * Helper used to know if the given modifier is enabled.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @returns {Boolean}\r\n */\r\n function isModifierEnabled(modifiers, modifierName) {\r\n return modifiers.some(function (_ref) {\r\n var name = _ref.name,\r\n enabled = _ref.enabled;\r\n return enabled && name === modifierName;\r\n });\r\n }\r\n\r\n /**\r\n * Get the prefixed supported property name\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} property (camelCase)\r\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\r\n */\r\n function getSupportedPropertyName(property) {\r\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\r\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\r\n\r\n for (var i = 0; i < prefixes.length; i++) {\r\n var prefix = prefixes[i];\r\n var toCheck = prefix ? '' + prefix + upperProp : property;\r\n if (typeof document.body.style[toCheck] !== 'undefined') {\r\n return toCheck;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Destroys the popper.\r\n * @method\r\n * @memberof Popper\r\n */\r\n function destroy() {\r\n this.state.isDestroyed = true;\r\n\r\n // touch DOM only if `applyStyle` modifier is enabled\r\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\r\n this.popper.removeAttribute('x-placement');\r\n this.popper.style.position = '';\r\n this.popper.style.top = '';\r\n this.popper.style.left = '';\r\n this.popper.style.right = '';\r\n this.popper.style.bottom = '';\r\n this.popper.style.willChange = '';\r\n this.popper.style[getSupportedPropertyName('transform')] = '';\r\n }\r\n\r\n this.disableEventListeners();\r\n\r\n // remove the popper if user explicitly asked for the deletion on destroy\r\n // do not use `remove` because IE11 doesn't support it\r\n if (this.options.removeOnDestroy) {\r\n this.popper.parentNode.removeChild(this.popper);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Get the window associated with the element\r\n * @argument {Element} element\r\n * @returns {Window}\r\n */\r\n function getWindow(element) {\r\n var ownerDocument = element.ownerDocument;\r\n return ownerDocument ? ownerDocument.defaultView : window;\r\n }\r\n\r\n function attachToScrollParents(scrollParent, event, callback, scrollParents) {\r\n var isBody = scrollParent.nodeName === 'BODY';\r\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\r\n target.addEventListener(event, callback, { passive: true });\r\n\r\n if (!isBody) {\r\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\r\n }\r\n scrollParents.push(target);\r\n }\r\n\r\n /**\r\n * Setup needed event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper.Utils\r\n * @private\r\n */\r\n function setupEventListeners(reference, options, state, updateBound) {\r\n // Resize event listener on window\r\n state.updateBound = updateBound;\r\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\r\n\r\n // Scroll event listener on scroll parents\r\n var scrollElement = getScrollParent(reference);\r\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\r\n state.scrollElement = scrollElement;\r\n state.eventsEnabled = true;\r\n\r\n return state;\r\n }\r\n\r\n /**\r\n * It will add resize/scroll events and start recalculating\r\n * position of the popper element when they are triggered.\r\n * @method\r\n * @memberof Popper\r\n */\r\n function enableEventListeners() {\r\n if (!this.state.eventsEnabled) {\r\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\r\n }\r\n }\r\n\r\n /**\r\n * Remove event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper.Utils\r\n * @private\r\n */\r\n function removeEventListeners(reference, state) {\r\n // Remove resize event listener on window\r\n getWindow(reference).removeEventListener('resize', state.updateBound);\r\n\r\n // Remove scroll event listener on scroll parents\r\n state.scrollParents.forEach(function (target) {\r\n target.removeEventListener('scroll', state.updateBound);\r\n });\r\n\r\n // Reset state\r\n state.updateBound = null;\r\n state.scrollParents = [];\r\n state.scrollElement = null;\r\n state.eventsEnabled = false;\r\n return state;\r\n }\r\n\r\n /**\r\n * It will remove resize/scroll events and won't recalculate popper position\r\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\r\n * unless you call `update` method manually.\r\n * @method\r\n * @memberof Popper\r\n */\r\n function disableEventListeners() {\r\n if (this.state.eventsEnabled) {\r\n cancelAnimationFrame(this.scheduleUpdate);\r\n this.state = removeEventListeners(this.reference, this.state);\r\n }\r\n }\r\n\r\n /**\r\n * Tells if a given input is a number\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {*} input to check\r\n * @return {Boolean}\r\n */\r\n function isNumeric(n) {\r\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\r\n }\r\n\r\n /**\r\n * Set the style to the given popper\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element - Element to apply the style to\r\n * @argument {Object} styles\r\n * Object with a list of properties and values which will be applied to the element\r\n */\r\n function setStyles(element, styles) {\r\n Object.keys(styles).forEach(function (prop) {\r\n var unit = '';\r\n // add unit if the value is numeric and is one of the following\r\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\r\n unit = 'px';\r\n }\r\n element.style[prop] = styles[prop] + unit;\r\n });\r\n }\r\n\r\n /**\r\n * Set the attributes to the given popper\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element - Element to apply the attributes to\r\n * @argument {Object} styles\r\n * Object with a list of properties and values which will be applied to the element\r\n */\r\n function setAttributes(element, attributes) {\r\n Object.keys(attributes).forEach(function (prop) {\r\n var value = attributes[prop];\r\n if (value !== false) {\r\n element.setAttribute(prop, attributes[prop]);\r\n } else {\r\n element.removeAttribute(prop);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\r\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The same data object\r\n */\r\n function applyStyle(data) {\r\n // any property present in `data.styles` will be applied to the popper,\r\n // in this way we can make the 3rd party modifiers add custom styles to it\r\n // Be aware, modifiers could override the properties defined in the previous\r\n // lines of this modifier!\r\n setStyles(data.instance.popper, data.styles);\r\n\r\n // any property present in `data.attributes` will be applied to the popper,\r\n // they will be set as HTML attributes of the element\r\n setAttributes(data.instance.popper, data.attributes);\r\n\r\n // if arrowElement is defined and arrowStyles has some properties\r\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\r\n setStyles(data.arrowElement, data.arrowStyles);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * Set the x-placement attribute before everything else because it could be used\r\n * to add margins to the popper margins needs to be calculated to get the\r\n * correct popper offsets.\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @param {HTMLElement} reference - The reference element used to position the popper\r\n * @param {HTMLElement} popper - The HTML element used as popper\r\n * @param {Object} options - Popper.js options\r\n */\r\n function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\r\n // compute reference element offsets\r\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\r\n\r\n // compute auto placement, store placement inside the data object,\r\n // modifiers will be able to edit `placement` if needed\r\n // and refer to originalPlacement to know the original value\r\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\r\n\r\n popper.setAttribute('x-placement', placement);\r\n\r\n // Apply `position` to popper before anything else because\r\n // without the position applied we can't guarantee correct computations\r\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\r\n\r\n return options;\r\n }\r\n\r\n /**\r\n * @function\r\n * @memberof Popper.Utils\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\r\n * @returns {Object} The popper's position offsets rounded\r\n *\r\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\r\n * good as it can be within reason.\r\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\r\n *\r\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\r\n * as well on High DPI screens).\r\n *\r\n * Firefox prefers no rounding for positioning and does not have blurriness on\r\n * high DPI screens.\r\n *\r\n * Only horizontal placement and left/right values need to be considered.\r\n */\r\n function getRoundedOffsets(data, shouldRound) {\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n var round = Math.round,\r\n floor = Math.floor;\r\n\r\n var noRound = function noRound(v) {\r\n return v;\r\n };\r\n\r\n var referenceWidth = round(reference.width);\r\n var popperWidth = round(popper.width);\r\n\r\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\r\n var isVariation = data.placement.indexOf('-') !== -1;\r\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\r\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\r\n\r\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\r\n var verticalToInteger = !shouldRound ? noRound : round;\r\n\r\n return {\r\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\r\n top: verticalToInteger(popper.top),\r\n bottom: verticalToInteger(popper.bottom),\r\n right: horizontalToInteger(popper.right)\r\n };\r\n }\r\n\r\n var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function computeStyle(data, options) {\r\n var x = options.x,\r\n y = options.y;\r\n var popper = data.offsets.popper;\r\n\r\n // Remove this legacy support in Popper.js v2\r\n\r\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\r\n return modifier.name === 'applyStyle';\r\n }).gpuAcceleration;\r\n if (legacyGpuAccelerationOption !== undefined) {\r\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\r\n }\r\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\r\n\r\n var offsetParent = getOffsetParent(data.instance.popper);\r\n var offsetParentRect = getBoundingClientRect(offsetParent);\r\n\r\n // Styles\r\n var styles = {\r\n position: popper.position\r\n };\r\n\r\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\r\n\r\n var sideA = x === 'bottom' ? 'top' : 'bottom';\r\n var sideB = y === 'right' ? 'left' : 'right';\r\n\r\n // if gpuAcceleration is set to `true` and transform is supported,\r\n // we use `translate3d` to apply the position to the popper we\r\n // automatically use the supported prefixed version if needed\r\n var prefixedProperty = getSupportedPropertyName('transform');\r\n\r\n // now, let's make a step back and look at this code closely (wtf?)\r\n // If the content of the popper grows once it's been positioned, it\r\n // may happen that the popper gets misplaced because of the new content\r\n // overflowing its reference element\r\n // To avoid this problem, we provide two options (x and y), which allow\r\n // the consumer to define the offset origin.\r\n // If we position a popper on top of a reference element, we can set\r\n // `x` to `top` to make the popper grow towards its top instead of\r\n // its bottom.\r\n var left = void 0,\r\n top = void 0;\r\n if (sideA === 'bottom') {\r\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\r\n // and not the bottom of the html element\r\n if (offsetParent.nodeName === 'HTML') {\r\n top = -offsetParent.clientHeight + offsets.bottom;\r\n } else {\r\n top = -offsetParentRect.height + offsets.bottom;\r\n }\r\n } else {\r\n top = offsets.top;\r\n }\r\n if (sideB === 'right') {\r\n if (offsetParent.nodeName === 'HTML') {\r\n left = -offsetParent.clientWidth + offsets.right;\r\n } else {\r\n left = -offsetParentRect.width + offsets.right;\r\n }\r\n } else {\r\n left = offsets.left;\r\n }\r\n if (gpuAcceleration && prefixedProperty) {\r\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\r\n styles[sideA] = 0;\r\n styles[sideB] = 0;\r\n styles.willChange = 'transform';\r\n } else {\r\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\r\n var invertTop = sideA === 'bottom' ? -1 : 1;\r\n var invertLeft = sideB === 'right' ? -1 : 1;\r\n styles[sideA] = top * invertTop;\r\n styles[sideB] = left * invertLeft;\r\n styles.willChange = sideA + ', ' + sideB;\r\n }\r\n\r\n // Attributes\r\n var attributes = {\r\n 'x-placement': data.placement\r\n };\r\n\r\n // Update `data` attributes, styles and arrowStyles\r\n data.attributes = _extends({}, attributes, data.attributes);\r\n data.styles = _extends({}, styles, data.styles);\r\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * Helper used to know if the given modifier depends from another one.
\r\n * It checks if the needed modifier is listed and enabled.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Array} modifiers - list of modifiers\r\n * @param {String} requestingName - name of requesting modifier\r\n * @param {String} requestedName - name of requested modifier\r\n * @returns {Boolean}\r\n */\r\n function isModifierRequired(modifiers, requestingName, requestedName) {\r\n var requesting = find(modifiers, function (_ref) {\r\n var name = _ref.name;\r\n return name === requestingName;\r\n });\r\n\r\n var isRequired = !!requesting && modifiers.some(function (modifier) {\r\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\r\n });\r\n\r\n if (!isRequired) {\r\n var _requesting = '`' + requestingName + '`';\r\n var requested = '`' + requestedName + '`';\r\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\r\n }\r\n return isRequired;\r\n }\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function arrow(data, options) {\r\n var _data$offsets$arrow;\r\n\r\n // arrow depends on keepTogether in order to work\r\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\r\n return data;\r\n }\r\n\r\n var arrowElement = options.element;\r\n\r\n // if arrowElement is a string, suppose it's a CSS selector\r\n if (typeof arrowElement === 'string') {\r\n arrowElement = data.instance.popper.querySelector(arrowElement);\r\n\r\n // if arrowElement is not found, don't run the modifier\r\n if (!arrowElement) {\r\n return data;\r\n }\r\n } else {\r\n // if the arrowElement isn't a query selector we must check that the\r\n // provided DOM node is child of its popper node\r\n if (!data.instance.popper.contains(arrowElement)) {\r\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\r\n return data;\r\n }\r\n }\r\n\r\n var placement = data.placement.split('-')[0];\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\r\n\r\n var len = isVertical ? 'height' : 'width';\r\n var sideCapitalized = isVertical ? 'Top' : 'Left';\r\n var side = sideCapitalized.toLowerCase();\r\n var altSide = isVertical ? 'left' : 'top';\r\n var opSide = isVertical ? 'bottom' : 'right';\r\n var arrowElementSize = getOuterSizes(arrowElement)[len];\r\n\r\n //\r\n // extends keepTogether behavior making sure the popper and its\r\n // reference have enough pixels in conjunction\r\n //\r\n\r\n // top/left side\r\n if (reference[opSide] - arrowElementSize < popper[side]) {\r\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\r\n }\r\n // bottom/right side\r\n if (reference[side] + arrowElementSize > popper[opSide]) {\r\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\r\n }\r\n data.offsets.popper = getClientRect(data.offsets.popper);\r\n\r\n // compute center of the popper\r\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\r\n\r\n // Compute the sideValue using the updated popper offsets\r\n // take popper margin in account because we don't have this info available\r\n var css = getStyleComputedProperty(data.instance.popper);\r\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\r\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\r\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\r\n\r\n // prevent arrowElement from being placed not contiguously to its popper\r\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\r\n\r\n data.arrowElement = arrowElement;\r\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * Get the opposite placement variation of the given one\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} placement variation\r\n * @returns {String} flipped placement variation\r\n */\r\n function getOppositeVariation(variation) {\r\n if (variation === 'end') {\r\n return 'start';\r\n } else if (variation === 'start') {\r\n return 'end';\r\n }\r\n return variation;\r\n }\r\n\r\n /**\r\n * List of accepted placements to use as values of the `placement` option.
\r\n * Valid placements are:\r\n * - `auto`\r\n * - `top`\r\n * - `right`\r\n * - `bottom`\r\n * - `left`\r\n *\r\n * Each placement can have a variation from this list:\r\n * - `-start`\r\n * - `-end`\r\n *\r\n * Variations are interpreted easily if you think of them as the left to right\r\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\r\n * is right.
\r\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\r\n *\r\n * Some valid examples are:\r\n * - `top-end` (on top of reference, right aligned)\r\n * - `right-start` (on right of reference, top aligned)\r\n * - `bottom` (on bottom, centered)\r\n * - `auto-end` (on the side with more space available, alignment depends by placement)\r\n *\r\n * @static\r\n * @type {Array}\r\n * @enum {String}\r\n * @readonly\r\n * @method placements\r\n * @memberof Popper\r\n */\r\n var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\r\n\r\n // Get rid of `auto` `auto-start` and `auto-end`\r\n var validPlacements = placements.slice(3);\r\n\r\n /**\r\n * Given an initial placement, returns all the subsequent placements\r\n * clockwise (or counter-clockwise).\r\n *\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} placement - A valid placement (it accepts variations)\r\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\r\n * @returns {Array} placements including their variations\r\n */\r\n function clockwise(placement) {\r\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n\r\n var index = validPlacements.indexOf(placement);\r\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\r\n return counter ? arr.reverse() : arr;\r\n }\r\n\r\n var BEHAVIORS = {\r\n FLIP: 'flip',\r\n CLOCKWISE: 'clockwise',\r\n COUNTERCLOCKWISE: 'counterclockwise'\r\n };\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function flip(data, options) {\r\n // if `inner` modifier is enabled, we can't use the `flip` modifier\r\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\r\n return data;\r\n }\r\n\r\n if (data.flipped && data.placement === data.originalPlacement) {\r\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\r\n return data;\r\n }\r\n\r\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\r\n\r\n var placement = data.placement.split('-')[0];\r\n var placementOpposite = getOppositePlacement(placement);\r\n var variation = data.placement.split('-')[1] || '';\r\n\r\n var flipOrder = [];\r\n\r\n switch (options.behavior) {\r\n case BEHAVIORS.FLIP:\r\n flipOrder = [placement, placementOpposite];\r\n break;\r\n case BEHAVIORS.CLOCKWISE:\r\n flipOrder = clockwise(placement);\r\n break;\r\n case BEHAVIORS.COUNTERCLOCKWISE:\r\n flipOrder = clockwise(placement, true);\r\n break;\r\n default:\r\n flipOrder = options.behavior;\r\n }\r\n\r\n flipOrder.forEach(function (step, index) {\r\n if (placement !== step || flipOrder.length === index + 1) {\r\n return data;\r\n }\r\n\r\n placement = data.placement.split('-')[0];\r\n placementOpposite = getOppositePlacement(placement);\r\n\r\n var popperOffsets = data.offsets.popper;\r\n var refOffsets = data.offsets.reference;\r\n\r\n // using floor because the reference offsets may contain decimals we are not going to consider here\r\n var floor = Math.floor;\r\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\r\n\r\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\r\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\r\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\r\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\r\n\r\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\r\n\r\n // flip the variation if required\r\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\r\n\r\n // flips variation if reference element overflows boundaries\r\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\r\n\r\n // flips variation if popper content overflows boundaries\r\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\r\n\r\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\r\n\r\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\r\n // this boolean to detect any flip loop\r\n data.flipped = true;\r\n\r\n if (overlapsRef || overflowsBoundaries) {\r\n placement = flipOrder[index + 1];\r\n }\r\n\r\n if (flippedVariation) {\r\n variation = getOppositeVariation(variation);\r\n }\r\n\r\n data.placement = placement + (variation ? '-' + variation : '');\r\n\r\n // this object contains `position`, we want to preserve it along with\r\n // any additional property we may add in the future\r\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\r\n\r\n data = runModifiers(data.instance.modifiers, data, 'flip');\r\n }\r\n });\r\n return data;\r\n }\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function keepTogether(data) {\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var placement = data.placement.split('-')[0];\r\n var floor = Math.floor;\r\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\r\n var side = isVertical ? 'right' : 'bottom';\r\n var opSide = isVertical ? 'left' : 'top';\r\n var measurement = isVertical ? 'width' : 'height';\r\n\r\n if (popper[side] < floor(reference[opSide])) {\r\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\r\n }\r\n if (popper[opSide] > floor(reference[side])) {\r\n data.offsets.popper[opSide] = floor(reference[side]);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * Converts a string containing value + unit into a px value number\r\n * @function\r\n * @memberof {modifiers~offset}\r\n * @private\r\n * @argument {String} str - Value + unit string\r\n * @argument {String} measurement - `height` or `width`\r\n * @argument {Object} popperOffsets\r\n * @argument {Object} referenceOffsets\r\n * @returns {Number|String}\r\n * Value in pixels, or original string if no values were extracted\r\n */\r\n function toValue(str, measurement, popperOffsets, referenceOffsets) {\r\n // separate value from unit\r\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\r\n var value = +split[1];\r\n var unit = split[2];\r\n\r\n // If it's not a number it's an operator, I guess\r\n if (!value) {\r\n return str;\r\n }\r\n\r\n if (unit.indexOf('%') === 0) {\r\n var element = void 0;\r\n switch (unit) {\r\n case '%p':\r\n element = popperOffsets;\r\n break;\r\n case '%':\r\n case '%r':\r\n default:\r\n element = referenceOffsets;\r\n }\r\n\r\n var rect = getClientRect(element);\r\n return rect[measurement] / 100 * value;\r\n } else if (unit === 'vh' || unit === 'vw') {\r\n // if is a vh or vw, we calculate the size based on the viewport\r\n var size = void 0;\r\n if (unit === 'vh') {\r\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\r\n } else {\r\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n }\r\n return size / 100 * value;\r\n } else {\r\n // if is an explicit pixel unit, we get rid of the unit and keep the value\r\n // if is an implicit unit, it's px, and we return just the value\r\n return value;\r\n }\r\n }\r\n\r\n /**\r\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\r\n * @function\r\n * @memberof {modifiers~offset}\r\n * @private\r\n * @argument {String} offset\r\n * @argument {Object} popperOffsets\r\n * @argument {Object} referenceOffsets\r\n * @argument {String} basePlacement\r\n * @returns {Array} a two cells array with x and y offsets in numbers\r\n */\r\n function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\r\n var offsets = [0, 0];\r\n\r\n // Use height if placement is left or right and index is 0 otherwise use width\r\n // in this way the first offset will use an axis and the second one\r\n // will use the other one\r\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\r\n\r\n // Split the offset string to obtain a list of values and operands\r\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\r\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\r\n return frag.trim();\r\n });\r\n\r\n // Detect if the offset string contains a pair of values or a single one\r\n // they could be separated by comma or space\r\n var divider = fragments.indexOf(find(fragments, function (frag) {\r\n return frag.search(/,|\\s/) !== -1;\r\n }));\r\n\r\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\r\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\r\n }\r\n\r\n // If divider is found, we divide the list of values and operands to divide\r\n // them by ofset X and Y.\r\n var splitRegex = /\\s*,\\s*|\\s+/;\r\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\r\n\r\n // Convert the values with units to absolute pixels to allow our computations\r\n ops = ops.map(function (op, index) {\r\n // Most of the units rely on the orientation of the popper\r\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\r\n var mergeWithPrevious = false;\r\n return op\r\n // This aggregates any `+` or `-` sign that aren't considered operators\r\n // e.g.: 10 + +5 => [10, +, +5]\r\n .reduce(function (a, b) {\r\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\r\n a[a.length - 1] = b;\r\n mergeWithPrevious = true;\r\n return a;\r\n } else if (mergeWithPrevious) {\r\n a[a.length - 1] += b;\r\n mergeWithPrevious = false;\r\n return a;\r\n } else {\r\n return a.concat(b);\r\n }\r\n }, [])\r\n // Here we convert the string values into number values (in px)\r\n .map(function (str) {\r\n return toValue(str, measurement, popperOffsets, referenceOffsets);\r\n });\r\n });\r\n\r\n // Loop trough the offsets arrays and execute the operations\r\n ops.forEach(function (op, index) {\r\n op.forEach(function (frag, index2) {\r\n if (isNumeric(frag)) {\r\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\r\n }\r\n });\r\n });\r\n return offsets;\r\n }\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @argument {Number|String} options.offset=0\r\n * The offset value as described in the modifier description\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function offset(data, _ref) {\r\n var offset = _ref.offset;\r\n var placement = data.placement,\r\n _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var basePlacement = placement.split('-')[0];\r\n\r\n var offsets = void 0;\r\n if (isNumeric(+offset)) {\r\n offsets = [+offset, 0];\r\n } else {\r\n offsets = parseOffset(offset, popper, reference, basePlacement);\r\n }\r\n\r\n if (basePlacement === 'left') {\r\n popper.top += offsets[0];\r\n popper.left -= offsets[1];\r\n } else if (basePlacement === 'right') {\r\n popper.top += offsets[0];\r\n popper.left += offsets[1];\r\n } else if (basePlacement === 'top') {\r\n popper.left += offsets[0];\r\n popper.top -= offsets[1];\r\n } else if (basePlacement === 'bottom') {\r\n popper.left += offsets[0];\r\n popper.top += offsets[1];\r\n }\r\n\r\n data.popper = popper;\r\n return data;\r\n }\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function preventOverflow(data, options) {\r\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\r\n\r\n // If offsetParent is the reference element, we really want to\r\n // go one step up and use the next offsetParent as reference to\r\n // avoid to make this modifier completely useless and look like broken\r\n if (data.instance.reference === boundariesElement) {\r\n boundariesElement = getOffsetParent(boundariesElement);\r\n }\r\n\r\n // NOTE: DOM access here\r\n // resets the popper's position so that the document size can be calculated excluding\r\n // the size of the popper element itself\r\n var transformProp = getSupportedPropertyName('transform');\r\n var popperStyles = data.instance.popper.style; // assignment to help minification\r\n var top = popperStyles.top,\r\n left = popperStyles.left,\r\n transform = popperStyles[transformProp];\r\n\r\n popperStyles.top = '';\r\n popperStyles.left = '';\r\n popperStyles[transformProp] = '';\r\n\r\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\r\n\r\n // NOTE: DOM access here\r\n // restores the original style properties after the offsets have been computed\r\n popperStyles.top = top;\r\n popperStyles.left = left;\r\n popperStyles[transformProp] = transform;\r\n\r\n options.boundaries = boundaries;\r\n\r\n var order = options.priority;\r\n var popper = data.offsets.popper;\r\n\r\n var check = {\r\n primary: function primary(placement) {\r\n var value = popper[placement];\r\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\r\n value = Math.max(popper[placement], boundaries[placement]);\r\n }\r\n return defineProperty({}, placement, value);\r\n },\r\n secondary: function secondary(placement) {\r\n var mainSide = placement === 'right' ? 'left' : 'top';\r\n var value = popper[mainSide];\r\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\r\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\r\n }\r\n return defineProperty({}, mainSide, value);\r\n }\r\n };\r\n\r\n order.forEach(function (placement) {\r\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\r\n popper = _extends({}, popper, check[side](placement));\r\n });\r\n\r\n data.offsets.popper = popper;\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function shift(data) {\r\n var placement = data.placement;\r\n var basePlacement = placement.split('-')[0];\r\n var shiftvariation = placement.split('-')[1];\r\n\r\n // if shift shiftvariation is specified, run the modifier\r\n if (shiftvariation) {\r\n var _data$offsets = data.offsets,\r\n reference = _data$offsets.reference,\r\n popper = _data$offsets.popper;\r\n\r\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\r\n var side = isVertical ? 'left' : 'top';\r\n var measurement = isVertical ? 'width' : 'height';\r\n\r\n var shiftOffsets = {\r\n start: defineProperty({}, side, reference[side]),\r\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\r\n };\r\n\r\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function hide(data) {\r\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\r\n return data;\r\n }\r\n\r\n var refRect = data.offsets.reference;\r\n var bound = find(data.instance.modifiers, function (modifier) {\r\n return modifier.name === 'preventOverflow';\r\n }).boundaries;\r\n\r\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\r\n // Avoid unnecessary DOM access if visibility hasn't changed\r\n if (data.hide === true) {\r\n return data;\r\n }\r\n\r\n data.hide = true;\r\n data.attributes['x-out-of-boundaries'] = '';\r\n } else {\r\n // Avoid unnecessary DOM access if visibility hasn't changed\r\n if (data.hide === false) {\r\n return data;\r\n }\r\n\r\n data.hide = false;\r\n data.attributes['x-out-of-boundaries'] = false;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\n function inner(data) {\r\n var placement = data.placement;\r\n var basePlacement = placement.split('-')[0];\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\r\n\r\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\r\n\r\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\r\n\r\n data.placement = getOppositePlacement(placement);\r\n data.offsets.popper = getClientRect(popper);\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * Modifier function, each modifier can have a function of this type assigned\r\n * to its `fn` property.
\r\n * These functions will be called on each update, this means that you must\r\n * make sure they are performant enough to avoid performance bottlenecks.\r\n *\r\n * @function ModifierFn\r\n * @argument {dataObject} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {dataObject} The data object, properly modified\r\n */\r\n\r\n /**\r\n * Modifiers are plugins used to alter the behavior of your poppers.
\r\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\r\n * needed by the library.\r\n *\r\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\r\n * All the other properties are configurations that could be tweaked.\r\n * @namespace modifiers\r\n */\r\n var modifiers = {\r\n /**\r\n * Modifier used to shift the popper on the start or end of its reference\r\n * element.
\r\n * It will read the variation of the `placement` property.
\r\n * It can be one either `-end` or `-start`.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n shift: {\r\n /** @prop {number} order=100 - Index used to define the order of execution */\r\n order: 100,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: shift\r\n },\r\n\r\n /**\r\n * The `offset` modifier can shift your popper on both its axis.\r\n *\r\n * It accepts the following units:\r\n * - `px` or unit-less, interpreted as pixels\r\n * - `%` or `%r`, percentage relative to the length of the reference element\r\n * - `%p`, percentage relative to the length of the popper element\r\n * - `vw`, CSS viewport width unit\r\n * - `vh`, CSS viewport height unit\r\n *\r\n * For length is intended the main axis relative to the placement of the popper.
\r\n * This means that if the placement is `top` or `bottom`, the length will be the\r\n * `width`. In case of `left` or `right`, it will be the `height`.\r\n *\r\n * You can provide a single value (as `Number` or `String`), or a pair of values\r\n * as `String` divided by a comma or one (or more) white spaces.
\r\n * The latter is a deprecated method because it leads to confusion and will be\r\n * removed in v2.
\r\n * Additionally, it accepts additions and subtractions between different units.\r\n * Note that multiplications and divisions aren't supported.\r\n *\r\n * Valid examples are:\r\n * ```\r\n * 10\r\n * '10%'\r\n * '10, 10'\r\n * '10%, 10'\r\n * '10 + 10%'\r\n * '10 - 5vh + 3%'\r\n * '-10px + 5vh, 5px - 6%'\r\n * ```\r\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\r\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\r\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n offset: {\r\n /** @prop {number} order=200 - Index used to define the order of execution */\r\n order: 200,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: offset,\r\n /** @prop {Number|String} offset=0\r\n * The offset value as described in the modifier description\r\n */\r\n offset: 0\r\n },\r\n\r\n /**\r\n * Modifier used to prevent the popper from being positioned outside the boundary.\r\n *\r\n * A scenario exists where the reference itself is not within the boundaries.
\r\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\r\n * In this case we need to decide whether the popper should either:\r\n *\r\n * - detach from the reference and remain \"trapped\" in the boundaries, or\r\n * - if it should ignore the boundary and \"escape with its reference\"\r\n *\r\n * When `escapeWithReference` is set to`true` and reference is completely\r\n * outside its boundaries, the popper will overflow (or completely leave)\r\n * the boundaries in order to remain attached to the edge of the reference.\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n preventOverflow: {\r\n /** @prop {number} order=300 - Index used to define the order of execution */\r\n order: 300,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: preventOverflow,\r\n /**\r\n * @prop {Array} [priority=['left','right','top','bottom']]\r\n * Popper will try to prevent overflow following these priorities by default,\r\n * then, it could overflow on the left and on top of the `boundariesElement`\r\n */\r\n priority: ['left', 'right', 'top', 'bottom'],\r\n /**\r\n * @prop {number} padding=5\r\n * Amount of pixel used to define a minimum distance between the boundaries\r\n * and the popper. This makes sure the popper always has a little padding\r\n * between the edges of its container\r\n */\r\n padding: 5,\r\n /**\r\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\r\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\r\n * `viewport` or any DOM element.\r\n */\r\n boundariesElement: 'scrollParent'\r\n },\r\n\r\n /**\r\n * Modifier used to make sure the reference and its popper stay near each other\r\n * without leaving any gap between the two. Especially useful when the arrow is\r\n * enabled and you want to ensure that it points to its reference element.\r\n * It cares only about the first axis. You can still have poppers with margin\r\n * between the popper and its reference element.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n keepTogether: {\r\n /** @prop {number} order=400 - Index used to define the order of execution */\r\n order: 400,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: keepTogether\r\n },\r\n\r\n /**\r\n * This modifier is used to move the `arrowElement` of the popper to make\r\n * sure it is positioned between the reference element and its popper element.\r\n * It will read the outer size of the `arrowElement` node to detect how many\r\n * pixels of conjunction are needed.\r\n *\r\n * It has no effect if no `arrowElement` is provided.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n arrow: {\r\n /** @prop {number} order=500 - Index used to define the order of execution */\r\n order: 500,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: arrow,\r\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\r\n element: '[x-arrow]'\r\n },\r\n\r\n /**\r\n * Modifier used to flip the popper's placement when it starts to overlap its\r\n * reference element.\r\n *\r\n * Requires the `preventOverflow` modifier before it in order to work.\r\n *\r\n * **NOTE:** this modifier will interrupt the current update cycle and will\r\n * restart it if it detects the need to flip the placement.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n flip: {\r\n /** @prop {number} order=600 - Index used to define the order of execution */\r\n order: 600,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: flip,\r\n /**\r\n * @prop {String|Array} behavior='flip'\r\n * The behavior used to change the popper's placement. It can be one of\r\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\r\n * placements (with optional variations)\r\n */\r\n behavior: 'flip',\r\n /**\r\n * @prop {number} padding=5\r\n * The popper will flip if it hits the edges of the `boundariesElement`\r\n */\r\n padding: 5,\r\n /**\r\n * @prop {String|HTMLElement} boundariesElement='viewport'\r\n * The element which will define the boundaries of the popper position.\r\n * The popper will never be placed outside of the defined boundaries\r\n * (except if `keepTogether` is enabled)\r\n */\r\n boundariesElement: 'viewport',\r\n /**\r\n * @prop {Boolean} flipVariations=false\r\n * The popper will switch placement variation between `-start` and `-end` when\r\n * the reference element overlaps its boundaries.\r\n *\r\n * The original placement should have a set variation.\r\n */\r\n flipVariations: false,\r\n /**\r\n * @prop {Boolean} flipVariationsByContent=false\r\n * The popper will switch placement variation between `-start` and `-end` when\r\n * the popper element overlaps its reference boundaries.\r\n *\r\n * The original placement should have a set variation.\r\n */\r\n flipVariationsByContent: false\r\n },\r\n\r\n /**\r\n * Modifier used to make the popper flow toward the inner of the reference element.\r\n * By default, when this modifier is disabled, the popper will be placed outside\r\n * the reference element.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n inner: {\r\n /** @prop {number} order=700 - Index used to define the order of execution */\r\n order: 700,\r\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\r\n enabled: false,\r\n /** @prop {ModifierFn} */\r\n fn: inner\r\n },\r\n\r\n /**\r\n * Modifier used to hide the popper when its reference element is outside of the\r\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\r\n * be used to hide with a CSS selector the popper when its reference is\r\n * out of boundaries.\r\n *\r\n * Requires the `preventOverflow` modifier before it in order to work.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n hide: {\r\n /** @prop {number} order=800 - Index used to define the order of execution */\r\n order: 800,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: hide\r\n },\r\n\r\n /**\r\n * Computes the style that will be applied to the popper element to gets\r\n * properly positioned.\r\n *\r\n * Note that this modifier will not touch the DOM, it just prepares the styles\r\n * so that `applyStyle` modifier can apply it. This separation is useful\r\n * in case you need to replace `applyStyle` with a custom implementation.\r\n *\r\n * This modifier has `850` as `order` value to maintain backward compatibility\r\n * with previous versions of Popper.js. Expect the modifiers ordering method\r\n * to change in future major versions of the library.\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n computeStyle: {\r\n /** @prop {number} order=850 - Index used to define the order of execution */\r\n order: 850,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: computeStyle,\r\n /**\r\n * @prop {Boolean} gpuAcceleration=true\r\n * If true, it uses the CSS 3D transformation to position the popper.\r\n * Otherwise, it will use the `top` and `left` properties\r\n */\r\n gpuAcceleration: true,\r\n /**\r\n * @prop {string} [x='bottom']\r\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\r\n * Change this if your popper should grow in a direction different from `bottom`\r\n */\r\n x: 'bottom',\r\n /**\r\n * @prop {string} [x='left']\r\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\r\n * Change this if your popper should grow in a direction different from `right`\r\n */\r\n y: 'right'\r\n },\r\n\r\n /**\r\n * Applies the computed styles to the popper element.\r\n *\r\n * All the DOM manipulations are limited to this modifier. This is useful in case\r\n * you want to integrate Popper.js inside a framework or view library and you\r\n * want to delegate all the DOM manipulations to it.\r\n *\r\n * Note that if you disable this modifier, you must make sure the popper element\r\n * has its position set to `absolute` before Popper.js can do its work!\r\n *\r\n * Just disable this modifier and define your own to achieve the desired effect.\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n applyStyle: {\r\n /** @prop {number} order=900 - Index used to define the order of execution */\r\n order: 900,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: applyStyle,\r\n /** @prop {Function} */\r\n onLoad: applyStyleOnLoad,\r\n /**\r\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\r\n * @prop {Boolean} gpuAcceleration=true\r\n * If true, it uses the CSS 3D transformation to position the popper.\r\n * Otherwise, it will use the `top` and `left` properties\r\n */\r\n gpuAcceleration: undefined\r\n }\r\n };\r\n\r\n /**\r\n * The `dataObject` is an object containing all the information used by Popper.js.\r\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\r\n * @name dataObject\r\n * @property {Object} data.instance The Popper.js instance\r\n * @property {String} data.placement Placement applied to popper\r\n * @property {String} data.originalPlacement Placement originally defined on init\r\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\r\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\r\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\r\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\r\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\r\n * @property {Object} data.boundaries Offsets of the popper boundaries\r\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\r\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\r\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\r\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\r\n */\r\n\r\n /**\r\n * Default options provided to Popper.js constructor.
\r\n * These can be overridden using the `options` argument of Popper.js.
\r\n * To override an option, simply pass an object with the same\r\n * structure of the `options` object, as the 3rd argument. For example:\r\n * ```\r\n * new Popper(ref, pop, {\r\n * modifiers: {\r\n * preventOverflow: { enabled: false }\r\n * }\r\n * })\r\n * ```\r\n * @type {Object}\r\n * @static\r\n * @memberof Popper\r\n */\r\n var Defaults = {\r\n /**\r\n * Popper's placement.\r\n * @prop {Popper.placements} placement='bottom'\r\n */\r\n placement: 'bottom',\r\n\r\n /**\r\n * Set this to true if you want popper to position it self in 'fixed' mode\r\n * @prop {Boolean} positionFixed=false\r\n */\r\n positionFixed: false,\r\n\r\n /**\r\n * Whether events (resize, scroll) are initially enabled.\r\n * @prop {Boolean} eventsEnabled=true\r\n */\r\n eventsEnabled: true,\r\n\r\n /**\r\n * Set to true if you want to automatically remove the popper when\r\n * you call the `destroy` method.\r\n * @prop {Boolean} removeOnDestroy=false\r\n */\r\n removeOnDestroy: false,\r\n\r\n /**\r\n * Callback called when the popper is created.
\r\n * By default, it is set to no-op.
\r\n * Access Popper.js instance with `data.instance`.\r\n * @prop {onCreate}\r\n */\r\n onCreate: function onCreate() {},\r\n\r\n /**\r\n * Callback called when the popper is updated. This callback is not called\r\n * on the initialization/creation of the popper, but only on subsequent\r\n * updates.
\r\n * By default, it is set to no-op.
\r\n * Access Popper.js instance with `data.instance`.\r\n * @prop {onUpdate}\r\n */\r\n onUpdate: function onUpdate() {},\r\n\r\n /**\r\n * List of modifiers used to modify the offsets before they are applied to the popper.\r\n * They provide most of the functionalities of Popper.js.\r\n * @prop {modifiers}\r\n */\r\n modifiers: modifiers\r\n };\r\n\r\n /**\r\n * @callback onCreate\r\n * @param {dataObject} data\r\n */\r\n\r\n /**\r\n * @callback onUpdate\r\n * @param {dataObject} data\r\n */\r\n\r\n // Utils\r\n // Methods\r\n var Popper = function () {\r\n /**\r\n * Creates a new Popper.js instance.\r\n * @class Popper\r\n * @param {Element|referenceObject} reference - The reference element used to position the popper\r\n * @param {Element} popper - The HTML / XML element used as the popper\r\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\r\n * @return {Object} instance - The generated Popper.js instance\r\n */\r\n function Popper(reference, popper) {\r\n var _this = this;\r\n\r\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n classCallCheck(this, Popper);\r\n\r\n this.scheduleUpdate = function () {\r\n return requestAnimationFrame(_this.update);\r\n };\r\n\r\n // make update() debounced, so that it only runs at most once-per-tick\r\n this.update = debounce(this.update.bind(this));\r\n\r\n // with {} we create a new object with the options inside it\r\n this.options = _extends({}, Popper.Defaults, options);\r\n\r\n // init state\r\n this.state = {\r\n isDestroyed: false,\r\n isCreated: false,\r\n scrollParents: []\r\n };\r\n\r\n // get reference and popper elements (allow jQuery wrappers)\r\n this.reference = reference && reference.jquery ? reference[0] : reference;\r\n this.popper = popper && popper.jquery ? popper[0] : popper;\r\n\r\n // Deep merge modifiers options\r\n this.options.modifiers = {};\r\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\r\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\r\n });\r\n\r\n // Refactoring modifiers' list (Object => Array)\r\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\r\n return _extends({\r\n name: name\r\n }, _this.options.modifiers[name]);\r\n })\r\n // sort the modifiers by order\r\n .sort(function (a, b) {\r\n return a.order - b.order;\r\n });\r\n\r\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\r\n // such code is executed in the same order of its modifier\r\n // they could add new properties to their options configuration\r\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\r\n this.modifiers.forEach(function (modifierOptions) {\r\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\r\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\r\n }\r\n });\r\n\r\n // fire the first update to position the popper in the right place\r\n this.update();\r\n\r\n var eventsEnabled = this.options.eventsEnabled;\r\n if (eventsEnabled) {\r\n // setup event listeners, they will take care of update the position in specific situations\r\n this.enableEventListeners();\r\n }\r\n\r\n this.state.eventsEnabled = eventsEnabled;\r\n }\r\n\r\n // We can't use class properties because they don't get listed in the\r\n // class prototype and break stuff like Sinon stubs\r\n\r\n\r\n createClass(Popper, [{\r\n key: 'update',\r\n value: function update$$1() {\r\n return update.call(this);\r\n }\r\n }, {\r\n key: 'destroy',\r\n value: function destroy$$1() {\r\n return destroy.call(this);\r\n }\r\n }, {\r\n key: 'enableEventListeners',\r\n value: function enableEventListeners$$1() {\r\n return enableEventListeners.call(this);\r\n }\r\n }, {\r\n key: 'disableEventListeners',\r\n value: function disableEventListeners$$1() {\r\n return disableEventListeners.call(this);\r\n }\r\n\r\n /**\r\n * Schedules an update. It will run on the next UI update available.\r\n * @method scheduleUpdate\r\n * @memberof Popper\r\n */\r\n\r\n\r\n /**\r\n * Collection of utilities useful when writing custom modifiers.\r\n * Starting from version 1.7, this method is available only if you\r\n * include `popper-utils.js` before `popper.js`.\r\n *\r\n * **DEPRECATION**: This way to access PopperUtils is deprecated\r\n * and will be removed in v2! Use the PopperUtils module directly instead.\r\n * Due to the high instability of the methods contained in Utils, we can't\r\n * guarantee them to follow semver. Use them at your own risk!\r\n * @static\r\n * @private\r\n * @type {Object}\r\n * @deprecated since version 1.8\r\n * @member Utils\r\n * @memberof Popper\r\n */\r\n\r\n }]);\r\n return Popper;\r\n }();\r\n\r\n /**\r\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\r\n * and lets you use it as replacement of a real DOM node.
\r\n * You can use this method to position a popper relatively to a set of coordinates\r\n * in case you don't have a DOM node to use as reference.\r\n *\r\n * ```\r\n * new Popper(referenceObject, popperNode);\r\n * ```\r\n *\r\n * NB: This feature isn't supported in Internet Explorer 10.\r\n * @name referenceObject\r\n * @property {Function} data.getBoundingClientRect\r\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\r\n * @property {number} data.clientWidth\r\n * An ES6 getter that will return the width of the virtual reference element.\r\n * @property {number} data.clientHeight\r\n * An ES6 getter that will return the height of the virtual reference element.\r\n */\r\n\r\n\r\n Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\r\n Popper.placements = placements;\r\n Popper.Defaults = Defaults;\r\n\r\n var PLACEMENT_TOP_START = 'top-start';\r\n var PLACEMENT_TOP_END = 'top-end';\r\n var PLACEMENT_BOTTOM_START = 'bottom-start';\r\n var PLACEMENT_BOTTOM_END = 'bottom-end';\r\n var PLACEMENT_RIGHT_START = 'right-start';\r\n var PLACEMENT_LEFT_START = 'left-start';\r\n\r\n var BvEvent = /*#__PURE__*/function () {\r\n function BvEvent(type) {\r\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\r\n _classCallCheck(this, BvEvent);\r\n\r\n // Start by emulating native Event constructor\r\n if (!type) {\r\n /* istanbul ignore next */\r\n throw new TypeError(\"Failed to construct '\".concat(this.constructor.name, \"'. 1 argument required, \").concat(arguments.length, \" given.\"));\r\n } // Merge defaults first, the eventInit, and the type last\r\n // so it can't be overwritten\r\n\r\n\r\n assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, {\r\n type: type\r\n }); // Freeze some props as readonly, but leave them enumerable\r\n\r\n defineProperties(this, {\r\n type: readonlyDescriptor(),\r\n cancelable: readonlyDescriptor(),\r\n nativeEvent: readonlyDescriptor(),\r\n target: readonlyDescriptor(),\r\n relatedTarget: readonlyDescriptor(),\r\n vueTarget: readonlyDescriptor(),\r\n componentId: readonlyDescriptor()\r\n }); // Create a private variable using closure scoping\r\n\r\n var defaultPrevented = false; // Recreate preventDefault method. One way setter\r\n\r\n this.preventDefault = function preventDefault() {\r\n if (this.cancelable) {\r\n defaultPrevented = true;\r\n }\r\n }; // Create `defaultPrevented` publicly accessible prop that\r\n // can only be altered by the preventDefault method\r\n\r\n\r\n defineProperty$1(this, 'defaultPrevented', {\r\n enumerable: true,\r\n get: function get() {\r\n return defaultPrevented;\r\n }\r\n });\r\n }\r\n\r\n _createClass(BvEvent, null, [{\r\n key: \"Defaults\",\r\n get: function get() {\r\n return {\r\n type: '',\r\n cancelable: true,\r\n nativeEvent: null,\r\n target: null,\r\n relatedTarget: null,\r\n vueTarget: null,\r\n componentId: null\r\n };\r\n }\r\n }]);\r\n\r\n return BvEvent;\r\n }();\r\n\r\n var clickOutMixin = extend({\r\n data: function data() {\r\n return {\r\n listenForClickOut: false\r\n };\r\n },\r\n watch: {\r\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\r\n\r\n if (newValue) {\r\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\r\n }\r\n }\r\n }\r\n },\r\n beforeCreate: function beforeCreate() {\r\n // Declare non-reactive properties\r\n this.clickOutElement = null;\r\n this.clickOutEventName = null;\r\n },\r\n mounted: function mounted() {\r\n if (!this.clickOutElement) {\r\n this.clickOutElement = document;\r\n }\r\n\r\n if (!this.clickOutEventName) {\r\n this.clickOutEventName = 'click';\r\n }\r\n\r\n if (this.listenForClickOut) {\r\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\r\n }\r\n },\r\n beforeDestroy: function beforeDestroy() {\r\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\r\n },\r\n methods: {\r\n isClickOut: function isClickOut(event) {\r\n return !contains(this.$el, event.target);\r\n },\r\n _clickOutHandler: function _clickOutHandler(event) {\r\n if (this.clickOutHandler && this.isClickOut(event)) {\r\n this.clickOutHandler(event);\r\n }\r\n }\r\n }\r\n });\r\n\r\n var focusInMixin = extend({\r\n data: function data() {\r\n return {\r\n listenForFocusIn: false\r\n };\r\n },\r\n watch: {\r\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\r\n\r\n if (newValue) {\r\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\r\n }\r\n }\r\n }\r\n },\r\n beforeCreate: function beforeCreate() {\r\n // Declare non-reactive properties\r\n this.focusInElement = null;\r\n },\r\n mounted: function mounted() {\r\n if (!this.focusInElement) {\r\n this.focusInElement = document;\r\n }\r\n\r\n if (this.listenForFocusIn) {\r\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\r\n }\r\n },\r\n beforeDestroy: function beforeDestroy() {\r\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\r\n },\r\n methods: {\r\n _focusInHandler: function _focusInHandler(event) {\r\n if (this.focusInHandler) {\r\n this.focusInHandler(event);\r\n }\r\n }\r\n }\r\n });\r\n\r\n var registry = null;\r\n\r\n if (isVue3) {\r\n registry = new WeakMap();\r\n }\r\n\r\n var registerElementToInstance = function registerElementToInstance(element, instance) {\r\n if (!isVue3) {\r\n return;\r\n }\r\n\r\n registry.set(element, instance);\r\n };\r\n var removeElementToInstance = function removeElementToInstance(element) {\r\n if (!isVue3) {\r\n return;\r\n }\r\n\r\n registry.delete(element);\r\n };\r\n var getInstanceFromElement = function getInstanceFromElement(element) {\r\n if (!isVue3) {\r\n return element.__vue__;\r\n }\r\n\r\n var currentElement = element;\r\n\r\n while (currentElement) {\r\n if (registry.has(currentElement)) {\r\n /* istanbul ignore next */\r\n return registry.get(currentElement);\r\n }\r\n\r\n currentElement = currentElement.parentNode;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n var ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\r\n var ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\r\n\r\n var SELECTOR_FORM_CHILD = '.dropdown form';\r\n var SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\r\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\r\n }).join(', '); // --- Helper methods ---\r\n // Return an array of visible items\r\n\r\n var filterVisibles = function filterVisibles(els) {\r\n return (els || []).filter(isVisible);\r\n }; // --- Props ---\r\n\r\n\r\n var props$1O = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, props$25), {}, {\r\n // String: `scrollParent`, `window` or `viewport`\r\n // HTMLElement: HTML Element reference\r\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\r\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Place left if possible\r\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Place right if possible\r\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Place on top if possible\r\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Disable auto-flipping of menu from bottom <=> top\r\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\r\n // Number of pixels or a CSS unit value to offset menu\r\n // (i.e. `1px`, `1rem`, etc.)\r\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\r\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\r\n // Right align menu (default is left align)\r\n right: makeProp(PROP_TYPE_BOOLEAN, false)\r\n })), NAME_DROPDOWN); // --- Mixin ---\r\n // @vue/component\r\n\r\n var dropdownMixin = extend({\r\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\r\n provide: function provide() {\r\n var _this = this;\r\n\r\n return {\r\n getBvDropdown: function getBvDropdown() {\r\n return _this;\r\n }\r\n };\r\n },\r\n inject: {\r\n getBvNavbar: {\r\n default: function _default() {\r\n return function () {\r\n return null;\r\n };\r\n }\r\n }\r\n },\r\n props: props$1O,\r\n data: function data() {\r\n return {\r\n visible: false,\r\n visibleChangePrevented: false\r\n };\r\n },\r\n computed: {\r\n bvNavbar: function bvNavbar() {\r\n return this.getBvNavbar();\r\n },\r\n inNavbar: function inNavbar() {\r\n return !isNull(this.bvNavbar);\r\n },\r\n toggler: function toggler() {\r\n var toggle = this.$refs.toggle;\r\n return toggle ? toggle.$el || toggle : null;\r\n },\r\n directionClass: function directionClass() {\r\n if (this.dropup) {\r\n return 'dropup';\r\n } else if (this.dropright) {\r\n return 'dropright';\r\n } else if (this.dropleft) {\r\n return 'dropleft';\r\n }\r\n\r\n return '';\r\n },\r\n boundaryClass: function boundaryClass() {\r\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\r\n // boundaries when boundary is anything other than `scrollParent`\r\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\r\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\r\n },\r\n hideDelay: function hideDelay() {\r\n return this.inNavbar ? HAS_TOUCH_SUPPORT ? 300 : 50 : 0;\r\n }\r\n },\r\n watch: {\r\n visible: function visible(newValue, oldValue) {\r\n if (this.visibleChangePrevented) {\r\n this.visibleChangePrevented = false;\r\n return;\r\n }\r\n\r\n if (newValue !== oldValue) {\r\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\r\n var bvEvent = new BvEvent(eventName, {\r\n cancelable: true,\r\n vueTarget: this,\r\n target: this.$refs.menu,\r\n relatedTarget: null,\r\n componentId: this.safeId ? this.safeId() : this.id || null\r\n });\r\n this.emitEvent(bvEvent);\r\n\r\n if (bvEvent.defaultPrevented) {\r\n // Reset value and exit if canceled\r\n this.visibleChangePrevented = true;\r\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\r\n\r\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\r\n return;\r\n }\r\n\r\n if (newValue) {\r\n this.showMenu();\r\n } else {\r\n this.hideMenu();\r\n }\r\n }\r\n },\r\n disabled: function disabled(newValue, oldValue) {\r\n if (newValue !== oldValue && newValue && this.visible) {\r\n // Hide dropdown if disabled changes to true\r\n this.visible = false;\r\n }\r\n }\r\n },\r\n created: function created() {\r\n // Create private non-reactive props\r\n this.$_popper = null;\r\n this.$_hideTimeout = null;\r\n },\r\n\r\n /* istanbul ignore next */\r\n deactivated: function deactivated() {\r\n // In case we are inside a ``\r\n this.visible = false;\r\n this.whileOpenListen(false);\r\n this.destroyPopper();\r\n },\r\n mounted: function mounted() {\r\n registerElementToInstance(this.$el, this);\r\n },\r\n beforeDestroy: function beforeDestroy() {\r\n this.visible = false;\r\n this.whileOpenListen(false);\r\n this.destroyPopper();\r\n this.clearHideTimeout();\r\n removeElementToInstance(this.$el);\r\n },\r\n methods: {\r\n // Event emitter\r\n emitEvent: function emitEvent(bvEvent) {\r\n var type = bvEvent.type;\r\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\r\n this.$emit(type, bvEvent);\r\n },\r\n showMenu: function showMenu() {\r\n var _this2 = this;\r\n\r\n if (this.disabled) {\r\n /* istanbul ignore next */\r\n return;\r\n } // Only instantiate Popper.js when dropdown is not in ``\r\n\r\n\r\n if (!this.inNavbar) {\r\n if (typeof Popper === 'undefined') {\r\n /* istanbul ignore next */\r\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\r\n } else {\r\n // For dropup with alignment we use the parent element as popper container\r\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\r\n\r\n el = el.$el || el; // Instantiate Popper.js\r\n\r\n this.createPopper(el);\r\n }\r\n } // Ensure other menus are closed\r\n\r\n\r\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\r\n\r\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\r\n\r\n this.$nextTick(function () {\r\n // Focus on the menu container on show\r\n _this2.focusMenu(); // Emit the shown event\r\n\r\n\r\n _this2.$emit(EVENT_NAME_SHOWN);\r\n });\r\n },\r\n hideMenu: function hideMenu() {\r\n this.whileOpenListen(false);\r\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\r\n this.$emit(EVENT_NAME_HIDDEN);\r\n this.destroyPopper();\r\n },\r\n createPopper: function createPopper(element) {\r\n this.destroyPopper();\r\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\r\n },\r\n // Ensure popper event listeners are removed cleanly\r\n destroyPopper: function destroyPopper() {\r\n this.$_popper && this.$_popper.destroy();\r\n this.$_popper = null;\r\n },\r\n // Instructs popper to re-computes the dropdown position\r\n // useful if the content changes size\r\n updatePopper: function updatePopper() {\r\n try {\r\n this.$_popper.scheduleUpdate();\r\n } catch (_unused) {}\r\n },\r\n clearHideTimeout: function clearHideTimeout() {\r\n clearTimeout(this.$_hideTimeout);\r\n this.$_hideTimeout = null;\r\n },\r\n getPopperConfig: function getPopperConfig() {\r\n var placement = PLACEMENT_BOTTOM_START;\r\n\r\n if (this.dropup) {\r\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\r\n } else if (this.dropright) {\r\n placement = PLACEMENT_RIGHT_START;\r\n } else if (this.dropleft) {\r\n placement = PLACEMENT_LEFT_START;\r\n } else if (this.right) {\r\n placement = PLACEMENT_BOTTOM_END;\r\n }\r\n\r\n var popperConfig = {\r\n placement: placement,\r\n modifiers: {\r\n offset: {\r\n offset: this.offset || 0\r\n },\r\n flip: {\r\n enabled: !this.noFlip\r\n }\r\n }\r\n };\r\n var boundariesElement = this.boundary;\r\n\r\n if (boundariesElement) {\r\n popperConfig.modifiers.preventOverflow = {\r\n boundariesElement: boundariesElement\r\n };\r\n }\r\n\r\n return mergeDeep(popperConfig, this.popperOpts || {});\r\n },\r\n // Turn listeners on/off while open\r\n whileOpenListen: function whileOpenListen(isOpen) {\r\n // Hide the dropdown when clicked outside\r\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\r\n\r\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\r\n\r\n var method = isOpen ? 'listenOnRoot' : 'listenOffRoot';\r\n this[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\r\n },\r\n rootCloseListener: function rootCloseListener(vm) {\r\n if (vm !== this) {\r\n this.visible = false;\r\n }\r\n },\r\n // Public method to show dropdown\r\n show: function show() {\r\n var _this3 = this;\r\n\r\n if (this.disabled) {\r\n return;\r\n } // Wrap in a `requestAF()` to allow any previous\r\n // click handling to occur first\r\n\r\n\r\n requestAF(function () {\r\n _this3.visible = true;\r\n });\r\n },\r\n // Public method to hide dropdown\r\n hide: function hide() {\r\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\r\n\r\n /* istanbul ignore next */\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.visible = false;\r\n\r\n if (refocus) {\r\n // Child element is closing the dropdown on click\r\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\r\n }\r\n },\r\n // Called only by a button that toggles the menu\r\n toggle: function toggle(event) {\r\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\r\n\r\n var _event = event,\r\n type = _event.type,\r\n keyCode = _event.keyCode;\r\n\r\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\r\n /* istanbul ignore next */\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n\r\n\r\n if (this.disabled) {\r\n this.visible = false;\r\n return;\r\n }\r\n\r\n this.$emit(EVENT_NAME_TOGGLE, event);\r\n stopEvent(event); // Toggle visibility\r\n\r\n if (this.visible) {\r\n this.hide(true);\r\n } else {\r\n this.show();\r\n }\r\n },\r\n // Mousedown handler for the toggle\r\n\r\n /* istanbul ignore next */\r\n onMousedown: function onMousedown(event) {\r\n // We prevent the 'mousedown' event for the toggle to stop the\r\n // 'focusin' event from being fired\r\n // The event would otherwise be picked up by the global 'focusin'\r\n // listener and there is no cross-browser solution to detect it\r\n // relates to the toggle click\r\n // The 'click' event will still be fired and we handle closing\r\n // other dropdowns there too\r\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\r\n stopEvent(event, {\r\n propagation: false\r\n });\r\n },\r\n // Called from dropdown menu context\r\n onKeydown: function onKeydown(event) {\r\n var keyCode = event.keyCode;\r\n\r\n if (keyCode === CODE_ESC) {\r\n // Close on ESC\r\n this.onEsc(event);\r\n } else if (keyCode === CODE_DOWN) {\r\n // Down Arrow\r\n this.focusNext(event, false);\r\n } else if (keyCode === CODE_UP) {\r\n // Up Arrow\r\n this.focusNext(event, true);\r\n }\r\n },\r\n // If user presses ESC, close the menu\r\n onEsc: function onEsc(event) {\r\n if (this.visible) {\r\n this.visible = false;\r\n stopEvent(event); // Return focus to original trigger button\r\n\r\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\r\n }\r\n },\r\n // Called only in split button mode, for the split button\r\n onSplitClick: function onSplitClick(event) {\r\n /* istanbul ignore next */\r\n if (this.disabled) {\r\n this.visible = false;\r\n return;\r\n }\r\n\r\n this.$emit(EVENT_NAME_CLICK, event);\r\n },\r\n // Shared hide handler between click-out and focus-in events\r\n hideHandler: function hideHandler(event) {\r\n var _this4 = this;\r\n\r\n var target = event.target;\r\n\r\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\r\n this.clearHideTimeout();\r\n this.$_hideTimeout = setTimeout(function () {\r\n return _this4.hide();\r\n }, this.hideDelay);\r\n }\r\n },\r\n // Document click-out listener\r\n clickOutHandler: function clickOutHandler(event) {\r\n this.hideHandler(event);\r\n },\r\n // Document focus-in listener\r\n focusInHandler: function focusInHandler(event) {\r\n this.hideHandler(event);\r\n },\r\n // Keyboard nav\r\n focusNext: function focusNext(event, up) {\r\n var _this5 = this;\r\n\r\n // Ignore key up/down on form elements\r\n var target = event.target;\r\n\r\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\r\n /* istanbul ignore next: should never happen */\r\n return;\r\n }\r\n\r\n stopEvent(event);\r\n this.$nextTick(function () {\r\n var items = _this5.getItems();\r\n\r\n if (items.length < 1) {\r\n /* istanbul ignore next: should never happen */\r\n return;\r\n }\r\n\r\n var index = items.indexOf(target);\r\n\r\n if (up && index > 0) {\r\n index--;\r\n } else if (!up && index < items.length - 1) {\r\n index++;\r\n }\r\n\r\n if (index < 0) {\r\n /* istanbul ignore next: should never happen */\r\n index = 0;\r\n }\r\n\r\n _this5.focusItem(index, items);\r\n });\r\n },\r\n focusItem: function focusItem(index, items) {\r\n var el = items.find(function (el, i) {\r\n return i === index;\r\n });\r\n attemptFocus(el);\r\n },\r\n getItems: function getItems() {\r\n // Get all items\r\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\r\n },\r\n focusMenu: function focusMenu() {\r\n attemptFocus(this.$refs.menu);\r\n },\r\n focusToggler: function focusToggler() {\r\n var _this6 = this;\r\n\r\n this.$nextTick(function () {\r\n attemptFocus(_this6.toggler);\r\n });\r\n }\r\n }\r\n });\r\n\r\n var props$1N = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3(_objectSpread2$3({}, props$25), props$1O), {}, {\r\n block: makeProp(PROP_TYPE_BOOLEAN, false),\r\n html: makeProp(PROP_TYPE_STRING),\r\n // If `true`, only render menu contents when open\r\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\r\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\r\n role: makeProp(PROP_TYPE_STRING, 'menu'),\r\n size: makeProp(PROP_TYPE_STRING),\r\n split: makeProp(PROP_TYPE_BOOLEAN, false),\r\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\r\n return arrayIncludes(['button', 'submit', 'reset'], value);\r\n }),\r\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n splitHref: makeProp(PROP_TYPE_STRING),\r\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\r\n splitVariant: makeProp(PROP_TYPE_STRING),\r\n text: makeProp(PROP_TYPE_STRING),\r\n toggleAttrs: makeProp(PROP_TYPE_OBJECT, {}),\r\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\r\n // TODO: This really should be `toggleLabel`\r\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\r\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\r\n })), NAME_DROPDOWN); // --- Main component ---\r\n // @vue/component\r\n\r\n var BDropdown = /*#__PURE__*/extend({\r\n name: NAME_DROPDOWN,\r\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\r\n props: props$1N,\r\n computed: {\r\n dropdownClasses: function dropdownClasses() {\r\n var block = this.block,\r\n split = this.split;\r\n return [this.directionClass, this.boundaryClass, {\r\n show: this.visible,\r\n // The 'btn-group' class is required in `split` mode for button alignment\r\n // It needs also to be applied when `block` is disabled to allow multiple\r\n // dropdowns to be aligned one line\r\n 'btn-group': split || !block,\r\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\r\n // needs to be applied to allow the buttons to stretch to full width\r\n 'd-flex': block && split\r\n }];\r\n },\r\n menuClasses: function menuClasses() {\r\n return [this.menuClass, {\r\n 'dropdown-menu-right': this.right,\r\n show: this.visible\r\n }];\r\n },\r\n toggleClasses: function toggleClasses() {\r\n var split = this.split;\r\n return [this.toggleClass, {\r\n 'dropdown-toggle-split': split,\r\n 'dropdown-toggle-no-caret': this.noCaret && !split\r\n }];\r\n }\r\n },\r\n render: function render(h) {\r\n var visible = this.visible,\r\n variant = this.variant,\r\n size = this.size,\r\n block = this.block,\r\n disabled = this.disabled,\r\n split = this.split,\r\n role = this.role,\r\n hide = this.hide,\r\n toggle = this.toggle;\r\n var commonProps = {\r\n variant: variant,\r\n size: size,\r\n block: block,\r\n disabled: disabled\r\n };\r\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\r\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\r\n var $split = h();\r\n\r\n if (split) {\r\n var splitTo = this.splitTo,\r\n splitHref = this.splitHref,\r\n splitButtonType = this.splitButtonType;\r\n\r\n var btnProps = _objectSpread2$3(_objectSpread2$3({}, commonProps), {}, {\r\n variant: this.splitVariant || variant\r\n }); // We add these as needed due to issues with\r\n // defined property with `undefined`/`null` values\r\n\r\n\r\n if (splitTo) {\r\n btnProps.to = splitTo;\r\n } else if (splitHref) {\r\n btnProps.href = splitHref;\r\n } else if (splitButtonType) {\r\n btnProps.type = splitButtonType;\r\n }\r\n\r\n $split = h(BButton, {\r\n class: this.splitClass,\r\n attrs: {\r\n id: this.safeId('_BV_button_')\r\n },\r\n props: btnProps,\r\n domProps: buttonContentDomProps,\r\n on: {\r\n click: this.onSplitClick\r\n },\r\n ref: 'button'\r\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\r\n\r\n $buttonChildren = [h('span', {\r\n class: ['sr-only']\r\n }, [this.toggleText])];\r\n buttonContentDomProps = {};\r\n }\r\n\r\n var ariaHasPopupRoles = ['menu', 'listbox', 'tree', 'grid', 'dialog'];\r\n var $toggle = h(BButton, {\r\n staticClass: 'dropdown-toggle',\r\n class: this.toggleClasses,\r\n attrs: _objectSpread2$3(_objectSpread2$3({}, this.toggleAttrs), {}, {\r\n // Must have attributes\r\n id: this.safeId('_BV_toggle_'),\r\n 'aria-haspopup': ariaHasPopupRoles.includes(role) ? role : 'false',\r\n 'aria-expanded': toString(visible)\r\n }),\r\n props: _objectSpread2$3(_objectSpread2$3({}, commonProps), {}, {\r\n tag: this.toggleTag,\r\n block: block && !split\r\n }),\r\n domProps: buttonContentDomProps,\r\n on: {\r\n mousedown: this.onMousedown,\r\n click: toggle,\r\n keydown: toggle // Handle ENTER, SPACE and DOWN\r\n\r\n },\r\n ref: 'toggle'\r\n }, $buttonChildren);\r\n var $menu = h('ul', {\r\n staticClass: 'dropdown-menu',\r\n class: this.menuClasses,\r\n attrs: {\r\n role: role,\r\n tabindex: '-1',\r\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\r\n },\r\n on: {\r\n keydown: this.onKeydown // Handle UP, DOWN and ESC\r\n\r\n },\r\n ref: 'menu'\r\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\r\n hide: hide\r\n }) : h()]);\r\n return h('div', {\r\n staticClass: 'dropdown b-dropdown',\r\n class: this.dropdownClasses,\r\n attrs: {\r\n id: this.safeId()\r\n }\r\n }, [$split, $toggle, $menu]);\r\n }\r\n });\r\n\r\n var linkProps$4 = omit(props$2f, ['event', 'routerTag']);\r\n var props$1M = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, linkProps$4), {}, {\r\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n variant: makeProp(PROP_TYPE_STRING)\r\n })), NAME_DROPDOWN_ITEM); // --- Main component ---\r\n // @vue/component\r\n\r\n var BDropdownItem = /*#__PURE__*/extend({\r\n name: NAME_DROPDOWN_ITEM,\r\n mixins: [attrsMixin, normalizeSlotMixin],\r\n inject: {\r\n getBvDropdown: {\r\n default: function _default() {\r\n return function () {\r\n return null;\r\n };\r\n }\r\n }\r\n },\r\n inheritAttrs: false,\r\n props: props$1M,\r\n computed: {\r\n bvDropdown: function bvDropdown() {\r\n return this.getBvDropdown();\r\n },\r\n computedAttrs: function computedAttrs() {\r\n return _objectSpread2$3(_objectSpread2$3({}, this.bvAttrs), {}, {\r\n role: 'menuitem'\r\n });\r\n }\r\n },\r\n methods: {\r\n closeDropdown: function closeDropdown() {\r\n var _this = this;\r\n\r\n // Close on next animation frame to allow time to process\r\n requestAF(function () {\r\n if (_this.bvDropdown) {\r\n _this.bvDropdown.hide(true);\r\n }\r\n });\r\n },\r\n onClick: function onClick(event) {\r\n this.$emit(EVENT_NAME_CLICK, event);\r\n this.closeDropdown();\r\n }\r\n },\r\n render: function render(h) {\r\n var linkClass = this.linkClass,\r\n variant = this.variant,\r\n active = this.active,\r\n disabled = this.disabled,\r\n onClick = this.onClick,\r\n bvAttrs = this.bvAttrs;\r\n return h('li', {\r\n class: bvAttrs.class,\r\n style: bvAttrs.style,\r\n attrs: {\r\n role: 'presentation'\r\n }\r\n }, [h(BLink, {\r\n staticClass: 'dropdown-item',\r\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\r\n props: pluckProps(linkProps$4, this.$props),\r\n attrs: this.computedAttrs,\r\n on: {\r\n click: onClick\r\n },\r\n ref: 'item'\r\n }, this.normalizeSlot())]);\r\n }\r\n });\r\n\r\n var props$1L = makePropsConfigurable({\r\n active: makeProp(PROP_TYPE_BOOLEAN, false),\r\n activeClass: makeProp(PROP_TYPE_STRING, 'active'),\r\n buttonClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\r\n variant: makeProp(PROP_TYPE_STRING)\r\n }, NAME_DROPDOWN_ITEM_BUTTON); // --- Main component ---\r\n // @vue/component\r\n\r\n var BDropdownItemButton = /*#__PURE__*/extend({\r\n name: NAME_DROPDOWN_ITEM_BUTTON,\r\n mixins: [attrsMixin, normalizeSlotMixin],\r\n inject: {\r\n getBvDropdown: {\r\n default: function _default() {\r\n return function () {\r\n return null;\r\n };\r\n }\r\n }\r\n },\r\n inheritAttrs: false,\r\n props: props$1L,\r\n computed: {\r\n bvDropdown: function bvDropdown() {\r\n return this.getBvDropdown();\r\n },\r\n computedAttrs: function computedAttrs() {\r\n return _objectSpread2$3(_objectSpread2$3({}, this.bvAttrs), {}, {\r\n role: 'menuitem',\r\n type: 'button',\r\n disabled: this.disabled\r\n });\r\n }\r\n },\r\n methods: {\r\n closeDropdown: function closeDropdown() {\r\n if (this.bvDropdown) {\r\n this.bvDropdown.hide(true);\r\n }\r\n },\r\n onClick: function onClick(event) {\r\n this.$emit(EVENT_NAME_CLICK, event);\r\n this.closeDropdown();\r\n }\r\n },\r\n render: function render(h) {\r\n var _ref;\r\n\r\n var active = this.active,\r\n variant = this.variant,\r\n bvAttrs = this.bvAttrs;\r\n return h('li', {\r\n class: bvAttrs.class,\r\n style: bvAttrs.style,\r\n attrs: {\r\n role: 'presentation'\r\n }\r\n }, [h('button', {\r\n staticClass: 'dropdown-item',\r\n class: [this.buttonClass, (_ref = {}, _defineProperty(_ref, this.activeClass, active), _defineProperty(_ref, \"text-\".concat(variant), variant && !(active || this.disabled)), _ref)],\r\n attrs: this.computedAttrs,\r\n on: {\r\n click: this.onClick\r\n },\r\n ref: 'button'\r\n }, this.normalizeSlot())]);\r\n }\r\n });\r\n\r\n var props$1K = makePropsConfigurable({\r\n id: makeProp(PROP_TYPE_STRING),\r\n tag: makeProp(PROP_TYPE_STRING, 'header'),\r\n variant: makeProp(PROP_TYPE_STRING)\r\n }, NAME_DROPDOWN_HEADER); // --- Main component ---\r\n // @vue/component\r\n\r\n var BDropdownHeader = /*#__PURE__*/extend({\r\n name: NAME_DROPDOWN_HEADER,\r\n functional: true,\r\n props: props$1K,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n var tag = props.tag,\r\n variant = props.variant;\r\n return h('li', a(omit(data, ['attrs']), {\r\n attrs: {\r\n role: 'presentation'\r\n }\r\n }), [h(tag, {\r\n staticClass: 'dropdown-header',\r\n class: _defineProperty({}, \"text-\".concat(variant), variant),\r\n attrs: _objectSpread2$3(_objectSpread2$3({}, data.attrs || {}), {}, {\r\n id: props.id || null,\r\n role: isTag(tag, 'header') ? null : 'heading'\r\n }),\r\n ref: 'header'\r\n }, children)]);\r\n }\r\n });\r\n\r\n var props$1J = makePropsConfigurable({\r\n tag: makeProp(PROP_TYPE_STRING, 'hr')\r\n }, NAME_DROPDOWN_DIVIDER); // --- Main component ---\r\n // @vue/component\r\n\r\n var BDropdownDivider = /*#__PURE__*/extend({\r\n name: NAME_DROPDOWN_DIVIDER,\r\n functional: true,\r\n props: props$1J,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data;\r\n return h('li', a(omit(data, ['attrs']), {\r\n attrs: {\r\n role: 'presentation'\r\n }\r\n }), [h(props.tag, {\r\n staticClass: 'dropdown-divider',\r\n attrs: _objectSpread2$3(_objectSpread2$3({}, data.attrs || {}), {}, {\r\n role: 'separator',\r\n 'aria-orientation': 'horizontal'\r\n }),\r\n ref: 'divider'\r\n })]);\r\n }\r\n });\r\n\r\n var props$1I = makePropsConfigurable({\r\n id: makeProp(PROP_TYPE_STRING),\r\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\r\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\r\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\r\n }, NAME_FORM); // --- Main component ---\r\n // @vue/component\r\n\r\n var BForm = /*#__PURE__*/extend({\r\n name: NAME_FORM,\r\n functional: true,\r\n props: props$1I,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n return h('form', a(data, {\r\n class: {\r\n 'form-inline': props.inline,\r\n 'was-validated': props.validated\r\n },\r\n attrs: {\r\n id: props.id,\r\n novalidate: props.novalidate\r\n }\r\n }), children);\r\n }\r\n });\r\n\r\n var props$1H = makePropsConfigurable(sortKeys(_objectSpread2$3(_objectSpread2$3({}, props$1I), {}, {\r\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\r\n formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\r\n })), NAME_DROPDOWN_FORM); // --- Main component ---\r\n // @vue/component\r\n\r\n var BDropdownForm = /*#__PURE__*/extend({\r\n name: NAME_DROPDOWN_FORM,\r\n functional: true,\r\n props: props$1H,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n listeners = _ref.listeners,\r\n children = _ref.children;\r\n return h('li', a(omit(data, ['attrs', 'on']), {\r\n attrs: {\r\n role: 'presentation'\r\n }\r\n }), [h(BForm, {\r\n staticClass: 'b-dropdown-form',\r\n class: [props.formClass, {\r\n disabled: props.disabled\r\n }],\r\n props: props,\r\n attrs: _objectSpread2$3(_objectSpread2$3({}, data.attrs || {}), {}, {\r\n disabled: props.disabled,\r\n // Tab index of -1 for keyboard navigation\r\n tabindex: props.disabled ? null : '-1'\r\n }),\r\n on: listeners,\r\n ref: 'form'\r\n }, children)]);\r\n }\r\n });\r\n\r\n var props$1G = makePropsConfigurable({\r\n tag: makeProp(PROP_TYPE_STRING, 'p'),\r\n textClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n variant: makeProp(PROP_TYPE_STRING)\r\n }, NAME_DROPDOWN_TEXT); // --- Main component ---\r\n // @vue/component\r\n\r\n var BDropdownText = /*#__PURE__*/extend({\r\n name: NAME_DROPDOWN_TEXT,\r\n functional: true,\r\n props: props$1G,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n var tag = props.tag,\r\n textClass = props.textClass,\r\n variant = props.variant;\r\n return h('li', a(omit(data, ['attrs']), {\r\n attrs: {\r\n role: 'presentation'\r\n }\r\n }), [h(tag, {\r\n staticClass: 'b-dropdown-text',\r\n class: [textClass, _defineProperty({}, \"text-\".concat(variant), variant)],\r\n props: props,\r\n attrs: data.attrs || {},\r\n ref: 'text'\r\n }, children)]);\r\n }\r\n });\r\n\r\n var props$1F = makePropsConfigurable({\r\n ariaDescribedby: makeProp(PROP_TYPE_STRING),\r\n header: makeProp(PROP_TYPE_STRING),\r\n headerClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\r\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\r\n headerVariant: makeProp(PROP_TYPE_STRING),\r\n id: makeProp(PROP_TYPE_STRING)\r\n }, NAME_DROPDOWN_GROUP); // --- Main component ---\r\n // @vue/component\r\n\r\n var BDropdownGroup = /*#__PURE__*/extend({\r\n name: NAME_DROPDOWN_GROUP,\r\n functional: true,\r\n props: props$1F,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n slots = _ref.slots,\r\n scopedSlots = _ref.scopedSlots;\r\n var id = props.id,\r\n variant = props.variant,\r\n header = props.header,\r\n headerTag = props.headerTag;\r\n var $slots = slots();\r\n var $scopedSlots = scopedSlots || {};\r\n var slotScope = {};\r\n var headerId = id ? \"_bv_\".concat(id, \"_group_dd_header\") : null;\r\n var $header = h();\r\n\r\n if (hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots) || header) {\r\n $header = h(headerTag, {\r\n staticClass: 'dropdown-header',\r\n class: [props.headerClasses, _defineProperty({}, \"text-\".concat(variant), variant)],\r\n attrs: {\r\n id: headerId,\r\n role: isTag(headerTag, 'header') ? null : 'heading'\r\n }\r\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots) || header);\r\n }\r\n\r\n return h('li', a(omit(data, ['attrs']), {\r\n attrs: {\r\n role: 'presentation'\r\n }\r\n }), [$header, h('ul', {\r\n staticClass: 'list-unstyled',\r\n attrs: _objectSpread2$3(_objectSpread2$3({}, data.attrs || {}), {}, {\r\n id: id,\r\n role: 'group',\r\n 'aria-describedby': [headerId, props.ariaDescribedBy].filter(identity).join(' ').trim() || null\r\n })\r\n }, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots))]);\r\n }\r\n });\r\n\r\n var DropdownPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BDropdown: BDropdown,\r\n BDd: BDropdown,\r\n BDropdownItem: BDropdownItem,\r\n BDdItem: BDropdownItem,\r\n BDropdownItemButton: BDropdownItemButton,\r\n BDropdownItemBtn: BDropdownItemButton,\r\n BDdItemButton: BDropdownItemButton,\r\n BDdItemBtn: BDropdownItemButton,\r\n BDropdownHeader: BDropdownHeader,\r\n BDdHeader: BDropdownHeader,\r\n BDropdownDivider: BDropdownDivider,\r\n BDdDivider: BDropdownDivider,\r\n BDropdownForm: BDropdownForm,\r\n BDdForm: BDropdownForm,\r\n BDropdownText: BDropdownText,\r\n BDdText: BDropdownText,\r\n BDropdownGroup: BDropdownGroup,\r\n BDdGroup: BDropdownGroup\r\n }\r\n });\r\n\r\n var TYPES$2 = ['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy']; // --- Props ---\r\n\r\n var props$1E = makePropsConfigurable({\r\n aspect: makeProp(PROP_TYPE_STRING, '16by9'),\r\n tag: makeProp(PROP_TYPE_STRING, 'div'),\r\n type: makeProp(PROP_TYPE_STRING, 'iframe', function (value) {\r\n return arrayIncludes(TYPES$2, value);\r\n })\r\n }, NAME_EMBED); // --- Main component ---\r\n // @vue/component\r\n\r\n var BEmbed = /*#__PURE__*/extend({\r\n name: NAME_EMBED,\r\n functional: true,\r\n props: props$1E,\r\n render: function render(h, _ref) {\r\n var props = _ref.props,\r\n data = _ref.data,\r\n children = _ref.children;\r\n var aspect = props.aspect;\r\n return h(props.tag, {\r\n staticClass: 'embed-responsive',\r\n class: _defineProperty({}, \"embed-responsive-\".concat(aspect), aspect),\r\n ref: data.ref\r\n }, [h(props.type, a(omit(data, ['ref']), {\r\n staticClass: 'embed-responsive-item'\r\n }), children)]);\r\n }\r\n });\r\n\r\n var EmbedPlugin = /*#__PURE__*/pluginFactory({\r\n components: {\r\n BEmbed: BEmbed\r\n }\r\n });\r\n\r\n var OPTIONS_OBJECT_DEPRECATED_MSG = 'Setting prop \"options\" to an object is deprecated. Use the array format instead.'; // --- Props ---\r\n\r\n var props$1D = makePropsConfigurable({\r\n disabledField: makeProp(PROP_TYPE_STRING, 'disabled'),\r\n htmlField: makeProp(PROP_TYPE_STRING, 'html'),\r\n options: makeProp(PROP_TYPE_ARRAY_OBJECT, []),\r\n textField: makeProp(PROP_TYPE_STRING, 'text'),\r\n valueField: makeProp(PROP_TYPE_STRING, 'value')\r\n }, 'formOptionControls'); // --- Mixin ---\r\n // @vue/component\r\n\r\n var formOptionsMixin = extend({\r\n props: props$1D,\r\n computed: {\r\n formOptions: function formOptions() {\r\n return this.normalizeOptions(this.options);\r\n }\r\n },\r\n methods: {\r\n normalizeOption: function normalizeOption(option) {\r\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\r\n\r\n // When the option is an object, normalize it\r\n if (isPlainObject(option)) {\r\n var value = get(option, this.valueField);\r\n var text = get(option, this.textField);\r\n return {\r\n value: isUndefined(value) ? key || text : value,\r\n text: stripTags(String(isUndefined(text) ? key : text)),\r\n html: get(option, this.htmlField),\r\n disabled: Boolean(get(option, this.disabledField))\r\n };\r\n } // Otherwise create an `