{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack:///./src/views/Prices/Prices.vue?9e74","webpack:///src/views/Prices/Prices.vue","webpack:///./src/views/Prices/Prices.vue?b911","webpack:///./src/views/Prices/Prices.vue?7c69","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/pagination.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:///./src/views/Prices/Prices.vue?df96","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./src/@core/mixins/ui/transition.js","webpack:///./src/views/Prices/Prices.vue?87b2","webpack:///./node_modules/vue-ripple-directive/src/ripple.js"],"names":["stringifyObjectValues","value","sort","map","k","filter","v","join","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","_s","$t","$store","state","appConfig","isRTL","perPageOptions","model","callback","$$v","perPage","expression","searchTerm","on","search","$event","updatePrices","ref","style","height","trHeight","preventDefault","repeateAgain","filteredPrices","fields","currentPage","scopedSlots","_u","key","fn","item","vade0name","id","numeral","changedItem","$set","vade1name","vade1","vade2name","vade2","vade3name","vade3","vade4name","vade4","dataMeta","from","to","of","length","proxy","staticRenderFns","components","BForm","BButton","BFormInput","BCard","BTable","vSelect","BRow","BCol","BPagination","directives","Ripple","mixins","data","prices","changedItems","computed","localItemsCount","methods","undefined","val","index","push","component","props","inline","novalidate","validated","extend","name","functional","h","_ref","children","class","module","exports","Object","is","x","y","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","target","i","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","sanitizePerPage","sanitizeTotalRows","ariaControls","totalRows","numberOfPages","result","pageSizeNumberOfPages","watch","newValue","oldValue","localNumberOfPages","created","_this","$nextTick","onClick","event","pageNumber","_this2","clickEvt","cancelable","vueTarget","$emit","type","defaultPrevented","$el","contains","focusCurrent","makePage","pageNum","linkProps","bottomRowMixin","renderBottomRow","computedFields","stacked","tbodyTrClass","tbodyTrAttr","hasNormalizedSlot","normalizeSlot","columns","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","stopIfBusy","renderBusy","colspan","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","domProps","html","role","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","test","iter","Symbol","iterator","isArray","len","arr2","DEBOUNCE_DEPRECATED_MSG","concat","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","_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","listenOnRoot","refresh","$off","$on","clearSelected","_providerSetLocal","emitOnRoot","context","then","e","message","_props","_watch","SELECT_MODES","noSelectOnClick","selectMode","selectable","selectedVariant","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","some","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","equal","setSelectionHandlers","_selectedRows","idx","beforeMount","selectRow","isRowSelected","selectedLastClicked","unselectRow","selectAllRows","selectableRowClasses","variant","dark","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","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","res","done","rx","S","previousLastIndex","stableSort","compareFn","bind","_makeModelMixin","defaultValue","validator","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","makePageArray","startNumber","_","number","classes","sanitizeLimit","limit","sanitizeCurrentPage","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","localLimit","btnSize","alignment","styleClass","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","lastPageNumber","pageList","_this$paginationParam","pages","_i","_i2","_i3","handleKeyNav","isNav","propagation","focusFirst","focusPrev","focusLast","focusNext","getButtons","btn","find","el","_this4","reverse","_this5","buttons","indexOf","_this6","_this7","pageNumbers","p","_this$paginationParam2","fill","$buttons","isActivePage","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","isDisabled","scope","$btnContent","$inner","tabindex","keydown","makeEllipsis","isLast","makePageButton","active","tabIndex","btnContent","content","$firstPageBtn","offset","$lastPageBtn","$pagination","$","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","0","1","max","Math","min","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","proto","forced","splice","start","deleteCount","insertCount","actualDeleteCount","A","actualStart","argumentsLength","heightTransition","trAddHeight","heightValue","Number","substring","trTrimHeight","trSetHeight","binding","transition","setProps","modifiers","addEventListener","rippler","bg","color","zIndex","targetBorder","parseInt","getComputedStyle","rect","getBoundingClientRect","left","top","width","offsetWidth","offsetHeight","dx","clientX","dy","clientY","maxX","maxY","window","radius","sqrt","border","ripple","document","createElement","rippleContainer","className","marginTop","marginLeft","borderRadius","pointerEvents","position","backgroundColor","overflow","storedTargetPosition","clearRipple","parentNode","removeChild","removeEventListener","clearPosition","childNodes","appendChild","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","direction","isNaN"],"mappings":"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","file":"js/chunk-66ea8723.85b9362a.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};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('div',{staticClass:\"m-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center justify-content-start mb-1 mb-md-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"eachPage\")))]),_c('v-select',{staticClass:\"per-page-selector d-inline-block mx-50\",attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.perPageOptions,\"clearable\":false},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}}),_c('label',[_vm._v(\" \"+_vm._s(_vm.$t(\"piece\"))+\" \")])],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('div',{staticClass:\"d-flex align-items-center justify-content-end\"},[_c('b-form-input',{staticClass:\"d-inline-block mr-1\",attrs:{\"placeholder\":_vm.$t('search'),\"data\":_vm.searchTerm},on:{\"input\":_vm.search}}),_c('b-button',{attrs:{\"variant\":\"success\"},on:{\"click\":function($event){return _vm.updatePrices()}}},[_vm._v(_vm._s(_vm.$t(\"update\")))])],1)])],1)],1),_c('div',[_c('b-form',{ref:\"form\",staticClass:\"repeater-form\",style:({ height: _vm.trHeight }),on:{\"submit\":function($event){$event.preventDefault();return _vm.repeateAgain($event)}}},[(true)?_c('b-table',{ref:\"refPricesTable\",staticClass:\"editable-table\",attrs:{\"items\":_vm.filteredPrices,\"striped\":\"\",\"small\":true,\"fields\":_vm.fields,\"responsive\":\"\",\"primary-key\":\"ikey\",\"bordered\":\"\",\"show-empty\":\"\",\"empty-text\":_vm.$t('noRecords'),\"per-page\":_vm.perPage,\"current-page\":_vm.currentPage},scopedSlots:_vm._u([{key:\"cell(price)\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"editable text-right\"},[_c('b-form-input',{staticClass:\"text-right\",attrs:{\"id\":item.vade0name + '-' + item.id,\"type\":\"number\",\"options\":{\n numeral: true,\n }},on:{\"input\":function($event){return _vm.changedItem(item)}},model:{value:(item.price),callback:function ($$v) {_vm.$set(item, \"price\", $$v)},expression:\"item.price\"}})],1)]}},{key:\"cell(vade1)\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"editable text-right\"},[_c('b-form-input',{staticClass:\"text-right\",attrs:{\"id\":item.vade1name + '-' + item.id,\"value\":item.vade1,\"type\":\"number\"},on:{\"input\":function($event){return _vm.changedItem(item)}},model:{value:(item.vade1),callback:function ($$v) {_vm.$set(item, \"vade1\", $$v)},expression:\"item.vade1\"}})],1)]}},{key:\"cell(vade2)\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"editable text-right\"},[_c('b-form-input',{staticClass:\"text-right\",attrs:{\"id\":item.vade2name + '-' + item.id,\"value\":item.vade2,\"type\":\"number\"},on:{\"input\":function($event){return _vm.changedItem(item)}},model:{value:(item.vade2),callback:function ($$v) {_vm.$set(item, \"vade2\", $$v)},expression:\"item.vade2\"}})],1)]}},{key:\"cell(vade3)\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"editable text-right\"},[_c('b-form-input',{staticClass:\"text-right\",attrs:{\"id\":item.vade3name + '-' + item.id,\"value\":item.vade3,\"type\":\"number\"},on:{\"input\":function($event){return _vm.changedItem(item)}},model:{value:(item.vade3),callback:function ($$v) {_vm.$set(item, \"vade3\", $$v)},expression:\"item.vade3\"}})],1)]}},{key:\"cell(vade4)\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"editable text-right\"},[_c('b-form-input',{staticClass:\"text-right\",attrs:{\"id\":item.vade4name + '-' + item.id,\"value\":item.vade4,\"type\":\"number\"},on:{\"input\":function($event){return _vm.changedItem(item)}},model:{value:(item.vade4),callback:function ($$v) {_vm.$set(item, \"vade4\", $$v)},expression:\"item.vade4\"}})],1)]}}],null,false,1054445864)}):_vm._e(),_c('div',{staticClass:\"mx-2 mb-2\"},[_c('b-row',[_c('b-col',{staticClass:\"\\n d-flex\\n align-items-center\\n justify-content-center justify-content-sm-start\\n \",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$t(\"showing\"))+\" \"+_vm._s(_vm.dataMeta.from)+\" \"+_vm._s(_vm.$t(\"to\"))+\" \"+_vm._s(_vm.dataMeta.to)+\" \"+_vm._s(_vm.$t(\"of\"))+\" \"+_vm._s(_vm.dataMeta.of)+\" \"+_vm._s(_vm.$t(\"entries\"))+\" \")])]),_c('b-col',{staticClass:\"\\n d-flex\\n align-items-center\\n justify-content-center justify-content-sm-end\\n \",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('b-pagination',{staticClass:\"mb-0 mt-1 mt-sm-0\",attrs:{\"total-rows\":_vm.filteredPrices.length,\"per-page\":_vm.perPage,\"first-number\":\"\",\"last-number\":\"\",\"prev-class\":\"prev-item\",\"next-class\":\"next-item\"},scopedSlots:_vm._u([{key:\"prev-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronLeftIcon\",\"size\":\"18\"}})]},proxy:true},{key:\"next-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronRightIcon\",\"size\":\"18\"}})]},proxy:true}]),model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Prices.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Prices.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Prices.vue?vue&type=template&id=39697aa1&scoped=true&\"\nimport script from \"./Prices.vue?vue&type=script&lang=js&\"\nexport * from \"./Prices.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Prices.vue?vue&type=style&index=0&id=39697aa1&lang=scss&scoped=true&\"\nimport style1 from \"./Prices.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39697aa1\",\n null\n \n)\n\nexport default component.exports","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\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});","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});","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Prices.vue?vue&type=style&index=1&lang=scss&\"","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","var _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 `