{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/utils/css-escape.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/form-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/col.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js"],"names":["escapeChar","value","cssEscape","length","firstCharCode","charCodeAt","split","reduce","result","char","index","charCode","concat","toString","formSelectionMixin","extend","computed","selectionStart","cache","get","this","$refs","input","set","val","selectionEnd","selectionDirection","methods","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","props","ariaLive","forceShow","id","role","state","tag","tooltip","BFormInvalidFeedback","name","functional","render","h","_ref","data","children","show","class","attrs","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","_makeModelMixin","type","defaultValue","event","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ariaInvalid","autocomplete","debounce","formatter","lazy","lazyFormatter","number","placeholder","plaintext","readonly","trim","formTextMixin","mixins","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","watch","newValue","stringifyValue","modifiedValue","clearDebounce","created","$_inputDebounceTimer","mounted","$on","beforeDestroy","clearTimeout","formatValue","force","undefined","updateValue","_this","doUpdate","$emit","$input","setTimeout","onInput","composing","formattedValue","defaultPrevented","propagation","onChange","onBlur","focus","disabled","$el","blur","TYPES","list","max","min","noWheel","step","BFormInput","localType","computedAttrs","form","required","safeId","computedAriaInvalid","computedListeners","bvListeners","change","setWheelStopper","deactivated","activated","on","onWheelFocus","onWheelBlur","document","stopWheel","domProps","ref","BLANK_TEMPLATE","makeBlankImgSrc","width","height","color","src","encodeURIComponent","replace","alt","blank","blankColor","block","center","fluid","fluidGrow","left","right","rounded","sizes","srcset","thumbnail","BImg","_class","align","join","BFormRow","staticClass","BFormValidFeedback","INPUTS","INPUT_SELECTOR","map","v","LEGEND_INTERACTIVE_ELEMENTS","breakpoint","description","feedbackAriaLive","invalidFeedback","label","labelClass","labelFor","labelSize","labelSrOnly","validFeedback","validated","BFormGroup","ariaDescribedby","contentColProps","getColProps","$props","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","oldValue","updateAriaDescribedby","$nextTick","prefix","propValue","identity","content","attr","newIds","oldIds","ids","array","indexOf","onLegendClick","tagName","inputs","computedState","normalizeSlot","isFieldset","$label","labelContent","labelId","labelTag","for","click","tabindex","$invalidFeedback","invalidFeedbackContent","invalidFeedbackId","$validFeedback","validFeedbackContent","validFeedbackId","$description","descriptionContent","descriptionId","$content","inline","textVariant","BFormText","COMMON_ALIGNMENT","computeRowColsClass","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","alignContent","alignH","alignV","noGutters","BRow","_classList$push","classList","c","size","formSizeMixin","ALIGN_SELF_VALUES","computeBreakpoint","className","computeBreakpointClass","breakpointPropMap","breakpoints","breakpointCol","breakpointOffset","breakpointOrder","col","offset","order","alignSelf","BCol","_keys","hasColClasses","some","test","formStateMixin","SELECTOR","autofocus","formControlMixin","handleAutofocus","el"],"mappings":"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","file":"js/chunk-29f0f325.7e2b89d8.js","sourcesContent":["import { toString } from './string';\n\nvar escapeChar = function escapeChar(value) {\n return '\\\\' + value;\n}; // The `cssEscape()` util is based on this `CSS.escape()` polyfill:\n// https://github.com/mathiasbynens/CSS.escape\n\n\nexport var cssEscape = function cssEscape(value) {\n value = toString(value);\n var length = value.length;\n var firstCharCode = value.charCodeAt(0);\n return value.split('').reduce(function (result, char, index) {\n var charCode = value.charCodeAt(index); // If the character is NULL (U+0000), use (U+FFFD) as replacement\n\n if (charCode === 0x0000) {\n return result + \"\\uFFFD\";\n } // If the character ...\n\n\n if ( // ... is U+007F OR\n charCode === 0x007f || // ... is in the range [\\1-\\1F] (U+0001 to U+001F) OR ...\n charCode >= 0x0001 && charCode <= 0x001f || // ... is the first character and is in the range [0-9] (U+0030 to U+0039) OR ...\n index === 0 && charCode >= 0x0030 && charCode <= 0x0039 || // ... is the second character and is in the range [0-9] (U+0030 to U+0039)\n // and the first character is a `-` (U+002D) ...\n index === 1 && charCode >= 0x0030 && charCode <= 0x0039 && firstCharCode === 0x002d) {\n // ... https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n return result + escapeChar(\"\".concat(charCode.toString(16), \" \"));\n } // If the character ...\n\n\n if ( // ... is the first character AND ...\n index === 0 && // ... is a `-` (U+002D) AND ...\n charCode === 0x002d && // ... there is no second character ...\n length === 1) {\n // ... use the escaped character\n return result + escapeChar(char);\n } // If the character ...\n\n\n if ( // ... is greater than or equal to U+0080 OR ...\n charCode >= 0x0080 || // ... is `-` (U+002D) OR ...\n charCode === 0x002d || // ... is `_` (U+005F) OR ...\n charCode === 0x005f || // ... is in the range [0-9] (U+0030 to U+0039) OR ...\n charCode >= 0x0030 && charCode <= 0x0039 || // ... is in the range [A-Z] (U+0041 to U+005A) OR ...\n charCode >= 0x0041 && charCode <= 0x005a || // ... is in the range [a-z] (U+0061 to U+007A) ...\n charCode >= 0x0061 && charCode <= 0x007a) {\n // ... use the character itself\n return result + char;\n } // Otherwise use the escaped character\n // See: https://drafts.csswg.org/cssom/#escape-a-character\n\n\n return result + escapeChar(char);\n }, '');\n};","import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\n }\n }\n});","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_INVALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_INVALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormInvalidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INVALID_FEEDBACK,\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 tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === false;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'invalid-feedback': !tooltip,\n 'invalid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","function _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_FORM_ROW } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_FORM_ROW); // --- Main component ---\n// @vue/component\n\nexport var BFormRow = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_ROW,\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.tag, mergeData(data, {\n staticClass: 'form-row'\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_VALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_VALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormValidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_VALID_FEEDBACK,\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 tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === true;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'valid-feedback': !tooltip,\n 'valid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\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 { NAME_FORM_GROUP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_SPACE_SPLIT } from '../../constants/regex';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_DESCRIPTION, SLOT_NAME_INVALID_FEEDBACK, SLOT_NAME_LABEL, SLOT_NAME_VALID_FEEDBACK } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { cssEscape } from '../../utils/css-escape';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr, attemptFocus } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isBoolean } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BCol } from '../layout/col';\nimport { BFormRow } from '../layout/form-row';\nimport { BFormText } from '../form/form-text';\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback';\nimport { BFormValidFeedback } from '../form/form-valid-feedback'; // --- Constants ---\n\nvar INPUTS = ['input', 'select', 'textarea']; // Selector for finding first input in the form group\n\nvar INPUT_SELECTOR = INPUTS.map(function (v) {\n return \"\".concat(v, \":not([disabled])\");\n}).join(); // A list of interactive elements (tag names) inside ``'s legend\n\nvar LEGEND_INTERACTIVE_ELEMENTS = [].concat(INPUTS, ['a', 'button', 'label']); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formStateProps), getBreakpointsUpCached().reduce(function (props, breakpoint) {\n // i.e. 'content-cols', 'content-cols-sm', 'content-cols-md', ...\n props[suffixPropName(breakpoint, 'contentCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING); // i.e. 'label-align', 'label-align-sm', 'label-align-md', ...\n\n props[suffixPropName(breakpoint, 'labelAlign')] = makeProp(PROP_TYPE_STRING); // i.e. 'label-cols', 'label-cols-sm', 'label-cols-md', ...\n\n props[suffixPropName(breakpoint, 'labelCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null))), {}, {\n description: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),\n invalidFeedback: makeProp(PROP_TYPE_STRING),\n label: makeProp(PROP_TYPE_STRING),\n labelClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n labelFor: makeProp(PROP_TYPE_STRING),\n labelSize: makeProp(PROP_TYPE_STRING),\n labelSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false),\n validFeedback: makeProp(PROP_TYPE_STRING),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n })), NAME_FORM_GROUP);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BFormGroup = {\n name: NAME_FORM_GROUP,\n mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n data: function data() {\n return {\n ariaDescribedby: null\n };\n },\n computed: {\n contentColProps: function contentColProps() {\n return this.getColProps(this.$props, 'content');\n },\n labelAlignClasses: function labelAlignClasses() {\n return this.getAlignClasses(this.$props, 'label');\n },\n labelColProps: function labelColProps() {\n return this.getColProps(this.$props, 'label');\n },\n isHorizontal: function isHorizontal() {\n // Determine if the form group will be rendered horizontal\n // based on the existence of 'content-col' or 'label-col' props\n return keys(this.contentColProps).length > 0 || keys(this.labelColProps).length > 0;\n }\n },\n watch: {\n ariaDescribedby: function ariaDescribedby(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.updateAriaDescribedby(newValue, oldValue);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Set `aria-describedby` on the input specified by `labelFor`\n // We do this in a `$nextTick()` to ensure the children have finished rendering\n _this.updateAriaDescribedby(_this.ariaDescribedby);\n });\n },\n methods: {\n getAlignClasses: function getAlignClasses(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Align\"))] || null;\n\n if (propValue) {\n result.push(['text', breakpoint, propValue].filter(identity).join('-'));\n }\n\n return result;\n }, []);\n },\n getColProps: function getColProps(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Cols\"))]; // Handle case where the prop's value is an empty string,\n // which represents `true`\n\n propValue = propValue === '' ? true : propValue || false;\n\n if (!isBoolean(propValue) && propValue !== 'auto') {\n // Convert to column size to number\n propValue = toInteger(propValue, 0); // Ensure column size is greater than `0`\n\n propValue = propValue > 0 ? propValue : false;\n } // Add the prop to the list of props to give to ``\n // If breakpoint is '' (`${prefix}Cols` is `true`), then we use\n // the 'col' prop to make equal width at 'xs'\n\n\n if (propValue) {\n result[breakpoint || (isBoolean(propValue) ? 'col' : 'cols')] = propValue;\n }\n\n return result;\n }, {});\n },\n // Sets the `aria-describedby` attribute on the input if `labelFor` is set\n // Optionally accepts a string of IDs to remove as the second parameter\n // Preserves any `aria-describedby` value(s) user may have on input\n updateAriaDescribedby: function updateAriaDescribedby(newValue, oldValue) {\n var labelFor = this.labelFor;\n\n if (IS_BROWSER && labelFor) {\n // We need to escape `labelFor` since it can be user-provided\n var $input = select(\"#\".concat(cssEscape(labelFor)), this.$refs.content);\n\n if ($input) {\n var attr = 'aria-describedby';\n var newIds = (newValue || '').split(RX_SPACE_SPLIT);\n var oldIds = (oldValue || '').split(RX_SPACE_SPLIT); // Update ID list, preserving any original IDs\n // and ensuring the ID's are unique\n\n var ids = (getAttr($input, attr) || '').split(RX_SPACE_SPLIT).filter(function (id) {\n return !arrayIncludes(oldIds, id);\n }).concat(newIds).filter(function (id, index, ids) {\n return ids.indexOf(id) === index;\n }).filter(identity).join(' ').trim();\n\n if (ids) {\n setAttr($input, attr, ids);\n } else {\n removeAttr($input, attr);\n }\n }\n }\n },\n onLegendClick: function onLegendClick(event) {\n // Don't do anything if `labelFor` is set\n\n /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n if (this.labelFor) {\n return;\n }\n\n var target = event.target;\n var tagName = target ? target.tagName : ''; // If clicked an interactive element inside legend,\n // we just let the default happen\n\n /* istanbul ignore next */\n\n if (LEGEND_INTERACTIVE_ELEMENTS.indexOf(tagName) !== -1) {\n return;\n } // If only a single input, focus it, emulating label behaviour\n\n\n var inputs = selectAll(INPUT_SELECTOR, this.$refs.content).filter(isVisible);\n\n if (inputs.length === 1) {\n attemptFocus(inputs[0]);\n }\n }\n },\n render: function render(h) {\n var state = this.computedState,\n feedbackAriaLive = this.feedbackAriaLive,\n isHorizontal = this.isHorizontal,\n labelFor = this.labelFor,\n normalizeSlot = this.normalizeSlot,\n safeId = this.safeId,\n tooltip = this.tooltip;\n var id = safeId();\n var isFieldset = !labelFor;\n var $label = h();\n var labelContent = normalizeSlot(SLOT_NAME_LABEL) || this.label;\n var labelId = labelContent ? safeId('_BV_label_') : null;\n\n if (labelContent || isHorizontal) {\n var labelSize = this.labelSize,\n labelColProps = this.labelColProps;\n var labelTag = isFieldset ? 'legend' : 'label';\n\n if (this.labelSrOnly) {\n if (labelContent) {\n $label = h(labelTag, {\n class: 'sr-only',\n attrs: {\n id: labelId,\n for: labelFor || null\n }\n }, [labelContent]);\n }\n\n $label = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? labelColProps : {}\n }, [$label]);\n } else {\n $label = h(isHorizontal ? BCol : labelTag, {\n on: isFieldset ? {\n click: this.onLegendClick\n } : {},\n props: isHorizontal ? _objectSpread(_objectSpread({}, labelColProps), {}, {\n tag: labelTag\n }) : {},\n attrs: {\n id: labelId,\n for: labelFor || null,\n // We add a `tabindex` to legend so that screen readers\n // will properly read the `aria-labelledby` in IE\n tabindex: isFieldset ? '-1' : null\n },\n class: [// Hide the focus ring on the legend\n isFieldset ? 'bv-no-focus-ring' : '', // When horizontal or if a legend is rendered, add 'col-form-label' class\n // for correct sizing as Bootstrap has inconsistent font styling for\n // legend in non-horizontal form groups\n // See: https://github.com/twbs/bootstrap/issues/27805\n isHorizontal || isFieldset ? 'col-form-label' : '', // Emulate label padding top of `0` on legend when not horizontal\n !isHorizontal && isFieldset ? 'pt-0' : '', // If not horizontal and not a legend, we add 'd-block' class to label\n // so that label-align works\n !isHorizontal && !isFieldset ? 'd-block' : '', labelSize ? \"col-form-label-\".concat(labelSize) : '', this.labelAlignClasses, this.labelClass]\n }, [labelContent]);\n }\n }\n\n var $invalidFeedback = h();\n var invalidFeedbackContent = normalizeSlot(SLOT_NAME_INVALID_FEEDBACK) || this.invalidFeedback;\n var invalidFeedbackId = invalidFeedbackContent ? safeId('_BV_feedback_invalid_') : null;\n\n if (invalidFeedbackContent) {\n $invalidFeedback = h(BFormInvalidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: invalidFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `false`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: invalidFeedbackContent ? '-1' : null\n }\n }, [invalidFeedbackContent]);\n }\n\n var $validFeedback = h();\n var validFeedbackContent = normalizeSlot(SLOT_NAME_VALID_FEEDBACK) || this.validFeedback;\n var validFeedbackId = validFeedbackContent ? safeId('_BV_feedback_valid_') : null;\n\n if (validFeedbackContent) {\n $validFeedback = h(BFormValidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: validFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `true`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: validFeedbackContent ? '-1' : null\n }\n }, [validFeedbackContent]);\n }\n\n var $description = h();\n var descriptionContent = normalizeSlot(SLOT_NAME_DESCRIPTION) || this.description;\n var descriptionId = descriptionContent ? safeId('_BV_description_') : null;\n\n if (descriptionContent) {\n $description = h(BFormText, {\n attrs: {\n id: descriptionId,\n tabindex: '-1'\n }\n }, [descriptionContent]);\n } // Update `ariaDescribedby`\n // Screen readers will read out any content linked to by `aria-describedby`\n // even if the content is hidden with `display: none;`, hence we only include\n // feedback IDs if the form group's state is explicitly valid or invalid\n\n\n var ariaDescribedby = this.ariaDescribedby = [descriptionId, state === false ? invalidFeedbackId : null, state === true ? validFeedbackId : null].filter(identity).join(' ') || null;\n var $content = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? this.contentColProps : {},\n ref: 'content'\n }, [normalizeSlot(SLOT_NAME_DEFAULT, {\n ariaDescribedby: ariaDescribedby,\n descriptionId: descriptionId,\n id: id,\n labelId: labelId\n }) || h(), $invalidFeedback, $validFeedback, $description]); // Return it wrapped in a form group\n // Note: Fieldsets do not support adding `row` or `form-row` directly\n // to them due to browser specific render issues, so we move the `form-row`\n // to an inner wrapper div when horizontal and using a fieldset\n\n return h(isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div', {\n staticClass: 'form-group',\n class: [{\n 'was-validated': this.validated\n }, this.stateClass],\n attrs: {\n id: id,\n disabled: isFieldset ? this.disabled : null,\n role: isFieldset ? null : 'group',\n 'aria-invalid': this.computedAriaInvalid,\n // Only apply `aria-labelledby` if we are a horizontal fieldset\n // as the legend is no longer a direct child of fieldset\n 'aria-labelledby': isFieldset && isHorizontal ? labelId : null\n }\n }, isHorizontal && isFieldset ? [h(BFormRow, [$label, $content])] : [$label, $content]);\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_FORM_TEXT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'small'),\n textVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_FORM_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BFormText = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_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.tag, mergeData(data, {\n class: _defineProperty({\n 'form-text': !props.inline\n }, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n id: props.id\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from '../../vue';\nimport { NAME_COL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_COL_CLASS } from '../../constants/regex';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { memoize } from '../../utils/memoize';\nimport { assign, create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase } from '../../utils/string'; // --- Constants ---\n\nvar ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch']; // --- Helper methods ---\n// Compute a breakpoint class name\n\nvar computeBreakpoint = function computeBreakpoint(type, breakpoint, value) {\n var className = type;\n\n if (isUndefinedOrNull(value) || value === false) {\n return undefined;\n }\n\n if (breakpoint) {\n className += \"-\".concat(breakpoint);\n } // Handling the boolean style prop when accepting `[Boolean, String, Number]`\n // means Vue will not convert `` to `sm: true` for us\n // Since the default is `false`, '' indicates the prop's presence\n\n\n if (type === 'col' && (value === '' || value === true)) {\n // .col-md\n return lowerCase(className);\n } // .order-md-6\n\n\n className += \"-\".concat(value);\n return lowerCase(className);\n}; // Memoized function for better performance on generating class names\n\n\nvar computeBreakpointClass = memoize(computeBreakpoint); // Cached copy of the breakpoint prop names\n\nvar breakpointPropMap = create(null); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n var breakpoints = getBreakpointsUpCached().filter(identity); // i.e. 'col-sm', 'col-md-6', 'col-lg-auto', ...\n\n var breakpointCol = breakpoints.reduce(function (props, breakpoint) {\n props[breakpoint] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'offset-md-1', 'offset-lg-12', ...\n\n var breakpointOffset = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'offset')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'order-md-1', 'order-lg-12', ...\n\n var breakpointOrder = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'order')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // For loop doesn't need to check `.hasOwnProperty()`\n // when using an object created from `null`\n\n breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n }); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, breakpointCol), breakpointOffset), breakpointOrder), {}, {\n // Flex alignment\n alignSelf: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(ALIGN_SELF_VALUES, value);\n }),\n // Generic flexbox 'col' (xs)\n col: makeProp(PROP_TYPE_BOOLEAN, false),\n // i.e. 'col-1', 'col-2', 'col-auto', ...\n cols: makeProp(PROP_TYPE_NUMBER_STRING),\n offset: makeProp(PROP_TYPE_NUMBER_STRING),\n order: makeProp(PROP_TYPE_NUMBER_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_COL);\n}; // --- Main component ---\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BCol = {\n name: NAME_COL,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var cols = props.cols,\n offset = props.offset,\n order = props.order,\n alignSelf = props.alignSelf;\n var classList = []; // Loop through `col`, `offset`, `order` breakpoint props\n\n for (var type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n var _keys = breakpointPropMap[type];\n\n for (var i = 0; i < _keys.length; i++) {\n // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])\n var c = computeBreakpointClass(type, _keys[i].replace(type, ''), props[_keys[i]]); // If a class is returned, push it onto the array.\n\n if (c) {\n classList.push(c);\n }\n }\n }\n\n var hasColClasses = classList.some(function (className) {\n return RX_COL_CLASS.test(className);\n });\n classList.push((_classList$push = {\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: props.col || !hasColClasses && !cols\n }, _defineProperty(_classList$push, \"col-\".concat(cols), cols), _defineProperty(_classList$push, \"offset-\".concat(offset), offset), _defineProperty(_classList$push, \"order-\".concat(order), order), _defineProperty(_classList$push, \"align-self-\".concat(alignSelf), alignSelf), _classList$push));\n return h(props.tag, mergeData(data, {\n class: classList\n }), children);\n }\n};","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true for is-valid\n * - false for is-invalid\n * - null for no contextual state\n */\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { isBoolean } from '../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Tri-state prop: true, false, null (or undefined)\n state: makeProp(PROP_TYPE_BOOLEAN, null)\n}, 'formState'); // --- Mixin ---\n// @vue/component\n\nexport var formStateMixin = Vue.extend({\n props: props,\n computed: {\n computedState: function computedState() {\n // If not a boolean, ensure that value is null\n return isBoolean(this.state) ? this.state : null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n return state === true ? 'is-valid' : state === false ? 'is-invalid' : null;\n },\n computedAriaInvalid: function computedAriaInvalid() {\n var ariaInvalid = this.ariaInvalid;\n\n if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n return 'true';\n }\n\n return this.computedState === false ? 'true' : ariaInvalid;\n }\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});"],"sourceRoot":""}