{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/pagination.js"],"names":["stringifyObjectValues","value","sort","map","k","filter","v","join","stableSort","array","compareFn","a","index","b","this","bind","e","_watch","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","_makeModelMixin","type","defaultValue","validator","modelMixin","mixin","modelProps","props","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","makePageArray","startNumber","numberOfPages","_","number","classes","sanitizeLimit","limit","sanitizeCurrentPage","val","page","onSpaceKey","keyCode","immediatePropagation","currentTarget","click","align","ariaLabel","disabled","ellipsisClass","ellipsisText","firstClass","firstNumber","firstText","hideEllipsis","hideGotoEndButtons","labelFirstPage","labelLastPage","labelNextPage","labelPage","labelPrevPage","lastClass","lastNumber","lastText","nextClass","nextText","pageClass","pills","prevClass","prevText","size","paginationMixin","extend","mixins","data","currentPage","localNumberOfPages","localLimit","computed","btnSize","concat","alignment","styleClass","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","lastPageNumber","pageList","_this$paginationParam","pages","idx","_i","_i2","_i3","watch","newValue","oldValue","$emit","created","_this","$nextTick","methods","handleKeyNav","shiftKey","isNav","propagation","focusFirst","focusPrev","focusLast","focusNext","getButtons","$el","btn","focusCurrent","_this2","find","el","_this3","_this4","reverse","_this5","buttons","indexOf","_this6","render","h","_this7","pageNumbers","p","_this$paginationParam2","fill","$buttons","isActivePage","pageNumber","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","isDisabled","scope","$btnContent","normalizeSlot","$inner","staticClass","class","linkProps","attrs","role","tabindex","ariaControls","on","onClick","keydown","makeEllipsis","isLast","makePageButton","active","tabIndex","btnContent","makePage","content","$firstPageBtn","offset","$lastPageBtn","$pagination","ref"],"mappings":"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","file":"js/chunk-5508c6df.03209f05.js","sourcesContent":["import { isDate, isObject, isUndefinedOrNull } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string'; // Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Strings are returned as-is\n// Numbers get converted to string\n// `null` and `undefined` values are filtered out\n// Dates are converted to their native string format\n\nexport var stringifyObjectValues = function stringifyObjectValues(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n } // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n\n\n if (isObject(value) && !isDate(value)) {\n return keys(value).sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n .map(function (k) {\n return stringifyObjectValues(value[k]);\n }).filter(function (v) {\n return !!v;\n }) // Ignore empty strings\n .join(' ');\n }\n\n return toString(value);\n};","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","var _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 { NAME_PAGINATION } from '../constants/components';\nimport { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_FUNCTION_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_ELLIPSIS_TEXT, SLOT_NAME_FIRST_TEXT, SLOT_NAME_LAST_TEXT, SLOT_NAME_NEXT_TEXT, SLOT_NAME_PAGE, SLOT_NAME_PREV_TEXT } from '../constants/slots';\nimport { createArray } from '../utils/array';\nimport { attemptFocus, getActiveElement, getAttr, isDisabled, isVisible, selectAll } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { isFunction, isNull } from '../utils/inspect';\nimport { mathFloor, mathMax, mathMin } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string';\nimport { warn } from '../utils/warn';\nimport { normalizeSlotMixin } from '../mixins/normalize-slot';\nimport { BLink } from '../components/link/link'; // Common props, computed, data, render function, and methods\n// for `` and ``\n// --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: null,\n\n /* istanbul ignore next */\n validator: function validator(value) {\n if (!isNull(value) && toInteger(value, 0) < 1) {\n warn('\"v-model\" value must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // Threshold of limit size when we start/stop showing ellipsis\n\nvar ELLIPSIS_THRESHOLD = 3; // Default # of buttons limit\n\nvar DEFAULT_LIMIT = 5; // --- Helper methods ---\n// Make an array of N to N+X\n\nvar makePageArray = function makePageArray(startNumber, numberOfPages) {\n return createArray(numberOfPages, function (_, i) {\n return {\n number: startNumber + i,\n classes: null\n };\n });\n}; // Sanitize the provided limit value (converting to a number)\n\n\nvar sanitizeLimit = function sanitizeLimit(value) {\n var limit = toInteger(value) || 1;\n return limit < 1 ? DEFAULT_LIMIT : limit;\n}; // Sanitize the provided current page number (converting to a number)\n\n\nvar sanitizeCurrentPage = function sanitizeCurrentPage(val, numberOfPages) {\n var page = toInteger(val) || 1;\n return page > numberOfPages ? numberOfPages : page < 1 ? 1 : page;\n}; // Links don't normally respond to SPACE, so we add that\n// functionality via this handler\n\n\nvar onSpaceKey = function onSpaceKey(event) {\n if (event.keyCode === CODE_SPACE) {\n // Stop page from scrolling\n stopEvent(event, {\n immediatePropagation: true\n }); // Trigger the click event on the link\n\n event.currentTarget.click();\n return false;\n }\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n align: makeProp(PROP_TYPE_STRING, 'left'),\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Pagination'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n ellipsisClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n ellipsisText: makeProp(PROP_TYPE_STRING, \"\\u2026\"),\n // '…'\n firstClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n firstNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n firstText: makeProp(PROP_TYPE_STRING, \"\\xAB\"),\n // '«'\n hideEllipsis: makeProp(PROP_TYPE_BOOLEAN, false),\n hideGotoEndButtons: makeProp(PROP_TYPE_BOOLEAN, false),\n labelFirstPage: makeProp(PROP_TYPE_STRING, 'Go to first page'),\n labelLastPage: makeProp(PROP_TYPE_STRING, 'Go to last page'),\n labelNextPage: makeProp(PROP_TYPE_STRING, 'Go to next page'),\n labelPage: makeProp(PROP_TYPE_FUNCTION_STRING, 'Go to page'),\n labelPrevPage: makeProp(PROP_TYPE_STRING, 'Go to previous page'),\n lastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n lastNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n lastText: makeProp(PROP_TYPE_STRING, \"\\xBB\"),\n // '»'\n limit: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_LIMIT,\n /* istanbul ignore next */\n function (value) {\n if (toInteger(value, 0) < 1) {\n warn('Prop \"limit\" must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }),\n nextClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n nextText: makeProp(PROP_TYPE_STRING, \"\\u203A\"),\n // '›'\n pageClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n prevClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n prevText: makeProp(PROP_TYPE_STRING, \"\\u2039\"),\n // '‹'\n size: makeProp(PROP_TYPE_STRING)\n})), 'pagination'); // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n // `-1` signifies no page initially selected\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n currentPage = currentPage > 0 ? currentPage : -1;\n return {\n currentPage: currentPage,\n localNumberOfPages: 1,\n localLimit: DEFAULT_LIMIT\n };\n },\n computed: {\n btnSize: function btnSize() {\n var size = this.size;\n return size ? \"pagination-\".concat(size) : '';\n },\n alignment: function alignment() {\n var align = this.align;\n\n if (align === 'center') {\n return 'justify-content-center';\n } else if (align === 'end' || align === 'right') {\n return 'justify-content-end';\n } else if (align === 'fill') {\n // The page-items will also have 'flex-fill' added\n // We add text centering to make the button appearance better in fill mode\n return 'text-center';\n }\n\n return '';\n },\n styleClass: function styleClass() {\n return this.pills ? 'b-pagination-pills' : '';\n },\n computedCurrentPage: function computedCurrentPage() {\n return sanitizeCurrentPage(this.currentPage, this.localNumberOfPages);\n },\n paginationParams: function paginationParams() {\n // Determine if we should show the the ellipsis\n var limit = this.localLimit,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage,\n hideEllipsis = this.hideEllipsis,\n firstNumber = this.firstNumber,\n lastNumber = this.lastNumber;\n var showFirstDots = false;\n var showLastDots = false;\n var numberOfLinks = limit;\n var startNumber = 1;\n\n if (numberOfPages <= limit) {\n // Special case: Less pages available than the limit of displayed pages\n numberOfLinks = numberOfPages;\n } else if (currentPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || lastNumber) {\n showLastDots = true;\n numberOfLinks = limit - (firstNumber ? 0 : 1);\n }\n\n numberOfLinks = mathMin(numberOfLinks, limit);\n } else if (numberOfPages - currentPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || firstNumber) {\n showFirstDots = true;\n numberOfLinks = limit - (lastNumber ? 0 : 1);\n }\n\n startNumber = numberOfPages - numberOfLinks + 1;\n } else {\n // We are somewhere in the middle of the page list\n if (limit > ELLIPSIS_THRESHOLD) {\n numberOfLinks = limit - (hideEllipsis ? 0 : 2);\n showFirstDots = !!(!hideEllipsis || firstNumber);\n showLastDots = !!(!hideEllipsis || lastNumber);\n }\n\n startNumber = currentPage - mathFloor(numberOfLinks / 2);\n } // Sanity checks\n\n /* istanbul ignore if */\n\n\n if (startNumber < 1) {\n startNumber = 1;\n showFirstDots = false;\n } else if (startNumber > numberOfPages - numberOfLinks) {\n startNumber = numberOfPages - numberOfLinks + 1;\n showLastDots = false;\n }\n\n if (showFirstDots && firstNumber && startNumber < 4) {\n numberOfLinks = numberOfLinks + 2;\n startNumber = 1;\n showFirstDots = false;\n }\n\n var lastPageNumber = startNumber + numberOfLinks - 1;\n\n if (showLastDots && lastNumber && lastPageNumber > numberOfPages - 3) {\n numberOfLinks = numberOfLinks + (lastPageNumber === numberOfPages - 2 ? 2 : 3);\n showLastDots = false;\n } // Special handling for lower limits (where ellipsis are never shown)\n\n\n if (limit <= ELLIPSIS_THRESHOLD) {\n if (firstNumber && startNumber === 1) {\n numberOfLinks = mathMin(numberOfLinks + 1, numberOfPages, limit + 1);\n } else if (lastNumber && numberOfPages === startNumber + numberOfLinks - 1) {\n startNumber = mathMax(startNumber - 1, 1);\n numberOfLinks = mathMin(numberOfPages - startNumber + 1, numberOfPages, limit + 1);\n }\n }\n\n numberOfLinks = mathMin(numberOfLinks, numberOfPages - startNumber + 1);\n return {\n showFirstDots: showFirstDots,\n showLastDots: showLastDots,\n numberOfLinks: numberOfLinks,\n startNumber: startNumber\n };\n },\n pageList: function pageList() {\n // Generates the pageList array\n var _this$paginationParam = this.paginationParams,\n numberOfLinks = _this$paginationParam.numberOfLinks,\n startNumber = _this$paginationParam.startNumber;\n var currentPage = this.computedCurrentPage; // Generate list of page numbers\n\n var pages = makePageArray(startNumber, numberOfLinks); // We limit to a total of 3 page buttons on XS screens\n // So add classes to page links to hide them for XS breakpoint\n // Note: Ellipsis will also be hidden on XS screens\n // TODO: Make this visual limit configurable based on breakpoint(s)\n\n if (pages.length > 3) {\n var idx = currentPage - startNumber; // THe following is a bootstrap-vue custom utility class\n\n var classes = 'bv-d-xs-down-none';\n\n if (idx === 0) {\n // Keep leftmost 3 buttons visible when current page is first page\n for (var i = 3; i < pages.length; i++) {\n pages[i].classes = classes;\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible when current page is last page\n for (var _i = 0; _i < pages.length - 3; _i++) {\n pages[_i].classes = classes;\n }\n } else {\n // Hide all except current page, current page - 1 and current page + 1\n for (var _i2 = 0; _i2 < idx - 1; _i2++) {\n // hide some left button(s)\n pages[_i2].classes = classes;\n }\n\n for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {\n // hide some right button(s)\n pages[_i3].classes = classes;\n }\n }\n }\n\n return pages;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = sanitizeCurrentPage(newValue, this.localNumberOfPages);\n }\n }), _defineProperty(_watch, \"currentPage\", function currentPage(newValue, oldValue) {\n if (newValue !== oldValue) {\n // Emit `null` if no page selected\n this.$emit(MODEL_EVENT_NAME, newValue > 0 ? newValue : null);\n }\n }), _defineProperty(_watch, \"limit\", function limit(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localLimit = sanitizeLimit(newValue);\n }\n }), _watch),\n created: function created() {\n var _this = this;\n\n // Set our default values in data\n this.localLimit = sanitizeLimit(this.limit);\n this.$nextTick(function () {\n // Sanity check\n _this.currentPage = _this.currentPage > _this.localNumberOfPages ? _this.localNumberOfPages : _this.currentPage;\n });\n },\n methods: {\n handleKeyNav: function handleKeyNav(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n /* istanbul ignore if */\n\n if (this.isNav) {\n // We disable left/right keyboard navigation in ``\n return;\n }\n\n if (keyCode === CODE_LEFT || keyCode === CODE_UP) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusFirst() : this.focusPrev();\n } else if (keyCode === CODE_RIGHT || keyCode === CODE_DOWN) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusLast() : this.focusNext();\n }\n },\n getButtons: function getButtons() {\n // Return only buttons that are visible\n return selectAll('button.page-link, a.page-link', this.$el).filter(function (btn) {\n return isVisible(btn);\n });\n },\n focusCurrent: function focusCurrent() {\n var _this2 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this2.getButtons().find(function (el) {\n return toInteger(getAttr(el, 'aria-posinset'), 0) === _this2.computedCurrentPage;\n });\n\n if (!attemptFocus(btn)) {\n // Fallback if current page is not in button list\n _this2.focusFirst();\n }\n });\n },\n focusFirst: function focusFirst() {\n var _this3 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this3.getButtons().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusLast: function focusLast() {\n var _this4 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this4.getButtons().reverse().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusPrev: function focusPrev() {\n var _this5 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this5.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index > 0 && !isDisabled(buttons[index - 1])) {\n attemptFocus(buttons[index - 1]);\n }\n });\n },\n focusNext: function focusNext() {\n var _this6 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this6.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index < buttons.length - 1 && !isDisabled(buttons[index + 1])) {\n attemptFocus(buttons[index + 1]);\n }\n });\n }\n },\n render: function render(h) {\n var _this7 = this;\n\n var disabled = this.disabled,\n labelPage = this.labelPage,\n ariaLabel = this.ariaLabel,\n isNav = this.isNav,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage;\n var pageNumbers = this.pageList.map(function (p) {\n return p.number;\n });\n var _this$paginationParam2 = this.paginationParams,\n showFirstDots = _this$paginationParam2.showFirstDots,\n showLastDots = _this$paginationParam2.showLastDots;\n var fill = this.align === 'fill';\n var $buttons = []; // Helper function and flag\n\n var isActivePage = function isActivePage(pageNumber) {\n return pageNumber === currentPage;\n };\n\n var noCurrentPage = this.currentPage < 1; // Factory function for prev/next/first/last buttons\n\n var makeEndBtn = function makeEndBtn(linkTo, ariaLabel, btnSlot, btnText, btnClass, pageTest, key) {\n var isDisabled = disabled || isActivePage(pageTest) || noCurrentPage || linkTo < 1 || linkTo > numberOfPages;\n var pageNumber = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo;\n var scope = {\n disabled: isDisabled,\n page: pageNumber,\n index: pageNumber - 1\n };\n var $btnContent = _this7.normalizeSlot(btnSlot, scope) || toString(btnText) || h();\n var $inner = h(isDisabled ? 'span' : isNav ? BLink : 'button', {\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !isDisabled && fill\n },\n props: isDisabled || !isNav ? {} : _this7.linkProps(linkTo),\n attrs: {\n role: isNav ? null : 'menuitem',\n type: isNav || isDisabled ? null : 'button',\n tabindex: isDisabled || isNav ? null : '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-disabled': isDisabled ? 'true' : null\n },\n on: isDisabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, linkTo);\n },\n keydown: onSpaceKey\n }\n }, [$btnContent]);\n return h('li', {\n key: key,\n staticClass: 'page-item',\n class: [{\n disabled: isDisabled,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !isDisabled\n }, btnClass],\n attrs: {\n role: isNav ? null : 'presentation',\n 'aria-hidden': isDisabled ? 'true' : null\n }\n }, [$inner]);\n }; // Ellipsis factory\n\n\n var makeEllipsis = function makeEllipsis(isLast) {\n return h('li', {\n staticClass: 'page-item',\n class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : '', _this7.ellipsisClass],\n attrs: {\n role: 'separator'\n },\n key: \"ellipsis-\".concat(isLast ? 'last' : 'first')\n }, [h('span', {\n staticClass: 'page-link'\n }, [_this7.normalizeSlot(SLOT_NAME_ELLIPSIS_TEXT) || toString(_this7.ellipsisText) || h()])]);\n }; // Page button factory\n\n\n var makePageButton = function makePageButton(page, idx) {\n var pageNumber = page.number;\n var active = isActivePage(pageNumber) && !noCurrentPage; // Active page will have tabindex of 0, or if no current page and first page button\n\n var tabIndex = disabled ? null : active || noCurrentPage && idx === 0 ? '0' : '-1';\n var attrs = {\n role: isNav ? null : 'menuitemradio',\n type: isNav || disabled ? null : 'button',\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-label': hasPropFunction(labelPage) ?\n /* istanbul ignore next */\n labelPage(pageNumber) : \"\".concat(isFunction(labelPage) ? labelPage() : labelPage, \" \").concat(pageNumber),\n 'aria-checked': isNav ? null : active ? 'true' : 'false',\n 'aria-current': isNav && active ? 'page' : null,\n 'aria-posinset': isNav ? null : pageNumber,\n 'aria-setsize': isNav ? null : numberOfPages,\n // ARIA \"roving tabindex\" method (except in `isNav` mode)\n tabindex: isNav ? null : tabIndex\n };\n var btnContent = toString(_this7.makePage(pageNumber));\n var scope = {\n page: pageNumber,\n index: pageNumber - 1,\n content: btnContent,\n active: active,\n disabled: disabled\n };\n var $inner = h(disabled ? 'span' : isNav ? BLink : 'button', {\n props: disabled || !isNav ? {} : _this7.linkProps(pageNumber),\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !disabled && fill\n },\n attrs: attrs,\n on: disabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, pageNumber);\n },\n keydown: onSpaceKey\n }\n }, [_this7.normalizeSlot(SLOT_NAME_PAGE, scope) || btnContent]);\n return h('li', {\n staticClass: 'page-item',\n class: [{\n disabled: disabled,\n active: active,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !disabled\n }, page.classes, _this7.pageClass],\n attrs: {\n role: isNav ? null : 'presentation'\n },\n key: \"page-\".concat(pageNumber)\n }, [$inner]);\n }; // Goto first page button\n // Don't render button when `hideGotoEndButtons` or `firstNumber` is set\n\n\n var $firstPageBtn = h();\n\n if (!this.firstNumber && !this.hideGotoEndButtons) {\n $firstPageBtn = makeEndBtn(1, this.labelFirstPage, SLOT_NAME_FIRST_TEXT, this.firstText, this.firstClass, 1, 'pagination-goto-first');\n }\n\n $buttons.push($firstPageBtn); // Goto previous page button\n\n $buttons.push(makeEndBtn(currentPage - 1, this.labelPrevPage, SLOT_NAME_PREV_TEXT, this.prevText, this.prevClass, 1, 'pagination-goto-prev')); // Show first (1) button?\n\n $buttons.push(this.firstNumber && pageNumbers[0] !== 1 ? makePageButton({\n number: 1\n }, 0) : h()); // First ellipsis\n\n $buttons.push(showFirstDots ? makeEllipsis(false) : h()); // Individual page links\n\n this.pageList.forEach(function (page, idx) {\n var offset = showFirstDots && _this7.firstNumber && pageNumbers[0] !== 1 ? 1 : 0;\n $buttons.push(makePageButton(page, idx + offset));\n }); // Last ellipsis\n\n $buttons.push(showLastDots ? makeEllipsis(true) : h()); // Show last page button?\n\n $buttons.push(this.lastNumber && pageNumbers[pageNumbers.length - 1] !== numberOfPages ? makePageButton({\n number: numberOfPages\n }, -1) : h()); // Goto next page button\n\n $buttons.push(makeEndBtn(currentPage + 1, this.labelNextPage, SLOT_NAME_NEXT_TEXT, this.nextText, this.nextClass, numberOfPages, 'pagination-goto-next')); // Goto last page button\n // Don't render button when `hideGotoEndButtons` or `lastNumber` is set\n\n var $lastPageBtn = h();\n\n if (!this.lastNumber && !this.hideGotoEndButtons) {\n $lastPageBtn = makeEndBtn(numberOfPages, this.labelLastPage, SLOT_NAME_LAST_TEXT, this.lastText, this.lastClass, numberOfPages, 'pagination-goto-last');\n }\n\n $buttons.push($lastPageBtn); // Assemble the pagination buttons\n\n var $pagination = h('ul', {\n staticClass: 'pagination',\n class: ['b-pagination', this.btnSize, this.alignment, this.styleClass],\n attrs: {\n role: isNav ? null : 'menubar',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-label': isNav ? null : ariaLabel || null\n },\n // We disable keyboard left/right nav when ``\n on: isNav ? {} : {\n keydown: this.handleKeyNav\n },\n ref: 'ul'\n }, $buttons); // If we are ``, wrap in `