{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./src/views/components/popover/Popover.vue?97f1","webpack:///./src/views/components/popover/PopoverPosition.vue?3128","webpack:///./node_modules/bootstrap-vue/esm/directives/popover/popover.js","webpack:///./src/views/components/popover/code.js","webpack:///src/views/components/popover/PopoverPosition.vue","webpack:///./src/views/components/popover/PopoverPosition.vue?89cb","webpack:///./src/views/components/popover/PopoverPosition.vue","webpack:///./src/views/components/popover/PopoverTrigger.vue?1b29","webpack:///src/views/components/popover/PopoverTrigger.vue","webpack:///./src/views/components/popover/PopoverTrigger.vue?12d9","webpack:///./src/views/components/popover/PopoverTrigger.vue","webpack:///./src/views/components/popover/PopoverOption.vue?d34c","webpack:///src/views/components/popover/PopoverOption.vue","webpack:///./src/views/components/popover/PopoverOption.vue?256e","webpack:///./src/views/components/popover/PopoverOption.vue","webpack:///./src/views/components/popover/PopoverMethod.vue?d835","webpack:///src/views/components/popover/PopoverMethod.vue","webpack:///./src/views/components/popover/PopoverMethod.vue?b1f8","webpack:///./src/views/components/popover/PopoverMethod.vue","webpack:///./src/views/components/popover/PopoverEvent.vue?e864","webpack:///src/views/components/popover/PopoverEvent.vue","webpack:///./src/views/components/popover/PopoverEvent.vue?c883","webpack:///./src/views/components/popover/PopoverEvent.vue","webpack:///./src/views/components/popover/PopoverVariant.vue?0b90","webpack:///src/views/components/popover/PopoverVariant.vue","webpack:///./src/views/components/popover/PopoverVariant.vue?6072","webpack:///./src/views/components/popover/PopoverVariant.vue","webpack:///./src/views/components/popover/PopoverAdvance.vue?0c4d","webpack:///src/views/components/popover/PopoverAdvance.vue","webpack:///./src/views/components/popover/PopoverAdvance.vue?b8bc","webpack:///./src/views/components/popover/PopoverAdvance.vue","webpack:///src/views/components/popover/Popover.vue","webpack:///./src/views/components/popover/Popover.vue?736c","webpack:///./src/views/components/popover/Popover.vue","webpack:///./src/@core/components/b-card-code/index.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?f9e5","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?270b","webpack:///./src/@core/components/toastification/ToastificationContent.vue","webpack:///./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/popover.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/tooltip.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/popper.js/dist/esm/popper.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?b7cc"],"names":["formSelectionMixin","extend","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","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","props","icon","stacked","BIcon","name","functional","render","h","_ref","data","parent","replace","concat","_vm","_h","$createElement","_c","_self","attrs","staticRenderFns","scopedSlots","_u","fn","_v","_s","codePosition","proxy","staticClass","directives","rawName","expression","modifiers","BV_POPOVER","DefaultTrigger","validTriggers","focus","hover","click","blur","manual","htmlRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","bindings","vnode","config","title","undefined","content","trigger","placement","fallbackPlacement","container","animation","offset","disabled","id","html","delay","boundary","String","boundaryPadding","variant","customClass","arg","show","hide","mod","test","slice","selectedTriggers","identity","join","trim","toLowerCase","split","el","context","_scopeId","__bv_prev_data__","$on","updateData","triggers","noFade","oldData","newData","prop","removePopover","$destroy","VBPopover","bind","componentUpdated","$nextTick","unbind","codeTrigger","codeOption","codeMethod","codeEvent","codeVariant","codeAdvance","BCardCode","BButton","BCardText","Ripple","component","BPopover","on","showPopover","hidePopover","$event","ref","onShow","onShown","onHide","onHidden","ToastificationContent","input1Return","input2Return","_e","popoverShow","input1state","model","callback","$$v","input1","input2state","input2","onClose","onOk","BFormGroup","BFormInput","BCard","watch","BRow","BCol","PopoverPosition","PopoverTrigger","PopoverOption","PopoverMethod","PopoverEvent","PopoverVariant","PopoverAdvance","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","class","domProps","text","$emit","hideClose","BAvatar","type","default","BVPopoverTemplate","extends","templateType","renderTemplate","$title","$content","titleDomProps","innerHTML","contentDomProps","templateClasses","templateAttributes","templateListeners","BVPopover","getTemplate","inheritAttrs","getComponent","updateContent","setContent","normalizeSlot","setTitle","_makeModelMixin","defaultValue","event","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","ariaInvalid","autocomplete","debounce","formatter","lazy","lazyFormatter","number","placeholder","plaintext","readonly","formTextMixin","mixins","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","newValue","stringifyValue","modifiedValue","clearDebounce","created","$_inputDebounceTimer","mounted","beforeDestroy","clearTimeout","formatValue","force","updateValue","_this","doUpdate","$input","setTimeout","onInput","composing","formattedValue","defaultPrevented","propagation","onChange","onBlur","$el","TYPES","list","max","min","noWheel","step","localType","computedAttrs","form","required","safeId","computedAriaInvalid","computedListeners","bvListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","arrowPadding","interactive","BVTooltip","activeTrigger","localShow","computedId","computedDelay","computedTriggers","sort","isWithActiveTrigger","computedTemplateData","newTriggers","oldTriggers","unListen","listen","handleTemplateUpdate","oldValue","disable","enable","_this2","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","$once","getTarget","body","scopeId","updated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","_this3","titleUpdated","fixTitle","createTemplateAndShow","getContainer","Template","$tip","propsData","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","$mount","appendChild","createElement","hideTemplate","clearActiveTriggers","localPlacementTarget","_unused","removeAriaDescribedby","restoreTitle","getTemplateElement","_this4","dropdownOpen","showEvt","buildEvent","cancelable","emitEvent","addAriaDescribedby","tip","hideEvt","prevHoverState","leave","getTargetId","isInModal","isDropdown","clearInterval","desc","_this5","d","options","relatedTarget","componentId","vueTarget","bvEvent","emitOnRoot","_this6","setRootListener","_this7","events","$root","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","parentNode","_this9","documentElement","children","__vue__","enter","eventTarget","currentTarget","toggle","_this10","_this11","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","reduce","alignContent","alignH","alignV","noGutters","tag","_classList$push","classList","c","size","formSizeMixin","_makePropsConfigurabl","_watch","MODEL_PROP_NAME_ENABLED","MODEL_EVENT_NAME_ENABLED","MODEL_PROP_NAME_SHOW","MODEL_EVENT_NAME_SHOW","BTooltip","localTitle","localContent","noninteractive","$props","templateTitleContent","$_toolpop","$off","doOpen","doClose","Component","$toolpop","onDisabled","onEnabled","textTag","SELECTOR","autofocus","formControlMixin","handleAutofocus","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","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","$_popper","popperCreate","handleDestroy","beforeMount","updatePopper","destroyPopper","destroyed","removeChild","toUpperCase","arrowOffset","width","destroy","scheduleUpdate","appear","beforeEnter","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","$attrs","role","tabindex","scopedStyleAttrs","mouseenter","mouseleave","focusin","focusout","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","linkProps","alt","ariaLabel","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","button","buttonType","rounded","square","src","inject","bvAvatarGroup","localSrc","computedSize","computedVariant","computedRounded","fontStyle","fontSize","indexOf","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","top","bottom","left","right","onImgError","onClick","_class2","link","hasNormalizedSlot","style","height","error","$badge","hasBadgeSlot","badgeText","componentData","noop","isBrowser","window","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","microtaskDebounce","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","toString","call","getStyleComputedProperty","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","parseInt","getWindowSizes","classCallCheck","instance","Constructor","TypeError","createClass","descriptor","protoProps","staticProps","prototype","_extends","assign","hasOwnProperty","getClientRect","offsets","getBoundingClientRect","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","map","area","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","findIndex","cur","match","runModifiers","ends","modifiersToRun","console","warn","enabled","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","position","isCreated","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","prefix","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","removeEventListener","cancelAnimationFrame","isNumeric","n","isNaN","isFinite","setStyles","unit","setAttributes","setAttribute","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","floor","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","querySelector","len","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","index","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","str","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","shift","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","requestAnimationFrame","jquery","Utils","global","PopperUtils"],"mappings":"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","file":"js/chunk-793e5c97.b1882f16.js","sourcesContent":["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});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('popover-position'),_c('popover-variant'),_c('popover-trigger'),_c('popover-option'),_c('popover-method'),_c('popover-event'),_c('popover-advance')],1)],1)}\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-code',{attrs:{\"title\":\"Popover Positions\"},scopedSlots:_vm._u([{key:\"code\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.codePosition)+\" \")]},proxy:true}])},[_c('b-card-text',{staticClass:\"mb-0\"},[_c('span',[_vm._v(\"Twelve options are available for positioning: \")]),_c('code',[_vm._v(\"top, topleft, topright, right, righttop, rightbottom, bottom, bottomleft, bottomright, left, lefttop,\")]),_c('span',[_vm._v(\" and \")]),_c('code',[_vm._v(\"leftbottom\")]),_c('span',[_vm._v(\" aligned. The default position is top. Positioning is relative to the trigger element.\")])]),_c('div',{staticClass:\"demo-inline-spacing\"},[_c('b-button',{directives:[{name:\"b-popover\",rawName:\"v-b-popover.hover.top\",value:('Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'),expression:\"'Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'\",modifiers:{\"hover\":true,\"top\":true}},{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"title\":\"Popover on top\",\"variant\":\"outline-primary\"}},[_vm._v(\" Popover on top \")]),_c('b-button',{directives:[{name:\"b-popover\",rawName:\"v-b-popover.hover.right\",value:('Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'),expression:\"'Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'\",modifiers:{\"hover\":true,\"right\":true}},{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"title\":\"Popover on right\",\"variant\":\"outline-primary\"}},[_vm._v(\" Popover on right \")]),_c('b-button',{directives:[{name:\"b-popover\",rawName:\"v-b-popover.hover.left\",value:('Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'),expression:\"'Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'\",modifiers:{\"hover\":true,\"left\":true}},{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"title\":\"Popover on left\",\"variant\":\"outline-primary\"}},[_vm._v(\" Popover on left \")]),_c('b-button',{directives:[{name:\"b-popover\",rawName:\"v-b-popover.hover.bottom\",value:('Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'),expression:\"'Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'\",modifiers:{\"hover\":true,\"bottom\":true}},{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"title\":\"Popover on bottom\",\"variant\":\"outline-primary\"}},[_vm._v(\" Popover on bottom \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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_POPOVER } 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 { BVPopover } from '../../components/popover/helpers/bv-popover'; // Key which we use to store tooltip object on element\n\nvar BV_POPOVER = '__BV_Popover__'; // Default trigger\n\nvar DefaultTrigger = 'click'; // 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 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 Popover 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 content: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'right',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n disabled: false,\n id: null,\n html: false,\n delay: getComponentConfig(NAME_POPOVER, 'delay', 50),\n boundary: String(getComponentConfig(NAME_POPOVER, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_POPOVER, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_POPOVER, 'variant'),\n customClass: getComponentConfig(NAME_POPOVER, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is popover content (html optionally supported)\n config.content = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Content generator function\n config.content = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\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 } // 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 } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title/content allows HTML\n config.html = true;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of popover\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of popover\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 }\n\n return config;\n}; // Add or update Popover on our element\n\n\nvar applyPopover = function applyPopover(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_POPOVER]) {\n var $parent = vnode.context;\n el[BV_POPOVER] = new BVPopover({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_POPOVER].__bv_prev_data__ = {};\n el[BV_POPOVER].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the popover, we update the title\n // and content if they are functions\n var data = {};\n\n if (isFunction(config.title)) {\n data.title = config.title(el);\n }\n\n if (isFunction(config.content)) {\n data.content = config.content(el);\n }\n\n if (keys(data).length > 0) {\n el[BV_POPOVER].updateData(data);\n }\n });\n }\n\n var data = {\n title: config.title,\n content: config.content,\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 disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_POPOVER].__bv_prev_data__;\n el[BV_POPOVER].__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/content is a function, we execute it here\n newData[prop] = (prop === 'title' || prop === 'content') && isFunction(data[prop]) ?\n /* istanbul ignore next */\n data[prop](el) : data[prop];\n }\n });\n el[BV_POPOVER].updateData(newData);\n }\n}; // Remove Popover from our element\n\n\nvar removePopover = function removePopover(el) {\n if (el[BV_POPOVER]) {\n el[BV_POPOVER].$destroy();\n el[BV_POPOVER] = null;\n }\n\n delete el[BV_POPOVER];\n}; // Export our directive\n\n\nexport var VBPopover = {\n bind: function bind(el, bindings, vnode) {\n applyPopover(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 endless render/update loops\n vnode.context.$nextTick(function () {\n applyPopover(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removePopover(el);\n }\n};","export const codePosition = `\r\n\r\n\r\n\r\n`\r\n\r\nexport const codeTrigger = `\r\n\r\n\r\n\r\n`\r\n\r\nexport const codeOption = `\r\n\r\n\r\n\r\n`\r\n\r\nexport const codeMethod = `\r\n\r\n\r\n\r\n`\r\n\r\nexport const codeEvent = `\r\n\r\n\r\n\r\n`\r\n\r\nexport const codeVariant = `\r\n\r\n\r\n\r\n`\r\n\r\nexport const codeAdvance = `\r\n\r\n\r\n\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!./PopoverPosition.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!./PopoverPosition.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PopoverPosition.vue?vue&type=template&id=5cf6a765&\"\nimport script from \"./PopoverPosition.vue?vue&type=script&lang=js&\"\nexport * from \"./PopoverPosition.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-code',{attrs:{\"title\":\"Popover Triggers\"},scopedSlots:_vm._u([{key:\"code\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.codeTrigger)+\" \")]},proxy:true}])},[_c('b-card-text',{staticClass:\"mb-0\"},[_c('span',[_vm._v(\"Popovers can be triggered (opened/closed) via any combination of \")]),_c('code',[_vm._v(\"click, hover\")]),_c('span',[_vm._v(\" and \")]),_c('code',[_vm._v(\"focus\")]),_c('span',[_vm._v(\" . The default trigger is \")]),_c('code',[_vm._v(\"click\")]),_c('span',[_vm._v(\" . Or a trigger of manual can be specified, where the popover can only be opened or closed programmatically.\")])]),_c('div',{staticClass:\"demo-inline-spacing\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}},{name:\"b-popover\",rawName:\"v-b-popover.click\",value:('Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'),expression:\"'Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'\",modifiers:{\"click\":true}}],attrs:{\"title\":\"On Cllick Trigger\",\"variant\":\"outline-primary\"}},[_vm._v(\" On Cllick Trigger \")]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}},{name:\"b-popover\",rawName:\"v-b-popover.focus\",value:('Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'),expression:\"'Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'\",modifiers:{\"focus\":true}}],attrs:{\"title\":\"On Focus Trigger\",\"variant\":\"outline-primary\"}},[_vm._v(\" On Focus Trigger \")]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}},{name:\"b-popover\",rawName:\"v-b-popover.hover\",value:('Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'),expression:\"'Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'\",modifiers:{\"hover\":true}}],attrs:{\"title\":\"On Hover Trigger\",\"variant\":\"outline-primary\"}},[_vm._v(\" On Hover Trigger \")]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}},{name:\"b-popover\",rawName:\"v-b-popover.hover.focus\",value:('Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'),expression:\"'Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.'\",modifiers:{\"hover\":true,\"focus\":true}}],attrs:{\"title\":\"Hover + Focus Trigger\",\"variant\":\"outline-primary\"}},[_vm._v(\" Hover + Focus Trigger \")])],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!./PopoverTrigger.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!./PopoverTrigger.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PopoverTrigger.vue?vue&type=template&id=587842ce&\"\nimport script from \"./PopoverTrigger.vue?vue&type=script&lang=js&\"\nexport * from \"./PopoverTrigger.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-code',{attrs:{\"title\":\"Popover Options\"},scopedSlots:_vm._u([{key:\"code\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.codeOption)+\" \")]},proxy:true}])},[_c('div',{staticClass:\"demo-inline-spacing\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}},{name:\"b-popover\",rawName:\"v-b-popover.hover\",value:('Tart macaroon marzipan I love soufflé apple pie wafer. Chocolate bar jelly caramels jujubes chocolate cake gummies.'),expression:\"'Tart macaroon marzipan I love soufflé apple pie wafer. Chocolate bar jelly caramels jujubes chocolate cake gummies.'\",modifiers:{\"hover\":true}}],attrs:{\"title\":\"Title from title attribute\",\"variant\":\"outline-primary\"}},[_vm._v(\" Title + Content \")]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-target-1\",\"variant\":\"outline-primary\"}},[_vm._v(\" No animation \")]),_c('b-popover',{attrs:{\"target\":\"popover-target-1\",\"triggers\":\"hover\",\"no-fade\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Without Fade Animation \")]},proxy:true}])},[_c('span',[_vm._v(\"Tart macaroon marzipan I love soufflé apple pie wafer. Chocolate bar jelly caramels jujubes chocolate cake gummies.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-target-2\",\"variant\":\"outline-primary\"}},[_vm._v(\" Delay popover \")]),_c('b-popover',{attrs:{\"target\":\"popover-target-2\",\"triggers\":\"hover\",\"delay\":_vm.delay},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Click Triggered \")]},proxy:true}])},[_c('span',[_vm._v(\"Tart macaroon marzipan I love soufflé apple pie wafer. Chocolate bar jelly caramels jujubes chocolate cake gummies.\")])])],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!./PopoverOption.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!./PopoverOption.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PopoverOption.vue?vue&type=template&id=3165428c&\"\nimport script from \"./PopoverOption.vue?vue&type=script&lang=js&\"\nexport * from \"./PopoverOption.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-code',{attrs:{\"title\":\"Popover Methods\"},scopedSlots:_vm._u([{key:\"code\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.codeMethod)+\" \")]},proxy:true}])},[_c('b-card-text',{staticClass:\"mb-0\"},[_vm._v(\" This is considered a “manual” popovering of the popover. popovers with zero-length titles are never displayed. \")]),_c('div',{staticClass:\"demo-inline-spacing\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-1\",\"variant\":\"outline-primary\"},on:{\"click\":_vm.showPopover}},[_vm._v(\" Show popover \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-1\",\"placement\":\"top\",\"triggers\":\"click\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Show Method Popover \")]},proxy:true}])},[_c('span',[_vm._v(\"Fruitcake candy cheesecake jelly beans cake gummies. Cotton candy I love sweet roll jujubes pastry cake halvah cake.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-2\",\"variant\":\"outline-primary\"},on:{\"click\":_vm.hidePopover}},[_vm._v(\" Hide popover \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-2\",\"placement\":\"top\",\"triggers\":\"hover\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Hide Method Popover \")]},proxy:true}])},[_c('span',[_vm._v(\"Fruitcake candy cheesecake jelly beans cake gummies. Cotton candy I love sweet roll jujubes pastry cake halvah cake.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-3\",\"variant\":\"outline-primary\"},on:{\"click\":function($event){_vm.show = !_vm.show}}},[_vm._v(\" Toggle popover \")]),_c('b-popover',{attrs:{\"show\":_vm.show,\"target\":\"popover-button-3\",\"placement\":\"top\",\"triggers\":\"click\"},on:{\"update:show\":function($event){_vm.show=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Toggle Method Popover \")]},proxy:true}])},[_c('span',[_vm._v(\"Fruitcake candy cheesecake jelly beans cake gummies. Cotton candy I love sweet roll jujubes pastry cake halvah cake.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-disable\",\"variant\":\"outline-primary\"}},[_vm._v(\" Disable/Enable popover \")]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":_vm.disabled ? 'success':'danger'},on:{\"click\":function($event){_vm.disabled = !_vm.disabled}}},[_vm._v(\" \"+_vm._s(_vm.disabled ? 'Enable' : 'Disable')+\" popover by prop \")]),_c('b-popover',{ref:\"popover\",attrs:{\"disabled\":_vm.disabled,\"target\":\"popover-button-disable\"},on:{\"update:disabled\":function($event){_vm.disabled=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Disable/Enable Popover \")]},proxy:true}])},[_c('span',[_vm._v(\"Fruitcake candy cheesecake jelly beans cake gummies. Cotton candy I love sweet roll jujubes pastry cake halvah cake.\")])])],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!./PopoverMethod.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!./PopoverMethod.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PopoverMethod.vue?vue&type=template&id=0fae7afd&\"\nimport script from \"./PopoverMethod.vue?vue&type=script&lang=js&\"\nexport * from \"./PopoverMethod.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-code',{attrs:{\"title\":\"Popover Events\"},scopedSlots:_vm._u([{key:\"code\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.codeEvent)+\" \")]},proxy:true}])},[_c('b-card-text',{staticClass:\"mb-0\"},[_vm._v(\" Popover have four events : \"),_c('code',[_vm._v(\"Show, Shown, Hide, Hidden\")])]),_c('div',{staticClass:\"demo-inline-spacing\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-show-event\",\"variant\":\"outline-primary\"}},[_vm._v(\" Show Event popover \")]),_c('b-popover',{ref:\"popover-show\",attrs:{\"target\":\"popover-button-show-event\",\"triggers\":\"click\"},on:{\"show\":_vm.onShow},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Show Event Popover \")]},proxy:true}])},[_c('span',[_vm._v(\"Bonbon chocolate cake. Pudding halvah pie apple pie topping marzipan pastry marzipan cupcake.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-shown-event\",\"variant\":\"outline-primary\"}},[_vm._v(\" Shown Event popover \")]),_c('b-popover',{ref:\"popover-shown\",attrs:{\"target\":\"popover-button-shown-event\",\"triggers\":\"click\"},on:{\"shown\":_vm.onShown},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Shown Event Popover \")]},proxy:true}])},[_c('span',[_vm._v(\"Bonbon chocolate cake. Pudding halvah pie apple pie topping marzipan pastry marzipan cupcake.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-hide-event\",\"variant\":\"outline-primary\"}},[_vm._v(\" Hide Event popover \")]),_c('b-popover',{ref:\"popover-hide\",attrs:{\"target\":\"popover-button-hide-event\",\"triggers\":\"click\"},on:{\"hide\":_vm.onHide},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Hide Event Popover \")]},proxy:true}])},[_c('span',[_vm._v(\"Bonbon chocolate cake. Pudding halvah pie apple pie topping marzipan pastry marzipan cupcake.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-hidden-event\",\"variant\":\"outline-primary\"}},[_vm._v(\" Hidden Event popover \")]),_c('b-popover',{ref:\"popover-hidden\",attrs:{\"target\":\"popover-button-hidden-event\",\"triggers\":\"click\"},on:{\"hidden\":_vm.onHidden},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Hidden Event Popover \")]},proxy:true}])},[_c('span',[_vm._v(\"Bonbon chocolate cake. Pudding halvah pie apple pie topping marzipan pastry marzipan cupcake.\")])])],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!./PopoverEvent.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!./PopoverEvent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PopoverEvent.vue?vue&type=template&id=a6ee6d66&\"\nimport script from \"./PopoverEvent.vue?vue&type=script&lang=js&\"\nexport * from \"./PopoverEvent.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-code',{attrs:{\"title\":\"Popover Variant\"},scopedSlots:_vm._u([{key:\"code\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.codeVariant)+\" \")]},proxy:true}])},[_c('b-card-text',{staticClass:\"mb-0\"},[_c('span',[_vm._v(\"BootstrapVue's popovers support contextual color variants via our custom CSS, via the\")]),_c('code',[_vm._v(\"variant\")]),_c('span',[_vm._v(\" prop:\")])]),_c('div',{staticClass:\"demo-inline-spacing\"},[_c('b-button',{attrs:{\"id\":\"popover-button-default\",\"variant\":\"gradient-primary\"}},[_vm._v(\" Default \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-default\",\"triggers\":\"focus\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\"Default!\")])]},proxy:true}])},[_c('span',[_vm._v(\"Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-variant\",\"variant\":\"outline-primary\"}},[_vm._v(\" Primary \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-variant\",\"variant\":\"primary\",\"triggers\":\"focus\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\"Primary!\")])]},proxy:true}])},[_c('span',[_vm._v(\"Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.\")])]),_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:{\"id\":\"popover-button-secondary\",\"variant\":\"outline-secondary\"}},[_vm._v(\" Secondary \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-secondary\",\"variant\":\"secondary\",\"triggers\":\"focus\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\"Secondary!\")])]},proxy:true}])},[_c('span',[_vm._v(\"Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(40, 199, 111, 0.15)'),expression:\"'rgba(40, 199, 111, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-success\",\"variant\":\"outline-success\"}},[_vm._v(\" Success \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-success\",\"variant\":\"success\",\"triggers\":\"focus\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\"Success!\")])]},proxy:true}])},[_c('span',[_vm._v(\"Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(234, 84, 85, 0.15)'),expression:\"'rgba(234, 84, 85, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-danger\",\"variant\":\"outline-danger\"}},[_vm._v(\" Danger \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-danger\",\"variant\":\"danger\",\"triggers\":\"focus\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\"Danger!\")])]},proxy:true}])},[_c('span',[_vm._v(\"Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 159, 67, 0.15)'),expression:\"'rgba(255, 159, 67, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-warning\",\"variant\":\"outline-warning\"}},[_vm._v(\" Warning \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-warning\",\"variant\":\"warning\",\"triggers\":\"focus\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\"Warning!\")])]},proxy:true}])},[_c('span',[_vm._v(\"Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(0, 207, 232, 0.15)'),expression:\"'rgba(0, 207, 232, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-info\",\"variant\":\"outline-info\"}},[_vm._v(\" Info \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-info\",\"variant\":\"info\",\"triggers\":\"focus\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\"Info!\")])]},proxy:true}])},[_c('span',[_vm._v(\"Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.\")])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(30, 30, 30, 0.15)'),expression:\"'rgba(30, 30, 30, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"id\":\"popover-button-dark\",\"variant\":\"outline-dark\"}},[_vm._v(\" Dark \")]),_c('b-popover',{attrs:{\"target\":\"popover-button-dark\",\"variant\":\"dark\",\"triggers\":\"focus\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\"Info!\")])]},proxy:true}])},[_c('span',[_vm._v(\"Macaroon chocolate candy. I love carrot cake gingerbread cake lemon drops. Muffin sugar plum marzipan pie.\")])])],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!./PopoverVariant.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!./PopoverVariant.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PopoverVariant.vue?vue&type=template&id=3322b3b8&\"\nimport script from \"./PopoverVariant.vue?vue&type=script&lang=js&\"\nexport * from \"./PopoverVariant.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-code',{attrs:{\"title\":\"Advanced usage with reactive content\"},scopedSlots:_vm._u([{key:\"code\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.codeAdvance)+\" \")]},proxy:true}])},[_c('b-card-text',[_c('span',[_vm._v(\"You can even make your \")]),_c('code',[_vm._v(\"\")]),_c('span',[_vm._v(\" content interactive.\")])]),_c('div',{attrs:{\"id\":\"my-container\"}},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],ref:\"button\",attrs:{\"id\":\"popover-reactive-1\",\"variant\":\"outline-primary\"}},[_vm._v(\" Reactive Content Using Slots \")]),(_vm.input1Return && _vm.input2Return)?_c('b-card',{staticClass:\"shadow-none border mb-0 mt-2\",attrs:{\"title\":\"Returned values:\"}},[_c('p',{staticClass:\"card-text\"},[_vm._v(\" Name: \"),_c('strong',[_vm._v(_vm._s(_vm.input1Return))]),_c('br'),_vm._v(\" Password: \"),_c('strong',[_vm._v(_vm._s(_vm.input2Return))])])]):_vm._e(),_c('b-popover',{ref:\"popover\",attrs:{\"target\":\"popover-reactive-1\",\"triggers\":\"click\",\"show\":_vm.popoverShow,\"placement\":\"auto\",\"container\":\"my-container\"},on:{\"update:show\":function($event){_vm.popoverShow=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-content-between align-items-center\"},[_c('span',[_vm._v(\"Interactive Content\")])])]},proxy:true}])},[_c('div',[_c('b-form-group',{attrs:{\"state\":_vm.input1state,\"invalid-feedback\":\"This field is required\"}},[_c('b-form-input',{attrs:{\"placeholder\":\"Your Name\",\"state\":_vm.input1state,\"size\":\"sm\"},model:{value:(_vm.input1),callback:function ($$v) {_vm.input1=$$v},expression:\"input1\"}})],1),_c('b-form-group',{attrs:{\"state\":_vm.input2state,\"invalid-feedback\":\"This field is required\"}},[_c('b-form-input',{attrs:{\"type\":\"password\",\"placeholder\":\"Your Password\",\"state\":_vm.input2state,\"size\":\"sm\"},model:{value:(_vm.input2),callback:function ($$v) {_vm.input2=$$v},expression:\"input2\"}})],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}}],staticClass:\"mr-1\",attrs:{\"size\":\"sm\",\"variant\":\"danger\"},on:{\"click\":_vm.onClose}},[_vm._v(\" Cancel \")]),_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\"},on:{\"click\":_vm.onOk}},[_vm._v(\" Ok \")])],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!./PopoverAdvance.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!./PopoverAdvance.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PopoverAdvance.vue?vue&type=template&id=26fe732f&\"\nimport script from \"./PopoverAdvance.vue?vue&type=script&lang=js&\"\nexport * from \"./PopoverAdvance.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","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!./Popover.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!./Popover.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Popover.vue?vue&type=template&id=2c87e820&\"\nimport script from \"./Popover.vue?vue&type=script&lang=js&\"\nexport * from \"./Popover.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","import BCardCode from './BCardCode.vue'\r\n\r\nexport default BCardCode\r\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});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toastification\"},[_c('div',{staticClass:\"d-flex align-items-start\"},[_c('b-avatar',{staticClass:\"mr-75 flex-shrink-0\",attrs:{\"variant\":_vm.variant,\"size\":\"1.8rem\"}},[_c('feather-icon',{attrs:{\"icon\":_vm.icon,\"size\":\"15\"}})],1),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',[(_vm.title)?_c('h5',{staticClass:\"mb-0 font-weight-bolder toastification-title\",class:(\"text-\" + _vm.variant),domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e(),(_vm.text)?_c('small',{staticClass:\"d-inline-block text-body\",domProps:{\"textContent\":_vm._s(_vm.text)}}):_vm._e()]),_c('span',{staticClass:\"cursor-pointer toastification-close-icon ml-auto \",on:{\"click\":function($event){return _vm.$emit('close-toast')}}},[(!_vm.hideClose)?_c('feather-icon',{staticClass:\"text-body\",attrs:{\"icon\":\"XIcon\"}}):_vm._e()],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./ToastificationContent.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!./ToastificationContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToastificationContent.vue?vue&type=template&id=55dd3057&scoped=true&\"\nimport script from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nexport * from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&prod&lang=scss&scoped=true&\"\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 \"55dd3057\",\n null\n \n)\n\nexport default component.exports","import { Vue } from '../../../vue';\nimport { NAME_POPOVER_TEMPLATE } from '../../../constants/components';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { BVTooltipTemplate } from '../../tooltip/helpers/bv-tooltip-template'; // @vue/component\n\nexport var BVPopoverTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_TEMPLATE,\n extends: BVTooltipTemplate,\n computed: {\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title,\n content = this.content; // Title and content could be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title;\n var $content = isFunction(content) ? content({}) : content; // Directive usage only\n\n var titleDomProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n var contentDomProps = this.html && !isFunction(content) ? {\n innerHTML: content\n } : {};\n return h('div', {\n staticClass: 'popover b-popover',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), isUndefinedOrNull($title) || $title === '' ?\n /* istanbul ignore next */\n h() : h('h3', {\n staticClass: 'popover-header',\n domProps: titleDomProps\n }, [$title]), isUndefinedOrNull($content) || $content === '' ?\n /* istanbul ignore next */\n h() : h('div', {\n staticClass: 'popover-body',\n domProps: contentDomProps\n }, [$content])]);\n }\n }\n});","// Popover \"Class\" (Built as a renderless Vue instance)\n// Inherits from BVTooltip\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { Vue } from '../../../vue';\nimport { NAME_POPOVER_HELPER } from '../../../constants/components';\nimport { BVTooltip } from '../../tooltip/helpers/bv-tooltip';\nimport { BVPopoverTemplate } from './bv-popover-template'; // @vue/component\n\nexport var BVPopover = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_HELPER,\n extends: BVTooltip,\n computed: {\n // Overwrites BVTooltip\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n getTemplate: function getTemplate() {\n // Overwrites BVTooltip\n return BVPopoverTemplate;\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_POPOVER } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BTooltip, props as BTooltipProps } from '../tooltip/tooltip';\nimport { BVPopover } from './helpers/bv-popover';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, BTooltipProps), {}, {\n content: makeProp(PROP_TYPE_STRING),\n placement: makeProp(PROP_TYPE_STRING, 'right'),\n triggers: makeProp(PROP_TYPE_ARRAY_STRING, EVENT_NAME_CLICK)\n})), NAME_POPOVER); // --- Main component ---\n// @vue/component\n\nexport var BPopover = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER,\n extends: BTooltip,\n inheritAttrs: false,\n props: props,\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVPopover;\n },\n updateContent: function updateContent() {\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function references by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setContent(this.normalizeSlot() || this.content);\n this.setTitle(this.normalizeSlot(SLOT_NAME_TITLE) || this.title);\n }\n } // Render function provided by BTooltip\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 } from '../../vue';\nimport { NAME_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\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 { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': 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 noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\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\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 { 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};","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","var _makePropsConfigurabl, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TOOLTIP } from '../../constants/components';\nimport { EVENT_NAME_CLOSE, EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_OPEN, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_OBJECT_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement, SVGElement } from '../../constants/safe-types';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { pick } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTooltip } from './helpers/bv-tooltip'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ENABLED = 'disabled';\nvar MODEL_EVENT_NAME_ENABLED = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ENABLED;\nvar MODEL_PROP_NAME_SHOW = 'show';\nvar MODEL_EVENT_NAME_SHOW = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SHOW; // --- Props ---\n\nexport var props = makePropsConfigurable((_makePropsConfigurabl = {\n // String: scrollParent, window, or viewport\n // Element: element reference\n // Object: Vue component\n boundary: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING], 'scrollParent'),\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 50),\n // String: HTML ID of container, if null body is used (default)\n // HTMLElement: element reference reference\n // Object: Vue Component\n container: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING]),\n customClass: makeProp(PROP_TYPE_STRING),\n delay: makeProp(PROP_TYPE_NUMBER_OBJECT_STRING, 50)\n}, _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_ENABLED, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"fallbackPlacement\", makeProp(PROP_TYPE_ARRAY_STRING, 'flip')), _defineProperty(_makePropsConfigurabl, \"id\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"noFade\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"noninteractive\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"offset\", makeProp(PROP_TYPE_NUMBER_STRING, 0)), _defineProperty(_makePropsConfigurabl, \"placement\", makeProp(PROP_TYPE_STRING, 'top')), _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_SHOW, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"target\", makeProp([HTMLElement, SVGElement, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING], undefined, true)), _defineProperty(_makePropsConfigurabl, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"triggers\", makeProp(PROP_TYPE_ARRAY_STRING, 'hover focus')), _defineProperty(_makePropsConfigurabl, \"variant\", makeProp(PROP_TYPE_STRING)), _makePropsConfigurabl), NAME_TOOLTIP); // --- Main component ---\n// @vue/component\n\nexport var BTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP,\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localShow: this[MODEL_PROP_NAME_SHOW],\n localTitle: '',\n localContent: ''\n };\n },\n computed: {\n // Data that will be passed to the template and popper\n templateData: function templateData() {\n return _objectSpread({\n title: this.localTitle,\n content: this.localContent,\n interactive: !this.noninteractive\n }, pick(this.$props, ['boundary', 'boundaryPadding', 'container', 'customClass', 'delay', 'fallbackPlacement', 'id', 'noFade', 'offset', 'placement', 'target', 'target', 'triggers', 'variant', MODEL_PROP_NAME_ENABLED]));\n },\n // Used to watch for changes to the title and content props\n templateTitleContent: function templateTitleContent() {\n var title = this.title,\n content = this.content;\n return {\n title: title,\n content: content\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_SHOW, function (newValue, oldValue) {\n if (newValue !== oldValue && newValue !== this.localShow && this.$_toolpop) {\n if (newValue) {\n this.$_toolpop.show();\n } else {\n // We use `forceHide()` to override any active triggers\n this.$_toolpop.forceHide();\n }\n }\n }), _defineProperty(_watch, MODEL_PROP_NAME_ENABLED, function (newValue) {\n if (newValue) {\n this.doDisable();\n } else {\n this.doEnable();\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n // TODO: May need to be done in a `$nextTick()`\n this.$emit(MODEL_EVENT_NAME_SHOW, newValue);\n }), _defineProperty(_watch, \"templateData\", function templateData() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.$_toolpop) {\n _this.$_toolpop.updateData(_this.templateData);\n }\n });\n }), _defineProperty(_watch, \"templateTitleContent\", function templateTitleContent() {\n this.$nextTick(this.updateContent);\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_toolpop = null;\n },\n updated: function updated() {\n // Update the `propData` object\n // Done in a `$nextTick()` to ensure slot(s) have updated\n this.$nextTick(this.updateContent);\n },\n beforeDestroy: function beforeDestroy() {\n // Shutdown our local event listeners\n this.$off(EVENT_NAME_OPEN, this.doOpen);\n this.$off(EVENT_NAME_CLOSE, this.doClose);\n this.$off(EVENT_NAME_DISABLE, this.doDisable);\n this.$off(EVENT_NAME_ENABLE, this.doEnable); // Destroy the tip instance\n\n if (this.$_toolpop) {\n this.$_toolpop.$destroy();\n this.$_toolpop = null;\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n // Instantiate a new BVTooltip instance\n // Done in a `$nextTick()` to ensure DOM has completed rendering\n // so that target can be found\n this.$nextTick(function () {\n // Load the on demand child instance\n var Component = _this2.getComponent(); // Ensure we have initial content\n\n\n _this2.updateContent(); // Pass down the scoped style attribute if available\n\n\n var scopeId = getScopeId(_this2) || getScopeId(_this2.$parent); // Create the instance\n\n var $toolpop = _this2.$_toolpop = new Component({\n parent: _this2,\n // Pass down the scoped style ID\n _scopeId: scopeId || undefined\n }); // Set the initial data\n\n $toolpop.updateData(_this2.templateData); // Set listeners\n\n $toolpop.$on(EVENT_NAME_SHOW, _this2.onShow);\n $toolpop.$on(EVENT_NAME_SHOWN, _this2.onShown);\n $toolpop.$on(EVENT_NAME_HIDE, _this2.onHide);\n $toolpop.$on(EVENT_NAME_HIDDEN, _this2.onHidden);\n $toolpop.$on(EVENT_NAME_DISABLED, _this2.onDisabled);\n $toolpop.$on(EVENT_NAME_ENABLED, _this2.onEnabled); // Initially disabled?\n\n if (_this2[MODEL_PROP_NAME_ENABLED]) {\n // Initially disabled\n _this2.doDisable();\n } // Listen to open signals from others\n\n\n _this2.$on(EVENT_NAME_OPEN, _this2.doOpen); // Listen to close signals from others\n\n\n _this2.$on(EVENT_NAME_CLOSE, _this2.doClose); // Listen to disable signals from others\n\n\n _this2.$on(EVENT_NAME_DISABLE, _this2.doDisable); // Listen to enable signals from others\n\n\n _this2.$on(EVENT_NAME_ENABLE, _this2.doEnable); // Initially show tooltip?\n\n\n if (_this2.localShow) {\n $toolpop.show();\n }\n });\n },\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVTooltip;\n },\n updateContent: function updateContent() {\n // Overridden by BPopover\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function reference by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setTitle(this.normalizeSlot() || this.title);\n },\n // Helper methods for `updateContent()`\n setTitle: function setTitle(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localTitle !== value) {\n this.localTitle = value;\n }\n },\n setContent: function setContent(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localContent !== value) {\n this.localContent = value;\n }\n },\n // --- Template event handlers ---\n onShow: function onShow(bvEvent) {\n // Placeholder\n this.$emit(EVENT_NAME_SHOW, bvEvent);\n\n if (bvEvent) {\n this.localShow = !bvEvent.defaultPrevented;\n }\n },\n onShown: function onShown(bvEvent) {\n // Tip is now showing\n this.localShow = true;\n this.$emit(EVENT_NAME_SHOWN, bvEvent);\n },\n onHide: function onHide(bvEvent) {\n this.$emit(EVENT_NAME_HIDE, bvEvent);\n },\n onHidden: function onHidden(bvEvent) {\n // Tip is no longer showing\n this.$emit(EVENT_NAME_HIDDEN, bvEvent);\n this.localShow = false;\n },\n onDisabled: function onDisabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `disabled` instead of `disable`\n if (bvEvent && bvEvent.type === EVENT_NAME_DISABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, true);\n this.$emit(EVENT_NAME_DISABLED, bvEvent);\n }\n },\n onEnabled: function onEnabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `enabled` instead of `enable`\n if (bvEvent && bvEvent.type === EVENT_NAME_ENABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, false);\n this.$emit(EVENT_NAME_ENABLED, bvEvent);\n }\n },\n // --- Local event listeners ---\n doOpen: function doOpen() {\n !this.localShow && this.$_toolpop && this.$_toolpop.show();\n },\n doClose: function doClose() {\n this.localShow && this.$_toolpop && this.$_toolpop.hide();\n },\n doDisable: function doDisable() {\n this.$_toolpop && this.$_toolpop.disable();\n },\n doEnable: function doEnable() {\n this.$_toolpop && this.$_toolpop.enable();\n }\n },\n render: function render(h) {\n // Always renders a comment node\n // TODO:\n // Future: Possibly render a target slot (single root element)\n // which we can apply the listeners to (pass `this.$el` to BVTooltip)\n return h();\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() {};","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\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!./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&prod&lang=scss&scoped=true&\""],"sourceRoot":""}