{"version":3,"sources":["webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/get.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/events.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/card.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/props.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/get-scope-id.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/attrs.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/normalize-slot.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/html.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/inspect.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/listen-on-document.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/memoize.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/dom.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/bv-event.class.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/locale.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/normalize-slot.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/has-listener.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/config-set.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/plugins.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/model.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/listeners.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/noop.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/config.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/loose-equal.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-options.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/math.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/array.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/id.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/warn.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/model.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/identity.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/observe-dom.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/object.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/listen-on-root.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/date.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-radio-check-group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/number.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/env.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/listen-on-window.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/scoped-style.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/router.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/clone-deep.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/cache.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/string.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/utils/css-escape.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/vue.js"],"names":["clickOutMixin","extend","data","listenForClickOut","watch","newValue","oldValue","this","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","mounted","document","beforeDestroy","methods","isClickOut","event","$el","target","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","map","selector","concat","join","els","id","boundary","disabled","dropleft","dropright","dropup","noFlip","offset","popperOpts","right","dropdownMixin","mixins","provide","bvDropdown","inject","bvNavbar","default","props","visible","visibleChangePrevented","computed","inNavbar","toggler","toggle","$refs","directionClass","boundaryClass","eventName","bvEvent","cancelable","vueTarget","menu","relatedTarget","componentId","safeId","emitEvent","defaultPrevented","$off","focusToggler","showMenu","hideMenu","created","$_popper","$_hideTimeout","deactivated","whileOpenListen","destroyPopper","clearHideTimeout","type","emitOnRoot","$emit","_this","warn","el","split","createPopper","$nextTick","focusMenu","element","getPopperConfig","destroy","updatePopper","scheduleUpdate","_unused","clearTimeout","placement","popperConfig","modifiers","flip","enabled","boundariesElement","preventOverflow","isOpen","method","$root","rootCloseListener","vm","show","_this2","hide","refocus","undefined","$once","_event","keyCode","indexOf","onMousedown","propagation","onKeydown","onEsc","focusNext","onSplitClick","hideHandler","_this3","setTimeout","up","_this4","items","getItems","index","focusItem","find","_this5","SELECTOR","autofocus","form","name","required","formControlMixin","handleAutofocus","activated","getRaw","path","defaultValue","String","replace","steps","every","step","get","stableSort","array","compareFn","a","sort","b","bind","e","parseEventOptions","options","capture","eventOn","handler","addEventListener","eventOff","removeEventListener","eventOnOff","on","_len","args","Array","_key","stopEvent","_ref","_ref$preventDefault","preventDefault","_ref$propagation","_ref$immediatePropaga","immediatePropagation","stopPropagation","stopImmediatePropagation","getBaseEventName","getRootEventName","getRootActionEventName","actionName","bgVariant","borderVariant","tag","textVariant","prefixPropName","prefix","unprefixPropName","suffixPropName","suffix","makeProp","requiredOrValidator","validator","copyProps","transformFn","copied","prop","pluckProps","keysToPluck","objToPluck","slice","reduce","memo","makePropConfigurable","componentKey","makePropsConfigurable","result","configurablePropDefaultFnName","hasPropFunction","fn","getScopeId","$options","_scopeId","attrsMixin","normalizeSlotMixin","hasNormalizedSlot","scopedSlots","$scopedSlots","slots","$slots","normalizeSlot","scope","vNodes","stripTags","text","htmlOrText","innerHTML","textContent","_typeof","Symbol","iterator","constructor","prototype","toType","toRawType","toString","call","isUndefined","isNull","isUndefinedOrNull","isFunction","isBoolean","isString","isNumber","isNumeric","test","isArray","isObject","isPlainObject","isDate","Date","isEvent","Event","isFile","isRegExp","isPromise","then","catch","PROP","listenOnDocumentMixin","handlers","listenDocument","listenOnDocument","listenOffDocument","h","memoize","cache","argsKey","JSON","stringify","ELEMENT_PROTO","TABABLE_SELECTOR","s","matchesEl","matches","msMatchesSelector","webkitMatchesSelector","closestEl","closest","sel","parentElement","parentNode","nodeType","Node","ELEMENT_NODE","requestAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","cb","MutationObs","MutationObserver","WebKitMutationObserver","MozMutationObserver","removeNode","removeChild","isElement","getActiveElement","excludes","activeElement","some","isTag","toLowerCase","isActiveElement","isVisible","contains","body","getStyle","bcr","getBCR","height","width","isDisabled","hasAttr","hasClass","reflow","offsetHeight","selectAll","root","querySelectorAll","select","querySelector","includeRoot","parent","child","getById","getElementById","addClass","className","classList","add","removeClass","remove","setAttr","attr","setAttribute","removeAttr","removeAttribute","getAttr","getAttribute","hasAttribute","setStyle","style","removeStyle","getBoundingClientRect","getCS","getComputedStyle","getSel","getSelection","_offset","top","left","getClientRects","win","ownerDocument","defaultView","pageYOffset","pageXOffset","position","parentOffset","elStyles","doc","offsetParent","documentElement","offsetParentStyles","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getTabables","rootEl","tabIndex","attemptFocus","focus","attemptBlur","blur","_unused2","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_createClass","protoProps","staticProps","BvEvent","eventInit","Defaults","nativeEvent","RTL_LANGS","locale","isLocaleRTL","parts","locale1","locale2","names","slot","hasListenerMixin","hasListener","$listeners","$events","_events","BvConfig","$_config","config","configKeys","subConfig","Vue","setConfig","checkMultipleVue","checkMultipleVueWarned","MULTIPLE_VUE_WARNING","components","directives","plugins","install","installed","registerComponents","registerDirectives","registerPlugins","installFactoryNoConfig","_ref2","pluginFactory","pluginFactoryNoConfig","plugin","use","registerComponent","def","component","registerDirective","directive","_makeModelMixin","mixin","size","formSizeMixin","sizeFormClass","_watch","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","makePageArray","startNumber","numberOfPages","_","number","classes","sanitizeLimit","limit","sanitizeCurrentPage","val","page","onSpaceKey","currentTarget","click","align","ariaLabel","ellipsisClass","ellipsisText","firstClass","firstNumber","firstText","hideEllipsis","hideGotoEndButtons","labelFirstPage","labelLastPage","labelNextPage","labelPage","labelPrevPage","lastClass","lastNumber","lastText","nextClass","nextText","pageClass","pills","prevClass","prevText","paginationMixin","currentPage","localNumberOfPages","localLimit","btnSize","alignment","styleClass","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","lastPageNumber","pageList","_this$paginationParam","pages","idx","_i","_i2","_i3","handleKeyNav","shiftKey","isNav","focusFirst","focusPrev","focusLast","getButtons","btn","focusCurrent","reverse","buttons","_this6","render","_this7","pageNumbers","p","_this$paginationParam2","fill","$buttons","isActivePage","pageNumber","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","$btnContent","$inner","staticClass","class","linkProps","attrs","role","tabindex","ariaControls","onClick","keydown","makeEllipsis","isLast","makePageButton","active","btnContent","makePage","content","$firstPageBtn","$lastPageBtn","$pagination","ref","listenersMixin","noop","VueProto","getConfigValue","bvConfig","getComponentConfig","propKey","getBreakpoints","_getBreakpointsCached","getBreakpointsCached","getBreakpointsUpCached","breakpoints","looseIndexOf","compareArrays","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","state","formStateMixin","computedState","stateClass","computedAriaInvalid","ariaInvalid","OPTIONS_OBJECT_DEPRECATED_MSG","disabledField","htmlField","textField","valueField","formOptionsMixin","formOptions","normalizeOptions","normalizeOption","option","html","Boolean","mathMin","Math","min","mathMax","max","mathAbs","abs","mathCeil","ceil","mathFloor","floor","mathPow","pow","mathRound","round","from","arrayIncludes","createArray","fillFn","mapFn","flatten","item","flattenDeep","idMixin","localId_","message","console","warnNotClient","warnNoPromiseSupport","warnNoMutationObserverSupport","makeModelMixin","_ref$type","_ref$defaultValue","_ref$validator","_ref$event","model","identity","x","observeDom","callback","obs","mutations","changed","mutation","TEXT_NODE","addedNodes","removedNodes","observe","childList","subtree","assign","create","proto","optionalProps","getOwnPropertyNames","hasOwnProperty","clone","pick","omit","mergeDeep","sortKeys","readonlyDescriptor","formSelectionMixin","selectionStart","input","set","selectionEnd","selectionDirection","_this$$refs$input","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","listenOnRootMixin","listenOnRoot","$on","listenOnRootOnce","_this$$root","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","len","arr2","_arr","_n","_d","_e","_s","next","done","err","_construct","Parent","Class","_isNativeReflectConstruct","Reflect","construct","Function","_setPrototypeOf","sham","Proxy","setPrototypeOf","__proto__","createDate","parseYMD","date","trim","_date$split$map","v","_date$split$map2","year","month","day","getFullYear","getMonth","getDate","formatYMD","resolveLocale","locales","calendar","fmt","Intl","DateTimeFormat","resolvedOptions","createDateFormatter","dtf","format","datesEqual","date1","date2","firstDateOfMonth","setDate","lastDateOfMonth","setMonth","addYears","numberOfYears","setFullYear","oneMonthAgo","oneMonthAhead","oneYearAgo","oneYearAhead","oneDecadeAgo","oneDecadeAhead","constrainDate","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","PASS_DOWN_ATTRS","buttonVariant","stacked","validated","formRadioCheckGroupMixin","inheritAttrs","localChecked","inline","groupName","groupClasses","isRadioGroup","$attrs","optionComponent","$inputs","domProps","stringifyObjectValues","k","plain","formCustomMixin","custom","toInteger","NaN","integer","parseInt","isNaN","toFloat","float","parseFloat","toFixed","precision","getEnv","fallback","env","process","getNoWarn","listenOnWindowMixin","window","listenWindow","listenOnWindow","listenOffWindow","scopedStyleMixin","scopedStyleAttrs","scopeId","$parent","ANCHOR_TAG","encodeReserveReplacer","c","charCodeAt","encode","str","encodeURIComponent","decode","decodeURIComponent","stringifyQueryObj","query","results","value2","parseQuery","parsed","param","shift","isLink","href","to","isRouterLink","computeTag","thisOrParent","routerComponentName","hasRouter","$router","$nuxt","computeRel","rel","computeHref","_ref3","toFallback","hash","charAt","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","cloneDeep","autocomplete","debounce","formatter","lazy","lazyFormatter","placeholder","plaintext","readonly","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","formatValue","force","updateValue","doUpdate","$input","onInput","composing","formattedValue","onChange","onBlur","isEmpty","makePropWatcher","propName","$delete","$data","$set","makePropCacheMixin","proxyPropName","kebabCase","pascalCase","toUpperCase","startCase","$1","$2","lowerFirst","upperFirst","escapeRegExp","spaces","trimLeft","lowerCase","escapeChar","cssEscape","firstCharCode","char","charCode","_methods","ariaLabelledby","button","formRadioCheckMixin","isGroup","bvGroup","hasFocus","computedLocalChecked","isChecked","isRadio","isBtnMode","isPlain","isCustom","isSwitch","switches","switch","isInline","isRequired","computedName","computedForm","computedSize","computedButtonVariant","buttonClasses","computedAttrs","bvAttrs","computedLocalCheckedWatcher","checked","$content","change","handleChange","handleFocus","$button","$label","for","COMPONENT_UID_KEY"],"mappings":"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","file":"js/chunk-vendors~3e5ab7d9.eaf3aa70.js","sourcesContent":["import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\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!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});","import { RX_ARRAY_NOTATION } from '../constants/regex';\nimport { identity } from './identity';\nimport { isArray, isNull, isObject, isUndefinedOrNull } from './inspect';\n/**\n * Get property defined by dot/array notation in string, returns undefined if not found\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @return {*}\n */\n\nexport var getRaw = function getRaw(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // Handle array of path values\n path = isArray(path) ? path.join('.') : path; // If no path or no object passed\n\n if (!path || !isObject(obj)) {\n return defaultValue;\n } // Handle edge case where user has dot(s) in top-level item field key\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n if (path in obj) {\n return obj[path];\n } // Handle string array notation (numeric indices only)\n\n\n path = String(path).replace(RX_ARRAY_NOTATION, '.$1');\n var steps = path.split('.').filter(identity); // Handle case where someone passes a string of only dots\n\n if (steps.length === 0) {\n return defaultValue;\n } // Traverse path in object to find result\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n return steps.every(function (step) {\n return isObject(obj) && step in obj && !isUndefinedOrNull(obj = obj[step]);\n }) ? obj : isNull(obj) ? null : defaultValue;\n};\n/**\n * Get property defined by dot/array notation in string.\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @param {*} defaultValue (optional)\n * @return {*}\n */\n\nexport var get = function get(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var value = getRaw(obj, path);\n return isUndefinedOrNull(value) ? defaultValue : value;\n};","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","import { HAS_PASSIVE_EVENT_SUPPORT } from '../constants/env';\nimport { ROOT_EVENT_NAME_PREFIX, ROOT_EVENT_NAME_SEPARATOR } from '../constants/events';\nimport { RX_BV_PREFIX } from '../constants/regex';\nimport { isObject } from './inspect';\nimport { kebabCase } from './string'; // --- Utils ---\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\n\nexport var parseEventOptions = function parseEventOptions(options) {\n /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n if (HAS_PASSIVE_EVENT_SUPPORT) {\n return isObject(options) ? options : {\n capture: !!options || false\n };\n } else {\n // Need to translate to actual Boolean value\n return !!(isObject(options) ? options.capture : options);\n }\n}; // Attach an event listener to an element\n\nexport var eventOn = function eventOn(el, eventName, handler, options) {\n if (el && el.addEventListener) {\n el.addEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Remove an event listener from an element\n\nexport var eventOff = function eventOff(el, eventName, handler, options) {\n if (el && el.removeEventListener) {\n el.removeEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Utility method to add/remove a event listener based on first argument (boolean)\n// It passes all other arguments to the `eventOn()` or `eventOff` method\n\nexport var eventOnOff = function eventOnOff(on) {\n var method = on ? eventOn : eventOff;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n method.apply(void 0, args);\n}; // Utility method to prevent the default event handling and propagation\n\nexport var stopEvent = function stopEvent(event) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$preventDefault = _ref.preventDefault,\n preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,\n _ref$propagation = _ref.propagation,\n propagation = _ref$propagation === void 0 ? true : _ref$propagation,\n _ref$immediatePropaga = _ref.immediatePropagation,\n immediatePropagation = _ref$immediatePropaga === void 0 ? false : _ref$immediatePropaga;\n\n if (preventDefault) {\n event.preventDefault();\n }\n\n if (propagation) {\n event.stopPropagation();\n }\n\n if (immediatePropagation) {\n event.stopImmediatePropagation();\n }\n}; // Helper method to convert a component/directive name to a base event name\n// `getBaseEventName('BNavigationItem')` => 'navigation-item'\n// `getBaseEventName('BVToggle')` => 'toggle'\n\nvar getBaseEventName = function getBaseEventName(value) {\n return kebabCase(value.replace(RX_BV_PREFIX, ''));\n}; // Get a root event name by component/directive and event name\n// `getBaseEventName('BModal', 'show')` => 'bv::modal::show'\n\n\nexport var getRootEventName = function getRootEventName(name, eventName) {\n return [ROOT_EVENT_NAME_PREFIX, getBaseEventName(name), eventName].join(ROOT_EVENT_NAME_SEPARATOR);\n}; // Get a root action event name by component/directive and action name\n// `getRootActionEventName('BModal', 'show')` => 'bv::show::modal'\n\nexport var getRootActionEventName = function getRootActionEventName(name, actionName) {\n return [ROOT_EVENT_NAME_PREFIX, actionName, getBaseEventName(name)].join(ROOT_EVENT_NAME_SEPARATOR);\n};","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { cloneDeep } from './clone-deep';\nimport { getComponentConfig } from './config';\nimport { identity } from './identity';\nimport { isArray, isFunction, isObject, isUndefined } from './inspect';\nimport { clone, hasOwnProperty, keys } from './object';\nimport { lowerFirst, upperFirst } from './string'; // Prefix a property\n\nexport var prefixPropName = function prefixPropName(prefix, value) {\n return prefix + upperFirst(value);\n}; // Remove a prefix from a property\n\nexport var unprefixPropName = function unprefixPropName(prefix, value) {\n return lowerFirst(value.replace(prefix, ''));\n}; // Suffix can be a falsey value so nothing is appended to string\n// (helps when looping over props & some shouldn't change)\n// Use data last parameters to allow for currying\n\nexport var suffixPropName = function suffixPropName(suffix, value) {\n return value + (suffix ? upperFirst(suffix) : '');\n}; // Generates a prop object\n\nexport var makeProp = function makeProp() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PROP_TYPE_ANY;\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var requiredOrValidator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var validator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n var required = requiredOrValidator === true;\n validator = required ? validator : requiredOrValidator;\n return _objectSpread(_objectSpread(_objectSpread({}, type ? {\n type: type\n } : {}), required ? {\n required: required\n } : isUndefined(value) ? {} : {\n default: isObject(value) ? function () {\n return value;\n } : value\n }), isUndefined(validator) ? {} : {\n validator: validator\n });\n}; // Copies props from one array/object to a new array/object\n// Prop values are also cloned as new references to prevent possible\n// mutation of original prop object values\n// Optionally accepts a function to transform the prop name\n\nexport var copyProps = function copyProps(props) {\n var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n if (isArray(props)) {\n return props.map(transformFn);\n }\n\n var copied = {};\n\n for (var prop in props) {\n /* istanbul ignore else */\n if (hasOwnProperty(props, prop)) {\n // If the prop value is an object, do a shallow clone\n // to prevent potential mutations to the original object\n copied[transformFn(prop)] = isObject(props[prop]) ? clone(props[prop]) : props[prop];\n }\n }\n\n return copied;\n}; // Given an array of properties or an object of property keys,\n// plucks all the values off the target object, returning a new object\n// that has props that reference the original prop values\n\nexport var pluckProps = function pluckProps(keysToPluck, objToPluck) {\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce(function (memo, prop) {\n memo[transformFn(prop)] = objToPluck[prop];\n return memo;\n }, {});\n}; // Make a prop object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropConfigurable = function makePropConfigurable(prop, key, componentKey) {\n return _objectSpread(_objectSpread({}, cloneDeep(prop)), {}, {\n default: function bvConfigurablePropDefault() {\n var value = getComponentConfig(componentKey, key, prop.default);\n return isFunction(value) ? value() : value;\n }\n });\n}; // Make a props object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropsConfigurable = function makePropsConfigurable(props, componentKey) {\n return keys(props).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, makePropConfigurable(props[key], key, componentKey)));\n }, {});\n}; // Get function name we use in `makePropConfigurable()`\n// for the prop default value override to compare\n// against in `hasPropFunction()`\n\nvar configurablePropDefaultFnName = makePropConfigurable({}, '', '').default.name; // Detect wether the given value is currently a function\n// and isn't the props default function\n\nexport var hasPropFunction = function hasPropFunction(fn) {\n return isFunction(fn) && fn.name !== configurablePropDefaultFnName;\n};","// This method returns a component's scoped style attribute name: `data-v-xxxxxxx`\n// The `_scopeId` options property is added by vue-loader when using scoped styles\n// and will be `undefined` if no scoped styles are in use\nexport var getScopeId = function getScopeId(vm) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return vm ? vm.$options._scopeId || defaultValue : defaultValue;\n};","import { makePropCacheMixin } from '../utils/cache';\nexport var attrsMixin = makePropCacheMixin('$attrs', 'bvAttrs');","import { Vue } from '../vue';\nimport { SLOT_NAME_DEFAULT } from '../constants/slots';\nimport { hasNormalizedSlot as _hasNormalizedSlot, normalizeSlot as _normalizeSlot } from '../utils/normalize-slot';\nimport { concat } from '../utils/array'; // @vue/component\n\nexport var normalizeSlotMixin = Vue.extend({\n methods: {\n // Returns `true` if the either a `$scopedSlot` or `$slot` exists with the specified name\n // `name` can be a string name or an array of names\n hasNormalizedSlot: function hasNormalizedSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.$scopedSlots;\n var slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$slots;\n return _hasNormalizedSlot(name, scopedSlots, slots);\n },\n // Returns an array of rendered VNodes if slot found, otherwise `undefined`\n // `name` can be a string name or an array of names\n normalizeSlot: function normalizeSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$scopedSlots;\n var slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.$slots;\n\n var vNodes = _normalizeSlot(name, scope, scopedSlots, slots);\n\n return vNodes ? concat(vNodes) : vNodes;\n }\n }\n});","import { RX_HTML_TAGS } from '../constants/regex'; // Removes anything that looks like an HTML tag from the supplied string\n\nexport var stripTags = function stripTags() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return String(text).replace(RX_HTML_TAGS, '');\n}; // Generate a `domProps` object for either `innerHTML`, `textContent` or an empty object\n\nexport var htmlOrText = function htmlOrText(innerHTML, textContent) {\n return innerHTML ? {\n innerHTML: innerHTML\n } : textContent ? {\n textContent: textContent\n } : {};\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { RX_NUMBER } from '../constants/regex';\nimport { File } from '../constants/safe-types'; // --- Convenience inspection utilities ---\n\nexport var toType = function toType(value) {\n return _typeof(value);\n};\nexport var toRawType = function toRawType(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n};\nexport var toRawTypeLC = function toRawTypeLC(value) {\n return toRawType(value).toLowerCase();\n};\nexport var isUndefined = function isUndefined(value) {\n return value === undefined;\n};\nexport var isNull = function isNull(value) {\n return value === null;\n};\nexport var isEmptyString = function isEmptyString(value) {\n return value === '';\n};\nexport var isUndefinedOrNull = function isUndefinedOrNull(value) {\n return isUndefined(value) || isNull(value);\n};\nexport var isUndefinedOrNullOrEmpty = function isUndefinedOrNullOrEmpty(value) {\n return isUndefinedOrNull(value) || isEmptyString(value);\n};\nexport var isFunction = function isFunction(value) {\n return toType(value) === 'function';\n};\nexport var isBoolean = function isBoolean(value) {\n return toType(value) === 'boolean';\n};\nexport var isString = function isString(value) {\n return toType(value) === 'string';\n};\nexport var isNumber = function isNumber(value) {\n return toType(value) === 'number';\n};\nexport var isNumeric = function isNumeric(value) {\n return RX_NUMBER.test(String(value));\n};\nexport var isPrimitive = function isPrimitive(value) {\n return isBoolean(value) || isString(value) || isNumber(value);\n};\nexport var isArray = function isArray(value) {\n return Array.isArray(value);\n}; // Quick object check\n// This is primarily used to tell Objects from primitive values\n// when we know the value is a JSON-compliant type\n// Note object could be a complex type like array, Date, etc.\n\nexport var isObject = function isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}; // Strict object type check\n// Only returns true for plain JavaScript objects\n\nexport var isPlainObject = function isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n};\nexport var isDate = function isDate(value) {\n return value instanceof Date;\n};\nexport var isEvent = function isEvent(value) {\n return value instanceof Event;\n};\nexport var isFile = function isFile(value) {\n return value instanceof File;\n};\nexport var isRegExp = function isRegExp(value) {\n return toRawType(value) === 'RegExp';\n};\nexport var isPromise = function isPromise(value) {\n return !isUndefinedOrNull(value) && isFunction(value.then) && isFunction(value.catch);\n};","import { Vue } from '../vue';\nimport { IS_BROWSER } from '../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { arrayIncludes } from '../utils/array';\nimport { eventOn, eventOff } from '../utils/events';\nimport { isString, isFunction } from '../utils/inspect';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_bv_documentHandlers_'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnDocumentMixin = Vue.extend({\n created: function created() {\n var _this = this;\n\n /* istanbul ignore next */\n if (!IS_BROWSER) {\n return;\n } // Declare non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of handlers\n // Prop will be defined on client only\n\n\n this[PROP] = {}; // Set up our beforeDestroy handler (client only)\n\n this.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n var items = _this[PROP] || {}; // Immediately delete this[PROP] to prevent the\n // listenOn/Off methods from running (which may occur\n // due to requestAnimationFrame/transition delays)\n\n delete _this[PROP]; // Remove all registered event handlers\n\n keys(items).forEach(function (eventName) {\n var handlers = items[eventName] || [];\n handlers.forEach(function (handler) {\n return eventOff(document, eventName, handler, EVENT_OPTIONS_NO_CAPTURE);\n });\n });\n });\n },\n methods: {\n listenDocument: function listenDocument(on, eventName, handler) {\n on ? this.listenOnDocument(eventName, handler) : this.listenOffDocument(eventName, handler);\n },\n listenOnDocument: function listenOnDocument(eventName, handler) {\n if (this[PROP] && isString(eventName) && isFunction(handler)) {\n this[PROP][eventName] = this[PROP][eventName] || [];\n\n if (!arrayIncludes(this[PROP][eventName], handler)) {\n this[PROP][eventName].push(handler);\n eventOn(document, eventName, handler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n },\n listenOffDocument: function listenOffDocument(eventName, handler) {\n if (this[PROP] && isString(eventName) && isFunction(handler)) {\n eventOff(document, eventName, handler, EVENT_OPTIONS_NO_CAPTURE);\n this[PROP][eventName] = (this[PROP][eventName] || []).filter(function (h) {\n return h !== handler;\n });\n }\n }\n }\n});","import { create } from './object';\nexport var memoize = function memoize(fn) {\n var cache = create(null);\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsKey = JSON.stringify(args);\n return cache[argsKey] = cache[argsKey] || fn.apply(null, args);\n };\n};","import { DOCUMENT, WINDOW } from '../constants/env';\nimport { Element } from '../constants/safe-types';\nimport { from as arrayFrom } from './array';\nimport { isFunction, isNull } from './inspect';\nimport { toFloat } from './number';\nimport { toString } from './string'; // --- Constants ---\n\nvar ELEMENT_PROTO = Element.prototype;\nvar TABABLE_SELECTOR = ['button', '[href]:not(.disabled)', 'input', 'select', 'textarea', '[tabindex]', '[contenteditable]'].map(function (s) {\n return \"\".concat(s, \":not(:disabled):not([disabled])\");\n}).join(', '); // --- Normalization utils ---\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\n/* istanbul ignore next */\n\nexport var matchesEl = ELEMENT_PROTO.matches || ELEMENT_PROTO.msMatchesSelector || ELEMENT_PROTO.webkitMatchesSelector; // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n\n/* istanbul ignore next */\n\nexport var closestEl = ELEMENT_PROTO.closest || function (sel) {\n var el = this;\n\n do {\n // Use our \"patched\" matches function\n if (matches(el, sel)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE);\n\n return null;\n}; // `requestAnimationFrame()` convenience method\n\n/* istanbul ignore next: JSDOM always returns the first option */\n\nexport var requestAF = WINDOW.requestAnimationFrame || WINDOW.webkitRequestAnimationFrame || WINDOW.mozRequestAnimationFrame || WINDOW.msRequestAnimationFrame || WINDOW.oRequestAnimationFrame || // Fallback, but not a true polyfill\n// Only needed for Opera Mini\n\n/* istanbul ignore next */\nfunction (cb) {\n return setTimeout(cb, 16);\n};\nexport var MutationObs = WINDOW.MutationObserver || WINDOW.WebKitMutationObserver || WINDOW.MozMutationObserver || null; // --- Utils ---\n// Remove a node from DOM\n\nexport var removeNode = function removeNode(el) {\n return el && el.parentNode && el.parentNode.removeChild(el);\n}; // Determine if an element is an HTML element\n\nexport var isElement = function isElement(el) {\n return !!(el && el.nodeType === Node.ELEMENT_NODE);\n}; // Get the currently active HTML element\n\nexport var getActiveElement = function getActiveElement() {\n var excludes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var activeElement = DOCUMENT.activeElement;\n return activeElement && !excludes.some(function (el) {\n return el === activeElement;\n }) ? activeElement : null;\n}; // Returns `true` if a tag's name equals `name`\n\nexport var isTag = function isTag(tag, name) {\n return toString(tag).toLowerCase() === toString(name).toLowerCase();\n}; // Determine if an HTML element is the currently active element\n\nexport var isActiveElement = function isActiveElement(el) {\n return isElement(el) && el === getActiveElement();\n}; // Determine if an HTML element is visible - Faster than CSS check\n\nexport var isVisible = function isVisible(el) {\n if (!isElement(el) || !el.parentNode || !contains(DOCUMENT.body, el)) {\n // Note this can fail for shadow dom elements since they\n // are not a direct descendant of document.body\n return false;\n }\n\n if (getStyle(el, 'display') === 'none') {\n // We do this check to help with vue-test-utils when using v-show\n\n /* istanbul ignore next */\n return false;\n } // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n // So any tests that need isVisible will fail in JSDOM\n // Except when we override the getBCR prototype in some tests\n\n\n var bcr = getBCR(el);\n return !!(bcr && bcr.height > 0 && bcr.width > 0);\n}; // Determine if an element is disabled\n\nexport var isDisabled = function isDisabled(el) {\n return !isElement(el) || el.disabled || hasAttr(el, 'disabled') || hasClass(el, 'disabled');\n}; // Cause/wait-for an element to reflow its content (adjusting its height/width)\n\nexport var reflow = function reflow(el) {\n // Requesting an elements offsetHight will trigger a reflow of the element content\n\n /* istanbul ignore next: reflow doesn't happen in JSDOM */\n return isElement(el) && el.offsetHeight;\n}; // Select all elements matching selector. Returns `[]` if none found\n\nexport var selectAll = function selectAll(selector, root) {\n return arrayFrom((isElement(root) ? root : DOCUMENT).querySelectorAll(selector));\n}; // Select a single element, returns `null` if not found\n\nexport var select = function select(selector, root) {\n return (isElement(root) ? root : DOCUMENT).querySelector(selector) || null;\n}; // Determine if an element matches a selector\n\nexport var matches = function matches(el, selector) {\n return isElement(el) ? matchesEl.call(el, selector) : false;\n}; // Finds closest element matching selector. Returns `null` if not found\n\nexport var closest = function closest(selector, root) {\n var includeRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!isElement(root)) {\n return null;\n }\n\n var el = closestEl.call(root, selector); // Native closest behaviour when `includeRoot` is truthy,\n // else emulate jQuery closest and return `null` if match is\n // the passed in root element when `includeRoot` is falsey\n\n return includeRoot ? el : el === root ? null : el;\n}; // Returns true if the parent element contains the child element\n\nexport var contains = function contains(parent, child) {\n return parent && isFunction(parent.contains) ? parent.contains(child) : false;\n}; // Get an element given an ID\n\nexport var getById = function getById(id) {\n return DOCUMENT.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\n}; // Add a class to an element\n\nexport var addClass = function addClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.add(className);\n }\n}; // Remove a class from an element\n\nexport var removeClass = function removeClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.remove(className);\n }\n}; // Test if an element has a class\n\nexport var hasClass = function hasClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n return el.classList.contains(className);\n }\n\n return false;\n}; // Set an attribute on an element\n\nexport var setAttr = function setAttr(el, attr, value) {\n if (attr && isElement(el)) {\n el.setAttribute(attr, value);\n }\n}; // Remove an attribute from an element\n\nexport var removeAttr = function removeAttr(el, attr) {\n if (attr && isElement(el)) {\n el.removeAttribute(attr);\n }\n}; // Get an attribute value from an element\n// Returns `null` if not found\n\nexport var getAttr = function getAttr(el, attr) {\n return attr && isElement(el) ? el.getAttribute(attr) : null;\n}; // Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\n\nexport var hasAttr = function hasAttr(el, attr) {\n return attr && isElement(el) ? el.hasAttribute(attr) : null;\n}; // Set an style property on an element\n\nexport var setStyle = function setStyle(el, prop, value) {\n if (prop && isElement(el)) {\n el.style[prop] = value;\n }\n}; // Remove an style property from an element\n\nexport var removeStyle = function removeStyle(el, prop) {\n if (prop && isElement(el)) {\n el.style[prop] = '';\n }\n}; // Get an style property value from an element\n// Returns `null` if not found\n\nexport var getStyle = function getStyle(el, prop) {\n return prop && isElement(el) ? el.style[prop] || null : null;\n}; // Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n\nexport var getBCR = function getBCR(el) {\n return isElement(el) ? el.getBoundingClientRect() : null;\n}; // Get computed style object for an element\n\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\n\nexport var getCS = function getCS(el) {\n var getComputedStyle = WINDOW.getComputedStyle;\n return getComputedStyle && isElement(el) ? getComputedStyle(el) : {};\n}; // Returns a `Selection` object representing the range of text selected\n// Returns `null` if no window support is given\n\n/* istanbul ignore next: getSelection() doesn't work in JSDOM */\n\nexport var getSel = function getSel() {\n var getSelection = WINDOW.getSelection;\n return getSelection ? WINDOW.getSelection() : null;\n}; // Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\n\nexport var offset = function offset(el)\n/* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el) || el.getClientRects().length === 0) {\n return _offset;\n }\n\n var bcr = getBCR(el);\n\n if (bcr) {\n var win = el.ownerDocument.defaultView;\n _offset.top = bcr.top + win.pageYOffset;\n _offset.left = bcr.left + win.pageXOffset;\n }\n\n return _offset;\n}; // Return an element's offset with respect to to its offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\n\nexport var position = function position(el)\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el)) {\n return _offset;\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n var elStyles = getCS(el);\n\n if (elStyles.position === 'fixed') {\n _offset = getBCR(el) || _offset;\n } else {\n _offset = offset(el);\n var doc = el.ownerDocument;\n var offsetParent = el.offsetParent || doc.documentElement;\n\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n parentOffset = offset(offsetParent);\n var offsetParentStyles = getCS(offsetParent);\n parentOffset.top += toFloat(offsetParentStyles.borderTopWidth, 0);\n parentOffset.left += toFloat(offsetParentStyles.borderLeftWidth, 0);\n }\n }\n\n return {\n top: _offset.top - parentOffset.top - toFloat(elStyles.marginTop, 0),\n left: _offset.left - parentOffset.left - toFloat(elStyles.marginLeft, 0)\n };\n}; // Find all tabable elements in the given element\n// Assumes users have not used `tabindex` > `0` on elements\n\nexport var getTabables = function getTabables() {\n var rootEl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n return selectAll(TABABLE_SELECTOR, rootEl).filter(isVisible).filter(function (el) {\n return el.tabIndex > -1 && !el.disabled;\n });\n}; // Attempt to focus an element, and return `true` if successful\n\nexport var attemptFocus = function attemptFocus(el) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n try {\n el.focus(options);\n } catch (_unused) {}\n\n return isActiveElement(el);\n}; // Attempt to blur an element, and return `true` if successful\n\nexport var attemptBlur = function attemptBlur(el) {\n try {\n el.blur();\n } catch (_unused2) {}\n\n return !isActiveElement(el);\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { assign, defineProperty, defineProperties, readonlyDescriptor } from './object';\nexport var BvEvent = /*#__PURE__*/function () {\n function BvEvent(type) {\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvEvent);\n\n // Start by emulating native Event constructor\n if (!type) {\n /* istanbul ignore next */\n throw new TypeError(\"Failed to construct '\".concat(this.constructor.name, \"'. 1 argument required, \").concat(arguments.length, \" given.\"));\n } // Merge defaults first, the eventInit, and the type last\n // so it can't be overwritten\n\n\n assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, {\n type: type\n }); // Freeze some props as readonly, but leave them enumerable\n\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor(),\n componentId: readonlyDescriptor()\n }); // Create a private variable using closure scoping\n\n var defaultPrevented = false; // Recreate preventDefault method. One way setter\n\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true;\n }\n }; // Create `defaultPrevented` publicly accessible prop that\n // can only be altered by the preventDefault method\n\n\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get: function get() {\n return defaultPrevented;\n }\n });\n }\n\n _createClass(BvEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null,\n componentId: null\n };\n }\n }]);\n\n return BvEvent;\n}();","// Localization utilities\nimport { RX_STRIP_LOCALE_MODS } from '../constants/regex';\nimport { arrayIncludes } from './array';\nimport { toString } from './string'; // Languages that are RTL\n\nvar RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(function (locale) {\n return locale.toLowerCase();\n}); // Returns true if the locale is RTL\n\nexport var isLocaleRTL = function isLocaleRTL(locale) {\n // Determines if the locale is RTL (only single locale supported)\n var parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');\n var locale1 = parts.slice(0, 2).join('-');\n var locale2 = parts[0];\n return arrayIncludes(RTL_LANGS, locale1) || arrayIncludes(RTL_LANGS, locale2);\n};","import { concat } from './array';\nimport { identity } from './identity';\nimport { isFunction } from './inspect'; // Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot exists\n *\n * @param {String, Array} name or name[]\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var hasNormalizedSlot = function hasNormalizedSlot(names) {\n var $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // Ensure names is an array\n names = concat(names).filter(identity); // Returns true if the either a $scopedSlot or $slot exists with the specified name\n\n return names.some(function (name) {\n return $scopedSlots[name] || $slots[name];\n });\n};\n/**\n * Returns VNodes for named slot either scoped or unscoped\n *\n * @param {String, Array} name or name[]\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var normalizeSlot = function normalizeSlot(names) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // Ensure names is an array\n names = concat(names).filter(identity);\n var slot;\n\n for (var i = 0; i < names.length && !slot; i++) {\n var name = names[i];\n slot = $scopedSlots[name] || $slots[name];\n } // Note: in Vue 2.6.x, all named slots are also scoped slots\n\n\n return isFunction(slot) ? slot(scope) : slot;\n};","// Mixin to determine if an event listener has been registered\n// either via `v-on:name` (in the parent) or programmatically\n// via `vm.$on('name', ...)`\n// See: https://github.com/vuejs/vue/issues/10825\nimport { Vue } from '../vue';\nimport { isArray, isUndefined } from '../utils/inspect'; // @vue/component\n\nexport var hasListenerMixin = Vue.extend({\n methods: {\n hasListener: function hasListener(name) {\n // Only includes listeners registered via `v-on:name`\n var $listeners = this.$listeners || {}; // Includes `v-on:name` and `this.$on('name')` registered listeners\n // Note this property is not part of the public Vue API, but it is\n // the only way to determine if a listener was added via `vm.$on`\n\n var $events = this._events || {}; // Registered listeners in `this._events` are always an array,\n // but might be zero length\n\n return !isUndefined($listeners[name]) || isArray($events[name]) && $events[name].length > 0;\n }\n }\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { Vue as OurVue } from '../vue';\nimport { NAME, PROP_NAME } from '../constants/config';\nimport { cloneDeep } from './clone-deep';\nimport { getRaw } from './get';\nimport { isArray, isPlainObject, isString, isUndefined } from './inspect';\nimport { getOwnPropertyNames } from './object';\nimport { warn } from './warn'; // Config manager class\n\nvar BvConfig = /*#__PURE__*/function () {\n function BvConfig() {\n _classCallCheck(this, BvConfig);\n\n this.$_config = {};\n } // Method to merge in user config parameters\n\n\n _createClass(BvConfig, [{\n key: \"setConfig\",\n value: function setConfig() {\n var _this = this;\n\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /* istanbul ignore next */\n if (!isPlainObject(config)) {\n return;\n }\n\n var configKeys = getOwnPropertyNames(config);\n configKeys.forEach(function (key) {\n /* istanbul ignore next */\n var subConfig = config[key];\n\n if (key === 'breakpoints') {\n /* istanbul ignore if */\n if (!isArray(subConfig) || subConfig.length < 2 || subConfig.some(function (b) {\n return !isString(b) || b.length === 0;\n })) {\n warn('\"breakpoints\" must be an array of at least 2 breakpoint names', NAME);\n } else {\n _this.$_config[key] = cloneDeep(subConfig);\n }\n } else if (isPlainObject(subConfig)) {\n // Component prop defaults\n _this.$_config[key] = getOwnPropertyNames(subConfig).reduce(function (config, prop) {\n if (!isUndefined(subConfig[prop])) {\n config[prop] = cloneDeep(subConfig[prop]);\n }\n\n return config;\n }, _this.$_config[key] || {});\n }\n });\n } // Clear the config\n\n }, {\n key: \"resetConfig\",\n value: function resetConfig() {\n this.$_config = {};\n } // Returns a deep copy of the user config\n\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return cloneDeep(this.$_config);\n } // Returns a deep copy of the config value\n\n }, {\n key: \"getConfigValue\",\n value: function getConfigValue(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n return cloneDeep(getRaw(this.$_config, key, defaultValue));\n }\n }]);\n\n return BvConfig;\n}(); // Method for applying a global config\n\n\nexport var setConfig = function setConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var Vue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OurVue;\n // Ensure we have a `$bvConfig` Object on the Vue prototype\n // We set on Vue and OurVue just in case consumer has not set an alias of `vue`\n Vue.prototype[PROP_NAME] = OurVue.prototype[PROP_NAME] = Vue.prototype[PROP_NAME] || OurVue.prototype[PROP_NAME] || new BvConfig(); // Apply the config values\n\n Vue.prototype[PROP_NAME].setConfig(config);\n}; // Method for resetting the user config\n// Exported for testing purposes only\n\nexport var resetConfig = function resetConfig() {\n if (OurVue.prototype[PROP_NAME] && OurVue.prototype[PROP_NAME].resetConfig) {\n OurVue.prototype[PROP_NAME].resetConfig();\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue as OurVue } from '../vue';\nimport { HAS_WINDOW_SUPPORT, IS_JSDOM } from '../constants/env';\nimport { setConfig } from './config-set';\nimport { warn } from './warn';\n/**\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\n * @param {object} Vue\n */\n\nexport var checkMultipleVue = function () {\n var checkMultipleVueWarned = false;\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');\n return function (Vue) {\n /* istanbul ignore next */\n if (!checkMultipleVueWarned && OurVue !== Vue && !IS_JSDOM) {\n warn(MULTIPLE_VUE_WARNING);\n }\n\n checkMultipleVueWarned = true;\n };\n}();\n/**\n * Plugin install factory function.\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactory = function installFactory() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref.components,\n directives = _ref.directives,\n plugins = _ref.plugins;\n\n var install = function install(Vue) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n setConfig(config, Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin install factory function (no plugin config option).\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactoryNoConfig = function installFactoryNoConfig() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref2.components,\n directives = _ref2.directives,\n plugins = _ref2.plugins;\n\n var install = function install(Vue) {\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin object factory function.\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactory = function pluginFactory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactory(options)\n });\n};\n/**\n * Plugin object factory function (no config option).\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactoryNoConfig = function pluginFactoryNoConfig() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactoryNoConfig(options)\n });\n};\n/**\n * Load a group of plugins.\n * @param {object} Vue\n * @param {object} Plugin definitions\n */\n\nexport var registerPlugins = function registerPlugins(Vue) {\n var plugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var plugin in plugins) {\n if (plugin && plugins[plugin]) {\n Vue.use(plugins[plugin]);\n }\n }\n};\n/**\n * Load a component.\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\n\nexport var registerComponent = function registerComponent(Vue, name, def) {\n if (Vue && name && def) {\n Vue.component(name, def);\n }\n};\n/**\n * Load a group of components.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\n\nexport var registerComponents = function registerComponents(Vue) {\n var components = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var component in components) {\n registerComponent(Vue, component, components[component]);\n }\n};\n/**\n * Load a directive.\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\n\nexport var registerDirective = function registerDirective(Vue, name, def) {\n if (Vue && name && def) {\n // Ensure that any leading V is removed from the\n // name, as Vue adds it automatically\n Vue.directive(name.replace(/^VB/, 'B'), def);\n }\n};\n/**\n * Load a group of directives.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\n\nexport var registerDirectives = function registerDirectives(Vue) {\n var directives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var directive in directives) {\n registerDirective(Vue, directive, directives[directive]);\n }\n};\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\n\nexport var vueUse = function vueUse(VuePlugin) {\n /* istanbul ignore next */\n if (HAS_WINDOW_SUPPORT && window.Vue) {\n window.Vue.use(VuePlugin);\n }\n /* istanbul ignore next */\n\n\n if (HAS_WINDOW_SUPPORT && VuePlugin.NAME) {\n window[VuePlugin.NAME] = VuePlugin;\n }\n};","import { makeModelMixin } from '../utils/model';\n\nvar _makeModelMixin = makeModelMixin('value'),\n mixin = _makeModelMixin.mixin,\n props = _makeModelMixin.props,\n prop = _makeModelMixin.prop,\n event = _makeModelMixin.event;\n\nexport { mixin as modelMixin, props, prop as MODEL_PROP_NAME, event as MODEL_EVENT_NAME };","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { NAME_PAGINATION } from '../constants/components';\nimport { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_FUNCTION_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_ELLIPSIS_TEXT, SLOT_NAME_FIRST_TEXT, SLOT_NAME_LAST_TEXT, SLOT_NAME_NEXT_TEXT, SLOT_NAME_PAGE, SLOT_NAME_PREV_TEXT } from '../constants/slots';\nimport { createArray } from '../utils/array';\nimport { attemptFocus, getActiveElement, getAttr, isDisabled, isVisible, selectAll } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { isFunction, isNull } from '../utils/inspect';\nimport { mathFloor, mathMax, mathMin } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string';\nimport { warn } from '../utils/warn';\nimport { normalizeSlotMixin } from '../mixins/normalize-slot';\nimport { BLink } from '../components/link/link'; // Common props, computed, data, render function, and methods\n// for `` and ``\n// --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: null,\n\n /* istanbul ignore next */\n validator: function validator(value) {\n if (!isNull(value) && toInteger(value, 0) < 1) {\n warn('\"v-model\" value must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // Threshold of limit size when we start/stop showing ellipsis\n\nvar ELLIPSIS_THRESHOLD = 3; // Default # of buttons limit\n\nvar DEFAULT_LIMIT = 5; // --- Helper methods ---\n// Make an array of N to N+X\n\nvar makePageArray = function makePageArray(startNumber, numberOfPages) {\n return createArray(numberOfPages, function (_, i) {\n return {\n number: startNumber + i,\n classes: null\n };\n });\n}; // Sanitize the provided limit value (converting to a number)\n\n\nvar sanitizeLimit = function sanitizeLimit(value) {\n var limit = toInteger(value) || 1;\n return limit < 1 ? DEFAULT_LIMIT : limit;\n}; // Sanitize the provided current page number (converting to a number)\n\n\nvar sanitizeCurrentPage = function sanitizeCurrentPage(val, numberOfPages) {\n var page = toInteger(val) || 1;\n return page > numberOfPages ? numberOfPages : page < 1 ? 1 : page;\n}; // Links don't normally respond to SPACE, so we add that\n// functionality via this handler\n\n\nvar onSpaceKey = function onSpaceKey(event) {\n if (event.keyCode === CODE_SPACE) {\n // Stop page from scrolling\n stopEvent(event, {\n immediatePropagation: true\n }); // Trigger the click event on the link\n\n event.currentTarget.click();\n return false;\n }\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n align: makeProp(PROP_TYPE_STRING, 'left'),\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Pagination'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n ellipsisClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n ellipsisText: makeProp(PROP_TYPE_STRING, \"\\u2026\"),\n // '…'\n firstClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n firstNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n firstText: makeProp(PROP_TYPE_STRING, \"\\xAB\"),\n // '«'\n hideEllipsis: makeProp(PROP_TYPE_BOOLEAN, false),\n hideGotoEndButtons: makeProp(PROP_TYPE_BOOLEAN, false),\n labelFirstPage: makeProp(PROP_TYPE_STRING, 'Go to first page'),\n labelLastPage: makeProp(PROP_TYPE_STRING, 'Go to last page'),\n labelNextPage: makeProp(PROP_TYPE_STRING, 'Go to next page'),\n labelPage: makeProp(PROP_TYPE_FUNCTION_STRING, 'Go to page'),\n labelPrevPage: makeProp(PROP_TYPE_STRING, 'Go to previous page'),\n lastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n lastNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n lastText: makeProp(PROP_TYPE_STRING, \"\\xBB\"),\n // '»'\n limit: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_LIMIT,\n /* istanbul ignore next */\n function (value) {\n if (toInteger(value, 0) < 1) {\n warn('Prop \"limit\" must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }),\n nextClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n nextText: makeProp(PROP_TYPE_STRING, \"\\u203A\"),\n // '›'\n pageClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n prevClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n prevText: makeProp(PROP_TYPE_STRING, \"\\u2039\"),\n // '‹'\n size: makeProp(PROP_TYPE_STRING)\n})), 'pagination'); // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n // `-1` signifies no page initially selected\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n currentPage = currentPage > 0 ? currentPage : -1;\n return {\n currentPage: currentPage,\n localNumberOfPages: 1,\n localLimit: DEFAULT_LIMIT\n };\n },\n computed: {\n btnSize: function btnSize() {\n var size = this.size;\n return size ? \"pagination-\".concat(size) : '';\n },\n alignment: function alignment() {\n var align = this.align;\n\n if (align === 'center') {\n return 'justify-content-center';\n } else if (align === 'end' || align === 'right') {\n return 'justify-content-end';\n } else if (align === 'fill') {\n // The page-items will also have 'flex-fill' added\n // We add text centering to make the button appearance better in fill mode\n return 'text-center';\n }\n\n return '';\n },\n styleClass: function styleClass() {\n return this.pills ? 'b-pagination-pills' : '';\n },\n computedCurrentPage: function computedCurrentPage() {\n return sanitizeCurrentPage(this.currentPage, this.localNumberOfPages);\n },\n paginationParams: function paginationParams() {\n // Determine if we should show the the ellipsis\n var limit = this.localLimit,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage,\n hideEllipsis = this.hideEllipsis,\n firstNumber = this.firstNumber,\n lastNumber = this.lastNumber;\n var showFirstDots = false;\n var showLastDots = false;\n var numberOfLinks = limit;\n var startNumber = 1;\n\n if (numberOfPages <= limit) {\n // Special case: Less pages available than the limit of displayed pages\n numberOfLinks = numberOfPages;\n } else if (currentPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || lastNumber) {\n showLastDots = true;\n numberOfLinks = limit - (firstNumber ? 0 : 1);\n }\n\n numberOfLinks = mathMin(numberOfLinks, limit);\n } else if (numberOfPages - currentPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || firstNumber) {\n showFirstDots = true;\n numberOfLinks = limit - (lastNumber ? 0 : 1);\n }\n\n startNumber = numberOfPages - numberOfLinks + 1;\n } else {\n // We are somewhere in the middle of the page list\n if (limit > ELLIPSIS_THRESHOLD) {\n numberOfLinks = limit - (hideEllipsis ? 0 : 2);\n showFirstDots = !!(!hideEllipsis || firstNumber);\n showLastDots = !!(!hideEllipsis || lastNumber);\n }\n\n startNumber = currentPage - mathFloor(numberOfLinks / 2);\n } // Sanity checks\n\n /* istanbul ignore if */\n\n\n if (startNumber < 1) {\n startNumber = 1;\n showFirstDots = false;\n } else if (startNumber > numberOfPages - numberOfLinks) {\n startNumber = numberOfPages - numberOfLinks + 1;\n showLastDots = false;\n }\n\n if (showFirstDots && firstNumber && startNumber < 4) {\n numberOfLinks = numberOfLinks + 2;\n startNumber = 1;\n showFirstDots = false;\n }\n\n var lastPageNumber = startNumber + numberOfLinks - 1;\n\n if (showLastDots && lastNumber && lastPageNumber > numberOfPages - 3) {\n numberOfLinks = numberOfLinks + (lastPageNumber === numberOfPages - 2 ? 2 : 3);\n showLastDots = false;\n } // Special handling for lower limits (where ellipsis are never shown)\n\n\n if (limit <= ELLIPSIS_THRESHOLD) {\n if (firstNumber && startNumber === 1) {\n numberOfLinks = mathMin(numberOfLinks + 1, numberOfPages, limit + 1);\n } else if (lastNumber && numberOfPages === startNumber + numberOfLinks - 1) {\n startNumber = mathMax(startNumber - 1, 1);\n numberOfLinks = mathMin(numberOfPages - startNumber + 1, numberOfPages, limit + 1);\n }\n }\n\n numberOfLinks = mathMin(numberOfLinks, numberOfPages - startNumber + 1);\n return {\n showFirstDots: showFirstDots,\n showLastDots: showLastDots,\n numberOfLinks: numberOfLinks,\n startNumber: startNumber\n };\n },\n pageList: function pageList() {\n // Generates the pageList array\n var _this$paginationParam = this.paginationParams,\n numberOfLinks = _this$paginationParam.numberOfLinks,\n startNumber = _this$paginationParam.startNumber;\n var currentPage = this.computedCurrentPage; // Generate list of page numbers\n\n var pages = makePageArray(startNumber, numberOfLinks); // We limit to a total of 3 page buttons on XS screens\n // So add classes to page links to hide them for XS breakpoint\n // Note: Ellipsis will also be hidden on XS screens\n // TODO: Make this visual limit configurable based on breakpoint(s)\n\n if (pages.length > 3) {\n var idx = currentPage - startNumber; // THe following is a bootstrap-vue custom utility class\n\n var classes = 'bv-d-xs-down-none';\n\n if (idx === 0) {\n // Keep leftmost 3 buttons visible when current page is first page\n for (var i = 3; i < pages.length; i++) {\n pages[i].classes = classes;\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible when current page is last page\n for (var _i = 0; _i < pages.length - 3; _i++) {\n pages[_i].classes = classes;\n }\n } else {\n // Hide all except current page, current page - 1 and current page + 1\n for (var _i2 = 0; _i2 < idx - 1; _i2++) {\n // hide some left button(s)\n pages[_i2].classes = classes;\n }\n\n for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {\n // hide some right button(s)\n pages[_i3].classes = classes;\n }\n }\n }\n\n return pages;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = sanitizeCurrentPage(newValue, this.localNumberOfPages);\n }\n }), _defineProperty(_watch, \"currentPage\", function currentPage(newValue, oldValue) {\n if (newValue !== oldValue) {\n // Emit `null` if no page selected\n this.$emit(MODEL_EVENT_NAME, newValue > 0 ? newValue : null);\n }\n }), _defineProperty(_watch, \"limit\", function limit(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localLimit = sanitizeLimit(newValue);\n }\n }), _watch),\n created: function created() {\n var _this = this;\n\n // Set our default values in data\n this.localLimit = sanitizeLimit(this.limit);\n this.$nextTick(function () {\n // Sanity check\n _this.currentPage = _this.currentPage > _this.localNumberOfPages ? _this.localNumberOfPages : _this.currentPage;\n });\n },\n methods: {\n handleKeyNav: function handleKeyNav(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n /* istanbul ignore if */\n\n if (this.isNav) {\n // We disable left/right keyboard navigation in ``\n return;\n }\n\n if (keyCode === CODE_LEFT || keyCode === CODE_UP) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusFirst() : this.focusPrev();\n } else if (keyCode === CODE_RIGHT || keyCode === CODE_DOWN) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusLast() : this.focusNext();\n }\n },\n getButtons: function getButtons() {\n // Return only buttons that are visible\n return selectAll('button.page-link, a.page-link', this.$el).filter(function (btn) {\n return isVisible(btn);\n });\n },\n focusCurrent: function focusCurrent() {\n var _this2 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this2.getButtons().find(function (el) {\n return toInteger(getAttr(el, 'aria-posinset'), 0) === _this2.computedCurrentPage;\n });\n\n if (!attemptFocus(btn)) {\n // Fallback if current page is not in button list\n _this2.focusFirst();\n }\n });\n },\n focusFirst: function focusFirst() {\n var _this3 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this3.getButtons().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusLast: function focusLast() {\n var _this4 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this4.getButtons().reverse().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusPrev: function focusPrev() {\n var _this5 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this5.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index > 0 && !isDisabled(buttons[index - 1])) {\n attemptFocus(buttons[index - 1]);\n }\n });\n },\n focusNext: function focusNext() {\n var _this6 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this6.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index < buttons.length - 1 && !isDisabled(buttons[index + 1])) {\n attemptFocus(buttons[index + 1]);\n }\n });\n }\n },\n render: function render(h) {\n var _this7 = this;\n\n var disabled = this.disabled,\n labelPage = this.labelPage,\n ariaLabel = this.ariaLabel,\n isNav = this.isNav,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage;\n var pageNumbers = this.pageList.map(function (p) {\n return p.number;\n });\n var _this$paginationParam2 = this.paginationParams,\n showFirstDots = _this$paginationParam2.showFirstDots,\n showLastDots = _this$paginationParam2.showLastDots;\n var fill = this.align === 'fill';\n var $buttons = []; // Helper function and flag\n\n var isActivePage = function isActivePage(pageNumber) {\n return pageNumber === currentPage;\n };\n\n var noCurrentPage = this.currentPage < 1; // Factory function for prev/next/first/last buttons\n\n var makeEndBtn = function makeEndBtn(linkTo, ariaLabel, btnSlot, btnText, btnClass, pageTest, key) {\n var isDisabled = disabled || isActivePage(pageTest) || noCurrentPage || linkTo < 1 || linkTo > numberOfPages;\n var pageNumber = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo;\n var scope = {\n disabled: isDisabled,\n page: pageNumber,\n index: pageNumber - 1\n };\n var $btnContent = _this7.normalizeSlot(btnSlot, scope) || toString(btnText) || h();\n var $inner = h(isDisabled ? 'span' : isNav ? BLink : 'button', {\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !isDisabled && fill\n },\n props: isDisabled || !isNav ? {} : _this7.linkProps(linkTo),\n attrs: {\n role: isNav ? null : 'menuitem',\n type: isNav || isDisabled ? null : 'button',\n tabindex: isDisabled || isNav ? null : '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-disabled': isDisabled ? 'true' : null\n },\n on: isDisabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, linkTo);\n },\n keydown: onSpaceKey\n }\n }, [$btnContent]);\n return h('li', {\n key: key,\n staticClass: 'page-item',\n class: [{\n disabled: isDisabled,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !isDisabled\n }, btnClass],\n attrs: {\n role: isNav ? null : 'presentation',\n 'aria-hidden': isDisabled ? 'true' : null\n }\n }, [$inner]);\n }; // Ellipsis factory\n\n\n var makeEllipsis = function makeEllipsis(isLast) {\n return h('li', {\n staticClass: 'page-item',\n class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : '', _this7.ellipsisClass],\n attrs: {\n role: 'separator'\n },\n key: \"ellipsis-\".concat(isLast ? 'last' : 'first')\n }, [h('span', {\n staticClass: 'page-link'\n }, [_this7.normalizeSlot(SLOT_NAME_ELLIPSIS_TEXT) || toString(_this7.ellipsisText) || h()])]);\n }; // Page button factory\n\n\n var makePageButton = function makePageButton(page, idx) {\n var pageNumber = page.number;\n var active = isActivePage(pageNumber) && !noCurrentPage; // Active page will have tabindex of 0, or if no current page and first page button\n\n var tabIndex = disabled ? null : active || noCurrentPage && idx === 0 ? '0' : '-1';\n var attrs = {\n role: isNav ? null : 'menuitemradio',\n type: isNav || disabled ? null : 'button',\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-label': hasPropFunction(labelPage) ?\n /* istanbul ignore next */\n labelPage(pageNumber) : \"\".concat(isFunction(labelPage) ? labelPage() : labelPage, \" \").concat(pageNumber),\n 'aria-checked': isNav ? null : active ? 'true' : 'false',\n 'aria-current': isNav && active ? 'page' : null,\n 'aria-posinset': isNav ? null : pageNumber,\n 'aria-setsize': isNav ? null : numberOfPages,\n // ARIA \"roving tabindex\" method (except in `isNav` mode)\n tabindex: isNav ? null : tabIndex\n };\n var btnContent = toString(_this7.makePage(pageNumber));\n var scope = {\n page: pageNumber,\n index: pageNumber - 1,\n content: btnContent,\n active: active,\n disabled: disabled\n };\n var $inner = h(disabled ? 'span' : isNav ? BLink : 'button', {\n props: disabled || !isNav ? {} : _this7.linkProps(pageNumber),\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !disabled && fill\n },\n attrs: attrs,\n on: disabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, pageNumber);\n },\n keydown: onSpaceKey\n }\n }, [_this7.normalizeSlot(SLOT_NAME_PAGE, scope) || btnContent]);\n return h('li', {\n staticClass: 'page-item',\n class: [{\n disabled: disabled,\n active: active,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !disabled\n }, page.classes, _this7.pageClass],\n attrs: {\n role: isNav ? null : 'presentation'\n },\n key: \"page-\".concat(pageNumber)\n }, [$inner]);\n }; // Goto first page button\n // Don't render button when `hideGotoEndButtons` or `firstNumber` is set\n\n\n var $firstPageBtn = h();\n\n if (!this.firstNumber && !this.hideGotoEndButtons) {\n $firstPageBtn = makeEndBtn(1, this.labelFirstPage, SLOT_NAME_FIRST_TEXT, this.firstText, this.firstClass, 1, 'pagination-goto-first');\n }\n\n $buttons.push($firstPageBtn); // Goto previous page button\n\n $buttons.push(makeEndBtn(currentPage - 1, this.labelPrevPage, SLOT_NAME_PREV_TEXT, this.prevText, this.prevClass, 1, 'pagination-goto-prev')); // Show first (1) button?\n\n $buttons.push(this.firstNumber && pageNumbers[0] !== 1 ? makePageButton({\n number: 1\n }, 0) : h()); // First ellipsis\n\n $buttons.push(showFirstDots ? makeEllipsis(false) : h()); // Individual page links\n\n this.pageList.forEach(function (page, idx) {\n var offset = showFirstDots && _this7.firstNumber && pageNumbers[0] !== 1 ? 1 : 0;\n $buttons.push(makePageButton(page, idx + offset));\n }); // Last ellipsis\n\n $buttons.push(showLastDots ? makeEllipsis(true) : h()); // Show last page button?\n\n $buttons.push(this.lastNumber && pageNumbers[pageNumbers.length - 1] !== numberOfPages ? makePageButton({\n number: numberOfPages\n }, -1) : h()); // Goto next page button\n\n $buttons.push(makeEndBtn(currentPage + 1, this.labelNextPage, SLOT_NAME_NEXT_TEXT, this.nextText, this.nextClass, numberOfPages, 'pagination-goto-next')); // Goto last page button\n // Don't render button when `hideGotoEndButtons` or `lastNumber` is set\n\n var $lastPageBtn = h();\n\n if (!this.lastNumber && !this.hideGotoEndButtons) {\n $lastPageBtn = makeEndBtn(numberOfPages, this.labelLastPage, SLOT_NAME_LAST_TEXT, this.lastText, this.lastClass, numberOfPages, 'pagination-goto-last');\n }\n\n $buttons.push($lastPageBtn); // Assemble the pagination buttons\n\n var $pagination = h('ul', {\n staticClass: 'pagination',\n class: ['b-pagination', this.btnSize, this.alignment, this.styleClass],\n attrs: {\n role: isNav ? null : 'menubar',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-label': isNav ? null : ariaLabel || null\n },\n // We disable keyboard left/right nav when ``\n on: isNav ? {} : {\n keydown: this.handleKeyNav\n },\n ref: 'ul'\n }, $buttons); // If we are ``, wrap in `