{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/spinner/spinner.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar-nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/td.js","webpack:///./node_modules/bootstrap-vue/esm/components/skeleton/skeleton.js","webpack:///./node_modules/bootstrap-vue/esm/components/skeleton/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar-toggle.js","webpack:///./node_modules/bootstrap-vue/esm/components/overlay/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-icon.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table-simple.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover.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/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/components/skeleton/skeleton-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination-nav/pagination-nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/popover.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/progress/index.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/table/th.js","webpack:///./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-wrapper.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/sidebar/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar-brand.js","webpack:///./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination-nav/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/bootstrap-vue/esm/components/spinner/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/sidebar/sidebar.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.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/skeleton/skeleton-table.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/index.js"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","props","label","role","small","tag","type","variant","BSpinner","extend","name","functional","render","h","_ref","_class","data","slots","scopedSlots","$slots","$scopedSlots","$label","staticClass","attrs","class","concat","computeJustifyContent","BNavbarNav","children","align","fill","justified","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread","target","i","arguments","length","source","forEach","getOwnPropertyDescriptors","defineProperties","parseSpan","spanValidator","colspan","rowspan","stackedHeading","stickyColumn","BTd","mixins","inject","bvTableTr","default","inheritAttrs","computed","inTbody","this","inThead","inTfoot","isDark","isStacked","isStackedCell","isResponsive","isStickyHeader","hasStickyHeader","isStickyColumn","rowVariant","headVariant","footVariant","tableVariant","computedColspan","computedRowspan","cellClasses","cellAttrs","headOrFoot","scope","bvAttrs","$content","normalizeSlot","on","bvListeners","animation","height","size","width","BSkeleton","style","SkeletonPlugin","components","BSkeletonIcon","BSkeletonImg","BSkeletonTable","BSkeletonWrapper","BThead","provide","bvTableRowGroup","bvTable","isThead","dark","stickyHeader","theadClasses","theadAttrs","CLASS_NAME","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","disabled","undefined","BNavbarToggle","directives","VBToggle","toggleState","created","listenOnRoot","handleStateEvt","methods","onClick","event","$emit","id","state","click","expanded","OverlayPlugin","BOverlay","icon","iconProps","$icon","BTableSimple","isTableSimple","TableLitePlugin","BTableLite","TableSimplePlugin","BTbody","BTfoot","BTr","BTh","TablePlugin","BTable","plugins","BVPopoverTemplate","extends","templateType","renderTemplate","title","content","$title","titleDomProps","html","innerHTML","contentDomProps","templateClasses","templateAttributes","templateListeners","ref","domProps","BVPopover","getTemplate","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","sanitizePerPage","sanitizeTotalRows","ariaControls","perPage","totalRows","BPagination","numberOfPages","result","pageSizeNumberOfPages","watch","newValue","oldValue","currentPage","localNumberOfPages","_this","$nextTick","pageNumber","_this2","clickEvt","cancelable","vueTarget","defaultPrevented","$el","contains","focusCurrent","makePage","pageNum","linkProps","isTfoot","tfootClasses","tfootAttrs","bottomRowMixin","renderBottomRow","fields","computedFields","stacked","tbodyTrClass","tbodyTrAttr","$createElement","hasNormalizedSlot","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","row","ignoreFields","includeFields","fieldsObj","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","replace","RegExp","lastIndex","computedFieldsObj","paginationMixin","localPaging","noProviderPaging","paginatedItems","sortedItems","math","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","apiUrl","noProviderSorting","providerMixin","providerTriggerContext","ctx","sortBy","sortDesc","localSortBy","localSortDesc","_providerUpdate","mounted","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","v","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","get","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","LIGHT","DARK","isTbody","isRowDark","trClasses","trAttrs","aspect","cardImg","noAspect","$img","sanitizeNumberOfPages","_linkProps","baseUrl","linkGen","noPageDetect","number","pageGen","pages","useRouter","BPaginationNav","isNav","computedValue","setNumberOfPages","$router","$watch","guessCurrentPage","_this4","_this5","currentTarget","getPageInfo","link","path","text","info","_link","makeLink","to","href","resolveLink","document","createElement","body","appendChild","_link2","pathname","hash","search","removeChild","query","parentNode","_unused","resolveRoute","route","resolve","$route","guess","currentRoute","loc","window","location","currentLink","placement","triggers","BPopover","getComponent","updateContent","setContent","setTitle","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","defaultValue","$parent","getThValues","thValue","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","isRowHeader","formatted","cellTag","cellVariant","tdClass","thAttr","tdAttr","slotScope","unformatted","toggleDetails","detailsShowing","rowSelected","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","striped","primaryKey","rowShowDetails","hasRowClickHandler","$listeners","$rows","detailsId","safeId","$tds","map","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableAttrs","userTrClasses","userTrAttrs","tabindex","mouseenter","mouseleave","refInFor","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","getTbodyTrs","$refs","tbody","trs","tr","getTbodyTrIndex","el","tagName","indexOf","hasListener","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTbody","$busy","cache","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","keydown","$tbody","$props","caption","captionHtml","captionMixin","captionId","renderCaption","$caption","hasCaptionSlot","ProgressPlugin","BProgress","BProgressBar","stackedMixin","isStackedAlways","stackedTableClasses","progressBarProps","animated","max","precision","showProgress","showValue","bvProgress","progressHeight","origFields","sample","k","memo","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","itemsMixin","loading","bordered","borderless","captionTop","fixed","hover","noBorderCollapse","outlined","responsive","tableClass","tableRendererMixin","wrapperClasses","wrapperStyles","maxHeight","tableClasses","border","tableAttrs","ariaAttrs","rowCount","renderColgroup","renderThead","renderTfoot","$table","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","EVENT_FILTER","join","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","SidebarPlugin","BSidebar","VBTogglePlugin","BNavbarBrand","isLink","POSITION_COVER","top","left","bottom","right","bgColor","blur","noCenter","noFade","noWrap","opacity","overlayTag","rounded","show","spinnerSmall","spinnerType","spinnerVariant","wrapTag","zIndex","computedRounded","computedVariant","defaultOverlayFn","$overlay","$background","backgroundColor","backdropFilter","transform","appear","tbodyTransitionHandlers","tbodyTransitionProps","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","PaginationNavPlugin","TABLE_TAG_NAMES","filterEvent","labelFor","input","SpinnerPlugin","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","ROOT_ACTION_EVENT_NAME_TOGGLE","ariaLabel","ariaLabelledby","backdrop","backdropVariant","bgVariant","bodyClass","closeLabel","footerClass","headerClass","lazy","noCloseOnBackdrop","noCloseOnEsc","noCloseOnRouteChange","noEnforceFocus","noHeader","noHeaderClose","noSlide","shadow","sidebarClass","textVariant","renderHeaderTitle","renderHeaderClose","hide","renderHeader","$close","renderBody","renderFooter","$footer","renderContent","$header","isOpen","renderBackdrop","localShow","onBackdropClick","visible","transitionProps","css","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","hasTitle","titleId","computedAttrs","emitState","fullPath","$_returnFocusEl","handleToggle","handleSync","activated","emitSync","onKeydown","onTopTrapFocus","tabables","enforceFocus","reverse","onBottomTrapFocus","onBeforeEnter","onAfterEnter","onAfterLeave","$sidebar","beforeEnter","afterEnter","afterLeave","$backdrop","$tabTrapTop","$tabTrapBottom","focus","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","makeCell","labelHtml","trim","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","progressBarClasses","computedAnimated","computedStriped","progressBarStyles","computedMax","computedPrecision","computedProgress","p","computedShowProgress","computedShowValue","$children","isPositiveNumber","hideHeader","rows","showFooter","tableProps","$th","$thTr","$td","$tdTr","$thead","$tfoot","print","sticky","toggleable","BNavbar","bvNavbar","breakpointClass","xs","breakpoint","textSelectionActive","sel","containsNode","PaginationPlugin","colgroupMixin","$colgroup","PopoverPlugin","VBPopoverPlugin","NavbarPlugin","BNavToggle","NavPlugin","CollapsePlugin","DropdownPlugin"],"mappings":"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","file":"js/chunk-vendors~1187b811.454654a3.js","sourcesContent":["function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_SPINNER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_LABEL } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n label: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING, 'status'),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n type: makeProp(PROP_TYPE_STRING, 'border'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_SPINNER); // --- Main component ---\n// @vue/component\n\nexport var BSpinner = /*#__PURE__*/Vue.extend({\n name: NAME_SPINNER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $label = normalizeSlot(SLOT_NAME_LABEL, {}, $scopedSlots, $slots) || props.label;\n\n if ($label) {\n $label = h('span', {\n staticClass: 'sr-only'\n }, $label);\n }\n\n return h(props.tag, mergeData(data, {\n attrs: {\n role: $label ? props.role || 'status' : null,\n 'aria-hidden': $label ? null : 'true'\n },\n class: (_class = {}, _defineProperty(_class, \"spinner-\".concat(props.type), props.type), _defineProperty(_class, \"spinner-\".concat(props.type, \"-sm\"), props.small), _defineProperty(_class, \"text-\".concat(props.variant), props.variant), _class)\n }), [$label || h()]);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAVBAR_NAV } from '../../constants/components';\nimport { pick } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as BNavProps } from '../nav/nav'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(pick(BNavProps, ['tag', 'fill', 'justified', 'align', 'small']), NAME_NAVBAR_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNavbarNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var align = props.align;\n return h(props.tag, mergeData(data, {\n staticClass: 'navbar-nav',\n class: (_class = {\n 'nav-fill': props.fill,\n 'nav-justified': props.justified\n }, _defineProperty(_class, computeJustifyContent(align), align), _defineProperty(_class, \"small\", props.small), _class)\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_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 _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_SKELETON } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animation: makeProp(PROP_TYPE_STRING, 'wave'),\n height: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text'),\n variant: makeProp(PROP_TYPE_STRING),\n width: makeProp(PROP_TYPE_STRING)\n}, NAME_SKELETON); // --- Main component ---\n// @vue/component\n\nexport var BSkeleton = /*#__PURE__*/Vue.extend({\n name: NAME_SKELETON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var data = _ref.data,\n props = _ref.props;\n var size = props.size,\n animation = props.animation,\n variant = props.variant;\n return h('div', mergeData(data, {\n staticClass: 'b-skeleton',\n style: {\n width: size || props.width,\n height: size || props.height\n },\n class: (_class = {}, _defineProperty(_class, \"b-skeleton-\".concat(props.type), true), _defineProperty(_class, \"b-skeleton-animate-\".concat(animation), animation), _defineProperty(_class, \"bg-\".concat(variant), variant), _class)\n }));\n }\n});","import { pluginFactory } from '../../utils/plugins';\nimport { BSkeleton } from './skeleton';\nimport { BSkeletonIcon } from './skeleton-icon';\nimport { BSkeletonImg } from './skeleton-img';\nimport { BSkeletonTable } from './skeleton-table';\nimport { BSkeletonWrapper } from './skeleton-wrapper';\nvar SkeletonPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BSkeleton: BSkeleton,\n BSkeletonIcon: BSkeletonIcon,\n BSkeletonImg: BSkeletonImg,\n BSkeletonTable: BSkeletonTable,\n BSkeletonWrapper: BSkeletonWrapper\n }\n});\nexport { SkeletonPlugin, BSkeleton, BSkeletonIcon, BSkeletonImg, BSkeletonTable, BSkeletonWrapper };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_THEAD } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Also sniffed by `` / `` / ``\n // Supported values: 'lite', 'dark', or `null`\n headVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_THEAD); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BThead = /*#__PURE__*/Vue.extend({\n name: NAME_THEAD,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isThead: function isThead() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n theadClasses: function theadClasses() {\n return [this.headVariant ? \"thead-\".concat(this.headVariant) : null];\n },\n theadAttrs: function theadAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('thead', {\n class: this.theadClasses,\n attrs: this.theadAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../vue';\nimport { NAME_COLLAPSE, NAME_NAVBAR_TOGGLE } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { getRootEventName } from '../../utils/events';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { VBToggle } from '../../directives/toggle/toggle'; // --- Constants ---\n\nvar CLASS_NAME = 'navbar-toggler';\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state'); // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n label: makeProp(PROP_TYPE_STRING, 'Toggle navigation'),\n target: makeProp(PROP_TYPE_ARRAY_STRING, undefined, true) // Required\n\n}, NAME_NAVBAR_TOGGLE); // --- Main component ---\n// @vue/component\n\nexport var BNavbarToggle = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR_TOGGLE,\n directives: {\n VBToggle: VBToggle\n },\n mixins: [listenOnRootMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n toggleState: false\n };\n },\n created: function created() {\n this.listenOnRoot(ROOT_EVENT_NAME_STATE, this.handleStateEvt);\n this.listenOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.handleStateEvt);\n },\n methods: {\n onClick: function onClick(event) {\n if (!this.disabled) {\n // Emit courtesy `click` event\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n handleStateEvt: function handleStateEvt(id, state) {\n // We listen for state events so that we can pass the\n // boolean expanded state to the default scoped slot\n if (id === this.target) {\n this.toggleState = state;\n }\n }\n },\n render: function render(h) {\n var disabled = this.disabled;\n return h('button', {\n staticClass: CLASS_NAME,\n class: {\n disabled: disabled\n },\n directives: [{\n name: 'VBToggle',\n value: this.target\n }],\n attrs: {\n type: 'button',\n disabled: disabled,\n 'aria-label': this.label\n },\n on: {\n click: this.onClick\n }\n }, [this.normalizeSlot(SLOT_NAME_DEFAULT, {\n expanded: this.toggleState\n }) || h('span', {\n staticClass: \"\".concat(CLASS_NAME, \"-icon\")\n })]);\n }\n});","import { BOverlay } from './overlay';\nimport { pluginFactory } from '../../utils/plugins';\nvar OverlayPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BOverlay: BOverlay\n }\n});\nexport { OverlayPlugin, BOverlay };","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_SKELETON_ICON } from '../../constants/components';\nimport { PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BIcon } from '../../icons'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animation: makeProp(PROP_TYPE_STRING, 'wave'),\n icon: makeProp(PROP_TYPE_STRING),\n iconProps: makeProp(PROP_TYPE_OBJECT, {})\n}, NAME_SKELETON_ICON); // --- Main component ---\n// @vue/component\n\nexport var BSkeletonIcon = /*#__PURE__*/Vue.extend({\n name: NAME_SKELETON_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props;\n var icon = props.icon,\n animation = props.animation;\n var $icon = h(BIcon, {\n staticClass: 'b-skeleton-icon',\n props: _objectSpread(_objectSpread({}, props.iconProps), {}, {\n icon: icon\n })\n });\n return h('div', {\n staticClass: 'b-skeleton-icon-wrapper position-relative d-inline-block overflow-hidden',\n class: _defineProperty({}, \"b-skeleton-animate-\".concat(animation), animation)\n }, [$icon]);\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 { BTable } from './table';\nimport { BTableLite } from './table-lite';\nimport { BTableSimple } from './table-simple';\nimport { BTbody } from './tbody';\nimport { BThead } from './thead';\nimport { BTfoot } from './tfoot';\nimport { BTr } from './tr';\nimport { BTd } from './td';\nimport { BTh } from './th';\nimport { pluginFactory } from '../../utils/plugins';\nvar TableLitePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTableLite: BTableLite\n }\n});\nvar TableSimplePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTableSimple: BTableSimple,\n BTbody: BTbody,\n BThead: BThead,\n BTfoot: BTfoot,\n BTr: BTr,\n BTd: BTd,\n BTh: BTh\n }\n});\nvar TablePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTable: BTable\n },\n plugins: {\n TableLitePlugin: TableLitePlugin,\n TableSimplePlugin: TableSimplePlugin\n }\n});\nexport { // Plugins\nTablePlugin, TableLitePlugin, TableSimplePlugin // Table components\n, BTable, BTableLite, BTableSimple // Helper components\n, BTbody, BThead, BTfoot, BTr, BTd, BTh };","import { Vue } from '../../../vue';\nimport { NAME_POPOVER_TEMPLATE } from '../../../constants/components';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { BVTooltipTemplate } from '../../tooltip/helpers/bv-tooltip-template'; // @vue/component\n\nexport var BVPopoverTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_TEMPLATE,\n extends: BVTooltipTemplate,\n computed: {\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title,\n content = this.content; // Title and content could be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title;\n var $content = isFunction(content) ? content({}) : content; // Directive usage only\n\n var titleDomProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n var contentDomProps = this.html && !isFunction(content) ? {\n innerHTML: content\n } : {};\n return h('div', {\n staticClass: 'popover b-popover',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), isUndefinedOrNull($title) || $title === '' ?\n /* istanbul ignore next */\n h() : h('h3', {\n staticClass: 'popover-header',\n domProps: titleDomProps\n }, [$title]), isUndefinedOrNull($content) || $content === '' ?\n /* istanbul ignore next */\n h() : h('div', {\n staticClass: 'popover-body',\n domProps: contentDomProps\n }, [$content])]);\n }\n }\n});","// Popover \"Class\" (Built as a renderless Vue instance)\n// Inherits from BVTooltip\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { Vue } from '../../../vue';\nimport { NAME_POPOVER_HELPER } from '../../../constants/components';\nimport { BVTooltip } from '../../tooltip/helpers/bv-tooltip';\nimport { BVPopoverTemplate } from './bv-popover-template'; // @vue/component\n\nexport var BVPopover = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_HELPER,\n extends: BVTooltip,\n computed: {\n // Overwrites BVTooltip\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n getTemplate: function getTemplate() {\n // Overwrites BVTooltip\n return BVPopoverTemplate;\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 { 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});","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 { NAME_SKELETON_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BAspect } from '../aspect';\nimport { BSkeleton } from './skeleton'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animation: makeProp(PROP_TYPE_STRING),\n aspect: makeProp(PROP_TYPE_STRING, '16:9'),\n cardImg: makeProp(PROP_TYPE_STRING),\n height: makeProp(PROP_TYPE_STRING),\n noAspect: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING),\n width: makeProp(PROP_TYPE_STRING)\n}, NAME_SKELETON_IMG); // --- Main component ---\n// @vue/component\n\nexport var BSkeletonImg = /*#__PURE__*/Vue.extend({\n name: NAME_SKELETON_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props;\n var aspect = props.aspect,\n width = props.width,\n height = props.height,\n animation = props.animation,\n variant = props.variant,\n cardImg = props.cardImg;\n var $img = h(BSkeleton, {\n props: {\n type: 'img',\n width: width,\n height: height,\n animation: animation,\n variant: variant\n },\n class: _defineProperty({}, \"card-img-\".concat(cardImg), cardImg)\n });\n return props.noAspect ? $img : h(BAspect, {\n props: {\n aspect: aspect\n }\n }, [$img]);\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_NAV } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_PAGE_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptBlur, requestAF } from '../../utils/dom';\nimport { isArray, isUndefined, isObject } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { computeHref, parseQuery } from '../../utils/router';\nimport { toString } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { paginationMixin, props as paginationProps } from '../../mixins/pagination';\nimport { props as BLinkProps } from '../link/link'; // --- Helper methods ---\n// Sanitize the provided number of pages (converting to a number)\n\nexport var sanitizeNumberOfPages = function sanitizeNumberOfPages(value) {\n return mathMax(toInteger(value, 0), 1);\n}; // --- Props ---\n\nvar _linkProps = omit(BLinkProps, ['event', 'routerTag']);\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, paginationProps), _linkProps), {}, {\n baseUrl: makeProp(PROP_TYPE_STRING, '/'),\n linkGen: makeProp(PROP_TYPE_FUNCTION),\n // Disable auto page number detection if `true`\n noPageDetect: makeProp(PROP_TYPE_BOOLEAN, false),\n numberOfPages: makeProp(PROP_TYPE_NUMBER_STRING, 1,\n /* istanbul ignore next */\n function (value) {\n var number = toInteger(value, 0);\n\n if (number < 1) {\n warn('Prop \"number-of-pages\" must be a number greater than \"0\"', NAME_PAGINATION_NAV);\n return false;\n }\n\n return true;\n }),\n pageGen: makeProp(PROP_TYPE_FUNCTION),\n // Optional array of page links\n pages: makeProp(PROP_TYPE_ARRAY),\n useRouter: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_PAGINATION_NAV); // --- Main component ---\n// @vue/component\n\nexport var BPaginationNav = /*#__PURE__*/Vue.extend({\n name: NAME_PAGINATION_NAV,\n // The render function is brought in via the pagination mixin\n mixins: [paginationMixin],\n props: props,\n computed: {\n // Used by render function to trigger wrapping in '