{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/td.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack:///./src/@core/utils/filter.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./src/services/spinService.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-bottom-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-busy.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-empty.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/sanitize-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/stringify-record-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-filtering.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-provider.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-selectable.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-sorting.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/default-sort-compare.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-top-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tr.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/has-listener.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-caption.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-stacked.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/core-js/modules/es.string.replace.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/normalize-fields.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-items.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/th.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-table-renderer.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./src/views/desafios/todosDesafios.vue?d922","webpack:///src/views/desafios/todosDesafios.vue","webpack:///./src/views/desafios/todosDesafios.vue?c0eb","webpack:///./src/views/desafios/todosDesafios.vue","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.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/table/helpers/mixin-thead.js","webpack:///./src/@core/utils/utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./src/services/challengeService.js"],"names":["formSelectionMixin","extend","computed","selectionStart","cache","get","this","$refs","input","set","val","selectionEnd","selectionDirection","methods","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","props","icon","stacked","BIcon","name","functional","render","h","_ref","data","parent","replace","concat","parseSpan","spanValidator","colspan","rowspan","stackedHeading","stickyColumn","variant","BTd","mixins","inject","bvTableTr","default","inheritAttrs","tag","inTbody","inThead","inTfoot","isDark","isStacked","isStackedCell","isResponsive","isStickyHeader","hasStickyHeader","isStickyColumn","rowVariant","headVariant","footVariant","tableVariant","computedColspan","computedRowspan","cellClasses","cellAttrs","headOrFoot","role","scope","bvAttrs","$content","normalizeSlot","class","attrs","on","bvListeners","BThead","provide","bvTableRowGroup","bvTable","isThead","dark","stickyHeader","theadClasses","theadAttrs","kFormatter","num","toFixed","title","replacer","str","toString","arr","split","capitalizedArray","word","capitalized","charAt","toUpperCase","slice","join","avatarText","nameArray","map","formatDate","formatting","month","day","year","Intl","DateTimeFormat","format","Date","formatDateToMonthShort","toTimeForCurrentDay","date","isToday","hour","minute","filterTags","toInteger","requireObjectCoercible","module","exports","repeat","count","String","result","n","Infinity","RangeError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","undefined","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","cardImgProps","bind","imgSrc","required","card","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","footer","footerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","domProps","html","overlay","staticClass","$footer","hasFooterSlot","redefine","anObject","fails","flags","TO_STRING","RegExpPrototype","RegExp","prototype","nativeToString","NOT_GENERIC","call","INCORRECT_NAME","R","p","rf","f","unsafe","showSpinner","document","getElementById","style","display","hideSpinner","BTfoot","isTfoot","tfootClasses","tfootAttrs","bottomRowMixin","renderBottomRow","fields","computedFields","tbodyTrClass","tbodyTrAttr","$createElement","hasNormalizedSlot","columns","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","watch","newValue","oldValue","$emit","stopIfBusy","event","renderBusy","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","stringifyObjectValues","sort","k","v","row","ignoreFields","includeFields","fieldsObj","formattedRow","reduce","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","arr2","DEBOUNCE_DEPRECATED_MSG","filterDebounce","filterFunction","filterIgnoredFields","filterIncludedFields","filteringMixin","localFilter","filterSanitize","computedFilterIgnored","identity","computedFilterIncluded","computedFilterDebounce","ms","warn","localFiltering","hasProvider","noProviderFiltering","filteredCheck","filteredItems","localItems","localFilterFn","criteria","filterFn","filterFnFactory","defaultFilterFnFactory","$_filterTimer","clearFilterTimer","deep","handler","newCriteria","_this","timeout","setTimeout","created","_this2","$nextTick","Boolean","beforeDestroy","clearTimeout","item","_this3","regExp","pattern","lastIndex","computedFieldsObj","currentPage","perPage","paginationMixin","localPaging","noProviderPaging","paginatedItems","sortedItems","math","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","apiUrl","noProviderSorting","providerMixin","providerTriggerContext","sortBy","sortDesc","localSortBy","localSortDesc","_providerUpdate","mounted","listenOnRoot","id","refresh","$off","$on","clearSelected","_providerSetLocal","emitOnRoot","context","e","message","_props","_watch","SELECT_MODES","noSelectOnClick","selectMode","selectable","selectedVariant","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","some","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","equal","setSelectionHandlers","_selectedRows","idx","beforeMount","selectRow","index","isRowSelected","selectedLastClicked","unselectRow","selectAllRows","selectableRowClasses","selectableRowAttrs","method","selectionHandler","selected","shiftKey","ctrlKey","metaKey","a","b","_ref$sortBy","_ref$formatter","_ref$locale","locale","_ref$localeOptions","localeOptions","_ref$nullLast","nullLast","aa","bb","localeCompare","MODEL_PROP_NAME_SORT_BY","MODEL_EVENT_NAME_SORT_BY","MODEL_PROP_NAME_SORT_DESC","MODEL_EVENT_NAME_SORT_DESC","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","SORT_DIRECTION_LAST","SORT_DIRECTIONS","labelSortAsc","labelSortClear","labelSortDesc","noFooterSorting","noLocalSorting","noSortReset","numeric","sortingMixin","localSorting","isSortable","sortable","sortCompareLocale","sortNullLast","sortCompare","sortCompareOptions","usage","sortByFormatted","getFieldFormatter","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortDirection","sortKey","sortTheadThClasses","sortIconLeft","sortTheadThAttrs","ariaSort","sortTheadThLabel","labelSorting","topRowMixin","renderTopRow","BTable","LIGHT","DARK","BTr","isTbody","isRowDark","trClasses","trAttrs","hasListenerMixin","hasListener","$listeners","$events","_events","rightAlign","verticalAlign","BMedia","children","$children","$aside","BInputGroupPrepend","append","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","defaultValue","getThValues","thValue","type","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","label","isRowHeader","formatted","cellTag","cellVariant","tdClass","thAttr","tdAttr","unformatted","toggleDetails","detailsShowing","rowSelected","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","striped","primaryKey","rowShowDetails","hasRowClickHandler","$rows","detailsId","safeId","$tds","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableAttrs","userTrClasses","userTrAttrs","tabindex","mouseenter","mouseleave","ref","refInFor","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","getTbodyTrs","tbody","$el","trs","tr","getTbodyTrIndex","el","tagName","indexOf","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTbody","$busy","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","click","keydown","$tbody","$props","caption","captionHtml","captionMixin","captionId","renderCaption","$caption","hasCaptionSlot","classof","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ariaInvalid","autocomplete","debounce","lazy","lazyFormatter","number","placeholder","plaintext","readonly","trim","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","formatValue","force","updateValue","doUpdate","$input","onInput","composing","formattedValue","defaultPrevented","propagation","onChange","onBlur","focus","disabled","blur","isText","BInputGroupAddon","TYPES","list","max","min","noWheel","step","BFormInput","localType","computedAttrs","form","computedAriaInvalid","computedListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","stopWheel","stackedMixin","isStackedAlways","stackedTableClasses","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","blank","blankColor","block","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","titleTag","BCardTitle","fixRegExpWellKnownSymbolLogic","toObject","toLength","advanceStringIndex","regExpExec","Math","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","it","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","regexp","res","rx","S","functionalReplace","global","fullUnicode","unicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","position","captures","j","namedCaptures","groups","replacerArgs","replacement","getSubstitution","tailPos","m","match","ch","capture","origFields","sample","memo","itemsMixin","appendHtml","prepend","prependHtml","size","BInputGroup","$prepend","hasPrependSlot","$append","hasAppendSlot","bodyClass","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","footerClass","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","OBSERVER_PROP_NAME","VisibilityObserver","options","vnode","callback","margin","once","observer","visible","doneOnce","createObserver","stop","IntersectionObserver","root","rootMargin","threshold","_unused","observe","entries","entry","isIntersecting","intersectionRatio","disconnect","destroy","modifiers","mod","_prevModifiers","componentUpdated","unbind","VBVisible","BTh","extends","bordered","borderless","captionTop","fixed","hover","noBorderCollapse","outlined","responsive","small","tableClass","tableRendererMixin","wrapperClasses","wrapperStyles","maxHeight","tableClasses","isTableSimple","border","tableAttrs","adb","ariaAttrs","rowCount","renderColgroup","renderThead","renderTfoot","$table","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","EVENT_FILTER","BMediaAside","BMediaBody","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","stableSort","compareFn","_vm","_h","_c","_self","_v","staticStyle","tableItems","tableColumns","isSortDirDesc","$event","_u","_s","createdAt","physicalPerson","person","city","state","avatar","fullName","resolveUserRoleVariant","params","proxy","username","resolveUserRoleIcon","resolveUserStatusVariant","status","resolveUserStatusText","$store","appConfig","isRTL","staticRenderFns","BDropdown","BDropdownItem","BBadge","BLink","BAvatar","BCol","BRow","BButton","BFormTextarea","BFormGroup","BInputGroupAppend","Ripple","page","itemsPerPage","fetchChallenges","component","runtime","Op","hasOwn","hasOwnProperty","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","skipTempReset","prev","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","maxRows","noAutoShrink","noResize","rows","directives","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","computedMaxRows","setHeight","visibleCallback","computeHeight","$isServer","lineHeight","borderTopWidth","borderBottomWidth","padding","paddingTop","paddingBottom","offset","minHeight","oldHeight","scrollHeight","contentRows","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","alignContent","alignH","alignV","noGutters","_classList$push","classList","c","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","formSizeMixin","TABLE_TAG_NAMES","filterEvent","labelFor","$","thisNumberValue","nativeToFixed","pow","x","acc","log","x2","FORCED","proto","forced","fractionDigits","z","fractDigits","sign","multiply","c2","divide","dataToString","s","t","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","makeCell","labelHtml","ariaLabel","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","isObject","today","getDate","getMonth","getFullYear","isDynamicRouteActive","route","router","resolvedRoute","path","currentRoute","useRouter","vm","getCurrentInstance","reactive","$route","r","toRefs","$router","cloneObject","JSON","parse","stringify","textSelectionActive","sel","containsNode","BInputGroupText","colgroupMixin","$colgroup","SELECTOR","autofocus","formControlMixin","handleAutofocus","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","linkProps","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","button","buttonType","square","text","bvAvatarGroup","localSrc","computedSize","computedVariant","computedRounded","fontStyle","fontSize","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","onImgError","onClick","_class2","link","$badge","hasBadgeSlot","badgeText","componentData","href","to","pill","active","noop","controller","getAll","axiosIns","utilsService","getQueryParams","getById","update","put","req","post","createQuiz","updateQuiz","getForReview","getArboTurma","getJanelaTanque","getPatrulhaFoco","avaliar","url"],"mappings":"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","file":"js/chunk-2cfdbc04.dea94783.js","sourcesContent":["import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../vue';\nimport { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return null;\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n icon: makeProp(PROP_TYPE_STRING),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n icon: null\n })\n }));\n }\n});","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_TABLE_CELL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Helper methods ---\n// Parse a rowspan or colspan into a digit (or `null` if < `1` )\n\nvar parseSpan = function parseSpan(value) {\n value = toInteger(value, 0);\n return value > 0 ? value : null;\n};\n/* istanbul ignore next */\n\n\nvar spanValidator = function spanValidator(value) {\n return isUndefinedOrNull(value) || parseSpan(value) > 0;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n colspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n rowspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n stackedHeading: makeProp(PROP_TYPE_STRING),\n stickyColumn: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TABLE_CELL); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTd = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_CELL,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n inject: {\n bvTableTr: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Overridden by ``\n tag: function tag() {\n return 'td';\n },\n inTbody: function inTbody() {\n return this.bvTableTr.inTbody;\n },\n inThead: function inThead() {\n return this.bvTableTr.inThead;\n },\n inTfoot: function inTfoot() {\n return this.bvTableTr.inTfoot;\n },\n isDark: function isDark() {\n return this.bvTableTr.isDark;\n },\n isStacked: function isStacked() {\n return this.bvTableTr.isStacked;\n },\n // We only support stacked-heading in tbody in stacked mode\n isStackedCell: function isStackedCell() {\n return this.inTbody && this.isStacked;\n },\n isResponsive: function isResponsive() {\n return this.bvTableTr.isResponsive;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return this.bvTableTr.isStickyHeader;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return this.bvTableTr.hasStickyHeader;\n },\n // Needed to handle background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky column cells are only available in responsive\n // mode (horizontal scrolling) or when sticky header mode\n // Applies to cells in `thead`, `tbody` and `tfoot`\n isStickyColumn: function isStickyColumn() {\n return !this.isStacked && (this.isResponsive || this.hasStickyHeader) && this.stickyColumn;\n },\n rowVariant: function rowVariant() {\n return this.bvTableTr.variant;\n },\n headVariant: function headVariant() {\n return this.bvTableTr.headVariant;\n },\n footVariant: function footVariant() {\n return this.bvTableTr.footVariant;\n },\n tableVariant: function tableVariant() {\n return this.bvTableTr.tableVariant;\n },\n computedColspan: function computedColspan() {\n return parseSpan(this.colspan);\n },\n computedRowspan: function computedRowspan() {\n return parseSpan(this.rowspan);\n },\n // We use computed props here for improved performance by caching\n // the results of the string interpolation\n cellClasses: function cellClasses() {\n var variant = this.variant,\n headVariant = this.headVariant,\n isStickyColumn = this.isStickyColumn;\n\n if (!variant && this.isStickyHeader && !headVariant || !variant && isStickyColumn && this.inTfoot && !this.footVariant || !variant && isStickyColumn && this.inThead && !headVariant || !variant && isStickyColumn && this.inTbody) {\n // Needed for sticky-header mode as Bootstrap v4 table cells do\n // not inherit parent's `background-color`\n variant = this.rowVariant || this.tableVariant || 'b-table-default';\n }\n\n return [variant ? \"\".concat(this.isDark ? 'bg' : 'table', \"-\").concat(variant) : null, isStickyColumn ? 'b-table-sticky-column' : null];\n },\n cellAttrs: function cellAttrs() {\n var stackedHeading = this.stackedHeading; // We use computed props here for improved performance by caching\n // the results of the object spread (Object.assign)\n\n var headOrFoot = this.inThead || this.inTfoot; // Make sure col/rowspan's are > 0 or null\n\n var colspan = this.computedColspan;\n var rowspan = this.computedRowspan; // Default role and scope\n\n var role = 'cell';\n var scope = null; // Compute role and scope\n // We only add scopes with an explicit span of 1 or greater\n\n if (headOrFoot) {\n // Header or footer cells\n role = 'columnheader';\n scope = colspan > 0 ? 'colspan' : 'col';\n } else if (isTag(this.tag, 'th')) {\n // th's in tbody\n role = 'rowheader';\n scope = rowspan > 0 ? 'rowgroup' : 'row';\n }\n\n return _objectSpread(_objectSpread({\n colspan: colspan,\n rowspan: rowspan,\n role: role,\n scope: scope\n }, this.bvAttrs), {}, {\n // Add in the stacked cell label data-attribute if in\n // stacked mode (if a stacked heading label is provided)\n 'data-label': this.isStackedCell && !isUndefinedOrNull(stackedHeading) ?\n /* istanbul ignore next */\n toString(stackedHeading) : null\n });\n }\n },\n render: function render(h) {\n var $content = [this.normalizeSlot()];\n return h(this.tag, {\n class: this.cellClasses,\n attrs: this.cellAttrs,\n // Transfer any native listeners\n on: this.bvListeners\n }, [this.isStackedCell ? h('div', [$content]) : $content]);\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_THEAD } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Also sniffed by `` / `` / ``\n // Supported values: 'lite', 'dark', or `null`\n headVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_THEAD); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BThead = /*#__PURE__*/Vue.extend({\n name: NAME_THEAD,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isThead: function isThead() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n theadClasses: function theadClasses() {\n return [this.headVariant ? \"thead-\".concat(this.headVariant) : null];\n },\n theadAttrs: function theadAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('thead', {\n class: this.theadClasses,\n attrs: this.theadAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { isToday } from './utils'\r\n\r\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\r\n\r\nexport const title = (value, replacer = ' ') => {\r\n if (!value) return ''\r\n const str = value.toString()\r\n\r\n const arr = str.split(replacer)\r\n const capitalizedArray = []\r\n arr.forEach(word => {\r\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\r\n capitalizedArray.push(capitalized)\r\n })\r\n return capitalizedArray.join(' ')\r\n}\r\n\r\nexport const avatarText = value => {\r\n if (!value) return ''\r\n const nameArray = value.split(' ')\r\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\r\n}\r\n\r\n/**\r\n * Format and return date in Humanize format\r\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\r\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\r\n * @param {String} value date to format\r\n * @param {Object} formatting Intl object to format with\r\n */\r\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\r\n if (!value) return value\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n/**\r\n * Return short human friendly month representation of date\r\n * Can also convert date to only time if date is of today (Better UX)\r\n * @param {String} value date to format\r\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\r\n */\r\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\r\n const date = new Date(value)\r\n let formatting = { month: 'short', day: 'numeric' }\r\n\r\n if (toTimeForCurrentDay && isToday(date)) {\r\n formatting = { hour: 'numeric', minute: 'numeric' }\r\n }\r\n\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n// Strip all the tags from markup and return plain text\r\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\r\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\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});","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 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});","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","export function showSpinner() {\r\n document.getElementById('loading-bg').style.display = 'block'\r\n}\r\n\r\nexport function hideSpinner() {\r\n document.getElementById('loading-bg').style.display = 'none'\r\n}\r\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_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Supported values: 'lite', 'dark', or null\n footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTfoot = /*#__PURE__*/Vue.extend({\n name: NAME_TFOOT,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTfoot: function isTfoot() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n tfootClasses: function tfootClasses() {\n return [this.footVariant ? \"thead-\".concat(this.footVariant) : null];\n },\n tfootAttrs: function tfootAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'rowgroup'\n });\n }\n },\n render: function render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_BOTTOM_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var bottomRowMixin = Vue.extend({\n props: props,\n methods: {\n renderBottomRow: function renderBottomRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_BOTTOM_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-bottom-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-bottom') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-bottom') : tbodyTrAttr,\n key: 'b-bottom-row'\n }, this.normalizeSlot(SLOT_NAME_BOTTOM_ROW, {\n columns: fields.length,\n fields: fields\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 } from '../../../vue';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Constants ---\n\nvar MODEL_PROP_NAME_BUSY = 'busy';\nvar MODEL_EVENT_NAME_BUSY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_BUSY; // --- Props ---\n\nexport var props = _defineProperty({}, MODEL_PROP_NAME_BUSY, makeProp(PROP_TYPE_BOOLEAN, false)); // --- Mixin ---\n// @vue/component\n\nexport var busyMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localBusy: false\n };\n },\n computed: {\n computedBusy: function computedBusy() {\n return this[MODEL_PROP_NAME_BUSY] || this.localBusy;\n }\n },\n watch: {\n localBusy: function localBusy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_BUSY, newValue);\n }\n }\n },\n methods: {\n // Event handler helper\n stopIfBusy: function stopIfBusy(event) {\n // If table is busy (via provider) then don't propagate\n if (this.computedBusy) {\n stopEvent(event);\n return true;\n }\n\n return false;\n },\n // Render the busy indicator or return `null` if not busy\n renderBusy: function renderBusy() {\n var tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Return a busy indicator row, or `null` if not busy\n\n if (this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY)) {\n return h(BTr, {\n staticClass: 'b-table-busy-slot',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, SLOT_NAME_TABLE_BUSY) : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, SLOT_NAME_TABLE_BUSY) : tbodyTrAttr,\n key: 'table-busy-slot'\n }, [h(BTd, {\n props: {\n colspan: this.computedFields.length || null\n }\n }, [this.normalizeSlot(SLOT_NAME_TABLE_BUSY)])]);\n } // We return `null` here so that we can determine if we need to\n // render the table items rows or not\n\n\n return null;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_EMPTYFILTERED, SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Props ---\n\nexport var props = {\n emptyFilteredHtml: makeProp(PROP_TYPE_STRING),\n emptyFilteredText: makeProp(PROP_TYPE_STRING, 'There are no records matching your request'),\n emptyHtml: makeProp(PROP_TYPE_STRING),\n emptyText: makeProp(PROP_TYPE_STRING, 'There are no records to show'),\n showEmpty: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var emptyMixin = Vue.extend({\n props: props,\n methods: {\n renderEmpty: function renderEmpty() {\n var items = this.computedItems;\n var h = this.$createElement;\n var $empty = h();\n\n if (this.showEmpty && (!items || items.length === 0) && !(this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY))) {\n var fields = this.computedFields,\n isFiltered = this.isFiltered,\n emptyText = this.emptyText,\n emptyHtml = this.emptyHtml,\n emptyFilteredText = this.emptyFilteredText,\n emptyFilteredHtml = this.emptyFilteredHtml,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n $empty = this.normalizeSlot(isFiltered ? SLOT_NAME_EMPTYFILTERED : SLOT_NAME_EMPTY, {\n emptyFilteredHtml: emptyFilteredHtml,\n emptyFilteredText: emptyFilteredText,\n emptyHtml: emptyHtml,\n emptyText: emptyText,\n fields: fields,\n // Not sure why this is included, as it will always be an empty array\n items: items\n });\n\n if (!$empty) {\n $empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: isFiltered ? htmlOrText(emptyFilteredHtml, emptyFilteredText) : htmlOrText(emptyHtml, emptyText)\n });\n }\n\n $empty = h(BTd, {\n props: {\n colspan: fields.length || null\n }\n }, [h('div', {\n attrs: {\n role: 'alert',\n 'aria-live': 'polite'\n }\n }, [$empty])]);\n $empty = h(BTr, {\n staticClass: 'b-table-empty-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-empty') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-empty') : tbodyTrAttr,\n key: isFiltered ? 'b-empty-filtered-row' : 'b-empty-row'\n }, [$empty]);\n }\n\n return $empty;\n }\n }\n});","import { isDate, isObject, isUndefinedOrNull } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string'; // Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Strings are returned as-is\n// Numbers get converted to string\n// `null` and `undefined` values are filtered out\n// Dates are converted to their native string format\n\nexport var stringifyObjectValues = function stringifyObjectValues(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n } // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n\n\n if (isObject(value) && !isDate(value)) {\n return keys(value).sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n .map(function (k) {\n return stringifyObjectValues(value[k]);\n }).filter(function (v) {\n return !!v;\n }) // Ignore empty strings\n .join(' ');\n }\n\n return toString(value);\n};","import { arrayIncludes } from '../../../utils/array';\nimport { isArray, isFunction } from '../../../utils/inspect';\nimport { clone, keys, pick } from '../../../utils/object';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Return a copy of a row after all reserved fields have been filtered out\n\nexport var sanitizeRow = function sanitizeRow(row, ignoreFields, includeFields) {\n var fieldsObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // We first need to format the row based on the field configurations\n // This ensures that we add formatted values for keys that may not\n // exist in the row itself\n var formattedRow = keys(fieldsObj).reduce(function (result, key) {\n var field = fieldsObj[key];\n var filterByFormatted = field.filterByFormatted;\n var formatter = isFunction(filterByFormatted) ?\n /* istanbul ignore next */\n filterByFormatted : filterByFormatted ?\n /* istanbul ignore next */\n field.formatter : null;\n\n if (isFunction(formatter)) {\n result[key] = formatter(row[key], key, row);\n }\n\n return result;\n }, clone(row)); // Determine the allowed keys:\n // - Ignore special fields that start with `_`\n // - Ignore fields in the `ignoreFields` array\n // - Include only fields in the `includeFields` array\n\n var allowedKeys = keys(formattedRow).filter(function (key) {\n return !IGNORED_FIELD_KEYS[key] && !(isArray(ignoreFields) && ignoreFields.length > 0 && arrayIncludes(ignoreFields, key)) && !(isArray(includeFields) && includeFields.length > 0 && !arrayIncludes(includeFields, key));\n });\n return pick(formattedRow, allowedKeys);\n};","import { isObject } from '../../../utils/inspect';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\nimport { sanitizeRow } from './sanitize-row'; // Stringifies the values of a record, ignoring any special top level field keys\n// TODO: Add option to stringify `scopedSlot` items\n\nexport var stringifyRecordValues = function stringifyRecordValues(row, ignoreFields, includeFields, fieldsObj) {\n return isObject(row) ? stringifyObjectValues(sanitizeRow(row, ignoreFields, includeFields, fieldsObj)) :\n /* istanbul ignore next */\n '';\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_FILTERED } from '../../../constants/events';\nimport { PROP_TYPE_REG_EXP, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY, PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { RX_DIGITS, RX_SPACES } from '../../../constants/regex';\nimport { concat } from '../../../utils/array';\nimport { cloneDeep } from '../../../utils/clone-deep';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { toInteger } from '../../../utils/number';\nimport { hasPropFunction, makeProp } from '../../../utils/props';\nimport { escapeRegExp } from '../../../utils/string';\nimport { warn } from '../../../utils/warn';\nimport { stringifyRecordValues } from './stringify-record-values'; // --- Constants ---\n\nvar DEBOUNCE_DEPRECATED_MSG = 'Prop \"filter-debounce\" is deprecated. Use the debounce feature of \"\" instead.'; // --- Props ---\n\nexport var props = {\n filter: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_REG_EXP])),\n filterDebounce: makeProp(PROP_TYPE_NUMBER_STRING, 0, function (value) {\n return RX_DIGITS.test(String(value));\n }),\n filterFunction: makeProp(PROP_TYPE_FUNCTION),\n filterIgnoredFields: makeProp(PROP_TYPE_ARRAY, []),\n filterIncludedFields: makeProp(PROP_TYPE_ARRAY, [])\n}; // --- Mixin ---\n// @vue/component\n\nexport var filteringMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n // Flag for displaying which empty slot to show and some event triggering\n isFiltered: false,\n // Where we store the copy of the filter criteria after debouncing\n // We pre-set it with the sanitized filter value\n localFilter: this.filterSanitize(this.filter)\n };\n },\n computed: {\n computedFilterIgnored: function computedFilterIgnored() {\n return concat(this.filterIgnoredFields || []).filter(identity);\n },\n computedFilterIncluded: function computedFilterIncluded() {\n return concat(this.filterIncludedFields || []).filter(identity);\n },\n computedFilterDebounce: function computedFilterDebounce() {\n var ms = toInteger(this.filterDebounce, 0);\n /* istanbul ignore next */\n\n if (ms > 0) {\n warn(DEBOUNCE_DEPRECATED_MSG, NAME_TABLE);\n }\n\n return ms;\n },\n localFiltering: function localFiltering() {\n return this.hasProvider ? !!this.noProviderFiltering : true;\n },\n // For watching changes to `filteredItems` vs `localItems`\n filteredCheck: function filteredCheck() {\n var filteredItems = this.filteredItems,\n localItems = this.localItems,\n localFilter = this.localFilter;\n return {\n filteredItems: filteredItems,\n localItems: localItems,\n localFilter: localFilter\n };\n },\n // Sanitized/normalize filter-function prop\n localFilterFn: function localFilterFn() {\n // Return `null` to signal to use internal filter function\n var filterFunction = this.filterFunction;\n return hasPropFunction(filterFunction) ? filterFunction : null;\n },\n // Returns the records in `localItems` that match the filter criteria\n // Returns the original `localItems` array if not sorting\n filteredItems: function filteredItems() {\n // Note the criteria is debounced and sanitized\n var items = this.localItems,\n criteria = this.localFilter; // Resolve the filtering function, when requested\n // We prefer the provided filtering function and fallback to the internal one\n // When no filtering criteria is specified the filtering factories will return `null`\n\n var filterFn = this.localFiltering ? this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria) : null; // We only do local filtering when requested and there are records to filter\n\n return filterFn && items.length > 0 ? items.filter(filterFn) : items;\n }\n },\n watch: {\n // Watch for debounce being set to 0\n computedFilterDebounce: function computedFilterDebounce(newValue) {\n if (!newValue && this.$_filterTimer) {\n this.clearFilterTimer();\n this.localFilter = this.filterSanitize(this.filter);\n }\n },\n // Watch for changes to the filter criteria, and debounce if necessary\n filter: {\n // We need a deep watcher in case the user passes\n // an object when using `filter-function`\n deep: true,\n handler: function handler(newCriteria) {\n var _this = this;\n\n var timeout = this.computedFilterDebounce;\n this.clearFilterTimer();\n\n if (timeout && timeout > 0) {\n // If we have a debounce time, delay the update of `localFilter`\n this.$_filterTimer = setTimeout(function () {\n _this.localFilter = _this.filterSanitize(newCriteria);\n }, timeout);\n } else {\n // Otherwise, immediately update `localFilter` with `newFilter` value\n this.localFilter = this.filterSanitize(newCriteria);\n }\n }\n },\n // Watch for changes to the filter criteria and filtered items vs `localItems`\n // Set visual state and emit events as required\n filteredCheck: function filteredCheck(_ref) {\n var filteredItems = _ref.filteredItems,\n localFilter = _ref.localFilter;\n // Determine if the dataset is filtered or not\n var isFiltered = false;\n\n if (!localFilter) {\n // If filter criteria is falsey\n isFiltered = false;\n } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n // If filter criteria is an empty array or object\n isFiltered = false;\n } else if (localFilter) {\n // If filter criteria is truthy\n isFiltered = true;\n }\n\n if (isFiltered) {\n this.$emit(EVENT_NAME_FILTERED, filteredItems, filteredItems.length);\n }\n\n this.isFiltered = isFiltered;\n },\n isFiltered: function isFiltered(newValue, oldValue) {\n if (newValue === false && oldValue === true) {\n // We need to emit a filtered event if `isFiltered` transitions from `true` to\n // `false` so that users can update their pagination controls\n var localItems = this.localItems;\n this.$emit(EVENT_NAME_FILTERED, localItems, localItems.length);\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create private non-reactive props\n this.$_filterTimer = null; // If filter is \"pre-set\", set the criteria\n // This will trigger any watchers/dependents\n // this.localFilter = this.filterSanitize(this.filter)\n // Set the initial filtered state in a `$nextTick()` so that\n // we trigger a filtered event if needed\n\n this.$nextTick(function () {\n _this2.isFiltered = Boolean(_this2.localFilter);\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearFilterTimer();\n },\n methods: {\n clearFilterTimer: function clearFilterTimer() {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n },\n filterSanitize: function filterSanitize(criteria) {\n // Sanitizes filter criteria based on internal or external filtering\n if (this.localFiltering && !this.localFilterFn && !(isString(criteria) || isRegExp(criteria))) {\n // If using internal filter function, which only accepts string or RegExp,\n // return '' to signify no filter\n return '';\n } // Could be a string, object or array, as needed by external filter function\n // We use `cloneDeep` to ensure we have a new copy of an object or array\n // without Vue's reactive observers\n\n\n return cloneDeep(criteria);\n },\n // Filter Function factories\n filterFnFactory: function filterFnFactory(filterFn, criteria) {\n // Wrapper factory for external filter functions\n // Wrap the provided filter-function and return a new function\n // Returns `null` if no filter-function defined or if criteria is falsey\n // Rather than directly grabbing `this.computedLocalFilterFn` or `this.filterFunction`\n // we have it passed, so that the caller computed prop will be reactive to changes\n // in the original filter-function (as this routine is a method)\n if (!filterFn || !isFunction(filterFn) || !criteria || looseEqual(criteria, []) || looseEqual(criteria, {})) {\n return null;\n } // Build the wrapped filter test function, passing the criteria to the provided function\n\n\n var fn = function fn(item) {\n // Generated function returns true if the criteria matches part\n // of the serialized data, otherwise false\n return filterFn(item, criteria);\n }; // Return the wrapped function\n\n\n return fn;\n },\n defaultFilterFnFactory: function defaultFilterFnFactory(criteria) {\n var _this3 = this;\n\n // Generates the default filter function, using the given filter criteria\n // Returns `null` if no criteria or criteria format not supported\n if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n // Built in filter can only support strings or RegExp criteria (at the moment)\n return null;\n } // Build the RegExp needed for filtering\n\n\n var regExp = criteria;\n\n if (isString(regExp)) {\n // Escape special RegExp characters in the string and convert contiguous\n // whitespace to \\s+ matches\n var pattern = escapeRegExp(criteria).replace(RX_SPACES, '\\\\s+'); // Build the RegExp (no need for global flag, as we only need\n // to find the value once in the string)\n\n regExp = new RegExp(\".*\".concat(pattern, \".*\"), 'i');\n } // Generate the wrapped filter test function to use\n\n\n var fn = function fn(item) {\n // This searches all row values (and sub property values) in the entire (excluding\n // special `_` prefixed keys), because we convert the record to a space-separated\n // string containing all the value properties (recursively), even ones that are\n // not visible (not specified in this.fields)\n // Users can ignore filtering on specific fields, or on only certain fields,\n // and can optionall specify searching results of fields with formatter\n //\n // TODO: Enable searching on scoped slots (optional, as it will be SLOW)\n //\n // Generated function returns true if the criteria matches part of\n // the serialized data, otherwise false\n //\n // We set `lastIndex = 0` on the `RegExp` in case someone specifies the `/g` global flag\n regExp.lastIndex = 0;\n return regExp.test(stringifyRecordValues(item, _this3.computedFilterIgnored, _this3.computedFilterIncluded, _this3.computedFieldsObj));\n }; // Return the generated function\n\n\n return fn;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { mathMax } from '../../../utils/math';\nimport { toInteger } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n currentPage: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, 0)\n}; // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n props: props,\n computed: {\n localPaging: function localPaging() {\n return this.hasProvider ? !!this.noProviderPaging : true;\n },\n paginatedItems: function paginatedItems() {\n var items = this.sortedItems || this.filteredItems || this.localItems || [];\n var currentPage = mathMax(toInteger(this.currentPage, 1), 1);\n var perPage = mathMax(toInteger(this.perPage, 0), 0); // Apply local pagination\n\n if (this.localPaging && perPage) {\n // Grab the current page of data (which may be past filtered items limit)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n } // Return the items to display in the table\n\n\n return items;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_REFRESH, EVENT_NAME_REFRESHED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { isArray, isFunction, isPromise } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { clone } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { warn } from '../../../utils/warn';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_REFRESHED = getRootEventName(NAME_TABLE, EVENT_NAME_REFRESHED);\nvar ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_NAME_REFRESH); // --- Props ---\n\nexport var props = {\n // Passed to the context object\n // Not used by `` directly\n apiUrl: makeProp(PROP_TYPE_STRING),\n // Adds in 'Function' support\n items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),\n noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var providerMixin = Vue.extend({\n mixins: [listenOnRootMixin],\n props: props,\n computed: {\n hasProvider: function hasProvider() {\n return isFunction(this.items);\n },\n providerTriggerContext: function providerTriggerContext() {\n // Used to trigger the provider function via a watcher. Only the fields that\n // are needed for triggering a provider update are included. Note that the\n // regular this.context is sent to the provider during fetches though, as they\n // may need all the prop info.\n var ctx = {\n apiUrl: this.apiUrl,\n filter: null,\n sortBy: null,\n sortDesc: null,\n perPage: null,\n currentPage: null\n };\n\n if (!this.noProviderFiltering) {\n // Either a string, or could be an object or array.\n ctx.filter = this.localFilter;\n }\n\n if (!this.noProviderSorting) {\n ctx.sortBy = this.localSortBy;\n ctx.sortDesc = this.localSortDesc;\n }\n\n if (!this.noProviderPaging) {\n ctx.perPage = this.perPage;\n ctx.currentPage = this.currentPage;\n }\n\n return clone(ctx);\n }\n },\n watch: {\n // Provider update triggering\n items: function items(newValue) {\n // If a new provider has been specified, trigger an update\n if (this.hasProvider || isFunction(newValue)) {\n this.$nextTick(this._providerUpdate);\n }\n },\n providerTriggerContext: function providerTriggerContext(newValue, oldValue) {\n // Trigger the provider to update as the relevant context values have changed.\n if (!looseEqual(newValue, oldValue)) {\n this.$nextTick(this._providerUpdate);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Call the items provider if necessary\n if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n // Fetch on mount if localItems is empty\n this._providerUpdate();\n } // Listen for global messages to tell us to force refresh the table\n\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REFRESH, function (id) {\n if (id === _this.id || id === _this) {\n _this.refresh();\n }\n });\n },\n methods: {\n refresh: function refresh() {\n var items = this.items,\n refresh = this.refresh; // Public Method: Force a refresh of the provider function\n\n this.$off(EVENT_NAME_REFRESHED, refresh);\n\n if (this.computedBusy) {\n // Can't force an update when forced busy by user (busy prop === true)\n if (this.localBusy && this.hasProvider) {\n // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n this.$on(EVENT_NAME_REFRESHED, refresh);\n }\n } else {\n this.clearSelected();\n\n if (this.hasProvider) {\n this.$nextTick(this._providerUpdate);\n } else {\n /* istanbul ignore next */\n this.localItems = isArray(items) ? items.slice() : [];\n }\n }\n },\n // Provider related methods\n _providerSetLocal: function _providerSetLocal(items) {\n this.localItems = isArray(items) ? items.slice() : [];\n this.localBusy = false;\n this.$emit(EVENT_NAME_REFRESHED); // New root emit\n\n if (this.id) {\n this.emitOnRoot(ROOT_EVENT_NAME_REFRESHED, this.id);\n }\n },\n _providerUpdate: function _providerUpdate() {\n var _this2 = this;\n\n // Refresh the provider function items.\n if (!this.hasProvider) {\n // Do nothing if no provider\n return;\n } // If table is busy, wait until refreshed before calling again\n\n\n if (this.computedBusy) {\n // Schedule a new refresh once `refreshed` is emitted\n this.$nextTick(this.refresh);\n return;\n } // Set internal busy state\n\n\n this.localBusy = true; // Call provider function with context and optional callback after DOM is fully updated\n\n this.$nextTick(function () {\n try {\n // Call provider function passing it the context and optional callback\n var data = _this2.items(_this2.context, _this2._providerSetLocal);\n\n if (isPromise(data)) {\n // Provider returned Promise\n data.then(function (items) {\n // Provider resolved with items\n _this2._providerSetLocal(items);\n });\n } else if (isArray(data)) {\n // Provider returned Array data\n _this2._providerSetLocal(data);\n } else {\n /* istanbul ignore if */\n if (_this2.items.length !== 2) {\n // Check number of arguments provider function requested\n // Provider not using callback (didn't request second argument), so we clear\n // busy state as most likely there was an error in the provider function\n\n /* istanbul ignore next */\n warn(\"Provider function didn't request callback and did not return a promise or data.\", NAME_TABLE);\n _this2.localBusy = false;\n }\n }\n } catch (e)\n /* istanbul ignore next */\n {\n // Provider function borked on us, so we spew out a warning\n // and clear the busy state\n warn(\"Provider function error [\".concat(e.name, \"] \").concat(e.message, \".\"), NAME_TABLE);\n _this2.localBusy = false;\n\n _this2.$off(EVENT_NAME_REFRESHED, _this2.refresh);\n }\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 } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED, EVENT_NAME_FILTERED, EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_SELECTED } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes, createArray } from '../../../utils/array';\nimport { identity } from '../../../utils/identity';\nimport { isArray, isNumber } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax, mathMin } from '../../../utils/math';\nimport { makeProp } from '../../../utils/props';\nimport { sanitizeRow } from './sanitize-row'; // --- Constants ---\n\nvar SELECT_MODES = ['range', 'multi', 'single']; // --- Props ---\n\nexport var props = {\n // Disable use of click handlers for row selection\n noSelectOnClick: makeProp(PROP_TYPE_BOOLEAN, false),\n selectMode: makeProp(PROP_TYPE_STRING, 'multi', function (value) {\n return arrayIncludes(SELECT_MODES, value);\n }),\n selectable: makeProp(PROP_TYPE_BOOLEAN, false),\n selectedVariant: makeProp(PROP_TYPE_STRING, 'active')\n}; // --- Mixin ---\n// @vue/component\n\nexport var selectableMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n selectedRows: [],\n selectedLastRow: -1\n };\n },\n computed: {\n isSelectable: function isSelectable() {\n return this.selectable && this.selectMode;\n },\n hasSelectableRowClick: function hasSelectableRowClick() {\n return this.isSelectable && !this.noSelectOnClick;\n },\n supportsSelectableRows: function supportsSelectableRows() {\n return true;\n },\n selectableHasSelection: function selectableHasSelection() {\n var selectedRows = this.selectedRows;\n return this.isSelectable && selectedRows && selectedRows.length > 0 && selectedRows.some(identity);\n },\n selectableIsMultiSelect: function selectableIsMultiSelect() {\n return this.isSelectable && arrayIncludes(['range', 'multi'], this.selectMode);\n },\n selectableTableClasses: function selectableTableClasses() {\n var _ref;\n\n var isSelectable = this.isSelectable;\n return _ref = {\n 'b-table-selectable': isSelectable\n }, _defineProperty(_ref, \"b-table-select-\".concat(this.selectMode), isSelectable), _defineProperty(_ref, 'b-table-selecting', this.selectableHasSelection), _defineProperty(_ref, 'b-table-selectable-no-click', isSelectable && !this.hasSelectableRowClick), _ref;\n },\n selectableTableAttrs: function selectableTableAttrs() {\n return {\n // TODO:\n // Should this attribute not be included when no-select-on-click is set\n // since this attribute implies keyboard navigation?\n 'aria-multiselectable': !this.isSelectable ? null : this.selectableIsMultiSelect ? 'true' : 'false'\n };\n }\n },\n watch: {\n computedItems: function computedItems(newValue, oldValue) {\n // Reset for selectable\n var equal = false;\n\n if (this.isSelectable && this.selectedRows.length > 0) {\n // Quick check against array length\n equal = isArray(newValue) && isArray(oldValue) && newValue.length === oldValue.length;\n\n for (var i = 0; equal && i < newValue.length; i++) {\n // Look for the first non-loosely equal row, after ignoring reserved fields\n equal = looseEqual(sanitizeRow(newValue[i]), sanitizeRow(oldValue[i]));\n }\n }\n\n if (!equal) {\n this.clearSelected();\n }\n },\n selectable: function selectable(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(newValue);\n },\n selectMode: function selectMode() {\n this.clearSelected();\n },\n hasSelectableRowClick: function hasSelectableRowClick(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(!newValue);\n },\n selectedRows: function selectedRows(_selectedRows, oldValue) {\n var _this = this;\n\n if (this.isSelectable && !looseEqual(_selectedRows, oldValue)) {\n var items = []; // `.forEach()` skips over non-existent indices (on sparse arrays)\n\n _selectedRows.forEach(function (v, idx) {\n if (v) {\n items.push(_this.computedItems[idx]);\n }\n });\n\n this.$emit(EVENT_NAME_ROW_SELECTED, items);\n }\n }\n },\n beforeMount: function beforeMount() {\n // Set up handlers if needed\n if (this.isSelectable) {\n this.setSelectionHandlers(true);\n }\n },\n methods: {\n // Public methods\n selectRow: function selectRow(index) {\n // Select a particular row (indexed based on computedItems)\n if (this.isSelectable && isNumber(index) && index >= 0 && index < this.computedItems.length && !this.isRowSelected(index)) {\n var selectedRows = this.selectableIsMultiSelect ? this.selectedRows.slice() : [];\n selectedRows[index] = true;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n unselectRow: function unselectRow(index) {\n // Un-select a particular row (indexed based on `computedItems`)\n if (this.isSelectable && isNumber(index) && this.isRowSelected(index)) {\n var selectedRows = this.selectedRows.slice();\n selectedRows[index] = false;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n selectAllRows: function selectAllRows() {\n var length = this.computedItems.length;\n\n if (this.isSelectable && length > 0) {\n this.selectedLastClicked = -1;\n this.selectedRows = this.selectableIsMultiSelect ? createArray(length, true) : [true];\n }\n },\n isRowSelected: function isRowSelected(index) {\n // Determine if a row is selected (indexed based on `computedItems`)\n return !!(isNumber(index) && this.selectedRows[index]);\n },\n clearSelected: function clearSelected() {\n // Clear any active selected row(s)\n this.selectedLastClicked = -1;\n this.selectedRows = [];\n },\n // Internal private methods\n selectableRowClasses: function selectableRowClasses(index) {\n if (this.isSelectable && this.isRowSelected(index)) {\n var variant = this.selectedVariant;\n return _defineProperty({\n 'b-table-row-selected': true\n }, \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(variant), variant);\n }\n\n return {};\n },\n selectableRowAttrs: function selectableRowAttrs(index) {\n return {\n 'aria-selected': !this.isSelectable ? null : this.isRowSelected(index) ? 'true' : 'false'\n };\n },\n setSelectionHandlers: function setSelectionHandlers(on) {\n var method = on && !this.noSelectOnClick ? '$on' : '$off'; // Handle row-clicked event\n\n this[method](EVENT_NAME_ROW_CLICKED, this.selectionHandler); // Clear selection on filter, pagination, and sort changes\n\n this[method](EVENT_NAME_FILTERED, this.clearSelected);\n this[method](EVENT_NAME_CONTEXT_CHANGED, this.clearSelected);\n },\n selectionHandler: function selectionHandler(item, index, event) {\n /* istanbul ignore if: should never happen */\n if (!this.isSelectable || this.noSelectOnClick) {\n // Don't do anything if table is not in selectable mode\n this.clearSelected();\n return;\n }\n\n var selectMode = this.selectMode,\n selectedLastRow = this.selectedLastRow;\n var selectedRows = this.selectedRows.slice();\n var selected = !selectedRows[index]; // Note 'multi' mode needs no special event handling\n\n if (selectMode === 'single') {\n selectedRows = [];\n } else if (selectMode === 'range') {\n if (selectedLastRow > -1 && event.shiftKey) {\n // range\n for (var idx = mathMin(selectedLastRow, index); idx <= mathMax(selectedLastRow, index); idx++) {\n selectedRows[idx] = true;\n }\n\n selected = true;\n } else {\n if (!(event.ctrlKey || event.metaKey)) {\n // Clear range selection if any\n selectedRows = [];\n selected = true;\n }\n\n this.selectedLastRow = selected ? index : -1;\n }\n }\n\n selectedRows[index] = selected;\n this.selectedRows = selectedRows;\n }\n }\n});","var _props, _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 { EVENT_NAME_HEAD_CLICKED, EVENT_NAME_SORT_CHANGED, MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { stableSort } from '../../../utils/stable-sort';\nimport { trim } from '../../../utils/string';\nimport { defaultSortCompare } from './default-sort-compare'; // --- Constants ---\n\nvar MODEL_PROP_NAME_SORT_BY = 'sortBy';\nvar MODEL_EVENT_NAME_SORT_BY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_BY;\nvar MODEL_PROP_NAME_SORT_DESC = 'sortDesc';\nvar MODEL_EVENT_NAME_SORT_DESC = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_DESC;\nvar SORT_DIRECTION_ASC = 'asc';\nvar SORT_DIRECTION_DESC = 'desc';\nvar SORT_DIRECTION_LAST = 'last';\nvar SORT_DIRECTIONS = [SORT_DIRECTION_ASC, SORT_DIRECTION_DESC, SORT_DIRECTION_LAST]; // --- Props ---\n\nexport var props = (_props = {\n labelSortAsc: makeProp(PROP_TYPE_STRING, 'Click to sort Ascending'),\n labelSortClear: makeProp(PROP_TYPE_STRING, 'Click to clear sorting'),\n labelSortDesc: makeProp(PROP_TYPE_STRING, 'Click to sort Descending'),\n noFooterSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n noLocalSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n // Another prop that should have had a better name\n // It should be `noSortClear` (on non-sortable headers)\n // We will need to make sure the documentation is clear on what\n // this prop does (as well as in the code for future reference)\n noSortReset: makeProp(PROP_TYPE_BOOLEAN, false)\n}, _defineProperty(_props, MODEL_PROP_NAME_SORT_BY, makeProp(PROP_TYPE_STRING)), _defineProperty(_props, \"sortCompare\", makeProp(PROP_TYPE_FUNCTION)), _defineProperty(_props, \"sortCompareLocale\", makeProp(PROP_TYPE_ARRAY_STRING)), _defineProperty(_props, \"sortCompareOptions\", makeProp(PROP_TYPE_OBJECT, {\n numeric: true\n})), _defineProperty(_props, MODEL_PROP_NAME_SORT_DESC, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortDirection\", makeProp(PROP_TYPE_STRING, SORT_DIRECTION_ASC, function (value) {\n return arrayIncludes(SORT_DIRECTIONS, value);\n})), _defineProperty(_props, \"sortIconLeft\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortNullLast\", makeProp(PROP_TYPE_BOOLEAN, false)), _props); // --- Mixin ---\n// @vue/component\n\nexport var sortingMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localSortBy: this[MODEL_PROP_NAME_SORT_BY] || '',\n localSortDesc: this[MODEL_PROP_NAME_SORT_DESC] || false\n };\n },\n computed: {\n localSorting: function localSorting() {\n return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting;\n },\n isSortable: function isSortable() {\n return this.computedFields.some(function (f) {\n return f.sortable;\n });\n },\n // Sorts the filtered items and returns a new array of the sorted items\n // When not sorted, the original items array will be returned\n sortedItems: function sortedItems() {\n var sortBy = this.localSortBy,\n sortDesc = this.localSortDesc,\n locale = this.sortCompareLocale,\n nullLast = this.sortNullLast,\n sortCompare = this.sortCompare,\n localSorting = this.localSorting;\n var items = (this.filteredItems || this.localItems || []).slice();\n\n var localeOptions = _objectSpread(_objectSpread({}, this.sortCompareOptions), {}, {\n usage: 'sort'\n });\n\n if (sortBy && localSorting) {\n var field = this.computedFieldsObj[sortBy] || {};\n var sortByFormatted = field.sortByFormatted;\n var formatter = isFunction(sortByFormatted) ?\n /* istanbul ignore next */\n sortByFormatted : sortByFormatted ? this.getFieldFormatter(sortBy) : undefined; // `stableSort` returns a new array, and leaves the original array intact\n\n return stableSort(items, function (a, b) {\n var result = null; // Call user provided `sortCompare` routine first\n\n if (isFunction(sortCompare)) {\n // TODO:\n // Change the `sortCompare` signature to the one of `defaultSortCompare`\n // with the next major version bump\n result = sortCompare(a, b, sortBy, sortDesc, formatter, localeOptions, locale);\n } // Fallback to built-in `defaultSortCompare` if `sortCompare`\n // is not defined or returns `null`/`false`\n\n\n if (isUndefinedOrNull(result) || result === false) {\n result = defaultSortCompare(a, b, {\n sortBy: sortBy,\n formatter: formatter,\n locale: locale,\n localeOptions: localeOptions,\n nullLast: nullLast\n });\n } // Negate result if sorting in descending order\n\n\n return (result || 0) * (sortDesc ? -1 : 1);\n });\n }\n\n return items;\n }\n },\n watch: (_watch = {\n /* istanbul ignore next: pain in the butt to test */\n isSortable: function isSortable(newValue) {\n if (newValue) {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n } else {\n this.$off(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n }\n }, _defineProperty(_watch, MODEL_PROP_NAME_SORT_DESC, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortDesc) {\n return;\n }\n\n this.localSortDesc = newValue || false;\n }), _defineProperty(_watch, MODEL_PROP_NAME_SORT_BY, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortBy) {\n return;\n }\n\n this.localSortBy = newValue || '';\n }), _defineProperty(_watch, \"localSortDesc\", function localSortDesc(newValue, oldValue) {\n // Emit update to sort-desc.sync\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_DESC, newValue);\n }\n }), _defineProperty(_watch, \"localSortBy\", function localSortBy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_BY, newValue);\n }\n }), _watch),\n created: function created() {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n },\n methods: {\n // Handlers\n // Need to move from thead-mixin\n handleSort: function handleSort(key, field, event, isFoot) {\n var _this = this;\n\n if (!this.isSortable) {\n /* istanbul ignore next */\n return;\n }\n\n if (isFoot && this.noFooterSorting) {\n return;\n } // TODO: make this tri-state sorting\n // cycle desc => asc => none => desc => ...\n\n\n var sortChanged = false;\n\n var toggleLocalSortDesc = function toggleLocalSortDesc() {\n var sortDirection = field.sortDirection || _this.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n _this.localSortDesc = false;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n _this.localSortDesc = true;\n } else {// sortDirection === 'last'\n // Leave at last sort direction from previous column\n }\n };\n\n if (field.sortable) {\n var sortKey = !this.localSorting && field.sortKey ? field.sortKey : key;\n\n if (this.localSortBy === sortKey) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = sortKey; // this.localSortDesc = false\n\n toggleLocalSortDesc();\n }\n\n sortChanged = true;\n } else if (this.localSortBy && !this.noSortReset) {\n this.localSortBy = '';\n toggleLocalSortDesc();\n sortChanged = true;\n }\n\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit(EVENT_NAME_SORT_CHANGED, this.context);\n }\n },\n // methods to compute classes and attrs for thead>th cells\n sortTheadThClasses: function sortTheadThClasses(key, field, isFoot) {\n return {\n // If sortable and sortIconLeft are true, then place sort icon on the left\n 'b-table-sort-icon-left': field.sortable && this.sortIconLeft && !(isFoot && this.noFooterSorting)\n };\n },\n sortTheadThAttrs: function sortTheadThAttrs(key, field, isFoot) {\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No attributes if not a sortable table\n return {};\n }\n\n var sortable = field.sortable; // Assemble the aria-sort attribute value\n\n var ariaSort = sortable && this.localSortBy === key ? this.localSortDesc ? 'descending' : 'ascending' : sortable ? 'none' : null; // Return the attribute\n\n return {\n 'aria-sort': ariaSort\n };\n },\n sortTheadThLabel: function sortTheadThLabel(key, field, isFoot) {\n // A label to be placed in an `.sr-only` element in the header cell\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No label if not a sortable table\n return null;\n }\n\n var sortable = field.sortable; // The correctness of these labels is very important for screen-reader users.\n\n var labelSorting = '';\n\n if (sortable) {\n if (this.localSortBy === key) {\n // currently sorted sortable column.\n labelSorting = this.localSortDesc ? this.labelSortAsc : this.labelSortDesc;\n } else {\n // Not currently sorted sortable column.\n // Not using nested ternary's here for clarity/readability\n // Default for ariaLabel\n labelSorting = this.localSortDesc ? this.labelSortDesc : this.labelSortAsc; // Handle sortDirection setting\n\n var sortDirection = this.sortDirection || field.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n labelSorting = this.labelSortAsc;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n labelSorting = this.labelSortDesc;\n }\n }\n } else if (!this.noSortReset) {\n // Non sortable column\n labelSorting = this.localSortBy ? this.labelSortClear : '';\n } // Return the sr-only sort label or null if no label\n\n\n return trim(labelSorting) || null;\n }\n }\n});","import { get } from '../../../utils/get';\nimport { isDate, isFunction, isNumber, isNumeric, isUndefinedOrNull } from '../../../utils/inspect';\nimport { toFloat } from '../../../utils/number';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\n\nvar normalizeValue = function normalizeValue(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n }\n\n if (isNumeric(value)) {\n return toFloat(value, value);\n }\n\n return value;\n}; // Default sort compare routine\n//\n// TODO:\n// Add option to sort by multiple columns (tri-state per column,\n// plus order of columns in sort) where `sortBy` could be an array\n// of objects `[ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]`\n// or an array of arrays `[ ['foo','asc'], ['bar','desc'] ]`\n// Multisort will most likely be handled in `mixin-sort.js` by\n// calling this method for each sortBy\n\n\nexport var defaultSortCompare = function defaultSortCompare(a, b) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? null : _ref$sortBy,\n _ref$formatter = _ref.formatter,\n formatter = _ref$formatter === void 0 ? null : _ref$formatter,\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? undefined : _ref$locale,\n _ref$localeOptions = _ref.localeOptions,\n localeOptions = _ref$localeOptions === void 0 ? {} : _ref$localeOptions,\n _ref$nullLast = _ref.nullLast,\n nullLast = _ref$nullLast === void 0 ? false : _ref$nullLast;\n\n // Get the value by `sortBy`\n var aa = get(a, sortBy, null);\n var bb = get(b, sortBy, null); // Apply user-provided formatter\n\n if (isFunction(formatter)) {\n aa = formatter(aa, sortBy, a);\n bb = formatter(bb, sortBy, b);\n } // Internally normalize value\n // `null` / `undefined` => ''\n // `'0'` => `0`\n\n\n aa = normalizeValue(aa);\n bb = normalizeValue(bb);\n\n if (isDate(aa) && isDate(bb) || isNumber(aa) && isNumber(bb)) {\n // Special case for comparing dates and numbers\n // Internally dates are compared via their epoch number values\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n } else if (nullLast && aa === '' && bb !== '') {\n // Special case when sorting `null` / `undefined` / '' last\n return 1;\n } else if (nullLast && aa !== '' && bb === '') {\n // Special case when sorting `null` / `undefined` / '' last\n return -1;\n } // Do localized string comparison\n\n\n return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOptions);\n};","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TOP_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var topRowMixin = Vue.extend({\n methods: {\n renderTopRow: function renderTopRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_TOP_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-top-row',\n class: [isFunction(tbodyTrClass) ? tbodyTrClass(null, 'row-top') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? tbodyTrAttr(null, 'row-top') : tbodyTrAttr,\n key: 'b-top-row'\n }, [this.normalizeSlot(SLOT_NAME_TOP_ROW, {\n columns: fields.length,\n fields: fields\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_TABLE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { bottomRowMixin, props as bottomRowProps } from './helpers/mixin-bottom-row';\nimport { busyMixin, props as busyProps } from './helpers/mixin-busy';\nimport { captionMixin, props as captionProps } from './helpers/mixin-caption';\nimport { colgroupMixin, props as colgroupProps } from './helpers/mixin-colgroup';\nimport { emptyMixin, props as emptyProps } from './helpers/mixin-empty';\nimport { filteringMixin, props as filteringProps } from './helpers/mixin-filtering';\nimport { itemsMixin, props as itemsProps } from './helpers/mixin-items';\nimport { paginationMixin, props as paginationProps } from './helpers/mixin-pagination';\nimport { providerMixin, props as providerProps } from './helpers/mixin-provider';\nimport { selectableMixin, props as selectableProps } from './helpers/mixin-selectable';\nimport { sortingMixin, props as sortingProps } from './helpers/mixin-sorting';\nimport { stackedMixin, props as stackedProps } from './helpers/mixin-stacked';\nimport { tableRendererMixin, props as tableRendererProps } from './helpers/mixin-table-renderer';\nimport { tbodyMixin, props as tbodyProps } from './helpers/mixin-tbody';\nimport { tfootMixin, props as tfootProps } from './helpers/mixin-tfoot';\nimport { theadMixin, props as theadProps } from './helpers/mixin-thead';\nimport { topRowMixin, props as topRowProps } from './helpers/mixin-top-row'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), bottomRowProps), busyProps), captionProps), colgroupProps), emptyProps), filteringProps), itemsProps), paginationProps), providerProps), selectableProps), sortingProps), stackedProps), tableRendererProps), tbodyProps), tfootProps), theadProps), topRowProps)), NAME_TABLE); // --- Main component ---\n// @vue/component\n\nexport var BTable = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [// General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin, // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin, // Table features mixins\n stackedMixin, filteringMixin, sortingMixin, paginationMixin, captionMixin, colgroupMixin, selectableMixin, emptyMixin, topRowMixin, bottomRowMixin, busyMixin, providerMixin],\n props: props // Render function is provided by `tableRendererMixin`\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_TR } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar LIGHT = 'light';\nvar DARK = 'dark'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TR); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTr = /*#__PURE__*/Vue.extend({\n name: NAME_TR,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableTr: this\n };\n },\n inject: {\n bvTableRowGroup: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / ``\n inTbody: function inTbody() {\n return this.bvTableRowGroup.isTbody;\n },\n // Sniffed by `` / ``\n inThead: function inThead() {\n return this.bvTableRowGroup.isThead;\n },\n // Sniffed by `` / ``\n inTfoot: function inTfoot() {\n return this.bvTableRowGroup.isTfoot;\n },\n // Sniffed by `` / ``\n isDark: function isDark() {\n return this.bvTableRowGroup.isDark;\n },\n // Sniffed by `` / ``\n isStacked: function isStacked() {\n return this.bvTableRowGroup.isStacked;\n },\n // Sniffed by `` / ``\n isResponsive: function isResponsive() {\n return this.bvTableRowGroup.isResponsive;\n },\n // Sniffed by `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return this.bvTableRowGroup.isStickyHeader;\n },\n // Sniffed by / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTableRowGroup.hasStickyHeader;\n },\n // Sniffed by `` / ``\n tableVariant: function tableVariant() {\n return this.bvTableRowGroup.tableVariant;\n },\n // Sniffed by `` / ``\n headVariant: function headVariant() {\n return this.inThead ? this.bvTableRowGroup.headVariant : null;\n },\n // Sniffed by `` / ``\n footVariant: function footVariant() {\n return this.inTfoot ? this.bvTableRowGroup.footVariant : null;\n },\n isRowDark: function isRowDark() {\n return this.headVariant === LIGHT || this.footVariant === LIGHT ?\n /* istanbul ignore next */\n false : this.headVariant === DARK || this.footVariant === DARK ?\n /* istanbul ignore next */\n true : this.isDark;\n },\n trClasses: function trClasses() {\n var variant = this.variant;\n return [variant ? \"\".concat(this.isRowDark ? 'bg' : 'table', \"-\").concat(variant) : null];\n },\n trAttrs: function trAttrs() {\n return _objectSpread({\n role: 'row'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('tr', {\n class: this.trClasses,\n attrs: this.trAttrs,\n // Pass native listeners to child\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","// Mixin to determine if an event listener has been registered\n// either via `v-on:name` (in the parent) or programmatically\n// via `vm.$on('name', ...)`\n// See: https://github.com/vuejs/vue/issues/10825\nimport { Vue } from '../vue';\nimport { isArray, isUndefined } from '../utils/inspect'; // @vue/component\n\nexport var hasListenerMixin = Vue.extend({\n methods: {\n hasListener: function hasListener(name) {\n // Only includes listeners registered via `v-on:name`\n var $listeners = this.$listeners || {}; // Includes `v-on:name` and `this.$on('name')` registered listeners\n // Note this property is not part of the public Vue API, but it is\n // the only way to determine if a listener was added via `vm.$on`\n\n var $events = this._events || {}; // Registered listeners in `this._events` are always an array,\n // but might be zero length\n\n return !isUndefined($listeners[name]) || isArray($events[name]) && $events[name].length > 0;\n }\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots,\n children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\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_INPUT_GROUP_PREPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_PREPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupPrepend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_PREPEND,\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 // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: false\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\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_HOVERED, EVENT_NAME_ROW_UNHOVERED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT_FUNCTION } from '../../../constants/props';\nimport { SLOT_NAME_ROW_DETAILS } from '../../../constants/slots';\nimport { get } from '../../../utils/get';\nimport { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nimport { BTh } from '../th';\nimport { FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS } from './constants'; // --- Props ---\n\nexport var props = {\n detailsTdClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tbodyTrAttr: makeProp(PROP_TYPE_OBJECT_FUNCTION),\n tbodyTrClass: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_FUNCTION]))\n}; // --- Mixin ---\n// @vue/component\n\nexport var tbodyRowMixin = Vue.extend({\n props: props,\n methods: {\n // Methods for computing classes, attributes and styles for table cells\n getTdValues: function getTdValues(item, key, tdValue, defaultValue) {\n var $parent = this.$parent;\n\n if (tdValue) {\n var value = get(item, key, '');\n\n if (isFunction(tdValue)) {\n return tdValue(value, key, item);\n } else if (isString(tdValue) && isFunction($parent[tdValue])) {\n return $parent[tdValue](value, key, item);\n }\n\n return tdValue;\n }\n\n return defaultValue;\n },\n getThValues: function getThValues(item, key, thValue, type, defaultValue) {\n var $parent = this.$parent;\n\n if (thValue) {\n var value = get(item, key, '');\n\n if (isFunction(thValue)) {\n return thValue(value, key, item, type);\n } else if (isString(thValue) && isFunction($parent[thValue])) {\n return $parent[thValue](value, key, item, type);\n }\n\n return thValue;\n }\n\n return defaultValue;\n },\n // Method to get the value for a field\n getFormattedValue: function getFormattedValue(item, field) {\n var key = field.key;\n var formatter = this.getFieldFormatter(key);\n var value = get(item, key, null);\n\n if (isFunction(formatter)) {\n value = formatter(value, key, item);\n }\n\n return isUndefinedOrNull(value) ? '' : value;\n },\n // Factory function methods\n toggleDetailsFactory: function toggleDetailsFactory(hasDetailsSlot, item) {\n var _this = this;\n\n // Returns a function to toggle a row's details slot\n return function () {\n if (hasDetailsSlot) {\n _this.$set(item, FIELD_KEY_SHOW_DETAILS, !item[FIELD_KEY_SHOW_DETAILS]);\n }\n };\n },\n // Row event handlers\n rowHovered: function rowHovered(event) {\n // `mouseenter` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_HOVERED, event);\n }\n },\n rowUnhovered: function rowUnhovered(event) {\n // `mouseleave` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_UNHOVERED, event);\n }\n },\n // Renders a TD or TH for a row's field\n renderTbodyRowCell: function renderTbodyRowCell(field, colIndex, item, rowIndex) {\n var _this2 = this;\n\n var isStacked = this.isStacked;\n var key = field.key,\n label = field.label,\n isRowHeader = field.isRowHeader;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var formatted = this.getFormattedValue(item, field);\n var stickyColumn = !isStacked && (this.isResponsive || this.stickyHeader) && field.stickyColumn; // We only uses the helper components for sticky columns to\n // improve performance of BTable/BTableLite by reducing the\n // total number of vue instances created during render\n\n var cellTag = stickyColumn ? isRowHeader ? BTh : BTd : isRowHeader ? 'th' : 'td';\n var cellVariant = item[FIELD_KEY_CELL_VARIANT] && item[FIELD_KEY_CELL_VARIANT][key] ? item[FIELD_KEY_CELL_VARIANT][key] : field.variant || null;\n var data = {\n // For the Vue key, we concatenate the column index and\n // field key (as field keys could be duplicated)\n // TODO: Although we do prevent duplicate field keys...\n // So we could change this to: `row-${rowIndex}-cell-${key}`\n class: [field.class ? field.class : '', this.getTdValues(item, key, field.tdClass, '')],\n props: {},\n attrs: _objectSpread({\n 'aria-colindex': String(colIndex + 1)\n }, isRowHeader ? this.getThValues(item, key, field.thAttr, 'row', {}) : this.getTdValues(item, key, field.tdAttr, {})),\n key: \"row-\".concat(rowIndex, \"-cell-\").concat(colIndex, \"-\").concat(key)\n };\n\n if (stickyColumn) {\n // We are using the helper BTd or BTh\n data.props = {\n stackedHeading: isStacked ? label : null,\n stickyColumn: true,\n variant: cellVariant\n };\n } else {\n // Using native TD or TH element, so we need to\n // add in the attributes and variant class\n data.attrs['data-label'] = isStacked && !isUndefinedOrNull(label) ? toString(label) : null;\n data.attrs.role = isRowHeader ? 'rowheader' : 'cell';\n data.attrs.scope = isRowHeader ? 'row' : null; // Add in the variant class\n\n if (cellVariant) {\n data.class.push(\"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(cellVariant));\n }\n }\n\n var slotScope = {\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, key, ''),\n value: formatted,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item),\n detailsShowing: Boolean(item[FIELD_KEY_SHOW_DETAILS])\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n slotScope.rowSelected = this.isRowSelected(rowIndex);\n\n slotScope.selectRow = function () {\n return _this2.selectRow(rowIndex);\n };\n\n slotScope.unselectRow = function () {\n return _this2.unselectRow(rowIndex);\n };\n } // The new `v-slot` syntax doesn't like a slot name starting with\n // a square bracket and if using in-document HTML templates, the\n // v-slot attributes are lower-cased by the browser.\n // Switched to round bracket syntax to prevent confusion with\n // dynamic slot name syntax.\n // We look for slots in this order: `cell(${key})`, `cell(${key.toLowerCase()})`, 'cell()'\n // Slot names are now cached by mixin tbody in `this.$_bodyFieldSlotNameCache`\n // Will be `null` if no slot (or fallback slot) exists\n\n\n var slotName = this.$_bodyFieldSlotNameCache[key];\n var $childNodes = slotName ? this.normalizeSlot(slotName, slotScope) : toString(formatted);\n\n if (this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n $childNodes = [h('div', [$childNodes])];\n } // Render either a td or th cell\n\n\n return h(cellTag, data, [$childNodes]);\n },\n // Renders an item's row (or rows if details supported)\n renderTbodyRow: function renderTbodyRow(item, rowIndex) {\n var _this3 = this;\n\n var fields = this.computedFields,\n striped = this.striped,\n primaryKey = this.primaryKey,\n currentPage = this.currentPage,\n perPage = this.perPage,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var rowShowDetails = item[FIELD_KEY_SHOW_DETAILS] && hasDetailsSlot;\n var hasRowClickHandler = this.$listeners[EVENT_NAME_ROW_CLICKED] || this.hasSelectableRowClick; // We can return more than one TR if rowDetails enabled\n\n var $rows = []; // Details ID needed for `aria-details` when details showing\n // We set it to `null` when not showing so that attribute\n // does not appear on the element\n\n var detailsId = rowShowDetails ? this.safeId(\"_details_\".concat(rowIndex, \"_\")) : null; // For each item data field in row\n\n var $tds = fields.map(function (field, colIndex) {\n return _this3.renderTbodyRowCell(field, colIndex, item, rowIndex);\n }); // Calculate the row number in the dataset (indexed from 1)\n\n var ariaRowIndex = null;\n\n if (currentPage && perPage && perPage > 0) {\n ariaRowIndex = String((currentPage - 1) * perPage + rowIndex + 1);\n } // Create a unique :key to help ensure that sub components are re-rendered rather than\n // re-used, which can cause issues. If a primary key is not provided we use the rendered\n // rows index within the tbody.\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n\n\n var primaryKeyValue = toString(get(item, primaryKey)) || null;\n var rowKey = primaryKeyValue || toString(rowIndex); // If primary key is provided, use it to generate a unique ID on each tbody > tr\n // In the format of '{tableId}__row_{primaryKeyValue}'\n\n var rowId = primaryKeyValue ? this.safeId(\"_row_\".concat(primaryKeyValue)) : null; // Selectable classes and attributes\n\n var selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {};\n var selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}; // Additional classes and attributes\n\n var userTrClasses = isFunction(tbodyTrClass) ? tbodyTrClass(item, 'row') : tbodyTrClass;\n var userTrAttrs = isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(item, 'row') : tbodyTrAttr; // Add the item row\n\n $rows.push(h(BTr, {\n class: [userTrClasses, selectableClasses, rowShowDetails ? 'b-table-has-details' : ''],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({\n id: rowId\n }, userTrAttrs), {}, {\n // Users cannot override the following attributes\n tabindex: hasRowClickHandler ? '0' : null,\n 'data-pk': primaryKeyValue || null,\n 'aria-details': detailsId,\n 'aria-owns': detailsId,\n 'aria-rowindex': ariaRowIndex\n }, selectableAttrs),\n on: {\n // Note: These events are not A11Y friendly!\n mouseenter: this.rowHovered,\n mouseleave: this.rowUnhovered\n },\n key: \"__b-table-row-\".concat(rowKey, \"__\"),\n ref: 'item-rows',\n refInFor: true\n }, $tds)); // Row Details slot\n\n if (rowShowDetails) {\n var detailsScope = {\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item)\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n detailsScope.rowSelected = this.isRowSelected(rowIndex);\n\n detailsScope.selectRow = function () {\n return _this3.selectRow(rowIndex);\n };\n\n detailsScope.unselectRow = function () {\n return _this3.unselectRow(rowIndex);\n };\n } // Render the details slot in a TD\n\n\n var $details = h(BTd, {\n props: {\n colspan: fields.length\n },\n class: this.detailsTdClass\n }, [this.normalizeSlot(SLOT_NAME_ROW_DETAILS, detailsScope)]); // Add a hidden row to keep table row striping consistent when details showing\n // Only added if the table is striped\n\n if (striped) {\n $rows.push( // We don't use `BTr` here as we don't need the extra functionality\n h('tr', {\n staticClass: 'd-none',\n attrs: {\n 'aria-hidden': 'true',\n role: 'presentation'\n },\n key: \"__b-table-details-stripe__\".concat(rowKey)\n }));\n } // Add the actual details row\n\n\n var userDetailsTrClasses = isFunction(this.tbodyTrClass) ?\n /* istanbul ignore next */\n this.tbodyTrClass(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrClass;\n var userDetailsTrAttrs = isFunction(this.tbodyTrAttr) ?\n /* istanbul ignore next */\n this.tbodyTrAttr(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrAttr;\n $rows.push(h(BTr, {\n staticClass: 'b-table-details',\n class: [userDetailsTrClasses],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({}, userDetailsTrAttrs), {}, {\n // Users cannot override the following attributes\n id: detailsId,\n tabindex: '-1'\n }),\n key: \"__b-table-details__\".concat(rowKey)\n }, [$details]));\n } else if (hasDetailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n $rows.push(h());\n\n if (striped) {\n // Add extra placeholder if table is striped\n $rows.push(h());\n }\n } // Return the row(s)\n\n\n return $rows;\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 { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_CONTEXTMENU, EVENT_NAME_ROW_DBLCLICKED, EVENT_NAME_ROW_MIDDLE_CLICKED } from '../../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_SPACE, CODE_UP } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { arrayIncludes, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, isActiveElement, isElement } from '../../../utils/dom';\nimport { stopEvent } from '../../../utils/events';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, pluckProps } from '../../../utils/props';\nimport { BTbody, props as BTbodyProps } from '../tbody';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\nimport { tbodyRowMixin, props as tbodyRowProps } from './mixin-tbody-row'; // --- Helper methods ---\n\nvar getCellSlotName = function getCellSlotName(value) {\n return \"cell(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread({}, BTbodyProps), tbodyRowProps), {}, {\n tbodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})); // --- Mixin ---\n// @vue/component\n\nexport var tbodyMixin = Vue.extend({\n mixins: [tbodyRowMixin],\n props: props,\n beforeDestroy: function beforeDestroy() {\n this.$_bodyFieldSlotNameCache = null;\n },\n methods: {\n // Returns all the item TR elements (excludes detail and spacer rows)\n // `this.$refs['item-rows']` is an array of item TR components/elements\n // Rows should all be `` components, but we map to TR elements\n // Also note that `this.$refs['item-rows']` may not always be in document order\n getTbodyTrs: function getTbodyTrs() {\n var $refs = this.$refs;\n var tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n var trs = ($refs['item-rows'] || []).map(function (tr) {\n return tr.$el || tr;\n });\n return tbody && tbody.children && tbody.children.length > 0 && trs && trs.length > 0 ? arrayFrom(tbody.children).filter(function (tr) {\n return arrayIncludes(trs, tr);\n }) :\n /* istanbul ignore next */\n [];\n },\n // Returns index of a particular TBODY item TR\n // We set `true` on closest to include self in result\n getTbodyTrIndex: function getTbodyTrIndex(el) {\n /* istanbul ignore next: should not normally happen */\n if (!isElement(el)) {\n return -1;\n }\n\n var tr = el.tagName === 'TR' ? el : closest('tr', el, true);\n return tr ? this.getTbodyTrs().indexOf(tr) : -1;\n },\n // Emits a row event, with the item object, row index and original event\n emitTbodyRowEvent: function emitTbodyRowEvent(type, event) {\n if (type && this.hasListener(type) && event && event.target) {\n var rowIndex = this.getTbodyTrIndex(event.target);\n\n if (rowIndex > -1) {\n // The array of TRs correlate to the `computedItems` array\n var item = this.computedItems[rowIndex];\n this.$emit(type, item, rowIndex, event);\n }\n }\n },\n tbodyRowEvtStopped: function tbodyRowEvtStopped(event) {\n return this.stopIfBusy && this.stopIfBusy(event);\n },\n // Delegated row event handlers\n onTbodyRowKeydown: function onTbodyRowKeydown(event) {\n // Keyboard navigation and row click emulation\n var target = event.target,\n keyCode = event.keyCode;\n\n if (this.tbodyRowEvtStopped(event) || target.tagName !== 'TR' || !isActiveElement(target) || target.tabIndex !== 0) {\n // Early exit if not an item row TR\n return;\n }\n\n if (arrayIncludes([CODE_ENTER, CODE_SPACE], keyCode)) {\n // Emulated click for keyboard users, transfer to click handler\n stopEvent(event);\n this.onTBodyRowClicked(event);\n } else if (arrayIncludes([CODE_UP, CODE_DOWN, CODE_HOME, CODE_END], keyCode)) {\n // Keyboard navigation\n var rowIndex = this.getTbodyTrIndex(target);\n\n if (rowIndex > -1) {\n stopEvent(event);\n var trs = this.getTbodyTrs();\n var shift = event.shiftKey;\n\n if (keyCode === CODE_HOME || shift && keyCode === CODE_UP) {\n // Focus first row\n attemptFocus(trs[0]);\n } else if (keyCode === CODE_END || shift && keyCode === CODE_DOWN) {\n // Focus last row\n attemptFocus(trs[trs.length - 1]);\n } else if (keyCode === CODE_UP && rowIndex > 0) {\n // Focus previous row\n attemptFocus(trs[rowIndex - 1]);\n } else if (keyCode === CODE_DOWN && rowIndex < trs.length - 1) {\n // Focus next row\n attemptFocus(trs[rowIndex + 1]);\n }\n }\n }\n },\n onTBodyRowClicked: function onTBodyRowClicked(event) {\n // Don't emit event when the table is busy, the user clicked\n // on a non-disabled control or is selecting text\n if (this.tbodyRowEvtStopped(event) || filterEvent(event) || textSelectionActive(this.$el)) {\n return;\n }\n\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CLICKED, event);\n },\n onTbodyRowMiddleMouseRowClicked: function onTbodyRowMiddleMouseRowClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && event.which === 2) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_MIDDLE_CLICKED, event);\n }\n },\n onTbodyRowContextmenu: function onTbodyRowContextmenu(event) {\n if (!this.tbodyRowEvtStopped(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CONTEXTMENU, event);\n }\n },\n onTbodyRowDblClicked: function onTbodyRowDblClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && !filterEvent(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_DBLCLICKED, event);\n }\n },\n // Render the tbody element and children\n // Note:\n // Row hover handlers are handled by the tbody-row mixin\n // As mouseenter/mouseleave events do not bubble\n renderTbody: function renderTbody() {\n var _this = this;\n\n var items = this.computedItems,\n renderBusy = this.renderBusy,\n renderTopRow = this.renderTopRow,\n renderEmpty = this.renderEmpty,\n renderBottomRow = this.renderBottomRow;\n var h = this.$createElement;\n var hasRowClickHandler = this.hasListener(EVENT_NAME_ROW_CLICKED) || this.hasSelectableRowClick; // Prepare the tbody rows\n\n var $rows = []; // Add the item data rows or the busy slot\n\n var $busy = renderBusy ? renderBusy() : null;\n\n if ($busy) {\n // If table is busy and a busy slot, then return only the busy \"row\" indicator\n $rows.push($busy);\n } else {\n // Table isn't busy, or we don't have a busy slot\n // Create a slot cache for improved performance when looking up cell slot names\n // Values will be keyed by the field's `key` and will store the slot's name\n // Slots could be dynamic (i.e. `v-if`), so we must compute on each render\n // Used by tbody-row mixin render helper\n var cache = {};\n var defaultSlotName = getCellSlotName();\n defaultSlotName = this.hasNormalizedSlot(defaultSlotName) ? defaultSlotName : null;\n this.computedFields.forEach(function (field) {\n var key = field.key;\n var slotName = getCellSlotName(key);\n var lowercaseSlotName = getCellSlotName(key.toLowerCase());\n cache[key] = _this.hasNormalizedSlot(slotName) ? slotName : _this.hasNormalizedSlot(lowercaseSlotName) ?\n /* istanbul ignore next */\n lowercaseSlotName : defaultSlotName;\n }); // Created as a non-reactive property so to not trigger component updates\n // Must be a fresh object each render\n\n this.$_bodyFieldSlotNameCache = cache; // Add static top row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderTopRow ? renderTopRow() : h()); // Render the rows\n\n items.forEach(function (item, rowIndex) {\n // Render the individual item row (rows if details slot)\n $rows.push(_this.renderTbodyRow(item, rowIndex));\n }); // Empty items / empty filtered row slot (only shows if `items.length < 1`)\n\n $rows.push(renderEmpty ? renderEmpty() : h()); // Static bottom row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderBottomRow ? renderBottomRow() : h());\n } // Note: these events will only emit if a listener is registered\n\n\n var handlers = {\n auxclick: this.onTbodyRowMiddleMouseRowClicked,\n // TODO:\n // Perhaps we do want to automatically prevent the\n // default context menu from showing if there is a\n // `row-contextmenu` listener registered\n contextmenu: this.onTbodyRowContextmenu,\n // The following event(s) is not considered A11Y friendly\n dblclick: this.onTbodyRowDblClicked // Hover events (`mouseenter`/`mouseleave`) are handled by `tbody-row` mixin\n\n }; // Add in click/keydown listeners if needed\n\n if (hasRowClickHandler) {\n handlers.click = this.onTBodyRowClicked;\n handlers.keydown = this.onTbodyRowKeydown;\n } // Assemble rows into the tbody\n\n\n var $tbody = h(BTbody, {\n class: this.tbodyClass || null,\n props: pluckProps(BTbodyProps, this.$props),\n // BTbody transfers all native event listeners to the root element\n // TODO: Only set the handlers if the table is not busy\n on: handlers,\n ref: 'tbody'\n }, $rows); // Return the assembled tbody\n\n return $tbody;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_CAPTION } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING) // `caption-top` is part of table-render mixin (styling)\n // captionTop: makeProp(PROP_TYPE_BOOLEAN, false)\n\n}; // --- Mixin ---\n// @vue/component\n\nexport var captionMixin = Vue.extend({\n props: props,\n computed: {\n captionId: function captionId() {\n // Even though `this.safeId` looks like a method, it is a computed prop\n // that returns a new function if the underlying ID changes\n return this.isStacked ? this.safeId('_caption_') : null;\n }\n },\n methods: {\n renderCaption: function renderCaption() {\n var caption = this.caption,\n captionHtml = this.captionHtml;\n var h = this.$createElement;\n var $caption = h();\n var hasCaptionSlot = this.hasNormalizedSlot(SLOT_NAME_TABLE_CAPTION);\n\n if (hasCaptionSlot || caption || captionHtml) {\n $caption = h('caption', {\n attrs: {\n id: this.captionId\n },\n domProps: hasCaptionSlot ? {} : htmlOrText(captionHtml, caption),\n key: 'caption'\n }, this.normalizeSlot(SLOT_NAME_TABLE_CAPTION));\n }\n\n return $caption;\n }\n }\n});","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_ADDON } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n isText: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_ADDON); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAddon = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_ADDON,\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 append = props.append;\n return h(props.tag, mergeData(data, {\n class: {\n 'input-group-append': append,\n 'input-group-prepend': !append\n },\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(BInputGroupText, children)] : children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_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 } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN_STRING } from '../../../constants/props';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n stacked: makeProp(PROP_TYPE_BOOLEAN_STRING, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var stackedMixin = Vue.extend({\n props: props,\n computed: {\n isStacked: function isStacked() {\n var stacked = this.stacked; // `true` when always stacked, or returns breakpoint specified\n\n return stacked === '' ? true : stacked;\n },\n isStackedAlways: function isStackedAlways() {\n return this.isStacked === true;\n },\n stackedTableClasses: function stackedTableClasses() {\n var isStackedAlways = this.isStackedAlways;\n return _defineProperty({\n 'b-table-stacked': isStackedAlways\n }, \"b-table-stacked-\".concat(this.stacked), !isStackedAlways && this.isStacked);\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});","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","import { identity } from '../../../utils/identity';\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect';\nimport { clone, keys } from '../../../utils/object';\nimport { startCase } from '../../../utils/string';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Private function to massage field entry into common object format\n\nvar processField = function processField(key, value) {\n var field = null;\n\n if (isString(value)) {\n // Label shortcut\n field = {\n key: key,\n label: value\n };\n } else if (isFunction(value)) {\n // Formatter shortcut\n field = {\n key: key,\n formatter: value\n };\n } else if (isObject(value)) {\n field = clone(value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n\n /* istanbul ignore next */\n field = {\n key: key\n };\n }\n\n return field;\n}; // We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\n\n\nexport var normalizeFields = function normalizeFields(origFields, items) {\n var fields = [];\n\n if (isArray(origFields)) {\n // Normalize array Form\n origFields.filter(identity).forEach(function (f) {\n if (isString(f)) {\n fields.push({\n key: f,\n label: startCase(f)\n });\n } else if (isObject(f) && f.key && isString(f.key)) {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(clone(f));\n } else if (isObject(f) && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n var key = keys(f)[0];\n var field = processField(key, f[key]);\n\n if (field) {\n fields.push(field);\n }\n }\n });\n } // If no field provided, take a sample from first record (if exits)\n\n\n if (fields.length === 0 && isArray(items) && items.length > 0) {\n var sample = items[0];\n keys(sample).forEach(function (k) {\n if (!IGNORED_FIELD_KEYS[k]) {\n fields.push({\n key: k,\n label: startCase(k)\n });\n }\n });\n } // Ensure we have a unique array of fields and that they have String labels\n\n\n var memo = {};\n return fields.filter(function (f) {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = isString(f.label) ? f.label : startCase(f.key);\n return true;\n }\n\n return false;\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_CONTEXT_CHANGED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isArray, isFunction, isString } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { makeModelMixin } from '../../../utils/model';\nimport { toInteger } from '../../../utils/number';\nimport { clone, sortKeys } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { normalizeFields } from './normalize-fields'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_ARRAY,\n defaultValue: []\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 = sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, _defineProperty({\n fields: makeProp(PROP_TYPE_ARRAY, null),\n // Provider mixin adds in `Function` type\n items: makeProp(PROP_TYPE_ARRAY, []),\n // Primary key for record\n // If provided the value in each row must be unique!\n primaryKey: makeProp(PROP_TYPE_STRING)\n}, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])))); // --- Mixin ---\n// @vue/component\n\nexport var itemsMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var items = this.items;\n return {\n // Our local copy of the items\n // Must be an array\n localItems: isArray(items) ? items.slice() : []\n };\n },\n computed: {\n computedFields: function computedFields() {\n // We normalize fields into an array of objects\n // `[ { key:..., label:..., ...}, {...}, ..., {..}]`\n return normalizeFields(this.fields, this.localItems);\n },\n computedFieldsObj: function computedFieldsObj() {\n // Fields as a simple lookup hash object\n // Mainly for formatter lookup and use in `scopedSlots` for convenience\n // If the field has a formatter, it normalizes formatter to a\n // function ref or `undefined` if no formatter\n var $parent = this.$parent;\n return this.computedFields.reduce(function (obj, f) {\n // We use object spread here so we don't mutate the original field object\n obj[f.key] = clone(f);\n\n if (f.formatter) {\n // Normalize formatter to a function ref or `undefined`\n var formatter = f.formatter;\n\n if (isString(formatter) && isFunction($parent[formatter])) {\n formatter = $parent[formatter];\n } else if (!isFunction(formatter)) {\n /* istanbul ignore next */\n formatter = undefined;\n } // Return formatter function or `undefined` if none\n\n\n obj[f.key].formatter = formatter;\n }\n\n return obj;\n }, {});\n },\n computedItems: function computedItems() {\n // Fallback if various mixins not provided\n return (this.paginatedItems || this.sortedItems || this.filteredItems || this.localItems ||\n /* istanbul ignore next */\n []).slice();\n },\n context: function context() {\n // Current state of sorting, filtering and pagination props/values\n return {\n filter: this.localFilter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n perPage: mathMax(toInteger(this.perPage, 0), 0),\n currentPage: mathMax(toInteger(this.currentPage, 0), 1),\n apiUrl: this.apiUrl\n };\n }\n },\n watch: {\n items: function items(newValue) {\n // Set `localItems`/`filteredItems` to a copy of the provided array\n this.localItems = isArray(newValue) ? newValue.slice() : [];\n },\n // Watch for changes on `computedItems` and update the `v-model`\n computedItems: function computedItems(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n },\n // Watch for context changes\n context: function context(newValue, oldValue) {\n // Emit context information for external paging/filtering/sorting handling\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT_CHANGED, newValue);\n }\n }\n },\n mounted: function mounted() {\n // Initially update the `v-model` of displayed items\n this.$emit(MODEL_EVENT_NAME, this.computedItems);\n },\n methods: {\n // Method to get the formatter method for a given field key\n getFieldFormatter: function getFieldFormatter(key) {\n var field = this.computedFieldsObj[key]; // `this.computedFieldsObj` has pre-normalized the formatter to a\n // function ref if present, otherwise `undefined`\n\n return field ? field.formatter : undefined;\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_INPUT_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_APPEND, SLOT_NAME_DEFAULT, SLOT_NAME_PREPEND } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_STRING),\n appendHtml: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n prepend: makeProp(PROP_TYPE_STRING),\n prependHtml: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BInputGroup = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var prepend = props.prepend,\n prependHtml = props.prependHtml,\n append = props.append,\n appendHtml = props.appendHtml,\n size = props.size;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $prepend = h();\n var hasPrependSlot = hasNormalizedSlot(SLOT_NAME_PREPEND, $scopedSlots, $slots);\n\n if (hasPrependSlot || prepend || prependHtml) {\n $prepend = h(BInputGroupPrepend, [hasPrependSlot ? normalizeSlot(SLOT_NAME_PREPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(prependHtml, prepend)\n })]);\n }\n\n var $append = h();\n var hasAppendSlot = hasNormalizedSlot(SLOT_NAME_APPEND, $scopedSlots, $slots);\n\n if (hasAppendSlot || append || appendHtml) {\n $append = h(BInputGroupAppend, [hasAppendSlot ? normalizeSlot(SLOT_NAME_APPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(appendHtml, append)\n })]);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, \"input-group-\".concat(size), size),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), [$prepend, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots), $append]);\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});","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};","import { Vue } from '../../vue';\nimport { NAME_TH } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BTd, props as BTdProps } from './td'; // --- Props ---\n\nexport var props = makePropsConfigurable(BTdProps, NAME_TH); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTh = /*#__PURE__*/Vue.extend({\n name: NAME_TH,\n extends: BTd,\n props: props,\n computed: {\n tag: function tag() {\n return 'th';\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 { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { identity } from '../../../utils/identity';\nimport { isBoolean } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { attrsMixin } from '../../../mixins/attrs'; // Main `` render mixin\n// Includes all main table styling options\n// --- Props ---\n\nexport var props = {\n bordered: makeProp(PROP_TYPE_BOOLEAN, false),\n borderless: makeProp(PROP_TYPE_BOOLEAN, false),\n captionTop: makeProp(PROP_TYPE_BOOLEAN, false),\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n hover: makeProp(PROP_TYPE_BOOLEAN, false),\n noBorderCollapse: makeProp(PROP_TYPE_BOOLEAN, false),\n outlined: makeProp(PROP_TYPE_BOOLEAN, false),\n responsive: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n // If a string, it is assumed to be the table `max-height` value\n stickyHeader: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false),\n tableClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tableVariant: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tableRendererMixin = Vue.extend({\n mixins: [attrsMixin],\n provide: function provide() {\n return {\n bvTable: this\n };\n },\n // Don't place attributes on root element automatically,\n // as table could be wrapped in responsive `
`\n inheritAttrs: false,\n props: props,\n computed: {\n // Layout related computed props\n isResponsive: function isResponsive() {\n var responsive = this.responsive;\n responsive = responsive === '' ? true : responsive;\n return this.isStacked ? false : responsive;\n },\n isStickyHeader: function isStickyHeader() {\n var stickyHeader = this.stickyHeader;\n stickyHeader = stickyHeader === '' ? true : stickyHeader;\n return this.isStacked ? false : stickyHeader;\n },\n wrapperClasses: function wrapperClasses() {\n var isResponsive = this.isResponsive;\n return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? \"table-responsive-\".concat(this.responsive) : ''].filter(identity);\n },\n wrapperStyles: function wrapperStyles() {\n var isStickyHeader = this.isStickyHeader;\n return isStickyHeader && !isBoolean(isStickyHeader) ? {\n maxHeight: isStickyHeader\n } : {};\n },\n tableClasses: function tableClasses() {\n var hover = this.hover,\n tableVariant = this.tableVariant;\n hover = this.isTableSimple ? hover : hover && this.computedItems.length > 0 && !this.computedBusy;\n return [// User supplied classes\n this.tableClass, // Styling classes\n {\n 'table-striped': this.striped,\n 'table-hover': hover,\n 'table-dark': this.dark,\n 'table-bordered': this.bordered,\n 'table-borderless': this.borderless,\n 'table-sm': this.small,\n // The following are b-table custom styles\n border: this.outlined,\n 'b-table-fixed': this.fixed,\n 'b-table-caption-top': this.captionTop,\n 'b-table-no-border-collapse': this.noBorderCollapse\n }, tableVariant ? \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(tableVariant) : '', // Stacked table classes\n this.stackedTableClasses, // Selectable classes\n this.selectableTableClasses];\n },\n tableAttrs: function tableAttrs() {\n var items = this.computedItems,\n filteredItems = this.filteredItems,\n fields = this.computedFields,\n selectableTableAttrs = this.selectableTableAttrs; // Preserve user supplied aria-describedby, if provided in `$attrs`\n\n var adb = [(this.bvAttrs || {})['aria-describedby'], this.captionId].filter(identity).join(' ') || null;\n var ariaAttrs = this.isTableSimple ? {} : {\n 'aria-busy': this.computedBusy ? 'true' : 'false',\n 'aria-colcount': toString(fields.length),\n 'aria-describedby': adb\n };\n var rowCount = items && filteredItems && filteredItems.length > items.length ? toString(filteredItems.length) : null;\n return _objectSpread(_objectSpread(_objectSpread({\n // We set `aria-rowcount` before merging in `$attrs`,\n // in case user has supplied their own\n 'aria-rowcount': rowCount\n }, this.bvAttrs), {}, {\n // Now we can override any `$attrs` here\n id: this.safeId(),\n role: 'table'\n }, ariaAttrs), selectableTableAttrs);\n }\n },\n render: function render(h) {\n var wrapperClasses = this.wrapperClasses,\n renderCaption = this.renderCaption,\n renderColgroup = this.renderColgroup,\n renderThead = this.renderThead,\n renderTbody = this.renderTbody,\n renderTfoot = this.renderTfoot;\n var $content = [];\n\n if (this.isTableSimple) {\n $content.push(this.normalizeSlot());\n } else {\n // Build the `
`\n\n $content.push(renderColgroup ? renderColgroup() : null); // Build the ``\n\n $content.push(renderThead ? renderThead() : null); // Build the ``\n\n $content.push(renderTbody ? renderTbody() : null); // Build the ``\n\n $content.push(renderTfoot ? renderTfoot() : null);\n } // Assemble `
` (from caption mixin)\n $content.push(renderCaption ? renderCaption() : null); // Build the `
`\n\n\n var $table = h('table', {\n staticClass: 'table b-table',\n class: this.tableClasses,\n attrs: this.tableAttrs,\n key: 'b-table'\n }, $content.filter(identity)); // Add responsive/sticky wrapper if needed and return table\n\n return wrapperClasses.length > 0 ? h('div', {\n class: wrapperClasses,\n style: this.wrapperStyles,\n key: 'wrap'\n }, [$table]) : $table;\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Constants used by table helpers\nexport var FIELD_KEY_CELL_VARIANT = '_cellVariants';\nexport var FIELD_KEY_ROW_VARIANT = '_rowVariant';\nexport var FIELD_KEY_SHOW_DETAILS = '_showDetails'; // Object of item keys that should be ignored for headers and\n// stringification and filter events\n\nexport var IGNORED_FIELD_KEYS = [FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS].reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, true));\n}, {}); // Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\n\nexport var EVENT_FILTER = ['a', 'a *', // Include content inside links\n'button', 'button *', // Include content inside buttons\n'input:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'textarea:not(.disabled):not([disabled])', '[role=\"link\"]', '[role=\"link\"] *', '[role=\"button\"]', '[role=\"button\"] *', '[tabindex]:not(.disabled):not([disabled])'].join(',');","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_MEDIA_ASIDE } 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 right: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA_ASIDE); // --- Main component ---\n// @vue/component\n\nexport var BMediaAside = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_ASIDE,\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 verticalAlign = props.verticalAlign;\n var align = verticalAlign === 'top' ? 'start' : verticalAlign === 'bottom' ? 'end' :\n /* istanbul ignore next */\n verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-aside',\n class: _defineProperty({\n 'media-aside-right': props.right\n }, \"align-self-\".concat(align), align)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_BODY } 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_MEDIA_BODY); // --- Main component ---\n// @vue/component\n\nexport var BMediaBody = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_BODY,\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: 'media-body'\n }), children);\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot'; // --- Props ---\n\nexport var props = {\n footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n // Any Bootstrap theme variant (or custom)\n // Falls back to `headRowVariant`\n footRowVariant: makeProp(PROP_TYPE_STRING),\n // 'dark', 'light', or `null` (or custom)\n footVariant: makeProp(PROP_TYPE_STRING),\n tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tfootMixin = Vue.extend({\n props: props,\n methods: {\n renderTFootCustom: function renderTFootCustom() {\n var h = this.$createElement;\n\n if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n return h(BTfoot, {\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n },\n key: 'bv-tfoot-custom'\n }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n }\n\n return h();\n },\n renderTfoot: function renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n }\n }\n});","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","var render = function () {\n var _vm=this;\n var _h=_vm.$createElement;\n var _c=_vm._self._c||_h;\n\n return _c('div', [_c('b-row', [_c('b-col', [_c('b-card', {\n staticClass: \"header-marcar_consulta bg-gradient-primary \"\n }, [_c('b-row', {\n attrs: {\n \"align-v\": \"center\"\n }\n }, [_c('b-col', [_c('h1', [_c('feather-icon', {\n staticClass: \"mr-50\",\n attrs: {\n \"icon\": \"ListIcon\",\n \"size\": \"30\"\n }\n }), _vm._v(\" Todos os Desafios \")], 1), _c('h4', {\n staticClass: \"mt-1\"\n }, [_vm._v(\"Selecione um desafio:\")])])], 1)], 1)], 1)], 1), _c('b-input-group', {\n staticClass: \"input-group-merge mb-2\"\n }, [_c('b-input-group-prepend', {\n attrs: {\n \"is-text\": \"\"\n }\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": \"SearchIcon\"\n }\n })], 1), _c('b-form-input', {\n attrs: {\n \"placeholder\": \"Pesquisar Instituição\"\n }\n })], 1), _c('b-card', {\n staticClass: \"mb-0\",\n attrs: {\n \"no-body\": \"\"\n }\n }, [_c('b-table', {\n ref: \"refUserListTable\",\n staticClass: \"position-relative\",\n staticStyle: {\n \"min-height\": \"50vw\"\n },\n attrs: {\n \"items\": _vm.tableItems,\n \"responsive\": \"\",\n \"fields\": _vm.tableColumns,\n \"primary-key\": \"id\",\n \"sort-by\": _vm.sortBy,\n \"show-empty\": \"\",\n \"empty-text\": \"No matching records found\",\n \"sort-desc\": _vm.isSortDirDesc\n },\n on: {\n \"update:sortBy\": function updateSortBy($event) {\n _vm.sortBy = $event;\n },\n \"update:sort-by\": function updateSortBy($event) {\n _vm.sortBy = $event;\n },\n \"update:sortDesc\": function updateSortDesc($event) {\n _vm.isSortDirDesc = $event;\n },\n \"update:sort-desc\": function updateSortDesc($event) {\n _vm.isSortDirDesc = $event;\n }\n },\n scopedSlots: _vm._u([{\n key: \"cell(cadastro)\",\n fn: function fn(data) {\n return [_vm._v(\" \" + _vm._s(data.item.createdAt) + \" \")];\n }\n }, {\n key: \"cell(localizacao)\",\n fn: function fn(data) {\n return [_vm._v(\" \" + _vm._s(data.item.physicalPerson.person.city) + \" - \" + _vm._s(data.item.physicalPerson.person.state) + \" \")];\n }\n }, {\n key: \"cell(user)\",\n fn: function fn(data) {\n return [_c('b-media', {\n attrs: {\n \"vertical-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"aside\",\n fn: function fn() {\n return [_c('b-avatar', {\n attrs: {\n \"size\": \"32\",\n \"src\": data.item.avatar,\n \"text\": _vm.avatarText(data.item.fullName),\n \"variant\": \"light-\".concat(_vm.resolveUserRoleVariant(data.item.role)),\n \"to\": {\n name: 'apps-users-view',\n params: {\n id: data.item.id\n }\n }\n }\n })];\n },\n proxy: true\n }], null, true)\n }, [_c('b-link', {\n staticClass: \"font-weight-bold d-block text-nowrap\",\n attrs: {\n \"to\": {\n name: 'apps-users-view',\n params: {\n id: data.item.id\n }\n }\n }\n }, [_vm._v(\" \" + _vm._s(data.item.fullName) + \" \")]), _c('small', {\n staticClass: \"text-muted\"\n }, [_vm._v(\"@\" + _vm._s(data.item.username))])], 1)];\n }\n }, {\n key: \"cell(role)\",\n fn: function fn(data) {\n return [_c('div', {\n staticClass: \"text-nowrap\"\n }, [_c('feather-icon', {\n staticClass: \"mr-50\",\n class: \"text-\".concat(_vm.resolveUserRoleVariant(data.item.role)),\n attrs: {\n \"icon\": _vm.resolveUserRoleIcon(data.item.role),\n \"size\": \"18\"\n }\n }), _c('span', {\n staticClass: \"align-text-top text-capitalize\"\n }, [_vm._v(_vm._s(data.item.role))])], 1)];\n }\n }, {\n key: \"cell(status)\",\n fn: function fn(data) {\n return [_c('b-badge', {\n staticClass: \"text-capitalize\",\n attrs: {\n \"pill\": \"\",\n \"variant\": \"light-\".concat(_vm.resolveUserStatusVariant(data.item.physicalPerson.person.status))\n }\n }, [_vm._v(\" \" + _vm._s(_vm.resolveUserStatusText(data.item.physicalPerson.person.status)) + \" \")])];\n }\n }, {\n key: \"cell(actions)\",\n fn: function fn(data) {\n return [_c('b-dropdown', {\n attrs: {\n \"variant\": \"link\",\n \"no-caret\": \"\",\n \"right\": _vm.$store.state.appConfig.isRTL\n },\n scopedSlots: _vm._u([{\n key: \"button-content\",\n fn: function fn() {\n return [_c('feather-icon', {\n staticClass: \"align-middle text-body\",\n attrs: {\n \"icon\": \"MoreVerticalIcon\",\n \"size\": \"16\"\n }\n })];\n },\n proxy: true\n }], null, true)\n }, [_c('b-dropdown-item', {\n attrs: {\n \"to\": {\n name: 'editarDesafio',\n params: {\n id: data.item.id\n }\n }\n }\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": \"EditIcon\"\n }\n }), _c('span', {\n staticClass: \"align-middle ml-50\"\n }, [_vm._v(\"Editar Quiz\")])], 1)], 1)];\n }\n }])\n })], 1)], 1);\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./todosDesafios.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!./todosDesafios.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./todosDesafios.vue?vue&type=template&id=b06d5aca&\"\nimport script from \"./todosDesafios.vue?vue&type=script&lang=js&\"\nexport * from \"./todosDesafios.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","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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_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 { 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};","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_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTbody = /*#__PURE__*/Vue.extend({\n name: NAME_TBODY,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTbody: function isTbody() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n isTransitionGroup: function isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs: function tbodyAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n },\n tbodyProps: function tbodyProps() {\n var tbodyTransitionProps = this.tbodyTransitionProps;\n return tbodyTransitionProps ? _objectSpread(_objectSpread({}, tbodyTransitionProps), {}, {\n tag: 'tbody'\n }) : {};\n }\n },\n render: function render(h) {\n var data = {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs\n };\n\n if (this.isTransitionGroup) {\n // We use native listeners if a transition group for any delegated events\n data.on = this.tbodyTransitionHandlers || {};\n data.nativeOn = this.bvListeners;\n } else {\n // Otherwise we place any listeners on the tbody element\n data.on = this.bvListeners;\n }\n\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\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});","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","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});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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 { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active'; // --- Helper methods ---\n\nvar getHeadSlotName = function getHeadSlotName(value) {\n return \"head(\".concat(value || '', \")\");\n};\n\nvar getFootSlotName = function getFootSlotName(value) {\n return \"foot(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = {\n // Any Bootstrap theme variant (or custom)\n headRowVariant: makeProp(PROP_TYPE_STRING),\n // 'light', 'dark' or `null` (or custom)\n headVariant: makeProp(PROP_TYPE_STRING),\n theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var theadMixin = Vue.extend({\n props: props,\n methods: {\n fieldClasses: function fieldClasses(field) {\n // Header field (
) classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked: function headClicked(event, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(event)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(event)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n stopEvent(event);\n this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n },\n renderThead: function renderThead() {\n var _this = this;\n\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var fields = this.computedFields,\n isSortable = this.isSortable,\n isSelectable = this.isSelectable,\n headVariant = this.headVariant,\n footVariant = this.footVariant,\n headRowVariant = this.headRowVariant,\n footRowVariant = this.footRowVariant;\n var h = this.$createElement; // In always stacked mode, we don't bother rendering the head/foot\n // Or if no field headings (empty table)\n\n if (this.isStackedAlways || fields.length === 0) {\n return h();\n }\n\n var hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED); // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n\n var selectAllRows = isSelectable ? this.selectAllRows : noop;\n var clearSelected = isSelectable ? this.clearSelected : noop; // Helper function to generate a field cell\n\n var makeCell = function makeCell(field, colIndex) {\n var label = field.label,\n labelHtml = field.labelHtml,\n variant = field.variant,\n stickyColumn = field.stickyColumn,\n key = field.key;\n var ariaLabel = null;\n\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n\n var on = {};\n\n if (hasHeadClickListener) {\n on.click = function (event) {\n _this.headClicked(event, field, isFoot);\n };\n\n on.keydown = function (event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n _this.headClicked(event, field, isFoot);\n }\n };\n }\n\n var sortAttrs = isSortable ? _this.sortTheadThAttrs(key, field, isFoot) : {};\n var sortClass = isSortable ? _this.sortTheadThClasses(key, field, isFoot) : null;\n var sortLabel = isSortable ? _this.sortTheadThLabel(key, field, isFoot) : null;\n var data = {\n class: [_this.fieldClasses(field), sortClass],\n props: {\n variant: variant,\n stickyColumn: stickyColumn\n },\n style: field.thStyle || {},\n attrs: _objectSpread(_objectSpread({\n // We only add a `tabindex` of `0` if there is a head-clicked listener\n // and the current field is sortable\n tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': colIndex + 1,\n 'aria-label': ariaLabel\n }, _this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {})), sortAttrs),\n on: on,\n key: key\n }; // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n\n var slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()]; // Footer will fallback to header slot names\n\n if (isFoot) {\n slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName()].concat(_toConsumableArray(slotNames));\n }\n\n var scope = {\n label: label,\n column: key,\n field: field,\n isFoot: isFoot,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n var $content = _this.normalizeSlot(slotNames, scope) || h('div', {\n domProps: htmlOrText(labelHtml, label)\n });\n var $srLabel = sortLabel ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(sortLabel, \")\")) : null; // Return the header cell\n\n return h(BTh, data, [$content, $srLabel].filter(identity));\n }; // Generate the array of cells\n\n\n var $cells = fields.map(makeCell).filter(identity); // Generate the row(s)\n\n var $trs = [];\n\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass,\n props: {\n variant: isUndefinedOrNull(footRowVariant) ? headRowVariant :\n /* istanbul ignore next */\n footRowVariant\n }\n }, $cells));\n } else {\n var scope = {\n columns: fields.length,\n fields: fields,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass,\n props: {\n variant: headRowVariant\n }\n }, $cells));\n }\n\n return h(isFoot ? BTfoot : BThead, {\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: footVariant || headVariant || null\n } : {\n headVariant: headVariant || null\n },\n key: isFoot ? 'bv-tfoot' : 'bv-thead'\n }, $trs);\n }\n }\n});","import router from '@/router'\r\n// eslint-disable-next-line object-curly-newline\r\nimport {\r\n reactive,\r\n getCurrentInstance,\r\n watch,\r\n toRefs,\r\n} from '@vue/composition-api'\r\n\r\nexport const isObject = obj => typeof obj === 'object' && obj !== null\r\n\r\nexport const isToday = date => {\r\n const today = new Date()\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n date.getDate() === today.getDate() &&\r\n date.getMonth() === today.getMonth() &&\r\n date.getFullYear() === today.getFullYear()\r\n /* eslint-enable */\r\n )\r\n}\r\n\r\nconst getRandomFromArray = array =>\r\n array[Math.floor(Math.random() * array.length)]\r\n\r\n// ? Light and Dark variant is not included\r\n// prettier-ignore\r\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])\r\n\r\nexport const isDynamicRouteActive = route => {\r\n const { route: resolvedRoute } = router.resolve(route)\r\n return resolvedRoute.path === router.currentRoute.path\r\n}\r\n\r\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\r\nexport const useRouter = () => {\r\n const vm = getCurrentInstance().proxy\r\n const state = reactive({\r\n route: vm.$route,\r\n })\r\n\r\n watch(\r\n () => vm.$route,\r\n r => {\r\n state.route = r\r\n }\r\n )\r\n\r\n return { ...toRefs(state), router: vm.$router }\r\n}\r\n\r\nexport const cloneObject = obj => JSON.parse(JSON.stringify(obj))\r\n\r\n/**\r\n * This is just enhancement over Object.extend [Gives deep extend]\r\n * @param {target} a Object which contains values to be overridden\r\n * @param {source} b Object which contains values to override\r\n */\r\n// export const objectExtend = (a, b) => {\r\n// // Don't touch 'null' or 'undefined' objects.\r\n// if (a == null || b == null) {\r\n// return a\r\n// }\r\n\r\n// Object.keys(b).forEach(key => {\r\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\r\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = objectExtend(a[key], b[key])\r\n// }\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// }\r\n// })\r\n\r\n// return a\r\n// }\r\n","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_INPUT_GROUP_APPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_APPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAppend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_APPEND,\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 // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: true\n })\n }), children);\n }\n});","import { getSel, isElement } from '../../../utils/dom'; // Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\n\nexport var textSelectionActive = function textSelectionActive() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var sel = getSel();\n return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ?\n /* istanbul ignore next */\n sel.containsNode(el, true) : false;\n};","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_TEXT } 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_INPUT_GROUP_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupText = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_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 staticClass: 'input-group-text'\n }), children);\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 } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var colgroupMixin = Vue.extend({\n methods: {\n renderColgroup: function renderColgroup() {\n var fields = this.computedFields;\n var h = this.$createElement;\n var $colgroup = h();\n\n if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n columns: fields.length,\n fields: fields\n })]);\n }\n\n return $colgroup;\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});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\n }\n});","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_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\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 active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","export var noop = function noop() {};","import axiosIns from '@/libs/axios'\r\nimport utilsService from './utilsService'\r\n\r\nconst controller = 'challenge'\r\n\r\nexport default {\r\n async getAll(filter) {\r\n return axiosIns\r\n .get(`${controller}?${utilsService.getQueryParams(filter)}`)\r\n .then(res => res.data)\r\n },\r\n async getById(id) {\r\n return axiosIns.get(`${controller}/${id}`).then(res => res.data)\r\n },\r\n async update(obj) {\r\n return axiosIns.put(controller, obj).then(res => res.data)\r\n },\r\n async create(req) {\r\n return axiosIns.post(controller, req).then(res => res.data)\r\n },\r\n async createQuiz(req) {\r\n return axiosIns.post(controller + '/quiz', req).then(res => res.data)\r\n },\r\n async updateQuiz(req) {\r\n return axiosIns.put(controller + '/quiz', req).then(res => res.data)\r\n },\r\n async getForReview(filter) {\r\n return axiosIns\r\n .get(`${controller}/avaliar?${utilsService.getQueryParams(filter)}`)\r\n .then(res => res.data)\r\n },\r\n\r\n // Avaliação de Arboturma\r\n async getArboTurma(id) {\r\n return axiosIns.get(`arboturma/grupo/${id}`).then(res => res.data)\r\n },\r\n async getJanelaTanque(id) {\r\n return axiosIns.get(`janelaTanqueAnswer/${id}`).then(res => res.data)\r\n },\r\n async getPatrulhaFoco(id) {\r\n return axiosIns.get(`patrulhaAnswer/${id}`).then(res => res.data)\r\n },\r\n async avaliar(url, obj) {\r\n return axiosIns.put(`avaliar/${url}`, obj).then(res => res.data)\r\n },\r\n\r\n\r\n\r\n}\r\n"],"sourceRoot":""}