{"version":3,"sources":["webpack:///./src/views/table/bs-table/Table.vue?0c3a","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:///./node_modules/bootstrap-vue/esm/components/table/table-simple.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/pagination.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/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/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/progress/progress.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/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/mixins/model.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-select/helpers/mixin-options.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-select/form-select-option-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-select/form-select.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.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/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./src/views/table/bs-table/Table.vue?75e2","webpack:///./src/views/table/bs-table/TableBasic.vue?4237","webpack:///./src/views/table/bs-table/code.js","webpack:///src/views/table/bs-table/TableBasic.vue","webpack:///./src/views/table/bs-table/TableBasic.vue?29fd","webpack:///./src/views/table/bs-table/TableBasic.vue","webpack:///./src/views/table/bs-table/TableStyleOptions.vue?69e3","webpack:///src/views/table/bs-table/TableStyleOptions.vue","webpack:///./src/views/table/bs-table/TableStyleOptions.vue?ad86","webpack:///./src/views/table/bs-table/TableStyleOptions.vue","webpack:///./src/views/table/bs-table/TableRowColStyle.vue?112f","webpack:///src/views/table/bs-table/TableRowColStyle.vue","webpack:///./src/views/table/bs-table/TableRowColStyle.vue?df9b","webpack:///./src/views/table/bs-table/TableRowColStyle.vue","webpack:///./src/views/table/bs-table/TableResponsive.vue?d75e","webpack:///src/views/table/bs-table/TableResponsive.vue","webpack:///./src/views/table/bs-table/TableResponsive.vue?d9b1","webpack:///./src/views/table/bs-table/TableResponsive.vue","webpack:///./src/views/table/bs-table/TableFormatterCallback.vue?f488","webpack:///src/views/table/bs-table/TableFormatterCallback.vue","webpack:///./src/views/table/bs-table/TableFormatterCallback.vue?8216","webpack:///./src/views/table/bs-table/TableFormatterCallback.vue","webpack:///./src/views/table/bs-table/TableCustomRender.vue?227e","webpack:///src/views/table/bs-table/TableCustomRender.vue","webpack:///./src/views/table/bs-table/TableCustomRender.vue?84f4","webpack:///./src/views/table/bs-table/TableCustomRender.vue","webpack:///./src/views/table/bs-table/TableStickyColumnsHeaders.vue?cf16","webpack:///src/views/table/bs-table/TableStickyColumnsHeaders.vue","webpack:///./src/views/table/bs-table/TableStickyColumnsHeaders.vue?cf78","webpack:///./src/views/table/bs-table/TableStickyColumnsHeaders.vue","webpack:///./src/views/table/bs-table/TableRowdetailsSupport.vue?b12f","webpack:///src/views/table/bs-table/TableRowdetailsSupport.vue","webpack:///./src/views/table/bs-table/TableRowdetailsSupport.vue?a1b7","webpack:///./src/views/table/bs-table/TableRowdetailsSupport.vue","webpack:///./src/views/table/bs-table/TableRowSelectSupport.vue?c171","webpack:///src/views/table/bs-table/TableRowSelectSupport.vue","webpack:///./src/views/table/bs-table/TableRowSelectSupport.vue?3486","webpack:///./src/views/table/bs-table/TableRowSelectSupport.vue","webpack:///./src/views/table/bs-table/TableLightWeight.vue?ed25","webpack:///src/views/table/bs-table/TableLightWeight.vue","webpack:///./src/views/table/bs-table/TableLightWeight.vue?0a51","webpack:///./src/views/table/bs-table/TableLightWeight.vue","webpack:///./src/views/table/bs-table/TableSimple.vue?32f0","webpack:///src/views/table/bs-table/TableSimple.vue","webpack:///./src/views/table/bs-table/TableSimple.vue?74fe","webpack:///./src/views/table/bs-table/TableSimple.vue","webpack:///./src/views/table/bs-table/TableKitchenSink.vue?3cba","webpack:///src/views/table/bs-table/TableKitchenSink.vue","webpack:///./src/views/table/bs-table/TableKitchenSink.vue?ec2b","webpack:///./src/views/table/bs-table/TableKitchenSink.vue","webpack:///src/views/table/bs-table/Table.vue","webpack:///./src/views/table/bs-table/Table.vue?f478","webpack:///./src/views/table/bs-table/Table.vue","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table-lite.js","webpack:///./node_modules/bootstrap-vue/esm/components/progress/progress-bar.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/components/table/helpers/mixin-colgroup.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/components/form-select/form-select-option.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./src/views/table/bs-table/TableRowSelectSupport.vue?1968"],"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","BTableSimple","isTableSimple","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","sanitizePerPage","sanitizeTotalRows","ariaControls","perPage","totalRows","BPagination","numberOfPages","result","pageSizeNumberOfPages","watch","newValue","oldValue","currentPage","localNumberOfPages","created","_this","$nextTick","onClick","event","pageNumber","_this2","clickEvt","cancelable","vueTarget","$emit","type","defaultPrevented","$el","contains","focusCurrent","makePage","pageNum","linkProps","BTfoot","isTfoot","tfootClasses","tfootAttrs","bottomRowMixin","renderBottomRow","fields","computedFields","tbodyTrClass","tbodyTrAttr","$createElement","hasNormalizedSlot","staticClass","columns","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","stopIfBusy","renderBusy","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","domProps","html","stringifyObjectValues","sort","map","k","v","join","row","ignoreFields","includeFields","fieldsObj","undefined","formattedRow","reduce","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","prototype","toString","call","slice","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","arr2","DEBOUNCE_DEPRECATED_MSG","filterDebounce","String","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","timeout","setTimeout","Boolean","beforeDestroy","clearTimeout","fn","item","_this3","regExp","pattern","RegExp","lastIndex","computedFieldsObj","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","then","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","f","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","BInputGroupPrepend","children","append","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","defaultValue","getThValues","thValue","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","label","isRowHeader","formatted","cellTag","cellVariant","tdClass","thAttr","tdAttr","slotScope","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","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","_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","propagation","onChange","onBlur","focus","disabled","blur","isText","BInputGroupAddon","TYPES","list","max","min","noWheel","step","BFormInput","localType","computedAttrs","form","required","computedAriaInvalid","computedListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","stackedMixin","isStackedAlways","stackedTableClasses","progressBarProps","animated","height","precision","showProgress","showValue","BProgress","bvProgress","progressHeight","style","origFields","sample","memo","itemsMixin","appendHtml","prepend","prependHtml","size","BInputGroup","slots","scopedSlots","$scopedSlots","$slots","$prepend","hasPrependSlot","$append","hasAppendSlot","BTh","extends","bordered","borderless","captionTop","fixed","hover","noBorderCollapse","outlined","responsive","small","tableClass","tableRendererMixin","wrapperClasses","wrapperStyles","maxHeight","tableClasses","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","labelField","optionsField","optionsMixin","normalizeOption","option","valueField","text","textField","options","htmlField","disabledField","normalizeOptions","BFormSelectOptionGroup","formOptions","multiple","selectSize","BFormSelect","computedSelectSize","plain","inputClass","selectedValue","_value","directives","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","stableSort","compareFn","bind","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","alignContent","alignH","alignV","noGutters","BRow","_classList$push","classList","c","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","validator","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","makePageArray","startNumber","_","classes","sanitizeLimit","limit","sanitizeCurrentPage","page","onSpaceKey","immediatePropagation","currentTarget","align","ariaLabel","ellipsisClass","ellipsisText","firstClass","firstNumber","firstText","hideEllipsis","hideGotoEndButtons","labelFirstPage","labelLastPage","labelNextPage","labelPage","labelPrevPage","lastClass","lastNumber","lastText","nextClass","nextText","pageClass","pills","prevClass","prevText","localLimit","btnSize","alignment","styleClass","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","lastPageNumber","pageList","_this$paginationParam","pages","_i","_i2","_i3","handleKeyNav","isNav","focusFirst","focusPrev","focusLast","focusNext","getButtons","btn","find","_this4","reverse","_this5","buttons","_this6","_this7","pageNumbers","p","_this$paginationParam2","fill","$buttons","isActivePage","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","isDisabled","$btnContent","$inner","makeEllipsis","isLast","makePageButton","active","btnContent","content","$firstPageBtn","offset","$lastPageBtn","$pagination","TABLE_TAG_NAMES","filterEvent","labelFor","_vm","_h","_c","_self","staticRenderFns","_u","_v","_s","codeBasic","proxy","codeStyleOption","codeRowColStyle","codeResponsive","codeFormatterCallback","codeDataRendering","codeSticky","codeRowDetailsSupport","codeRowSelectSupport","codeKitchenSink","codeLight","codeSimple","BCardCode","component","model","callback","$$v","expression","noCollapse","$store","state","appConfig","isRTL","tableVariants","BFormGroup","BCardBody","vSelect","BFormRadio","BFormCheckbox","BFormRadioGroup","rowClass","status","BLink","first","last","BBadge","BAvatar","1","full_name","post","email","city","salary","age","BButton","BCard","BCol","modes","onRowSelected","rawName","modifiers","selectThirdRow","unselectThirdRow","Ripple","selectableTable","BTableLite","sortOptions","$event","filterOn","onFiltered","pageOptions","BInputGroupAppend","infoModal","title","info","JSON","stringify","$root","button","resetInfoModal","TableBasic","TableStyleOptions","TableRowColStyle","TableResponsive","TableFormatterCallback","TableCustomRender","TableStickyColumnsHeaders","TableRowdetailsSupport","TableRowSelectSupport","TableLightWeight","TableSimple","TableKitchenSink","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","makeCell","labelHtml","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","BProgressBar","progressBarClasses","computedAnimated","computedVariant","computedStriped","progressBarStyles","width","computedValue","computedMax","computedPrecision","computedProgress","computedShowProgress","computedShowValue","$children","textSelectionActive","sel","containsNode","BInputGroupText","colgroupMixin","$colgroup","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","alt","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","buttonType","rounded","square","src","bvAvatarGroup","localSrc","computedSize","computedRounded","fontStyle","fontSize","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","top","bottom","left","right","onImgError","_class2","link","error","$badge","hasBadgeSlot","badgeText","componentData","href","to","pill","BFormSelectOption","noop"],"mappings":"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","file":"js/chunk-eb7d2f22.b1c05b7b.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Table.vue?vue&type=style&index=0&lang=scss&\"","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});","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_SIMPLE } 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 { stackedMixin, props as stackedProps } from './helpers/mixin-stacked';\nimport { tableRendererMixin, props as tableRendererProps } from './helpers/mixin-table-renderer'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), stackedProps), tableRendererProps)), NAME_TABLE_SIMPLE); // --- Main component ---\n// @vue/component\n\nexport var BTableSimple = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_SIMPLE,\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 tableRendererMixin, // Table features mixins\n // Stacked requires extra handling by users via\n // the table cell `stacked-heading` prop\n stackedMixin],\n props: props,\n computed: {\n isTableSimple: function isTableSimple() {\n return true;\n }\n } // Render function is provided by `tableRendererMixin`\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 } from '../../vue';\nimport { NAME_PAGINATION } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_PAGE_CLICK } from '../../constants/events';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, isVisible } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { mathCeil, mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, paginationMixin, props as paginationProps } from '../../mixins/pagination'; // --- Constants ---\n\nvar DEFAULT_PER_PAGE = 20;\nvar DEFAULT_TOTAL_ROWS = 0; // --- Helper methods ---\n// Sanitize the provided per page number (converting to a number)\n\nvar sanitizePerPage = function sanitizePerPage(value) {\n return mathMax(toInteger(value) || DEFAULT_PER_PAGE, 1);\n}; // Sanitize the provided total rows number (converting to a number)\n\n\nvar sanitizeTotalRows = function sanitizeTotalRows(value) {\n return mathMax(toInteger(value) || DEFAULT_TOTAL_ROWS, 0);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, paginationProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_PER_PAGE),\n totalRows: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_TOTAL_ROWS)\n})), NAME_PAGINATION); // --- Main component ---\n// @vue/component\n\nexport var BPagination = /*#__PURE__*/Vue.extend({\n name: NAME_PAGINATION,\n // The render function is brought in via the `paginationMixin`\n mixins: [paginationMixin],\n props: props,\n computed: {\n numberOfPages: function numberOfPages() {\n var result = mathCeil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage));\n return result < 1 ? 1 : result;\n },\n // Used for watching changes to `perPage` and `numberOfPages`\n pageSizeNumberOfPages: function pageSizeNumberOfPages() {\n return {\n perPage: sanitizePerPage(this.perPage),\n totalRows: sanitizeTotalRows(this.totalRows),\n numberOfPages: this.numberOfPages\n };\n }\n },\n watch: {\n pageSizeNumberOfPages: function pageSizeNumberOfPages(newValue, oldValue) {\n if (!isUndefinedOrNull(oldValue)) {\n if (newValue.perPage !== oldValue.perPage && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n this.currentPage = 1;\n } else if (newValue.numberOfPages !== oldValue.numberOfPages && this.currentPage > newValue.numberOfPages) {\n // If `numberOfPages` changes and is less than\n // the `currentPage` number, reset to page 1\n this.currentPage = 1;\n }\n }\n\n this.localNumberOfPages = newValue.numberOfPages;\n }\n },\n created: function created() {\n var _this = this;\n\n // Set the initial page count\n this.localNumberOfPages = this.numberOfPages; // Set the initial page value\n\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n\n if (currentPage > 0) {\n this.currentPage = currentPage;\n } else {\n this.$nextTick(function () {\n // If this value parses to `NaN` or a value less than `1`\n // trigger an initial emit of `null` if no page specified\n _this.currentPage = 0;\n });\n }\n },\n methods: {\n // These methods are used by the render function\n onClick: function onClick(event, pageNumber) {\n var _this2 = this;\n\n // Dont do anything if clicking the current active page\n if (pageNumber === this.currentPage) {\n return;\n }\n\n var target = event.target; // Emit a user-cancelable `page-click` event\n\n var clickEvt = new BvEvent(EVENT_NAME_PAGE_CLICK, {\n cancelable: true,\n vueTarget: this,\n target: target\n });\n this.$emit(clickEvt.type, clickEvt, pageNumber);\n\n if (clickEvt.defaultPrevented) {\n return;\n } // Update the `v-model`\n\n\n this.currentPage = pageNumber; // Emit event triggered by user interaction\n\n this.$emit(EVENT_NAME_CHANGE, this.currentPage); // Keep the current button focused if possible\n\n this.$nextTick(function () {\n if (isVisible(target) && _this2.$el.contains(target)) {\n attemptFocus(target);\n } else {\n _this2.focusCurrent();\n }\n });\n },\n makePage: function makePage(pageNum) {\n return pageNum;\n },\n\n /* istanbul ignore next */\n linkProps: function linkProps() {\n // No props, since we render a plain button\n return {};\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_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});","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});","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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_PROGRESS } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BProgressBar, props as BProgressBarProps } from './progress-bar'; // --- Props ---\n\nvar progressBarProps = omit(BProgressBarProps, ['label', 'labelHtml']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, progressBarProps), {}, {\n animated: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, 100),\n precision: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n showProgress: makeProp(PROP_TYPE_BOOLEAN, false),\n showValue: makeProp(PROP_TYPE_BOOLEAN, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_PROGRESS); // --- Main component ---\n// @vue/component\n\nexport var BProgress = /*#__PURE__*/Vue.extend({\n name: NAME_PROGRESS,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvProgress: this\n };\n },\n props: props,\n computed: {\n progressHeight: function progressHeight() {\n return {\n height: this.height || null\n };\n }\n },\n render: function render(h) {\n var $childNodes = this.normalizeSlot();\n\n if (!$childNodes) {\n $childNodes = h(BProgressBar, {\n props: pluckProps(progressBarProps, this.$props)\n });\n }\n\n return h('div', {\n staticClass: 'progress',\n style: this.progressHeight\n }, [$childNodes]);\n }\n});","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});","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(',');","import { makeModelMixin } from '../utils/model';\n\nvar _makeModelMixin = makeModelMixin('value'),\n mixin = _makeModelMixin.mixin,\n props = _makeModelMixin.props,\n prop = _makeModelMixin.prop,\n event = _makeModelMixin.event;\n\nexport { mixin as modelMixin, props, prop as MODEL_PROP_NAME, event as MODEL_EVENT_NAME };","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_STRING } from '../../../constants/props';\nimport { get } from '../../../utils/get';\nimport { isNull, isPlainObject, isUndefined } from '../../../utils/inspect';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../../utils/props';\nimport { formOptionsMixin, props as formOptionsProps } from '../../../mixins/form-options'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formOptionsProps), {}, {\n labelField: makeProp(PROP_TYPE_STRING, 'label'),\n optionsField: makeProp(PROP_TYPE_STRING, 'options')\n})), 'formOptions'); // --- Mixin ---\n// @vue/component\n\nexport var optionsMixin = Vue.extend({\n mixins: [formOptionsMixin],\n props: props,\n methods: {\n normalizeOption: function normalizeOption(option) {\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When the option is an object, normalize it\n if (isPlainObject(option)) {\n var value = get(option, this.valueField);\n var text = get(option, this.textField);\n var options = get(option, this.optionsField, null); // When it has options, create an `` object\n\n if (!isNull(options)) {\n return {\n label: String(get(option, this.labelField) || text),\n options: this.normalizeOptions(options)\n };\n } // Otherwise create an `
) 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});","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});","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_LITE } 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 { captionMixin, props as captionProps } from './helpers/mixin-caption';\nimport { colgroupMixin, props as colgroupProps } from './helpers/mixin-colgroup';\nimport { itemsMixin, props as itemsProps } from './helpers/mixin-items';\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'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), captionProps), colgroupProps), itemsProps), stackedProps), tableRendererProps), tbodyProps), tfootProps), theadProps)), NAME_TABLE_LITE); // --- Main component ---\n// @vue/component\n\nexport var BTableLite = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_LITE,\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 // These are pretty lightweight, and are useful for lightweight tables\n captionMixin, colgroupMixin],\n props: props // Render function is provided by `tableRendererMixin`\n\n});","import { Vue } from '../../vue';\nimport { NAME_PROGRESS_BAR } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { isBoolean } from '../../utils/inspect';\nimport { mathMax, mathPow } from '../../utils/math';\nimport { toFixed, toFloat, toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animated: makeProp(PROP_TYPE_BOOLEAN, null),\n label: makeProp(PROP_TYPE_STRING),\n labelHtml: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, null),\n precision: makeProp(PROP_TYPE_NUMBER_STRING, null),\n showProgress: makeProp(PROP_TYPE_BOOLEAN, null),\n showValue: makeProp(PROP_TYPE_BOOLEAN, null),\n striped: makeProp(PROP_TYPE_BOOLEAN, null),\n value: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_PROGRESS_BAR); // --- Main component ---\n// @vue/component\n\nexport var BProgressBar = /*#__PURE__*/Vue.extend({\n name: NAME_PROGRESS_BAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvProgress: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: props,\n computed: {\n progressBarClasses: function progressBarClasses() {\n var computedAnimated = this.computedAnimated,\n computedVariant = this.computedVariant;\n return [computedVariant ? \"bg-\".concat(computedVariant) : '', this.computedStriped || computedAnimated ? 'progress-bar-striped' : '', computedAnimated ? 'progress-bar-animated' : ''];\n },\n progressBarStyles: function progressBarStyles() {\n return {\n width: 100 * (this.computedValue / this.computedMax) + '%'\n };\n },\n computedValue: function computedValue() {\n return toFloat(this.value, 0);\n },\n computedMax: function computedMax() {\n // Prefer our max over parent setting\n // Default to `100` for invalid values (`-x`, `0`, `NaN`)\n var max = toFloat(this.max) || toFloat(this.bvProgress.max, 0);\n return max > 0 ? max : 100;\n },\n computedPrecision: function computedPrecision() {\n // Prefer our precision over parent setting\n // Default to `0` for invalid values (`-x`, `NaN`)\n return mathMax(toInteger(this.precision, toInteger(this.bvProgress.precision, 0)), 0);\n },\n computedProgress: function computedProgress() {\n var precision = this.computedPrecision;\n var p = mathPow(10, precision);\n return toFixed(100 * p * this.computedValue / this.computedMax / p, precision);\n },\n computedVariant: function computedVariant() {\n // Prefer our variant over parent setting\n return this.variant || this.bvProgress.variant;\n },\n computedStriped: function computedStriped() {\n // Prefer our striped over parent setting\n return isBoolean(this.striped) ? this.striped : this.bvProgress.striped || false;\n },\n computedAnimated: function computedAnimated() {\n // Prefer our animated over parent setting\n return isBoolean(this.animated) ? this.animated : this.bvProgress.animated || false;\n },\n computedShowProgress: function computedShowProgress() {\n // Prefer our showProgress over parent setting\n return isBoolean(this.showProgress) ? this.showProgress : this.bvProgress.showProgress || false;\n },\n computedShowValue: function computedShowValue() {\n // Prefer our showValue over parent setting\n return isBoolean(this.showValue) ? this.showValue : this.bvProgress.showValue || false;\n }\n },\n render: function render(h) {\n var label = this.label,\n labelHtml = this.labelHtml,\n computedValue = this.computedValue,\n computedPrecision = this.computedPrecision;\n var $children;\n var domProps = {};\n\n if (this.hasNormalizedSlot()) {\n $children = this.normalizeSlot();\n } else if (label || labelHtml) {\n domProps = htmlOrText(labelHtml, label);\n } else if (this.computedShowProgress) {\n $children = this.computedProgress;\n } else if (this.computedShowValue) {\n $children = toFixed(computedValue, computedPrecision);\n }\n\n return h('div', {\n staticClass: 'progress-bar',\n class: this.progressBarClasses,\n style: this.progressBarStyles,\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': toString(this.computedMax),\n 'aria-valuenow': toFixed(computedValue, computedPrecision)\n },\n domProps: domProps\n }, $children);\n }\n});","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 { 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});","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});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_SELECT_OPTION } from '../../constants/components';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY, undefined, true) // Required\n\n}, NAME_FORM_SELECT_OPTION); // --- Main component ---\n// @vue/component\n\nexport var BFormSelectOption = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_SELECT_OPTION,\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 value = props.value,\n disabled = props.disabled;\n return h('option', mergeData(data, {\n attrs: {\n disabled: disabled\n },\n domProps: {\n value: value\n }\n }), children);\n }\n});","export var noop = function noop() {};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableRowSelectSupport.vue?vue&type=style&index=0&lang=scss&\""],"sourceRoot":""}