{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/spinner/spinner.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./src/@core/utils/filter.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/directives/tooltip/tooltip.js","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar-group.js","webpack:///./node_modules/bootstrap-vue/esm/directives/toggle/toggle.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav-item.js","webpack:///./node_modules/bootstrap-vue/esm/components/progress/progress.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack:///./src/views/pages/profile/Profile.vue?18db","webpack:///./src/views/pages/profile/ProfileHeader.vue?2336","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar-toggle.js","webpack:///src/views/pages/profile/ProfileHeader.vue","webpack:///./src/views/pages/profile/ProfileHeader.vue?fad0","webpack:///./src/views/pages/profile/ProfileHeader.vue","webpack:///./src/views/pages/profile/ProfileAbout.vue?55d7","webpack:///src/views/pages/profile/ProfileAbout.vue","webpack:///./src/views/pages/profile/ProfileAbout.vue?0cb2","webpack:///./src/views/pages/profile/ProfileAbout.vue","webpack:///./src/views/pages/profile/ProfileSuggestedPages.vue?8d35","webpack:///src/views/pages/profile/ProfileSuggestedPages.vue","webpack:///./src/views/pages/profile/ProfileSuggestedPages.vue?25c0","webpack:///./src/views/pages/profile/ProfileSuggestedPages.vue","webpack:///./src/views/pages/profile/ProfileTwitterFeed.vue?2c7e","webpack:///src/views/pages/profile/ProfileTwitterFeed.vue","webpack:///./src/views/pages/profile/ProfileTwitterFeed.vue?e2e2","webpack:///./src/views/pages/profile/ProfileTwitterFeed.vue","webpack:///./src/views/pages/profile/ProfilePost.vue?694d","webpack:///src/views/pages/profile/ProfilePost.vue","webpack:///./src/views/pages/profile/ProfilePost.vue?cb1e","webpack:///./src/views/pages/profile/ProfilePost.vue","webpack:///./src/views/pages/profile/ProfileLatestPhotos.vue?dfe4","webpack:///src/views/pages/profile/ProfileLatestPhotos.vue","webpack:///./src/views/pages/profile/ProfileLatestPhotos.vue?b7f8","webpack:///./src/views/pages/profile/ProfileLatestPhotos.vue","webpack:///./src/views/pages/profile/ProfileSuggestion.vue?6c80","webpack:///src/views/pages/profile/ProfileSuggestion.vue","webpack:///./src/views/pages/profile/ProfileSuggestion.vue?1571","webpack:///./src/views/pages/profile/ProfileSuggestion.vue","webpack:///./src/views/pages/profile/ProfilePolls.vue?0e07","webpack:///src/views/pages/profile/ProfilePolls.vue","webpack:///./src/views/pages/profile/ProfilePolls.vue?5dc7","webpack:///./src/views/pages/profile/ProfilePolls.vue","webpack:///./src/views/pages/profile/profileBottom.vue?63e3","webpack:///src/views/pages/profile/profileBottom.vue","webpack:///./src/views/pages/profile/profileBottom.vue?3415","webpack:///./src/views/pages/profile/profileBottom.vue","webpack:///src/views/pages/profile/Profile.vue","webpack:///./src/views/pages/profile/Profile.vue?c44f","webpack:///./src/views/pages/profile/Profile.vue","webpack:///./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./src/views/pages/profile/Profile.vue?7cc3","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack:///./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/form-radio.js","webpack:///./node_modules/bootstrap-vue/esm/components/embed/embed.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./src/@core/utils/utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/progress/progress-bar.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","props","label","role","small","tag","type","variant","BSpinner","extend","name","functional","render","h","_ref","_class","data","slots","scopedSlots","$slots","$scopedSlots","$label","staticClass","attrs","class","concat","formSelectionMixin","computed","selectionStart","cache","get","this","$refs","input","set","val","selectionEnd","selectionDirection","methods","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_objectSpread","target","i","length","source","forEach","getOwnPropertyDescriptors","defineProperties","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","icon","stacked","BIcon","parent","replace","kFormatter","num","toFixed","title","replacer","str","toString","arr","split","capitalizedArray","word","capitalized","charAt","toUpperCase","slice","join","avatarText","nameArray","map","formatDate","formatting","month","day","year","Intl","DateTimeFormat","format","Date","formatDateToMonthShort","toTimeForCurrentDay","date","isToday","hour","minute","filterTags","toInteger","requireObjectCoercible","module","exports","repeat","count","String","result","n","Infinity","RangeError","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","speciesConstructor","advanceStringIndex","toLength","callRegExpExec","regexpExec","fails","arrayPush","min","Math","MAX_UINT32","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","string","lim","undefined","call","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","index","test","O","splitter","regexp","res","done","rx","S","C","unicodeMatching","p","q","A","e","z","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","BV_TOOLTIP","DefaultTrigger","validTriggers","focus","hover","click","blur","manual","htmlRE","noninteractiveRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","parseBindings","bindings","vnode","config","trigger","placement","fallbackPlacement","container","animation","offset","id","html","interactive","disabled","delay","boundary","boundaryPadding","customClass","show","hide","arg","modifiers","mod","selectedTriggers","trim","toLowerCase","applyTooltip","el","context","_scopeId","__bv_prev_data__","$on","updateData","triggers","noFade","oldData","newData","prop","removeTooltip","$destroy","VBTooltip","bind","componentUpdated","$nextTick","unbind","overlap","rounded","size","square","BAvatarGroup","mixins","provide","bvAvatarGroup","computedSize","overlapScale","paddingStyle","paddingLeft","paddingRight","$inner","style","normalizeSlot","CLASS_BV_TOGGLE_COLLAPSED","CLASS_BV_TOGGLE_NOT_COLLAPSED","BV_BASE","BV_TOGGLE_ROOT_HANDLER","BV_TOGGLE_CLICK_HANDLER","BV_TOGGLE_STATE","BV_TOGGLE_TARGETS","STRING_FALSE","STRING_TRUE","ATTR_ARIA_CONTROLS","ATTR_ARIA_EXPANDED","ATTR_ROLE","ATTR_TABINDEX","STYLE_OVERFLOW_ANCHOR","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","KEYDOWN_KEY_CODES","isNonStandardTag","tagName","getTargets","targets","href","t","indexOf","removeClickListener","handler","addClickListener","event","keyCode","$root","$emit","removeRootListeners","$off","addRootListeners","state","setToggleState","resetProp","handleUpdate","binding","VBToggle","updated","classof","TypeError","_makeModelMixin","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","ariaInvalid","autocomplete","debounce","formatter","lazy","lazyFormatter","number","placeholder","plaintext","readonly","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","watch","newValue","stringifyValue","modifiedValue","clearDebounce","created","$_inputDebounceTimer","mounted","beforeDestroy","clearTimeout","formatValue","force","updateValue","_this","doUpdate","$input","setTimeout","onInput","composing","formattedValue","defaultPrevented","propagation","onChange","onBlur","$el","linkAttrs","linkClasses","BNavItem","listeners","children","on","progressBarProps","animated","height","max","precision","showProgress","showValue","striped","BProgress","bvProgress","progressHeight","$childNodes","$props","toObject","regExpExec","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","it","REPLACE","nativeReplace","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","global","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","position","captures","j","namedCaptures","groups","replacerArgs","replacement","getSubstitution","tailPos","m","ch","capture","f","computeJustifyContent","align","cardHeader","fill","justified","pills","tabs","vertical","BNav","_vm","_h","$createElement","_c","_self","profileData","header","userAbout","suggestedPages","twitterFeeds","post","latestPhotos","suggestions","polls","_e","staticRenderFns","headerData","coverImg","avatar","_v","_s","username","designation","_u","fn","proxy","CLASS_NAME","BNavbarToggle","directives","toggleState","listenOnRoot","handleStateEvt","onClick","expanded","BCard","BTabs","BButton","BNavbar","BCollapse","BImg","Ripple","default","component","_l","BCardText","aboutData","subtitle","favorite","BAvatar","pagesData","imgUrl","desc","tags","BLink","twitterFeed","postTime","postText","postImg","postVid","youLiked","likes","avatarData","rawName","expression","likedCount","comments","share","comment","ind","commentsLikes","BFormTextarea","BFormGroup","BRow","BCol","BEmbed","posts","img","latestImages","mutualFriend","model","callback","$$v","Selected","BFormRadio","pollsData","BOverlay","ProfileHeader","ProfileAbout","ProfileSuggestedPages","ProfileTwitterFeed","ProfilePost","ProfileLatestPhotos","ProfileSuggestion","ProfilePolls","profileBottom","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","prototype","OBSERVER_PROP_NAME","VisibilityObserver","options","margin","once","observer","visible","doneOnce","createObserver","stop","IntersectionObserver","root","rootMargin","threshold","_unused","observe","entries","entry","isIntersecting","Boolean","intersectionRatio","disconnect","destroy","_prevModifiers","_ref2","oldValue","VBVisible","stableSort","array","compareFn","a","sort","b","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","content","arrowPadding","BVTooltip","activeTrigger","localShow","templateType","computedId","computedDelay","computedTriggers","isWithActiveTrigger","computedTemplateData","newTriggers","oldTriggers","unListen","listen","handleTemplateUpdate","disable","enable","_this2","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","$once","getTarget","document","body","scopeId","deactivated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","getTemplate","_this3","titleUpdated","fixTitle","createTemplateAndShow","getContainer","Template","$tip","propsData","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","$mount","appendChild","createElement","hideTemplate","clearActiveTriggers","localPlacementTarget","removeAriaDescribedby","restoreTitle","getTemplateElement","_this4","dropdownOpen","showEvt","buildEvent","cancelable","emitEvent","addAriaDescribedby","tip","hideEvt","prevHoverState","leave","getTargetId","isInModal","isDropdown","clearInterval","_this5","d","relatedTarget","componentId","vueTarget","bvEvent","emitOnRoot","_this6","setRootListener","_this7","events","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","parentNode","_this9","documentElement","__vue__","enter","eventTarget","currentTarget","toggle","_this10","_this11","POSITION_COVER","top","left","bottom","right","bgColor","fixed","noCenter","noWrap","opacity","overlayTag","spinnerSmall","spinnerType","spinnerVariant","wrapTag","zIndex","computedRounded","computedVariant","slotScope","defaultOverlayFn","$overlay","$background","backgroundColor","backdropFilter","$content","transform","appear","maxRows","noAutoShrink","noResize","rows","wrap","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","computedMaxRows","computedAttrs","required","safeId","form","computedAriaInvalid","computedListeners","bvListeners","change","setHeight","visibleCallback","computeHeight","$isServer","lineHeight","border","borderTopWidth","borderBottomWidth","padding","paddingTop","paddingBottom","minHeight","oldHeight","scrollHeight","contentRows","domProps","ref","inject","bvGroup","from","computedLocalChecked","TYPES","aspect","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","reduce","alignContent","alignH","alignV","noGutters","_classList$push","classList","c","$","IndexedObject","toIndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","proto","forced","plain","formCustomMixin","custom","formSizeMixin","thisNumberValue","nativeToFixed","pow","x","acc","log","x2","FORCED","fractionDigits","k","fractDigits","sign","multiply","c2","divide","dataToString","s","isObject","today","getDate","getMonth","getFullYear","isDynamicRouteActive","route","router","resolve","resolvedRoute","path","currentRoute","useRouter","vm","getCurrentInstance","reactive","$route","r","toRefs","$router","labelHtml","BProgressBar","progressBarClasses","computedAnimated","computedStriped","progressBarStyles","width","computedValue","computedMax","computedPrecision","computedProgress","computedShowProgress","computedShowValue","$children","hasNormalizedSlot","print","toggleable","bvNavbar","breakpointClass","xs","_watch","_methods","ariaLabel","ariaLabelledby","button","buttonVariant","inline","formRadioCheckMixin","inheritAttrs","localChecked","isGroup","hasFocus","isChecked","isRadio","isBtnMode","buttons","isPlain","isCustom","isSwitch","switches","switch","isInline","isDisabled","isRequired","computedName","groupName","computedForm","computedState","computedButtonVariant","buttonClasses","bvAttrs","computedLocalCheckedWatcher","checked","handleChange","handleFocus","$button","for","textTag","SELECTOR","autofocus","formControlMixin","handleAutofocus","activated","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","BVPopper","attachment","getAttachment","popperConfig","getOffset","flip","behavior","arrow","element","preventOverflow","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","$_popper","popperCreate","handleDestroy","beforeMount","updatePopper","destroyPopper","destroyed","removeChild","arrowOffset","scheduleUpdate","renderTemplate","beforeEnter","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","extends","templateClasses","noninteractive","templateAttributes","$attrs","tabindex","scopedStyleAttrs","templateListeners","mouseenter","mouseleave","focusin","focusout","$title","innerHTML","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","linkProps","alt","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","buttonType","src","text","localSrc","fontStyle","fontSize","marginStyle","marginLeft","marginRight","badgeStyle","onImgError","_class2","link","error","$badge","hasBadgeSlot","badgeText","componentData","noop","notDisabled","tab","BVTabButton","bvTabs","controls","noKeyNav","posInSet","setSize","tabIndex","handleEvt","shiftKey","_this$tab","localActive","titleItemClass","titleLinkClass","titleLinkAttributes","$link","active","activeNavItemClass","keydown","navProps","activeTabClass","card","contentClass","end","navClass","navWrapperClass","noNavStyle","currentTab","registeredTabs","fade","localNavClass","classes","$tab","activateTab","previousTab","nextTab","updateTabs","$_observer","setObserver","registerTab","unregisterTab","$t","childList","subtree","attributes","attributeFilter","getTabs","$tabs","_isTab","order","selector","reverse","find","getButtonForTab","$btn","updateButton","$forceUpdate","tabEvent","deactivateTab","focusButton","emitTabClick","clickTab","firstTab","currentIndex","lastTab","$activeTab","$fallbackTab","$buttons","_on","controlledBy","refInFor","$nav","$empty","col","row"],"mappings":"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","file":"js/chunk-aa051c9c.3c18f503.js","sourcesContent":["function _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, mergeData } from '../../vue';\nimport { NAME_SPINNER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_LABEL } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n label: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING, 'status'),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n type: makeProp(PROP_TYPE_STRING, 'border'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_SPINNER); // --- Main component ---\n// @vue/component\n\nexport var BSpinner = /*#__PURE__*/Vue.extend({\n name: NAME_SPINNER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $label = normalizeSlot(SLOT_NAME_LABEL, {}, $scopedSlots, $slots) || props.label;\n\n if ($label) {\n $label = h('span', {\n staticClass: 'sr-only'\n }, $label);\n }\n\n return h(props.tag, mergeData(data, {\n attrs: {\n role: $label ? props.role || 'status' : null,\n 'aria-hidden': $label ? null : 'true'\n },\n class: (_class = {}, _defineProperty(_class, \"spinner-\".concat(props.type), props.type), _defineProperty(_class, \"spinner-\".concat(props.type, \"-sm\"), props.small), _defineProperty(_class, \"text-\".concat(props.variant), props.variant), _class)\n }), [$label || h()]);\n }\n});","import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\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 { Vue, mergeData } from '../vue';\nimport { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return null;\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n icon: makeProp(PROP_TYPE_STRING),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n icon: null\n })\n }));\n }\n});","import { isToday } from './utils'\r\n\r\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\r\n\r\nexport const title = (value, replacer = ' ') => {\r\n if (!value) return ''\r\n const str = value.toString()\r\n\r\n const arr = str.split(replacer)\r\n const capitalizedArray = []\r\n arr.forEach(word => {\r\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\r\n capitalizedArray.push(capitalized)\r\n })\r\n return capitalizedArray.join(' ')\r\n}\r\n\r\nexport const avatarText = value => {\r\n if (!value) return ''\r\n const nameArray = value.split(' ')\r\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\r\n}\r\n\r\n/**\r\n * Format and return date in Humanize format\r\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\r\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\r\n * @param {String} value date to format\r\n * @param {Object} formatting Intl object to format with\r\n */\r\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\r\n if (!value) return value\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n/**\r\n * Return short human friendly month representation of date\r\n * Can also convert date to only time if date is of today (Better UX)\r\n * @param {String} value date to format\r\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\r\n */\r\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\r\n const date = new Date(value)\r\n let formatting = { month: 'short', day: 'numeric' }\r\n\r\n if (toTimeForCurrentDay && isToday(date)) {\r\n formatting = { hour: 'numeric', minute: 'numeric' }\r\n }\r\n\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n// Strip all the tags from markup and return plain text\r\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\r\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\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 { NAME_TOOLTIP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip'; // Key which we use to store tooltip object on element\n\nvar BV_TOOLTIP = '__BV_Tooltip__'; // Default trigger\n\nvar DefaultTrigger = 'hover focus'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noninteractiveRE = /^noninteractive$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Tooltip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'top',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n id: null,\n html: false,\n interactive: true,\n disabled: false,\n delay: getComponentConfig(NAME_TOOLTIP, 'delay', 50),\n boundary: String(getComponentConfig(NAME_TOOLTIP, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_TOOLTIP, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_TOOLTIP, 'variant'),\n customClass: getComponentConfig(NAME_TOOLTIP, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is tooltip content (HTML optionally supported)\n config.title = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Title generator function\n config.title = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (noninteractiveRE.test(mod)) {\n // Noninteractive\n config.interactive = false;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of tooltip\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of tooltip\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n } // Return the config\n\n\n return config;\n}; // Add/update Tooltip on our element\n\n\nvar applyTooltip = function applyTooltip(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_TOOLTIP]) {\n var $parent = vnode.context;\n el[BV_TOOLTIP] = new BVTooltip({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_TOOLTIP].__bv_prev_data__ = {};\n el[BV_TOOLTIP].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the tooltip, we update the title if it is a function\n if (isFunction(config.title)) {\n el[BV_TOOLTIP].updateData({\n title: config.title(el)\n });\n }\n });\n }\n\n var data = {\n title: config.title,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n interactive: config.interactive,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_TOOLTIP].__bv_prev_data__;\n el[BV_TOOLTIP].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // if title is a function, we execute it here\n newData[prop] = prop === 'title' && isFunction(data[prop]) ? data[prop](el) : data[prop];\n }\n });\n el[BV_TOOLTIP].updateData(newData);\n }\n}; // Remove Tooltip on our element\n\n\nvar removeTooltip = function removeTooltip(el) {\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].$destroy();\n el[BV_TOOLTIP] = null;\n }\n\n delete el[BV_TOOLTIP];\n}; // Export our directive\n\n\nexport var VBTooltip = {\n bind: function bind(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent render update loops\n vnode.context.$nextTick(function () {\n applyTooltip(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removeTooltip(el);\n }\n};","import { Vue } from '../../vue';\nimport { NAME_AVATAR_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { mathMax, mathMin } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { computeSize } from './avatar'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n overlap: makeProp(PROP_TYPE_NUMBER_STRING, 0.3),\n // Child avatars will prefer this prop (if set) over their own\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n // Child avatars will always use this over their own size\n size: makeProp(PROP_TYPE_STRING),\n // Child avatars will prefer this prop (if set) over their own\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n // Child avatars will prefer this variant over their own\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_AVATAR_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BAvatarGroup = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR_GROUP,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvAvatarGroup: this\n };\n },\n props: props,\n computed: {\n computedSize: function computedSize() {\n return computeSize(this.size);\n },\n overlapScale: function overlapScale() {\n return mathMin(mathMax(toFloat(this.overlap, 0), 0), 1) / 2;\n },\n paddingStyle: function paddingStyle() {\n var value = this.computedSize;\n value = value ? \"calc(\".concat(value, \" * \").concat(this.overlapScale, \")\") : null;\n return value ? {\n paddingLeft: value,\n paddingRight: value\n } : {};\n }\n },\n render: function render(h) {\n var $inner = h('div', {\n staticClass: 'b-avatar-group-inner',\n style: this.paddingStyle\n }, this.normalizeSlot());\n return h(this.tag, {\n staticClass: 'b-avatar-group',\n attrs: {\n role: 'group'\n }\n }, [$inner]);\n }\n});","import { NAME_COLLAPSE } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { RX_HASH, RX_HASH_ID, RX_SPACE_SPLIT } from '../../constants/regex';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { addClass, getAttr, hasAttr, isDisabled, isTag, removeAttr, removeClass, removeStyle, requestAF, setAttr, setStyle } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOn, eventOff } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { keys } from '../../utils/object'; // --- Constants ---\n// Classes to apply to trigger element\n\nvar CLASS_BV_TOGGLE_COLLAPSED = 'collapsed';\nvar CLASS_BV_TOGGLE_NOT_COLLAPSED = 'not-collapsed'; // Property key for handler storage\n\nvar BV_BASE = '__BV_toggle'; // Root event listener property (Function)\n\nvar BV_TOGGLE_ROOT_HANDLER = \"\".concat(BV_BASE, \"_HANDLER__\"); // Trigger element click handler property (Function)\n\nvar BV_TOGGLE_CLICK_HANDLER = \"\".concat(BV_BASE, \"_CLICK__\"); // Target visibility state property (Boolean)\n\nvar BV_TOGGLE_STATE = \"\".concat(BV_BASE, \"_STATE__\"); // Target ID list property (Array)\n\nvar BV_TOGGLE_TARGETS = \"\".concat(BV_BASE, \"_TARGETS__\"); // Commonly used strings\n\nvar STRING_FALSE = 'false';\nvar STRING_TRUE = 'true'; // Commonly used attribute names\n\nvar ATTR_ARIA_CONTROLS = 'aria-controls';\nvar ATTR_ARIA_EXPANDED = 'aria-expanded';\nvar ATTR_ROLE = 'role';\nvar ATTR_TABINDEX = 'tabindex'; // Commonly used style properties\n\nvar STYLE_OVERFLOW_ANCHOR = 'overflow-anchor'; // Emitted control event for collapse (emitted to collapse)\n\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle'); // Listen to event for toggle state update (emitted by collapse)\n\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state'); // Private event emitted on `$root` to ensure the toggle state is always synced\n// Gets emitted even if the state of b-collapse has not changed\n// This event is NOT to be documented as people should not be using it\n\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state'); // Private event we send to collapse to request state update sync event\n\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar KEYDOWN_KEY_CODES = [CODE_ENTER, CODE_SPACE]; // --- Helper methods ---\n\nvar isNonStandardTag = function isNonStandardTag(el) {\n return !arrayIncludes(['button', 'a'], el.tagName.toLowerCase());\n};\n\nvar getTargets = function getTargets(_ref, el) {\n var modifiers = _ref.modifiers,\n arg = _ref.arg,\n value = _ref.value;\n // Any modifiers are considered target IDs\n var targets = keys(modifiers || {}); // If value is a string, split out individual targets (if space delimited)\n\n value = isString(value) ? value.split(RX_SPACE_SPLIT) : value; // Support target ID as link href (`href=\"#id\"`)\n\n if (isTag(el.tagName, 'a')) {\n var href = getAttr(el, 'href') || '';\n\n if (RX_HASH_ID.test(href)) {\n targets.push(href.replace(RX_HASH, ''));\n }\n } // Add ID from `arg` (if provided), and support value\n // as a single string ID or an array of string IDs\n // If `value` is not an array or string, then it gets filtered out\n\n\n concat(arg, value).forEach(function (t) {\n return isString(t) && targets.push(t);\n }); // Return only unique and truthy target IDs\n\n return targets.filter(function (t, index, arr) {\n return t && arr.indexOf(t) === index;\n });\n};\n\nvar removeClickListener = function removeClickListener(el) {\n var handler = el[BV_TOGGLE_CLICK_HANDLER];\n\n if (handler) {\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n\n el[BV_TOGGLE_CLICK_HANDLER] = null;\n};\n\nvar addClickListener = function addClickListener(el, vnode) {\n removeClickListener(el);\n\n if (vnode.context) {\n var handler = function handler(event) {\n if (!(event.type === 'keydown' && !arrayIncludes(KEYDOWN_KEY_CODES, event.keyCode)) && !isDisabled(el)) {\n var targets = el[BV_TOGGLE_TARGETS] || [];\n targets.forEach(function (target) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_TOGGLE, target);\n });\n }\n };\n\n el[BV_TOGGLE_CLICK_HANDLER] = handler;\n eventOn(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n\n if (isNonStandardTag(el)) {\n eventOn(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\n\nvar removeRootListeners = function removeRootListeners(el, vnode) {\n if (el[BV_TOGGLE_ROOT_HANDLER] && vnode.context) {\n vnode.context.$root.$off([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], el[BV_TOGGLE_ROOT_HANDLER]);\n }\n\n el[BV_TOGGLE_ROOT_HANDLER] = null;\n};\n\nvar addRootListeners = function addRootListeners(el, vnode) {\n removeRootListeners(el, vnode);\n\n if (vnode.context) {\n var handler = function handler(id, state) {\n // `state` will be `true` if target is expanded\n if (arrayIncludes(el[BV_TOGGLE_TARGETS] || [], id)) {\n // Set/Clear 'collapsed' visibility class state\n el[BV_TOGGLE_STATE] = state; // Set `aria-expanded` and class state on trigger element\n\n setToggleState(el, state);\n }\n };\n\n el[BV_TOGGLE_ROOT_HANDLER] = handler; // Listen for toggle state changes (public) and sync (private)\n\n vnode.context.$root.$on([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], handler);\n }\n};\n\nvar setToggleState = function setToggleState(el, state) {\n // State refers to the visibility of the collapse/sidebar\n if (state) {\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_TRUE);\n } else {\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_FALSE);\n }\n}; // Reset and remove a property from the provided element\n\n\nvar resetProp = function resetProp(el, prop) {\n el[prop] = null;\n delete el[prop];\n}; // Handle directive updates\n\n\nvar handleUpdate = function handleUpdate(el, binding, vnode) {\n /* istanbul ignore next: should never happen */\n if (!IS_BROWSER || !vnode.context) {\n return;\n } // If element is not a button or link, we add `role=\"button\"`\n // and `tabindex=\"0\"` for accessibility reasons\n\n\n if (isNonStandardTag(el)) {\n if (!hasAttr(el, ATTR_ROLE)) {\n setAttr(el, ATTR_ROLE, 'button');\n }\n\n if (!hasAttr(el, ATTR_TABINDEX)) {\n setAttr(el, ATTR_TABINDEX, '0');\n }\n } // Ensure the collapse class and `aria-*` attributes persist\n // after element is updated (either by parent re-rendering\n // or changes to this element or its contents)\n\n\n setToggleState(el, el[BV_TOGGLE_STATE]); // Parse list of target IDs\n\n var targets = getTargets(binding, el); // Ensure the `aria-controls` hasn't been overwritten\n // or removed when vnode updates\n // Also ensure to set `overflow-anchor` to `none` to prevent\n // the browser's scroll anchoring behavior\n\n /* istanbul ignore else */\n\n if (targets.length > 0) {\n setAttr(el, ATTR_ARIA_CONTROLS, targets.join(' '));\n setStyle(el, STYLE_OVERFLOW_ANCHOR, 'none');\n } else {\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n } // Add/Update our click listener(s)\n // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n addClickListener(el, vnode);\n }); // If targets array has changed, update\n\n if (!looseEqual(targets, el[BV_TOGGLE_TARGETS])) {\n // Update targets array to element storage\n el[BV_TOGGLE_TARGETS] = targets; // Ensure `aria-controls` is up to date\n // Request a state update from targets so that we can\n // ensure expanded state is correct (in most cases)\n\n targets.forEach(function (target) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, target);\n });\n }\n};\n/*\n * Export our directive\n */\n\n\nexport var VBToggle = {\n bind: function bind(el, binding, vnode) {\n // State is initially collapsed until we receive a state event\n el[BV_TOGGLE_STATE] = false; // Assume no targets initially\n\n el[BV_TOGGLE_TARGETS] = []; // Add our root listeners\n\n addRootListeners(el, vnode); // Initial update of trigger\n\n handleUpdate(el, binding, vnode);\n },\n componentUpdated: handleUpdate,\n updated: handleUpdate,\n unbind: function unbind(el, binding, vnode) {\n removeClickListener(el); // Remove our $root listener\n\n removeRootListeners(el, vnode); // Reset custom props\n\n resetProp(el, BV_TOGGLE_ROOT_HANDLER);\n resetProp(el, BV_TOGGLE_CLICK_HANDLER);\n resetProp(el, BV_TOGGLE_STATE);\n resetProp(el, BV_TOGGLE_TARGETS); // Reset classes/attrs/styles\n\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n removeAttr(el, ATTR_ARIA_EXPANDED);\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeAttr(el, ATTR_ROLE);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n }\n};","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\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 } from '../vue';\nimport { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\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 }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\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 { Vue, mergeData } from '../../vue';\nimport { NAME_NAV_ITEM } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_OBJECT } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n linkAttrs: makeProp(PROP_TYPE_OBJECT, {}),\n linkClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})), NAME_NAV_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BNavItem = /*#__PURE__*/Vue.extend({\n name: NAME_NAV_ITEM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n children = _ref.children;\n return h('li', mergeData(omit(data, ['on']), {\n staticClass: 'nav-item'\n }), [h(BLink, {\n staticClass: 'nav-link',\n class: props.linkClasses,\n attrs: props.linkAttrs,\n props: props,\n on: listeners\n }, children)]);\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 } from '../../vue';\nimport { NAME_PROGRESS } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BProgressBar, props as BProgressBarProps } from './progress-bar'; // --- Props ---\n\nvar progressBarProps = omit(BProgressBarProps, ['label', 'labelHtml']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, progressBarProps), {}, {\n animated: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, 100),\n precision: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n showProgress: makeProp(PROP_TYPE_BOOLEAN, false),\n showValue: makeProp(PROP_TYPE_BOOLEAN, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_PROGRESS); // --- Main component ---\n// @vue/component\n\nexport var BProgress = /*#__PURE__*/Vue.extend({\n name: NAME_PROGRESS,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvProgress: this\n };\n },\n props: props,\n computed: {\n progressHeight: function progressHeight() {\n return {\n height: this.height || null\n };\n }\n },\n render: function render(h) {\n var $childNodes = this.normalizeSlot();\n\n if (!$childNodes) {\n $childNodes = h(BProgressBar, {\n props: pluckProps(progressBarProps, this.$props)\n });\n }\n\n return h('div', {\n staticClass: 'progress',\n style: this.progressHeight\n }, [$childNodes]);\n }\n});","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","function _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, mergeData } from '../../vue';\nimport { NAME_NAV } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n align = props.align,\n cardHeader = props.cardHeader;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': !vertical && cardHeader && tabs,\n 'card-header-pills': !vertical && cardHeader && pills && !tabs,\n 'flex-column': vertical,\n 'nav-fill': !vertical && props.fill,\n 'nav-justified': !vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(align), !vertical && align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (Object.keys(_vm.profileData).length)?_c('div',{attrs:{\"id\":\"user-profile\"}},[_c('profile-header',{attrs:{\"header-data\":_vm.profileData.header}}),_c('section',{attrs:{\"id\":\"profile-info\"}},[_c('b-row',[_c('b-col',{attrs:{\"lg\":\"3\",\"cols\":\"12\",\"order\":\"2\",\"order-lg\":\"1\"}},[_c('profile-about',{attrs:{\"about-data\":_vm.profileData.userAbout}}),_c('profile-suggested-pages',{attrs:{\"pages-data\":_vm.profileData.suggestedPages}}),_c('profile-twitter-feed',{attrs:{\"twitter-feed\":_vm.profileData.twitterFeeds}})],1),_c('b-col',{attrs:{\"lg\":\"6\",\"cols\":\"12\",\"order\":\"1\",\"order-lg\":\"2\"}},[_c('profile-post',{attrs:{\"posts\":_vm.profileData.post}})],1),_c('b-col',{attrs:{\"lg\":\"3\",\"cols\":\"12\",\"order\":\"3\"}},[_c('profile-latest-photos',{attrs:{\"latest-images\":_vm.profileData.latestPhotos}}),_c('profile-suggestion',{attrs:{\"suggestions\":_vm.profileData.suggestions}}),_c('profile-polls',{attrs:{\"polls-data\":_vm.profileData.polls}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"order\":\"4\"}},[_c('profile-bottom')],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{staticClass:\"profile-header mb-2\",attrs:{\"img-src\":_vm.headerData.coverImg,\"img-top\":\"\",\"alt\":\"cover photo\",\"body-class\":\"p-0\"}},[_c('div',{staticClass:\"position-relative\"},[_c('div',{staticClass:\"profile-img-container d-flex align-items-center\"},[_c('div',{staticClass:\"profile-img\"},[_c('b-img',{attrs:{\"src\":_vm.headerData.avatar,\"rounded\":\"\",\"fluid\":\"\",\"alt\":\"profile photo\"}})],1),_c('div',{staticClass:\"profile-title ml-3\"},[_c('h2',{staticClass:\"text-white\"},[_vm._v(\" \"+_vm._s(_vm.headerData.username)+\" \")]),_c('p',{staticClass:\"text-white\"},[_vm._v(\" \"+_vm._s(_vm.headerData.designation)+\" \")])])])]),_c('div',{staticClass:\"profile-header-nav\"},[_c('b-navbar',{attrs:{\"toggleable\":\"md\",\"type\":\"light\"}},[_c('b-navbar-toggle',{staticClass:\"ml-auto\",attrs:{\"target\":\"nav-text-collapse\"}},[_c('feather-icon',{attrs:{\"icon\":\"AlignJustifyIcon\",\"size\":\"21\"}})],1),_c('b-collapse',{attrs:{\"id\":\"nav-text-collapse\",\"is-nav\":\"\"}},[_c('b-tabs',{staticClass:\"profile-tabs mt-1 mt-md-0\",attrs:{\"pills\":\"\",\"nav-class\":\"mb-0\"},scopedSlots:_vm._u([{key:\"tabs-start\",fn:function(){return [_c('b-nav-item',{staticClass:\"font-weight-bold\",attrs:{\"role\":\"presentation\",\"active\":\"\"}},[_c('span',{staticClass:\"d-none d-md-block\"},[_vm._v(\"Feed\")]),_c('feather-icon',{staticClass:\"d-block d-md-none\",attrs:{\"icon\":\"RssIcon\"}})],1),_c('b-nav-item',{staticClass:\"font-weight-bold\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"d-none d-md-block\"},[_vm._v(\"About\")]),_c('feather-icon',{staticClass:\"d-block d-md-none\",attrs:{\"icon\":\"InfoIcon\"}})],1),_c('b-nav-item',{staticClass:\"font-weight-bold\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"d-none d-md-block\"},[_vm._v(\"Photos\")]),_c('feather-icon',{staticClass:\"d-block d-md-none\",attrs:{\"icon\":\"ImageIcon\"}})],1),_c('b-nav-item',{staticClass:\"font-weight-bold\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"d-none d-md-block\"},[_vm._v(\"Friends\")]),_c('feather-icon',{staticClass:\"d-block d-md-none\",attrs:{\"icon\":\"UsersIcon\"}})],1)]},proxy:true},{key:\"tabs-end\",fn:function(){return [_c('b-button',{staticClass:\"ml-auto\",attrs:{\"variant\":\"primary\"}},[_c('feather-icon',{staticClass:\"d-block d-md-none\",attrs:{\"icon\":\"EditIcon\"}}),_c('span',{staticClass:\"font-weight-bold d-none d-md-block\"},[_vm._v(\"Edit\")])],1)]},proxy:true}])})],1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue } from '../../vue';\nimport { NAME_COLLAPSE, NAME_NAVBAR_TOGGLE } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { getRootEventName } from '../../utils/events';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { VBToggle } from '../../directives/toggle/toggle'; // --- Constants ---\n\nvar CLASS_NAME = 'navbar-toggler';\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state'); // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n label: makeProp(PROP_TYPE_STRING, 'Toggle navigation'),\n target: makeProp(PROP_TYPE_ARRAY_STRING, undefined, true) // Required\n\n}, NAME_NAVBAR_TOGGLE); // --- Main component ---\n// @vue/component\n\nexport var BNavbarToggle = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR_TOGGLE,\n directives: {\n VBToggle: VBToggle\n },\n mixins: [listenOnRootMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n toggleState: false\n };\n },\n created: function created() {\n this.listenOnRoot(ROOT_EVENT_NAME_STATE, this.handleStateEvt);\n this.listenOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.handleStateEvt);\n },\n methods: {\n onClick: function onClick(event) {\n if (!this.disabled) {\n // Emit courtesy `click` event\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n handleStateEvt: function handleStateEvt(id, state) {\n // We listen for state events so that we can pass the\n // boolean expanded state to the default scoped slot\n if (id === this.target) {\n this.toggleState = state;\n }\n }\n },\n render: function render(h) {\n var disabled = this.disabled;\n return h('button', {\n staticClass: CLASS_NAME,\n class: {\n disabled: disabled\n },\n directives: [{\n name: 'VBToggle',\n value: this.target\n }],\n attrs: {\n type: 'button',\n disabled: disabled,\n 'aria-label': this.label\n },\n on: {\n click: this.onClick\n }\n }, [this.normalizeSlot(SLOT_NAME_DEFAULT, {\n expanded: this.toggleState\n }) || h('span', {\n staticClass: \"\".concat(CLASS_NAME, \"-icon\")\n })]);\n }\n});","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileHeader.vue?vue&type=template&id=30c9be0c&\"\nimport script from \"./ProfileHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileHeader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',_vm._l((_vm.aboutData),function(data,key,index){return _c('div',{key:data.title,class:index ? 'mt-2':''},[_c('h5',{staticClass:\"text-capitalize mb-75\"},[_vm._v(\" \"+_vm._s(key)+\" \")]),_c('b-card-text',[_vm._v(\" \"+_vm._s(data)+\" \")])],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileAbout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileAbout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileAbout.vue?vue&type=template&id=1c7f2c2e&\"\nimport script from \"./ProfileAbout.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileAbout.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('h5',{staticClass:\"mb-2\"},[_vm._v(\" Suggested Pages \")]),_vm._l((_vm.pagesData),function(data,index){return _c('div',{key:index,staticClass:\"d-flex justify-content-start align-items-center mt-1\"},[_c('div',{staticClass:\"mr-1\"},[_c('b-avatar',{attrs:{\"size\":\"40\",\"src\":data.avatar}})],1),_c('div',{staticClass:\"profile-user-info\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(data.username)+\" \")]),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(data.subtitle))])]),_c('div',{staticClass:\"profile-star ml-auto\"},[_c('feather-icon',{class:data.favorite ? 'profile-favorite':'',attrs:{\"icon\":\"StarIcon\",\"size\":\"18\"}})],1)])})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSuggestedPages.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSuggestedPages.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileSuggestedPages.vue?vue&type=template&id=71fb2880&\"\nimport script from \"./ProfileSuggestedPages.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileSuggestedPages.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('h5',[_vm._v(\"Twitter Feeds\")]),_vm._l((_vm.twitterFeed),function(data,index){return _c('div',{key:data.avatar,staticClass:\"profile-twitter-feed\",class:index != 0 ? 'mt-2' : 'mt-1'},[_c('div',{staticClass:\"d-flex justify-content-start align-items-center mb-1\"},[_c('b-avatar',{staticClass:\"mr-1\",attrs:{\"size\":\"40\",\"src\":data.imgUrl}}),_c('div',{staticClass:\"profile-user-info\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(data.title)+\" \")]),_c('b-link',[_c('small',{staticClass:\"text-muted\"},[_vm._v(\"@\"+_vm._s(data.id))]),_c('feather-icon',{attrs:{\"icon\":\"CheckCircleIcon\"}})],1)],1),_c('div',{staticClass:\"profile-star ml-auto\"},[_c('feather-icon',{class:data.favorite ? 'profile-favorite':'',attrs:{\"icon\":\"StarIcon\",\"size\":\"18\"}})],1)],1),_c('b-card-text',{staticClass:\"mb-50\"},[_vm._v(\" \"+_vm._s(data.desc)+\" \")]),_c('b-link',[_c('small',[_vm._v(\" \"+_vm._s(data.tags)+\" \")])])],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTwitterFeed.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTwitterFeed.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileTwitterFeed.vue?vue&type=template&id=885479f2&\"\nimport script from \"./ProfileTwitterFeed.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileTwitterFeed.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.posts),function(data){return _c('b-card',{key:data.avatar},[_c('div',{staticClass:\"d-flex justify-content-start align-items-center mb-1\"},[_c('b-avatar',{staticClass:\"mr-1\",attrs:{\"src\":data.avatar,\"size\":\"50\"}}),_c('div',{staticClass:\"profile-user-info\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(data.username)+\" \")]),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(data.postTime))])])],1),_c('b-card-text',[_vm._v(\" \"+_vm._s(data.postText)+\" \")]),(data.postImg)?_c('b-img',{staticClass:\"mb-25\",attrs:{\"fluid\":\"\",\"rounded\":\"\",\"src\":data.postImg}}):_vm._e(),(data.postVid)?_c('b-embed',{staticClass:\"rounded mb-50\",attrs:{\"type\":\"iframe\",\"src\":data.postVid,\"allowfullscreen\":\"\"}}):_vm._e(),_c('b-row',{staticClass:\"pb-50 mt-50\"},[_c('b-col',{staticClass:\"d-flex justify-content-between justify-content-sm-start mb-2\",attrs:{\"sm\":\"8\"}},[_c('b-link',{staticClass:\"d-flex align-items-center text-muted text-nowrap\"},[_c('feather-icon',{staticClass:\"mr-50\",class:data.youLiked ? 'profile-likes':'profile-icon',attrs:{\"icon\":\"HeartIcon\",\"size\":\"18\"}}),_c('span',[_vm._v(_vm._s(_vm.kFormatter(data.likes)))])],1),_c('div',{staticClass:\"d-flex align-item-center\"},[_c('b-avatar-group',{staticClass:\"ml-1\",attrs:{\"size\":\"26\"}},_vm._l((data.likedUsers),function(avatarData,i){return _c('b-avatar',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.bottom\",value:(avatarData.username),expression:\"avatarData.username\",modifiers:{\"hover\":true,\"bottom\":true}}],key:i,staticClass:\"pull-up\",attrs:{\"src\":avatarData.avatar}})}),1),_c('b-link',{staticClass:\"text-muted text-nowrap mt-50 ml-50\"},[_vm._v(\" +\"+_vm._s(data.likedCount)+\" more \")])],1)],1),_c('b-col',{staticClass:\"d-flex justify-content-between justify-content-sm-end align-items-center mb-2\",attrs:{\"sm\":\"4\"}},[_c('b-link',{staticClass:\"text-body text-nowrap\"},[_c('feather-icon',{staticClass:\"profile-icon mr-50\",attrs:{\"icon\":\"MessageSquareIcon\",\"size\":\"18\"}}),_c('span',{staticClass:\"text-muted mr-1\"},[_vm._v(_vm._s(_vm.kFormatter(data.comments)))])],1),_c('b-link',{staticClass:\"text-body text-nowrap\"},[_c('feather-icon',{staticClass:\"profile-icon mr-50\",attrs:{\"icon\":\"Share2Icon\",\"size\":\"18\"}}),_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.kFormatter(data.share)))])],1)],1)],1),_vm._l((data.detailedComments),function(comment,ind){return _c('div',{key:ind,staticClass:\"d-flex align-items-start mb-1\"},[_c('b-avatar',{staticClass:\"mt-25 mr-75\",attrs:{\"src\":comment.avatar,\"size\":\"34\"}}),_c('div',{staticClass:\"profile-user-info w-100\"},[_c('div',{staticClass:\"d-flex align-items-center justify-content-between\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(comment.username)+\" \")]),_c('b-link',{staticClass:\"text-body\"},[_c('feather-icon',{staticClass:\"mr-25\",class:comment.youLiked ? 'profile-likes' :'profile-icon',attrs:{\"icon\":\"HeartIcon\",\"size\":\"18\"}}),_c('span',{staticClass:\"text-muted align-middle\"},[_vm._v(_vm._s(comment.commentsLikes))])],1)],1),_c('small',[_vm._v(_vm._s(comment.comment))])])],1)}),_c('b-form-group',[_c('b-form-textarea',{attrs:{\"rows\":\"3\",\"placeholder\":\"Add Comment\"}})],1),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"size\":\"sm\",\"variant\":\"primary\"}},[_vm._v(\" Post Comment \")])],2)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePost.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePost.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfilePost.vue?vue&type=template&id=e74908a2&\"\nimport script from \"./ProfilePost.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfilePost.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" Latest Photos \")]),_c('b-row',_vm._l((_vm.latestImages),function(data){return _c('b-col',{key:data.img,staticClass:\"profile-latest-img\",attrs:{\"md\":\"4\",\"cols\":\"6\"}},[_c('b-link',[_c('b-img',{attrs:{\"fluid\":\"\",\"rounded\":\"\",\"src\":data.img,\"alt\":data.img.slice(5)}})],1)],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileLatestPhotos.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileLatestPhotos.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileLatestPhotos.vue?vue&type=template&id=3c7158db&\"\nimport script from \"./ProfileLatestPhotos.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileLatestPhotos.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('h5',[_vm._v(\"Suggestions\")]),_vm._l((_vm.suggestions),function(data,index){return _c('div',{key:data.avatar,staticClass:\"d-flex justify-content-start align-items-center\",class:index == 0 ? 'mt-2' : 'mt-1'},[_c('b-avatar',{staticClass:\"mr-50\",attrs:{\"src\":data.avatar,\"size\":\"40\"}}),_c('div',{staticClass:\"user-page-info\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(data.name)+\" \")]),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(data.mutualFriend))])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(186, 191, 199, 0.15)'),expression:\"'rgba(186, 191, 199, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"btn-icon ml-auto\",attrs:{\"variant\":\"primary\",\"size\":\"sm\"}},[_c('feather-icon',{attrs:{\"icon\":\"UserPlusIcon\"}})],1)],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSuggestion.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSuggestion.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileSuggestion.vue?vue&type=template&id=682a83c9&\"\nimport script from \"./ProfileSuggestion.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileSuggestion.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('h5',{staticClass:\"mb-1\"},[_vm._v(\" Polls \")]),_c('b-card-text',[_vm._v(\"Who is the best actor in Marvel Cinematic Universe?\")]),_vm._l((_vm.pollsData),function(data){return _c('div',{key:data.name,staticClass:\"polls-info mt-2\"},[_c('div',{staticClass:\"d-flex justify-content-between\"},[_c('b-form-radio',{staticClass:\"mb-25\",attrs:{\"name\":\"polls\",\"value\":data.username},model:{value:(_vm.Selected),callback:function ($$v) {_vm.Selected=$$v},expression:\"Selected\"}},[_vm._v(\" \"+_vm._s(data.name)+\" \")]),_c('div',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(data.result)+\" \")])],1),_c('b-progress',{staticClass:\"my-50\",attrs:{\"value\":data.result,\"max\":\"100\",\"height\":\"6px\"}}),_c('b-avatar-group',{staticClass:\"mt-1\",attrs:{\"size\":\"26\"}},_vm._l((data.votedUser),function(avatar){return _c('b-avatar',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.bottom\",value:(avatar.username),expression:\"avatar.username\",modifiers:{\"hover\":true,\"bottom\":true}}],key:avatar.img,staticClass:\"pull-up\",attrs:{\"src\":avatar.img}})}),1)],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePolls.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePolls.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfilePolls.vue?vue&type=template&id=4d360c98&\"\nimport script from \"./ProfilePolls.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfilePolls.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center mb-2\"},[_c('b-overlay',{staticClass:\"d-inline-block\",attrs:{\"show\":_vm.show,\"rounded\":\"sm\",\"spinner-variant\":\"primary\",\"spinner-small\":\"\"}},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(186, 191, 199, 0.15)'),expression:\"'rgba(186, 191, 199, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.onClick}},[_vm._v(\" Load More \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./profileBottom.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./profileBottom.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./profileBottom.vue?vue&type=template&id=7dafae0a&\"\nimport script from \"./profileBottom.vue?vue&type=script&lang=js&\"\nexport * from \"./profileBottom.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Profile.vue?vue&type=template&id=2b703750&\"\nimport script from \"./Profile.vue?vue&type=script&lang=js&\"\nexport * from \"./Profile.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Profile.vue?vue&type=style&index=0&id=2b703750&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","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\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\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};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=style&index=0&id=2b703750&prod&lang=scss&\"","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\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\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 { Vue } from '../../vue';\nimport { NAME_OVERLAY } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_OVERLAY } from '../../constants/slots';\nimport { toFloat } from '../../utils/number';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BSpinner } from '../spinner/spinner';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar POSITION_COVER = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n}; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Alternative to variant, allowing a specific\n // CSS color to be applied to the overlay\n bgColor: makeProp(PROP_TYPE_STRING),\n blur: makeProp(PROP_TYPE_STRING, '2px'),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n noCenter: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // If `true, does not render the default slot\n // and switches to absolute positioning\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false),\n opacity: makeProp(PROP_TYPE_NUMBER_STRING, 0.85, function (value) {\n var number = toFloat(value, 0);\n return number >= 0 && number <= 1;\n }),\n overlayTag: makeProp(PROP_TYPE_STRING, 'div'),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n show: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerSmall: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerType: makeProp(PROP_TYPE_STRING, 'border'),\n spinnerVariant: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'light'),\n wrapTag: makeProp(PROP_TYPE_STRING, 'div'),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING, 10)\n}, NAME_OVERLAY); // --- Main component ---\n// @vue/component\n\nexport var BOverlay = /*#__PURE__*/Vue.extend({\n name: NAME_OVERLAY,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n computedRounded: function computedRounded() {\n var rounded = this.rounded;\n return rounded === true || rounded === '' ? 'rounded' : !rounded ? '' : \"rounded-\".concat(rounded);\n },\n computedVariant: function computedVariant() {\n var variant = this.variant;\n return variant && !this.bgColor ? \"bg-\".concat(variant) : '';\n },\n slotScope: function slotScope() {\n return {\n spinnerType: this.spinnerType || null,\n spinnerVariant: this.spinnerVariant || null,\n spinnerSmall: this.spinnerSmall\n };\n }\n },\n methods: {\n defaultOverlayFn: function defaultOverlayFn(_ref) {\n var spinnerType = _ref.spinnerType,\n spinnerVariant = _ref.spinnerVariant,\n spinnerSmall = _ref.spinnerSmall;\n return this.$createElement(BSpinner, {\n props: {\n type: spinnerType,\n variant: spinnerVariant,\n small: spinnerSmall\n }\n });\n }\n },\n render: function render(h) {\n var _this = this;\n\n var show = this.show,\n fixed = this.fixed,\n noFade = this.noFade,\n noWrap = this.noWrap,\n slotScope = this.slotScope;\n var $overlay = h();\n\n if (show) {\n var $background = h('div', {\n staticClass: 'position-absolute',\n class: [this.computedVariant, this.computedRounded],\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n opacity: this.opacity,\n backgroundColor: this.bgColor || null,\n backdropFilter: this.blur ? \"blur(\".concat(this.blur, \")\") : null\n })\n });\n var $content = h('div', {\n staticClass: 'position-absolute',\n style: this.noCenter ?\n /* istanbul ignore next */\n _objectSpread({}, POSITION_COVER) : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)'\n }\n }, [this.normalizeSlot(SLOT_NAME_OVERLAY, slotScope) || this.defaultOverlayFn(slotScope)]);\n $overlay = h(this.overlayTag, {\n staticClass: 'b-overlay',\n class: {\n 'position-absolute': !noWrap || noWrap && !fixed,\n 'position-fixed': noWrap && fixed\n },\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n zIndex: this.zIndex || 10\n }),\n on: {\n click: function click(event) {\n return _this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n key: 'overlay'\n }, [$background, $content]);\n } // Wrap in a fade transition\n\n\n $overlay = h(BVTransition, {\n props: {\n noFade: noFade,\n appear: true\n },\n on: {\n 'after-enter': function afterEnter() {\n return _this.$emit(EVENT_NAME_SHOWN);\n },\n 'after-leave': function afterLeave() {\n return _this.$emit(EVENT_NAME_HIDDEN);\n }\n }\n }, [$overlay]);\n\n if (noWrap) {\n return $overlay;\n }\n\n return h(this.wrapTag, {\n staticClass: 'b-overlay-wrap position-relative',\n attrs: {\n 'aria-busy': show ? 'true' : null\n }\n }, noWrap ? [$overlay] : [this.normalizeSlot(), $overlay]);\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 } from '../../vue';\nimport { NAME_FORM_TEXTAREA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect';\nimport { mathCeil, mathMax, mathMin } from '../../utils/math';\nimport { toInteger, toFloat } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { VBVisible } from '../../directives/visible/visible'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n maxRows: makeProp(PROP_TYPE_NUMBER_STRING),\n // When in auto resize mode, disable shrinking to content height\n noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the resize handle of textarea\n noResize: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),\n // 'soft', 'hard' or 'off'\n // Browser default is 'soft'\n wrap: makeProp(PROP_TYPE_STRING, 'soft')\n})), NAME_FORM_TEXTAREA); // --- Main component ---\n// @vue/component\n\nexport var BFormTextarea = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXTAREA,\n directives: {\n 'b-visible': VBVisible\n },\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return mathMax(toInteger(this.rows, 2), 2);\n },\n computedMaxRows: function computedMaxRows() {\n return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.disabled,\n required = this.required;\n return {\n id: this.safeId(),\n name: this.name || null,\n form: this.form || null,\n disabled: disabled,\n placeholder: this.placeholder || null,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.computedRows,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n localValue: function localValue() {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n\n /* istanbul ignore next */\n visibleCallback: function visibleCallback(visible) {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n computeHeight: function computeHeight() {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = toFloat(computedStyle.lineHeight, 1); // Calculate height of border and padding\n\n var border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);\n var padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = getStyle(el, 'height') || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n setStyle(el, 'height', 'auto');\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n setStyle(el, 'height', oldHeight); // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = mathMax((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = mathMax(mathCeil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n return h('textarea', {\n class: this.computedClass,\n style: this.computedStyle,\n directives: [{\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\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 { Vue } from '../../vue';\nimport { NAME_FORM_RADIO } from '../../constants/components';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formRadioCheckProps), formSizeProps), formStateProps)), NAME_FORM_RADIO); // --- Main component ---\n// @vue/component\n\nexport var BFormRadio = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO,\n mixins: [idMixin, formRadioCheckMixin, // Includes shared render function\n formControlMixin, formSizeMixin, formStateMixin],\n inject: {\n bvGroup: {\n from: 'bvRadioGroup',\n default: false\n }\n },\n props: props,\n watch: {\n computedLocalChecked: function computedLocalChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }\n }\n});","function _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, mergeData } from '../../vue';\nimport { NAME_EMBED } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Constants ---\n\nvar TYPES = ['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy']; // --- Props ---\n\nexport var props = makePropsConfigurable({\n aspect: makeProp(PROP_TYPE_STRING, '16by9'),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n type: makeProp(PROP_TYPE_STRING, 'iframe', function (value) {\n return arrayIncludes(TYPES, value);\n })\n}, NAME_EMBED); // --- Main component ---\n// @vue/component\n\nexport var BEmbed = /*#__PURE__*/Vue.extend({\n name: NAME_EMBED,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var aspect = props.aspect;\n return h(props.tag, {\n staticClass: 'embed-responsive',\n class: _defineProperty({}, \"embed-responsive-\".concat(aspect), aspect),\n ref: data.ref\n }, [h(props.type, mergeData(omit(data, ['ref']), {\n staticClass: 'embed-responsive-item'\n }), children)]);\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 { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","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});","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","import router from '@/router'\r\n// eslint-disable-next-line object-curly-newline\r\nimport { reactive, getCurrentInstance, watch, toRefs } from '@vue/composition-api'\r\n\r\nexport const isObject = obj => typeof obj === 'object' && obj !== null\r\n\r\nexport const isToday = date => {\r\n const today = new Date()\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n date.getDate() === today.getDate() &&\r\n date.getMonth() === today.getMonth() &&\r\n date.getFullYear() === today.getFullYear()\r\n /* eslint-enable */\r\n )\r\n}\r\n\r\nconst getRandomFromArray = array => array[Math.floor(Math.random() * array.length)]\r\n\r\n// ? Light and Dark variant is not included\r\n// prettier-ignore\r\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info','darkBlue'])\r\n\r\nexport const isDynamicRouteActive = route => {\r\n const { route: resolvedRoute } = router.resolve(route)\r\n return resolvedRoute.path === router.currentRoute.path\r\n}\r\n\r\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\r\nexport const useRouter = () => {\r\n const vm = getCurrentInstance().proxy\r\n const state = reactive({\r\n route: vm.$route,\r\n })\r\n\r\n watch(\r\n () => vm.$route,\r\n r => {\r\n state.route = r\r\n },\r\n )\r\n\r\n return { ...toRefs(state), router: vm.$router }\r\n}\r\n\r\n/**\r\n * This is just enhancement over Object.extend [Gives deep extend]\r\n * @param {target} a Object which contains values to be overridden\r\n * @param {source} b Object which contains values to override\r\n */\r\n// export const objectExtend = (a, b) => {\r\n// // Don't touch 'null' or 'undefined' objects.\r\n// if (a == null || b == null) {\r\n// return a\r\n// }\r\n\r\n// Object.keys(b).forEach(key => {\r\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\r\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = objectExtend(a[key], b[key])\r\n// }\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// }\r\n// })\r\n\r\n// return a\r\n// }\r\n","import { Vue } from '../../vue';\nimport { NAME_PROGRESS_BAR } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { isBoolean } from '../../utils/inspect';\nimport { mathMax, mathPow } from '../../utils/math';\nimport { toFixed, toFloat, toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animated: makeProp(PROP_TYPE_BOOLEAN, null),\n label: makeProp(PROP_TYPE_STRING),\n labelHtml: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, null),\n precision: makeProp(PROP_TYPE_NUMBER_STRING, null),\n showProgress: makeProp(PROP_TYPE_BOOLEAN, null),\n showValue: makeProp(PROP_TYPE_BOOLEAN, null),\n striped: makeProp(PROP_TYPE_BOOLEAN, null),\n value: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_PROGRESS_BAR); // --- Main component ---\n// @vue/component\n\nexport var BProgressBar = /*#__PURE__*/Vue.extend({\n name: NAME_PROGRESS_BAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvProgress: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: props,\n computed: {\n progressBarClasses: function progressBarClasses() {\n var computedAnimated = this.computedAnimated,\n computedVariant = this.computedVariant;\n return [computedVariant ? \"bg-\".concat(computedVariant) : '', this.computedStriped || computedAnimated ? 'progress-bar-striped' : '', computedAnimated ? 'progress-bar-animated' : ''];\n },\n progressBarStyles: function progressBarStyles() {\n return {\n width: 100 * (this.computedValue / this.computedMax) + '%'\n };\n },\n computedValue: function computedValue() {\n return toFloat(this.value, 0);\n },\n computedMax: function computedMax() {\n // Prefer our max over parent setting\n // Default to `100` for invalid values (`-x`, `0`, `NaN`)\n var max = toFloat(this.max) || toFloat(this.bvProgress.max, 0);\n return max > 0 ? max : 100;\n },\n computedPrecision: function computedPrecision() {\n // Prefer our precision over parent setting\n // Default to `0` for invalid values (`-x`, `NaN`)\n return mathMax(toInteger(this.precision, toInteger(this.bvProgress.precision, 0)), 0);\n },\n computedProgress: function computedProgress() {\n var precision = this.computedPrecision;\n var p = mathPow(10, precision);\n return toFixed(100 * p * this.computedValue / this.computedMax / p, precision);\n },\n computedVariant: function computedVariant() {\n // Prefer our variant over parent setting\n return this.variant || this.bvProgress.variant;\n },\n computedStriped: function computedStriped() {\n // Prefer our striped over parent setting\n return isBoolean(this.striped) ? this.striped : this.bvProgress.striped || false;\n },\n computedAnimated: function computedAnimated() {\n // Prefer our animated over parent setting\n return isBoolean(this.animated) ? this.animated : this.bvProgress.animated || false;\n },\n computedShowProgress: function computedShowProgress() {\n // Prefer our showProgress over parent setting\n return isBoolean(this.showProgress) ? this.showProgress : this.bvProgress.showProgress || false;\n },\n computedShowValue: function computedShowValue() {\n // Prefer our showValue over parent setting\n return isBoolean(this.showValue) ? this.showValue : this.bvProgress.showValue || false;\n }\n },\n render: function render(h) {\n var label = this.label,\n labelHtml = this.labelHtml,\n computedValue = this.computedValue,\n computedPrecision = this.computedPrecision;\n var $children;\n var domProps = {};\n\n if (this.hasNormalizedSlot()) {\n $children = this.normalizeSlot();\n } else if (label || labelHtml) {\n domProps = htmlOrText(labelHtml, label);\n } else if (this.computedShowProgress) {\n $children = this.computedProgress;\n } else if (this.computedShowValue) {\n $children = toFixed(computedValue, computedPrecision);\n }\n\n return h('div', {\n staticClass: 'progress-bar',\n class: this.progressBarClasses,\n style: this.progressBarStyles,\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': toString(this.computedMax),\n 'aria-valuenow': toFixed(computedValue, computedPrecision)\n },\n domProps: domProps\n }, $children);\n }\n});","function _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_NAVBAR } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getBreakpoints } from '../../utils/config';\nimport { isTag } from '../../utils/dom';\nimport { isString } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n fixed: makeProp(PROP_TYPE_STRING),\n print: makeProp(PROP_TYPE_BOOLEAN, false),\n sticky: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'nav'),\n toggleable: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n type: makeProp(PROP_TYPE_STRING, 'light'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_NAVBAR); // --- Main component ---\n// @vue/component\n\nexport var BNavbar = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvNavbar: this\n };\n },\n props: props,\n computed: {\n breakpointClass: function breakpointClass() {\n var toggleable = this.toggleable;\n var xs = getBreakpoints()[0];\n var breakpoint = null;\n\n if (toggleable && isString(toggleable) && toggleable !== xs) {\n breakpoint = \"navbar-expand-\".concat(toggleable);\n } else if (toggleable === false) {\n breakpoint = 'navbar-expand';\n }\n\n return breakpoint;\n }\n },\n render: function render(h) {\n var _ref;\n\n var tag = this.tag,\n type = this.type,\n variant = this.variant,\n fixed = this.fixed;\n return h(tag, {\n staticClass: 'navbar',\n class: [(_ref = {\n 'd-print': this.print,\n 'sticky-top': this.sticky\n }, _defineProperty(_ref, \"navbar-\".concat(type), type), _defineProperty(_ref, \"bg-\".concat(variant), variant), _defineProperty(_ref, \"fixed-\".concat(fixed), fixed), _ref), this.breakpointClass],\n attrs: {\n role: isTag(tag, 'nav') ? null : 'navigation'\n }\n }, [this.normalizeSlot()]);\n }\n});","var _watch, _methods;\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 { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\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 }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n}, NAME_CARD_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BCardText = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\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});","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\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 } from '../../../vue';\nimport { NAME_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\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 { Vue } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\n }\n});","export var noop = function noop() {};","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 { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CHANGED, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_PREV } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_TABS_END, SLOT_NAME_TABS_START, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Filter function to filter out disabled tabs\n\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVTabButton = /*#__PURE__*/Vue.extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n bvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvt: function handleEvt(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n\n var type = event.type,\n keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render: function render(h) {\n var id = this.id,\n tabIndex = this.tabIndex,\n setSize = this.setSize,\n posInSet = this.posInSet,\n controls = this.controls,\n handleEvt = this.handleEvt;\n var _this$tab = this.tab,\n title = _this$tab.title,\n localActive = _this$tab.localActive,\n disabled = _this$tab.disabled,\n titleItemClass = _this$tab.titleItemClass,\n titleLinkClass = _this$tab.titleLinkClass,\n titleLinkAttributes = _this$tab.titleLinkAttributes;\n var $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled: disabled\n }, titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: disabled\n },\n attrs: _objectSpread(_objectSpread({}, titleLinkAttributes), {}, {\n id: id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n }),\n on: {\n click: handleEvt,\n keydown: handleEvt\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n}); // --- Props ---\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), navProps), {}, {\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n card: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_TABS); // --- Main component ---\n// @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n props: props,\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n var $tab = this.tabs[newValue];\n\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n }), _defineProperty(_watch, \"currentTab\", function currentTab(newValue) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function ($tab, i) {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit(MODEL_EVENT_NAME, index);\n }), _defineProperty(_watch, \"tabs\", function tabs(newValue, oldValue) {\n var _this = this;\n\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }), oldValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n _this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n }), _defineProperty(_watch, \"registeredTabs\", function registeredTabs() {\n this.updateTabs();\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted: function mounted() {\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.setObserver(false); // Ensure no references to child instances exist\n\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab: function unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function ($t) {\n return $t !== $tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver() {\n var _this2 = this;\n\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n var handler = function handler() {\n _this2.$nextTick(function () {\n requestAF(function () {\n _this2.updateTabs();\n });\n });\n }; // Watch for changes to `` sub components\n\n\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n var $tabs = this.registeredTabs.filter(function ($tab) {\n return $tab.$children.filter(function ($t) {\n return $t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n /* istanbul ignore next: too difficult to test */\n\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n var selector = $tabs.map(function ($tab) {\n return \"#\".concat($tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function ($el) {\n return $el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n\n\n return stableSort($tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n updateTabs: function updateTabs() {\n var $tabs = this.getTabs(); // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n\n var tabIndex = $tabs.indexOf($tabs.slice().reverse().find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n })); // Else try setting to `currentTab`\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find first non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n } // Ensure only one tab is active at a time\n\n\n $tabs.forEach(function ($tab, index) {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab($tab) {\n return (this.$refs.buttons || []).find(function ($btn) {\n return $btn.tab === $tab;\n });\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton: function updateButton($tab) {\n var $button = this.getButtonForTab($tab);\n\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab: function activateTab($tab) {\n var currentTab = this.currentTab,\n $tabs = this.tabs;\n var result = false;\n\n if ($tab) {\n var index = $tabs.indexOf($tab);\n\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n var tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n } // Couldn't set tab, so ensure v-model is up to date\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab: function deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function ($t) {\n return $t !== $tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton: function focusButton($tab) {\n var _this3 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this3.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick: function emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab: function clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var $tab = this.tabs.find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var $tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var align = this.align,\n card = this.card,\n end = this.end,\n fill = this.fill,\n firstTab = this.firstTab,\n justified = this.justified,\n lastTab = this.lastTab,\n nextTab = this.nextTab,\n noKeyNav = this.noKeyNav,\n noNavStyle = this.noNavStyle,\n pills = this.pills,\n previousTab = this.previousTab,\n small = this.small,\n $tabs = this.tabs,\n vertical = this.vertical; // Currently active tab\n\n var $activeTab = $tabs.find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var $fallbackTab = $tabs.find(function ($tab) {\n return !$tab.disabled;\n }); // For each `` found create the tab buttons\n\n var $buttons = $tabs.map(function ($tab, index) {\n var _on;\n\n var safeId = $tab.safeId; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n var tabIndex = null;\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(\"_BV_tab_button_\") : null),\n noKeyNav: noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex: tabIndex\n },\n on: (_on = {}, _defineProperty(_on, EVENT_NAME_CLICK, function (event) {\n _this4.clickTab($tab, event);\n }), _defineProperty(_on, EVENT_NAME_FIRST, firstTab), _defineProperty(_on, EVENT_NAME_PREV, previousTab), _defineProperty(_on, EVENT_NAME_NEXT, nextTab), _defineProperty(_on, EVENT_NAME_LAST, lastTab), _on),\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true\n });\n });\n var $nav = h(BNav, {\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: fill,\n justified: justified,\n align: align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n vertical: vertical,\n small: small,\n cardHeader: card && !vertical\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: [{\n 'card-header': card && !vertical && !end,\n 'card-footer': card && !vertical && end,\n 'col-auto': vertical\n }, this.navWrapperClass],\n key: 'bv-tabs-nav'\n }, [$nav]);\n var $children = this.normalizeSlot() || [];\n var $empty = h();\n\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active', {\n 'card-body': card\n }],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n\n var $content = h('div', {\n staticClass: 'tab-content',\n class: [{\n col: vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: vertical,\n 'no-gutters': vertical && card\n },\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});"],"sourceRoot":""}