{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/spinner/spinner.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/container.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./src/views/sales/opportunity/ViewOpportunity.vue?d465","webpack:///src/views/sales/opportunity/ViewOpportunity.vue","webpack:///./src/views/sales/opportunity/ViewOpportunity.vue?4833","webpack:///./src/views/sales/opportunity/ViewOpportunity.vue","webpack:///./node_modules/bootstrap-vue/esm/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","props","label","role","small","tag","type","variant","BSpinner","extend","name","functional","render","h","_ref","_class","data","slots","scopedSlots","$slots","$scopedSlots","$label","staticClass","attrs","class","concat","fluid","BContainer","children","container","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread","target","i","arguments","length","source","forEach","getOwnPropertyDescriptors","defineProperties","cardImgProps","bind","imgSrc","required","align","noBody","BCard","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","footer","footerHtml","textVariant","bgVariant","borderVariant","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","domProps","$content","overlay","$footer","hasFooterSlot","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","replace","blank","blankColor","block","center","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","join","title","titleTag","BCardTitle","bodyClass","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","footerClass","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","_vm","this","_h","$createElement","_c","_self","staticStyle","_e","loadingSpinner","statusOptions","isSelectDisabled","isAmountReadOnly","staticRenderFns","components","BRow","BCol","BButton","BFormCheckbox","BForm","BFormInput","BFormGroup","BFormTextarea","BFormSelect","BFormFile","BFormDatepicker","BCardText","component","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","clickOutMixin","listenForClickOut","watch","newValue","oldValue","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","mounted","document","beforeDestroy","methods","isClickOut","event","$el","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","map","selector","els","id","boundary","disabled","dropleft","dropright","dropup","noFlip","offset","popperOpts","dropdownMixin","mixins","provide","bvDropdown","inject","bvNavbar","default","visible","visibleChangePrevented","computed","inNavbar","toggler","toggle","$refs","directionClass","boundaryClass","eventName","bvEvent","cancelable","vueTarget","menu","relatedTarget","componentId","safeId","emitEvent","defaultPrevented","$off","focusToggler","showMenu","hideMenu","created","$_popper","$_hideTimeout","deactivated","whileOpenListen","destroyPopper","clearHideTimeout","emitOnRoot","$emit","_this","warn","el","split","createPopper","$nextTick","focusMenu","element","getPopperConfig","destroy","updatePopper","scheduleUpdate","_unused","clearTimeout","placement","popperConfig","modifiers","flip","enabled","boundariesElement","preventOverflow","isOpen","method","$root","rootCloseListener","vm","show","_this2","hide","refocus","undefined","$once","_event","keyCode","indexOf","onMousedown","propagation","onKeydown","onEsc","focusNext","onSplitClick","hideHandler","_this3","setTimeout","up","_this4","items","getItems","index","focusItem","find","_this5","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_createClass","protoProps","staticProps","prototype","OBSERVER_PROP_NAME","VisibilityObserver","options","vnode","callback","margin","once","observer","doneOnce","createObserver","stop","IntersectionObserver","handler","root","rootMargin","threshold","context","observe","entries","entry","isIntersecting","Boolean","intersectionRatio","disconnect","mod","test","toLowerCase","_prevModifiers","unbind","VBVisible","componentUpdated","maxRows","noAutoShrink","noResize","rows","wrap","directives","listeners","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","math","computedMaxRows","computedAttrs","form","placeholder","autocomplete","readonly","plaintext","computedAriaInvalid","computedListeners","bvListeners","input","onInput","change","onChange","blur","onBlur","localValue","setHeight","visibleCallback","computeHeight","$isServer","lineHeight","border","borderTopWidth","borderBottomWidth","padding","paddingTop","paddingBottom","minHeight","oldHeight","scrollHeight","contentRows","computedClass","style","on","ref","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","_objectSpread2","array","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","bvGroup","from","isChecked","checked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","slice","isGroup","state","_watch","_makeModelMixin","defaultValue","validator","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","every","v","getDataTransferItemEntry","item","getAsEntry","webkitGetAsEntry","getAllFileEntries","dataTransferItemList","traverseDirectories","Promise","all","kind","isDirectory","getAllFileEntriesInDirectory","createReader","isFile","resolve","file","$path","directoryReader","path","entryPromises","readDirectoryEntries","readEntries","then","accept","browseText","capture","directory","dropPlaceholder","fileNameFormatter","multiple","noDrop","noDropPlaceholder","noTraverse","inheritAttrs","files","dragging","dropAllowed","hasFocus","computedAccept","trim","extOrType","startMatch","endMatch","rx","RegExp","computedCapture","bvAttrs","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","normalizeSlot","allowed","hasNormalizedSlot","filesTraversed","names","reset","$_form","$form","isFileValid","some","a","isFilesArrayValid","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","add","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","plain","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","onDrop","custom","size","stateClass","focus","zIndex","focusin","focusout","for","pointerEvents","dragenter","dragover","dragleave","drop","_methods","ariaLabel","ariaLabelledby","button","buttonVariant","inline","formRadioCheckMixin","get","set","isBtnMode","buttons","isPlain","isCustom","isSwitch","switches","switch","isInline","isDisabled","isRequired","computedName","groupName","computedForm","computedSize","computedState","computedButtonVariant","buttonClasses","handleFocus","$button","textTag"],"mappings":"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","file":"js/chunk-39cff482.7126c2f2.js","sourcesContent":["function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_SPINNER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_LABEL } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n label: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING, 'status'),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n type: makeProp(PROP_TYPE_STRING, 'border'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_SPINNER); // --- Main component ---\n// @vue/component\n\nexport var BSpinner = /*#__PURE__*/Vue.extend({\n name: NAME_SPINNER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $label = normalizeSlot(SLOT_NAME_LABEL, {}, $scopedSlots, $slots) || props.label;\n\n if ($label) {\n $label = h('span', {\n staticClass: 'sr-only'\n }, $label);\n }\n\n return h(props.tag, mergeData(data, {\n attrs: {\n role: $label ? props.role || 'status' : null,\n 'aria-hidden': $label ? null : 'true'\n },\n class: (_class = {}, _defineProperty(_class, \"spinner-\".concat(props.type), props.type), _defineProperty(_class, \"spinner-\".concat(props.type, \"-sm\"), props.small), _defineProperty(_class, \"text-\".concat(props.variant), props.variant), _class)\n }), [$label || h()]);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CONTAINER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // String breakpoint name new in Bootstrap v4.4.x\n fluid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_CONTAINER); // --- Main component ---\n// @vue/component\n\nexport var BContainer = /*#__PURE__*/Vue.extend({\n name: NAME_CONTAINER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var fluid = props.fluid;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n container: !(fluid || fluid === ''),\n 'container-fluid': fluid === true || fluid === ''\n }, \"container-\".concat(fluid), fluid && fluid !== true)\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\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_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\n }));\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/Vue.extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\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.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\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_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"main\"},[(_vm.loadingSpinner)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-spinner',{staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"variant\":\"success\",\"label\":\"Spinning\"}})],1):_vm._e(),(!_vm.loadingSpinner)?_c('div',[_c('b-form',[_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Opportunity Name\",\"label-for\":\"mc-opp-name\"}},[_c('b-form-input',{attrs:{\"id\":\"mc-opp-name\",\"type\":\"text\",\"value\":\"Opportunity A\",\"readonly\":\"\"}})],1)],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Customer / Lead\",\"label-for\":\"cust-lead\"}},[_c('b-form-input',{attrs:{\"id\":\"cust-lead\",\"type\":\"text\",\"value\":\"Person 1\",\"readonly\":\"\"}})],1)],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Status\",\"label-for\":\"status\"}},[_c('b-form-select',{attrs:{\"id\":\"status-select\",\"value\":\"New\",\"options\":_vm.statusOptions,\"required\":\"\",\"disabled\":_vm.isSelectDisabled}})],1)],1),_c('b-col',{attrs:{\"cols\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Sales Stage\",\"label-for\":\"sales-stage\"}},[_c('b-form-input',{attrs:{\"id\":\"sales-stage\",\"type\":\"text\",\"value\":\"Qualification\",\"readonly\":\"\"}})],1)],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-form-group',{attrs:{\"label-for\":\"salesperson\",\"label\":\"Assigned to\"}},[_c('div',{staticClass:\"form-label-group\"},[_c('b-form-input',{attrs:{\"id\":\"salesperson\",\"type\":\"text\",\"value\":\"Salesperson A\",\"readonly\":\"\"}})],1)])],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-form-group',{attrs:{\"label-for\":\"amt\",\"label\":\"Amount\"}},[_c('div',{staticClass:\"form-label-group\"},[_c('b-form-input',{attrs:{\"id\":\"amt\",\"type\":\"text\",\"value\":\"10000\",\"readonly\":_vm.isAmountReadOnly}})],1)])],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-form-group',{attrs:{\"label-for\":\"open-date\",\"label\":\"Open Date\"}},[_c('b-form-input',{attrs:{\"id\":\"open-date\",\"value\":\"2023-12-01\",\"readonly\":\"\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Close Date\",\"label-for\":\"close-date\"}},[_c('b-form-input',{attrs:{\"id\":\"close-date\",\"value\":\"2023-12-01\",\"readonly\":\"\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-form-group',{attrs:{\"label\":\"Days in tunnel\",\"label-for\":\"tunnel-days\"}},[_c('b-form-input',{attrs:{\"id\":\"tunnel-days\",\"type\":\"text\",\"value\":\"10\",\"readonly\":\"\"}})],1)],1)],1)],1)],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./ViewOpportunity.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!./ViewOpportunity.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ViewOpportunity.vue?vue&type=template&id=b249eb1a&\"\nimport script from \"./ViewOpportunity.vue?vue&type=script&lang=js&\"\nexport * from \"./ViewOpportunity.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","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_TEXTAREA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect';\nimport { mathCeil, mathMax, mathMin } from '../../utils/math';\nimport { toInteger, toFloat } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { VBVisible } from '../../directives/visible/visible'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n maxRows: makeProp(PROP_TYPE_NUMBER_STRING),\n // When in auto resize mode, disable shrinking to content height\n noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the resize handle of textarea\n noResize: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),\n // 'soft', 'hard' or 'off'\n // Browser default is 'soft'\n wrap: makeProp(PROP_TYPE_STRING, 'soft')\n})), NAME_FORM_TEXTAREA); // --- Main component ---\n// @vue/component\n\nexport var BFormTextarea = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXTAREA,\n directives: {\n 'b-visible': VBVisible\n },\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return mathMax(toInteger(this.rows, 2), 2);\n },\n computedMaxRows: function computedMaxRows() {\n return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.disabled,\n required = this.required;\n return {\n id: this.safeId(),\n name: this.name || null,\n form: this.form || null,\n disabled: disabled,\n placeholder: this.placeholder || null,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.computedRows,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n localValue: function localValue() {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n\n /* istanbul ignore next */\n visibleCallback: function visibleCallback(visible) {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n computeHeight: function computeHeight() {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = toFloat(computedStyle.lineHeight, 1); // Calculate height of border and padding\n\n var border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);\n var padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = getStyle(el, 'height') || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n setStyle(el, 'height', 'auto');\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n setStyle(el, 'height', oldHeight); // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = mathMax((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = mathMax(mathCeil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n return h('textarea', {\n class: this.computedClass,\n style: this.computedStyle,\n directives: [{\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\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.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","var _objectSpread2;\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_FORM_CHECKBOX } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Constants ---\n\nvar MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nvar MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_INDETERMINATE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"switch\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"uncheckedValue\", makeProp(PROP_TYPE_ANY, false)), _defineProperty(_objectSpread2, \"value\", makeProp(PROP_TYPE_ANY, true)), _objectSpread2))), NAME_FORM_CHECKBOX); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckbox = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: null\n }\n },\n props: props,\n computed: {\n isChecked: function isChecked() {\n var value = this.value,\n checked = this.computedLocalChecked;\n return isArray(checked) ? looseIndexOf(checked, value) > -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\n};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_FILE } from '../../constants/components';\nimport { HAS_PROMISE_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DROP_PLACEHOLDER, SLOT_NAME_FILE_NAME, SLOT_NAME_PLACEHOLDER } from '../../constants/slots';\nimport { RX_EXTENSION, RX_STAR } from '../../constants/regex';\nimport { File } from '../../constants/safe-types';\nimport { from as arrayFrom, flatten, flattenDeep } from '../../utils/array';\nimport { cloneDeep } from '../../utils/clone-deep';\nimport { closest } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isFile, isFunction, isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { escapeRegExp } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formSizeProps } from '../../mixins/form-size'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: [PROP_TYPE_ARRAY, File],\n defaultValue: null,\n validator: function validator(value) {\n /* istanbul ignore next */\n if (value === '') {\n warn(VALUE_EMPTY_DEPRECATED_MSG, NAME_FORM_FILE);\n return true;\n }\n\n return isUndefinedOrNull(value) || isValidValue(value);\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar VALUE_EMPTY_DEPRECATED_MSG = 'Setting \"value\"/\"v-model\" to an empty string for reset is deprecated. Set to \"null\" instead.'; // --- Helper methods ---\n\nvar isValidValue = function isValidValue(value) {\n return isFile(value) || isArray(value) && value.every(function (v) {\n return isValidValue(v);\n });\n}; // Helper method to \"safely\" get the entry from a data-transfer item\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getDataTransferItemEntry = function getDataTransferItemEntry(item) {\n return isFunction(item.getAsEntry) ? item.getAsEntry() : isFunction(item.webkitGetAsEntry) ? item.webkitGetAsEntry() : null;\n}; // Drop handler function to get all files\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntries = function getAllFileEntries(dataTransferItemList) {\n var traverseDirectories = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return Promise.all(arrayFrom(dataTransferItemList).filter(function (item) {\n return item.kind === 'file';\n }).map(function (item) {\n var entry = getDataTransferItemEntry(item);\n\n if (entry) {\n if (entry.isDirectory && traverseDirectories) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = '';\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity));\n}; // Get all the file entries (recursive) in a directory\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntriesInDirectory = function getAllFileEntriesInDirectory(directoryReader) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return new Promise(function (resolve) {\n var entryPromises = [];\n\n var readDirectoryEntries = function readDirectoryEntries() {\n directoryReader.readEntries(function (entries) {\n if (entries.length === 0) {\n resolve(Promise.all(entryPromises).then(function (entries) {\n return flatten(entries);\n }));\n } else {\n entryPromises.push(Promise.all(entries.map(function (entry) {\n if (entry) {\n if (entry.isDirectory) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(path).concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = \"\".concat(path).concat(file.name);\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity)));\n readDirectoryEntries();\n }\n });\n };\n\n readDirectoryEntries();\n });\n}; // --- Props ---\n\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formCustomProps), formStateProps), formSizeProps), {}, {\n accept: makeProp(PROP_TYPE_STRING, ''),\n browseText: makeProp(PROP_TYPE_STRING, 'Browse'),\n // Instruct input to capture from camera\n capture: makeProp(PROP_TYPE_BOOLEAN, false),\n directory: makeProp(PROP_TYPE_BOOLEAN, false),\n dropPlaceholder: makeProp(PROP_TYPE_STRING, 'Drop files here'),\n fileNameFormatter: makeProp(PROP_TYPE_FUNCTION),\n multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n noDrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noDropPlaceholder: makeProp(PROP_TYPE_STRING, 'Not allowed'),\n // TODO:\n // Should we deprecate this and only support flat file structures?\n // Nested file structures are only supported when files are dropped\n // A Chromium \"bug\" prevents `webkitEntries` from being populated\n // on the file input's `change` event and is marked as \"WontFix\"\n // Mozilla implemented the behavior the same way as Chromium\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=138987\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1326031\n noTraverse: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING, 'No file chosen')\n})), NAME_FORM_FILE); // --- Main component ---\n// @vue/component\n\nexport var BFormFile = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_FILE,\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n files: [],\n dragging: false,\n // IE 11 doesn't respect setting `event.dataTransfer.dropEffect`,\n // so we handle it ourselves as well\n // https://stackoverflow.com/a/46915971/2744776\n dropAllowed: !this.noDrop,\n hasFocus: false\n };\n },\n computed: {\n // Convert `accept` to an array of `[{ RegExpr, isMime }, ...]`\n computedAccept: function computedAccept() {\n var accept = this.accept;\n accept = (accept || '').trim().split(/[,\\s]+/).filter(identity); // Allow any file type/extension\n\n if (accept.length === 0) {\n return null;\n }\n\n return accept.map(function (extOrType) {\n var prop = 'name';\n var startMatch = '^';\n var endMatch = '$';\n\n if (RX_EXTENSION.test(extOrType)) {\n // File extension /\\.ext$/\n startMatch = '';\n } else {\n // MIME type /^mime\\/.+$/ or /^mime\\/type$/\n prop = 'type';\n\n if (RX_STAR.test(extOrType)) {\n endMatch = '.+$'; // Remove trailing `*`\n\n extOrType = extOrType.slice(0, -1);\n }\n } // Escape all RegExp special chars\n\n\n extOrType = escapeRegExp(extOrType);\n var rx = new RegExp(\"\".concat(startMatch).concat(extOrType).concat(endMatch));\n return {\n rx: rx,\n prop: prop\n };\n });\n },\n computedCapture: function computedCapture() {\n var capture = this.capture;\n return capture === true || capture === '' ? true : capture || null;\n },\n computedAttrs: function computedAttrs() {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n form = this.form,\n computedCapture = this.computedCapture,\n accept = this.accept,\n multiple = this.multiple,\n directory = this.directory;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n type: 'file',\n id: this.safeId(),\n name: name,\n disabled: disabled,\n required: required,\n form: form || null,\n capture: computedCapture,\n accept: accept || null,\n multiple: multiple,\n directory: directory,\n webkitdirectory: directory,\n 'aria-required': required ? 'true' : null\n });\n },\n computedFileNameFormatter: function computedFileNameFormatter() {\n var fileNameFormatter = this.fileNameFormatter;\n return hasPropFunction(fileNameFormatter) ? fileNameFormatter : this.defaultFileNameFormatter;\n },\n clonedFiles: function clonedFiles() {\n return cloneDeep(this.files);\n },\n flattenedFiles: function flattenedFiles() {\n return flattenDeep(this.files);\n },\n fileNames: function fileNames() {\n return this.flattenedFiles.map(function (file) {\n return file.name;\n });\n },\n labelContent: function labelContent() {\n // Draging active\n\n /* istanbul ignore next: used by drag/drop which can't be tested easily */\n if (this.dragging && !this.noDrop) {\n return (// TODO: Add additional scope with file count, and other not-allowed reasons\n this.normalizeSlot(SLOT_NAME_DROP_PLACEHOLDER, {\n allowed: this.dropAllowed\n }) || (this.dropAllowed ? this.dropPlaceholder : this.$createElement('span', {\n staticClass: 'text-danger'\n }, this.noDropPlaceholder))\n );\n } // No file chosen\n\n\n if (this.files.length === 0) {\n return this.normalizeSlot(SLOT_NAME_PLACEHOLDER) || this.placeholder;\n }\n\n var flattenedFiles = this.flattenedFiles,\n clonedFiles = this.clonedFiles,\n fileNames = this.fileNames,\n computedFileNameFormatter = this.computedFileNameFormatter; // There is a slot for formatting the files/names\n\n if (this.hasNormalizedSlot(SLOT_NAME_FILE_NAME)) {\n return this.normalizeSlot(SLOT_NAME_FILE_NAME, {\n files: flattenedFiles,\n filesTraversed: clonedFiles,\n names: fileNames\n });\n }\n\n return computedFileNameFormatter(flattenedFiles, clonedFiles, fileNames);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!newValue || isArray(newValue) && newValue.length === 0) {\n this.reset();\n }\n }), _defineProperty(_watch, \"files\", function files(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n var multiple = this.multiple,\n noTraverse = this.noTraverse;\n var files = !multiple || noTraverse ? flattenDeep(newValue) : newValue;\n this.$emit(MODEL_EVENT_NAME, multiple ? files : files[0] || null);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_form = null;\n },\n mounted: function mounted() {\n // Listen for form reset events, to reset the file input\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOn($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n this.$_form = $form;\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $form = this.$_form;\n\n if ($form) {\n eventOff($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n methods: {\n isFileValid: function isFileValid(file) {\n if (!file) {\n return false;\n }\n\n var accept = this.computedAccept;\n return accept ? accept.some(function (a) {\n return a.rx.test(file[a.prop]);\n }) : true;\n },\n isFilesArrayValid: function isFilesArrayValid(files) {\n var _this = this;\n\n return isArray(files) ? files.every(function (file) {\n return _this.isFileValid(file);\n }) : this.isFileValid(files);\n },\n defaultFileNameFormatter: function defaultFileNameFormatter(flattenedFiles, clonedFiles, fileNames) {\n return fileNames.join(', ');\n },\n setFiles: function setFiles(files) {\n // Reset the dragging flags\n this.dropAllowed = !this.noDrop;\n this.dragging = false; // Set the selected files\n\n this.files = this.multiple ? this.directory ? files : flattenDeep(files) : flattenDeep(files).slice(0, 1);\n },\n\n /* istanbul ignore next: used by Drag/Drop */\n setInputFiles: function setInputFiles(files) {\n // Try an set the file input files array so that `required`\n // constraint works for dropped files (will fail in IE11 though)\n // To be used only when dropping files\n try {\n // Firefox < 62 workaround exploiting https://bugzilla.mozilla.org/show_bug.cgi?id=1422655\n var dataTransfer = new ClipboardEvent('').clipboardData || new DataTransfer(); // Add flattened files to temp `dataTransfer` object to get a true `FileList` array\n\n flattenDeep(cloneDeep(files)).forEach(function (file) {\n // Make sure to remove the custom `$path` attribute\n delete file.$path;\n dataTransfer.items.add(file);\n });\n this.$refs.input.files = dataTransfer.files;\n } catch (_unused) {}\n },\n reset: function reset() {\n // IE 11 doesn't support setting `$input.value` to `''` or `null`\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well\n // Wrapped in try in case IE 11 or mobile Safari crap out\n try {\n var $input = this.$refs.input;\n $input.value = '';\n $input.type = '';\n $input.type = 'file';\n } catch (_unused2) {}\n\n this.files = [];\n },\n handleFiles: function handleFiles(files) {\n var isDrop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isDrop) {\n // When dropped, make sure to filter files with the internal `accept` logic\n var filteredFiles = files.filter(this.isFilesArrayValid); // Only update files when we have any after filtering\n\n if (filteredFiles.length > 0) {\n this.setFiles(filteredFiles); // Try an set the file input's files array so that `required`\n // constraint works for dropped files (will fail in IE 11 though)\n\n this.setInputFiles(filteredFiles);\n }\n } else {\n // We always update the files from the `change` event\n this.setFiles(files);\n }\n },\n focusHandler: function focusHandler(event) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a `[type=file]:focus ~ sibling` selector issue,\n // so we add a `focus` class to get around these bugs\n if (this.plain || event.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n onChange: function onChange(event) {\n var _this2 = this;\n\n var type = event.type,\n target = event.target,\n _event$dataTransfer = event.dataTransfer,\n dataTransfer = _event$dataTransfer === void 0 ? {} : _event$dataTransfer;\n var isDrop = type === 'drop'; // Always emit original event\n\n this.$emit(EVENT_NAME_CHANGE, event);\n var items = arrayFrom(dataTransfer.items || []);\n\n if (HAS_PROMISE_SUPPORT && items.length > 0 && !isNull(getDataTransferItemEntry(items[0]))) {\n // Drop handling for modern browsers\n // Supports nested directory structures in `directory` mode\n\n /* istanbul ignore next: not supported in JSDOM */\n getAllFileEntries(items, this.directory).then(function (files) {\n return _this2.handleFiles(files, isDrop);\n });\n } else {\n // Standard file input handling (native file input change event),\n // or fallback drop mode (IE 11 / Opera) which don't support `directory` mode\n var files = arrayFrom(target.files || dataTransfer.files || []).map(function (file) {\n // Add custom `$path` property to each file (to be consistent with drop mode)\n file.$path = file.webkitRelativePath || '';\n return file;\n });\n this.handleFiles(files, isDrop);\n }\n },\n onDragenter: function onDragenter(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer2 = event.dataTransfer,\n dataTransfer = _event$dataTransfer2 === void 0 ? {} : _event$dataTransfer2; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n // Note this event fires repeatedly while the mouse is over the dropzone at\n // intervals in the milliseconds, so avoid doing much processing in here\n onDragover: function onDragover(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer3 = event.dataTransfer,\n dataTransfer = _event$dataTransfer3 === void 0 ? {} : _event$dataTransfer3; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n onDragleave: function onDragleave(event) {\n var _this3 = this;\n\n stopEvent(event);\n this.$nextTick(function () {\n _this3.dragging = false; // Reset `dropAllowed` to default\n\n _this3.dropAllowed = !_this3.noDrop;\n });\n },\n // Triggered by a file drop onto drop target\n onDrop: function onDrop(event) {\n var _this4 = this;\n\n stopEvent(event);\n this.dragging = false; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n this.$nextTick(function () {\n // Reset `dropAllowed` to default\n _this4.dropAllowed = !_this4.noDrop;\n });\n return;\n }\n\n this.onChange(event);\n }\n },\n render: function render(h) {\n var custom = this.custom,\n plain = this.plain,\n size = this.size,\n dragging = this.dragging,\n stateClass = this.stateClass,\n bvAttrs = this.bvAttrs; // Form Input\n\n var $input = h('input', {\n class: [{\n 'form-control-file': plain,\n 'custom-file-input': custom,\n focus: custom && this.hasFocus\n }, stateClass],\n // With IE 11, the input gets in the \"way\" of the drop events,\n // so we move it out of the way by putting it behind the label\n // Bootstrap v4 has it in front\n style: custom ? {\n zIndex: -5\n } : {},\n attrs: this.computedAttrs,\n on: {\n change: this.onChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.reset\n },\n ref: 'input'\n });\n\n if (plain) {\n return $input;\n } // Overlay label\n\n\n var $label = h('label', {\n staticClass: 'custom-file-label',\n class: {\n dragging: dragging\n },\n attrs: {\n for: this.safeId(),\n // This goes away in Bootstrap v5\n 'data-browse': this.browseText || null\n }\n }, [h('span', {\n staticClass: 'd-block form-file-text',\n // `pointer-events: none` is used to make sure\n // the drag events fire only on the label\n style: {\n pointerEvents: 'none'\n }\n }, [this.labelContent])]); // Return rendered custom file input\n\n return h('div', {\n staticClass: 'custom-file b-form-file',\n class: [_defineProperty({}, \"b-custom-control-\".concat(size), size), stateClass, bvAttrs.class],\n style: bvAttrs.style,\n attrs: {\n id: this.safeId('_BV_file_outer_')\n },\n on: {\n dragenter: this.onDragenter,\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n }, [$input, $label]);\n }\n});","var _watch, _methods;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\n});","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","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});"],"sourceRoot":""}