{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/table/td.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.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/table/tbody.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/components/table/helpers/mixin-stacked.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/table/th.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-table-renderer.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","parseSpan","spanValidator","props","colspan","rowspan","stackedHeading","stickyColumn","variant","BTd","extend","name","mixins","inject","bvTableTr","default","inheritAttrs","computed","tag","inTbody","this","inThead","inTfoot","isDark","isStacked","isStackedCell","isResponsive","isStickyHeader","hasStickyHeader","isStickyColumn","rowVariant","headVariant","footVariant","tableVariant","computedColspan","computedRowspan","cellClasses","concat","cellAttrs","headOrFoot","role","scope","bvAttrs","render","h","$content","normalizeSlot","class","attrs","on","bvListeners","BTfoot","provide","bvTableRowGroup","bvTable","isTfoot","dark","stickyHeader","tfootClasses","tfootAttrs","LIGHT","DARK","BTr","isTbody","isThead","isRowDark","trClasses","trAttrs","hasListenerMixin","methods","hasListener","$listeners","$events","_events","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","listeners","isTransitionGroup","tbodyAttrs","tbodyProps","data","nativeOn","_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","detailsTdClass","tbodyTrAttr","tbodyTrClass","tbodyRowMixin","getTdValues","item","tdValue","defaultValue","$parent","get","getThValues","thValue","type","getFormattedValue","field","formatter","getFieldFormatter","toggleDetailsFactory","hasDetailsSlot","_this","$set","rowHovered","event","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","_this2","label","isRowHeader","$createElement","hasNormalizedSlot","formatted","cellTag","cellVariant","tdClass","String","thAttr","tdAttr","slotScope","index","unformatted","toggleDetails","detailsShowing","Boolean","supportsSelectableRows","rowSelected","isRowSelected","selectRow","unselectRow","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","_this3","fields","computedFields","striped","primaryKey","currentPage","perPage","rowShowDetails","hasRowClickHandler","hasSelectableRowClick","$rows","detailsId","safeId","$tds","map","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableRowClasses","selectableAttrs","selectableRowAttrs","userTrClasses","userTrAttrs","id","tabindex","mouseenter","mouseleave","ref","refInFor","detailsScope","$details","staticClass","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","beforeDestroy","getTbodyTrs","$refs","tbody","$el","trs","tr","children","array","getTbodyTrIndex","el","tagName","indexOf","computedItems","$emit","stopIfBusy","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","shiftKey","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTbody","items","renderBusy","renderTopRow","renderEmpty","renderBottomRow","$busy","cache","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","click","keydown","$tbody","$props","caption","captionHtml","captionMixin","captionId","renderCaption","$caption","hasCaptionSlot","domProps","stacked","stackedMixin","isStackedAlways","stackedTableClasses","origFields","identity","f","sample","k","memo","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","itemsMixin","localItems","computedFieldsObj","reduce","undefined","paginatedItems","sortedItems","filteredItems","context","localFilter","sortBy","localSortBy","sortDesc","localSortDesc","math","apiUrl","watch","newValue","oldValue","mounted","BTh","extends","bordered","borderless","captionTop","fixed","hover","noBorderCollapse","outlined","responsive","small","tableClass","tableRendererMixin","wrapperClasses","wrapperStyles","maxHeight","tableClasses","isTableSimple","computedBusy","border","selectableTableClasses","tableAttrs","selectableTableAttrs","adb","join","ariaAttrs","rowCount","renderColgroup","renderThead","renderTfoot","$table","style","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","result","EVENT_FILTER","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","columns","TABLE_TAG_NAMES","filterEvent","disabled","labelFor","input","BThead","theadClasses","theadAttrs","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","isFoot","isSortable","isSelectable","hasHeadClickListener","selectAllRows","noop","clearSelected","makeCell","labelHtml","ariaLabel","trim","headerTitle","sortAttrs","sortTheadThAttrs","sortClass","sortTheadThClasses","sortLabel","sortTheadThLabel","thStyle","sortable","abbr","headerAbbr","title","slotNames","column","html","$srLabel","$cells","$trs","textSelectionActive","document","sel","containsNode","colgroupMixin","$colgroup"],"mappings":"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","file":"js/chunk-191932f6.2d64781e.js","sourcesContent":["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_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});","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 } from '../../vue';\nimport { NAME_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTbody = /*#__PURE__*/Vue.extend({\n name: NAME_TBODY,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTbody: function isTbody() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n isTransitionGroup: function isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs: function tbodyAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n },\n tbodyProps: function tbodyProps() {\n var tbodyTransitionProps = this.tbodyTransitionProps;\n return tbodyTransitionProps ? _objectSpread(_objectSpread({}, tbodyTransitionProps), {}, {\n tag: 'tbody'\n }) : {};\n }\n },\n render: function render(h) {\n var data = {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs\n };\n\n if (this.isTransitionGroup) {\n // We use native listeners if a transition group for any delegated events\n data.on = this.tbodyTransitionHandlers || {};\n data.nativeOn = this.bvListeners;\n } else {\n // Otherwise we place any listeners on the tbody element\n data.on = this.bvListeners;\n }\n\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\n }\n});","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 _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});","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});","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 { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot'; // --- Props ---\n\nexport var props = {\n footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n // Any Bootstrap theme variant (or custom)\n // Falls back to `headRowVariant`\n footRowVariant: makeProp(PROP_TYPE_STRING),\n // 'dark', 'light', or `null` (or custom)\n footVariant: makeProp(PROP_TYPE_STRING),\n tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tfootMixin = Vue.extend({\n props: props,\n methods: {\n renderTFootCustom: function renderTFootCustom() {\n var h = this.$createElement;\n\n if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n return h(BTfoot, {\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n },\n key: 'bv-tfoot-custom'\n }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n }\n\n return h();\n },\n renderTfoot: function renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n }\n }\n});","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active'; // --- Helper methods ---\n\nvar getHeadSlotName = function getHeadSlotName(value) {\n return \"head(\".concat(value || '', \")\");\n};\n\nvar getFootSlotName = function getFootSlotName(value) {\n return \"foot(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = {\n // Any Bootstrap theme variant (or custom)\n headRowVariant: makeProp(PROP_TYPE_STRING),\n // 'light', 'dark' or `null` (or custom)\n headVariant: makeProp(PROP_TYPE_STRING),\n theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var theadMixin = Vue.extend({\n props: props,\n methods: {\n fieldClasses: function fieldClasses(field) {\n // Header field (
) classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked: function headClicked(event, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(event)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(event)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n stopEvent(event);\n this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n },\n renderThead: function renderThead() {\n var _this = this;\n\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var fields = this.computedFields,\n isSortable = this.isSortable,\n isSelectable = this.isSelectable,\n headVariant = this.headVariant,\n footVariant = this.footVariant,\n headRowVariant = this.headRowVariant,\n footRowVariant = this.footRowVariant;\n var h = this.$createElement; // In always stacked mode, we don't bother rendering the head/foot\n // Or if no field headings (empty table)\n\n if (this.isStackedAlways || fields.length === 0) {\n return h();\n }\n\n var hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED); // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n\n var selectAllRows = isSelectable ? this.selectAllRows : noop;\n var clearSelected = isSelectable ? this.clearSelected : noop; // Helper function to generate a field cell\n\n var makeCell = function makeCell(field, colIndex) {\n var label = field.label,\n labelHtml = field.labelHtml,\n variant = field.variant,\n stickyColumn = field.stickyColumn,\n key = field.key;\n var ariaLabel = null;\n\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n\n var on = {};\n\n if (hasHeadClickListener) {\n on.click = function (event) {\n _this.headClicked(event, field, isFoot);\n };\n\n on.keydown = function (event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n _this.headClicked(event, field, isFoot);\n }\n };\n }\n\n var sortAttrs = isSortable ? _this.sortTheadThAttrs(key, field, isFoot) : {};\n var sortClass = isSortable ? _this.sortTheadThClasses(key, field, isFoot) : null;\n var sortLabel = isSortable ? _this.sortTheadThLabel(key, field, isFoot) : null;\n var data = {\n class: [_this.fieldClasses(field), sortClass],\n props: {\n variant: variant,\n stickyColumn: stickyColumn\n },\n style: field.thStyle || {},\n attrs: _objectSpread(_objectSpread({\n // We only add a `tabindex` of `0` if there is a head-clicked listener\n // and the current field is sortable\n tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': colIndex + 1,\n 'aria-label': ariaLabel\n }, _this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {})), sortAttrs),\n on: on,\n key: key\n }; // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n\n var slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()]; // Footer will fallback to header slot names\n\n if (isFoot) {\n slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName()].concat(_toConsumableArray(slotNames));\n }\n\n var scope = {\n label: label,\n column: key,\n field: field,\n isFoot: isFoot,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n var $content = _this.normalizeSlot(slotNames, scope) || h('div', {\n domProps: htmlOrText(labelHtml, label)\n });\n var $srLabel = sortLabel ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(sortLabel, \")\")) : null; // Return the header cell\n\n return h(BTh, data, [$content, $srLabel].filter(identity));\n }; // Generate the array of cells\n\n\n var $cells = fields.map(makeCell).filter(identity); // Generate the row(s)\n\n var $trs = [];\n\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass,\n props: {\n variant: isUndefinedOrNull(footRowVariant) ? headRowVariant :\n /* istanbul ignore next */\n footRowVariant\n }\n }, $cells));\n } else {\n var scope = {\n columns: fields.length,\n fields: fields,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass,\n props: {\n variant: headRowVariant\n }\n }, $cells));\n }\n\n return h(isFoot ? BTfoot : BThead, {\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: footVariant || headVariant || null\n } : {\n headVariant: headVariant || null\n },\n key: isFoot ? 'bv-tfoot' : 'bv-thead'\n }, $trs);\n }\n }\n});","import { 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 } 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});","export var noop = function noop() {};"],"sourceRoot":""}