{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./src/@core/utils/filter.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./src/@core/components/app-timeline/AppTimelineItem.vue?e565","webpack:///src/@core/components/app-timeline/AppTimelineItem.vue","webpack:///./src/@core/components/app-timeline/AppTimelineItem.vue?6f82","webpack:///./src/@core/components/app-timeline/AppTimelineItem.vue","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?3f90","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?d65c","webpack:///./src/@core/components/toastification/ToastificationContent.vue","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-bottom-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-busy.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-empty.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/sanitize-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/stringify-record-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-filtering.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-provider.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-selectable.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-sorting.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/default-sort-compare.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-top-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-caption.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./src/views/apps/invoice/invoice-list/InvoiceList.vue?f581","webpack:///./src/views/apps/user/userStoreModule.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/normalize-fields.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-items.js","webpack:///./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./src/@core/components/app-timeline/AppTimelineItem.vue?4eea","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./src/@core/components/app-timeline/AppTimeline.vue?8fdd","webpack:///./node_modules/bootstrap-vue/esm/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?923e","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack:///./src/views/apps/invoice/invoiceStoreModule.js","webpack:///./src/views/apps/invoice/invoice-list/InvoiceList.vue?8bef","webpack:///./src/views/apps/invoice/invoice-list/useInvoiceList.js","webpack:///src/views/apps/invoice/invoice-list/InvoiceList.vue","webpack:///./src/views/apps/invoice/invoice-list/InvoiceList.vue?ea76","webpack:///./src/views/apps/invoice/invoice-list/InvoiceList.vue","webpack:///./node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/col.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/tooltip.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./src/views/apps/user/users-list/useUsersList.js","webpack:///./src/views/apps/user/users-view/UsersView.vue?3606","webpack:///./src/views/apps/user/users-view/UserViewUserInfoCard.vue?1155","webpack:///src/views/apps/user/users-view/UserViewUserInfoCard.vue","webpack:///./src/views/apps/user/users-view/UserViewUserInfoCard.vue?c810","webpack:///./src/views/apps/user/users-view/UserViewUserInfoCard.vue","webpack:///./src/views/apps/user/users-view/UserViewUserPlanCard.vue?c432","webpack:///src/views/apps/user/users-view/UserViewUserPlanCard.vue","webpack:///./src/views/apps/user/users-view/UserViewUserPlanCard.vue?9868","webpack:///./src/views/apps/user/users-view/UserViewUserPlanCard.vue","webpack:///./src/views/apps/user/users-view/UserViewUserTimelineCard.vue?d3f5","webpack:///src/views/apps/user/users-view/UserViewUserTimelineCard.vue","webpack:///./src/views/apps/user/users-view/UserViewUserTimelineCard.vue?03e8","webpack:///./src/views/apps/user/users-view/UserViewUserTimelineCard.vue","webpack:///./src/views/apps/user/users-view/UserViewUserPermissionsCard.vue?551e","webpack:///src/views/apps/user/users-view/UserViewUserPermissionsCard.vue","webpack:///./src/views/apps/user/users-view/UserViewUserPermissionsCard.vue?15cc","webpack:///./src/views/apps/user/users-view/UserViewUserPermissionsCard.vue","webpack:///src/views/apps/user/users-view/UsersView.vue","webpack:///./src/views/apps/user/users-view/UsersView.vue?d83e","webpack:///./src/views/apps/user/users-view/UsersView.vue","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/@core/utils/utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./src/views/apps/invoice/invoice-list/InvoiceList.vue?fa47","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./src/@core/components/app-timeline/AppTimeline.vue?9d52","webpack:///src/@core/components/app-timeline/AppTimeline.vue","webpack:///./src/@core/components/app-timeline/AppTimeline.vue?1052","webpack:///./src/@core/components/app-timeline/AppTimeline.vue","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack:///./src/assets/images/icons/pdf.png"],"names":["formSelectionMixin","extend","computed","selectionStart","cache","get","this","$refs","input","set","val","selectionEnd","selectionDirection","methods","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","props","icon","stacked","BIcon","name","functional","render","h","_ref","data","parent","replace","concat","kFormatter","num","toFixed","title","replacer","str","toString","arr","split","capitalizedArray","word","capitalized","charAt","toUpperCase","slice","join","avatarText","nameArray","map","formatDate","formatting","month","day","year","Intl","DateTimeFormat","format","Date","formatDateToMonthShort","toTimeForCurrentDay","date","isToday","hour","minute","filterTags","toInteger","requireObjectCoercible","module","exports","repeat","count","String","result","n","Infinity","RangeError","_vm","_h","$createElement","_c","_self","_g","_b","staticClass","class","variant","fillBorder","$attrs","$listeners","attrs","_t","domProps","_s","time","subtitle","staticRenderFns","type","default","Boolean","component","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","cardImgProps","bind","imgSrc","required","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","footer","footerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","$content","overlay","$footer","hasFooterSlot","tag","_e","text","on","$event","$emit","hideClose","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","sanitizePerPage","sanitizeTotalRows","ariaControls","perPage","totalRows","BPagination","mixins","numberOfPages","pageSizeNumberOfPages","watch","newValue","oldValue","currentPage","localNumberOfPages","created","_this","$nextTick","onClick","event","pageNumber","_this2","clickEvt","cancelable","vueTarget","defaultPrevented","$el","contains","focusCurrent","makePage","pageNum","linkProps","footVariant","BTfoot","provide","bvTableRowGroup","inject","bvTable","inheritAttrs","isTfoot","isDark","dark","isStacked","isResponsive","isStickyHeader","hasStickyHeader","stickyHeader","tableVariant","tfootClasses","tfootAttrs","bvAttrs","role","bvListeners","normalizeSlot","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","bottomRowMixin","renderBottomRow","fields","computedFields","tbodyTrClass","tbodyTrAttr","hasNormalizedSlot","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","html","stringifyObjectValues","sort","k","v","row","ignoreFields","includeFields","fieldsObj","undefined","formattedRow","reduce","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","prototype","call","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","arr2","DEBOUNCE_DEPRECATED_MSG","filterDebounce","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","beforeDestroy","clearTimeout","fn","item","_this3","regExp","pattern","RegExp","lastIndex","computedFieldsObj","paginationMixin","localPaging","noProviderPaging","paginatedItems","sortedItems","math","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","apiUrl","noProviderSorting","providerMixin","providerTriggerContext","sortBy","sortDesc","localSortBy","localSortDesc","_providerUpdate","mounted","listenOnRoot","id","refresh","$off","$on","clearSelected","_providerSetLocal","emitOnRoot","context","then","e","message","_props","_watch","SELECT_MODES","noSelectOnClick","selectMode","selectable","selectedVariant","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","some","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","equal","setSelectionHandlers","_selectedRows","idx","beforeMount","selectRow","index","isRowSelected","selectedLastClicked","unselectRow","selectAllRows","selectableRowClasses","selectableRowAttrs","method","selectionHandler","selected","shiftKey","ctrlKey","metaKey","a","b","_ref$sortBy","_ref$formatter","_ref$locale","locale","_ref$localeOptions","localeOptions","_ref$nullLast","nullLast","aa","bb","localeCompare","MODEL_PROP_NAME_SORT_BY","MODEL_EVENT_NAME_SORT_BY","MODEL_PROP_NAME_SORT_DESC","MODEL_EVENT_NAME_SORT_DESC","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","SORT_DIRECTION_LAST","SORT_DIRECTIONS","labelSortAsc","labelSortClear","labelSortDesc","noFooterSorting","noLocalSorting","noSortReset","numeric","sortingMixin","localSorting","isSortable","f","sortable","sortCompareLocale","sortNullLast","sortCompare","sortCompareOptions","usage","sortByFormatted","getFieldFormatter","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortDirection","sortKey","sortTheadThClasses","sortIconLeft","sortTheadThAttrs","ariaSort","sortTheadThLabel","labelSorting","topRowMixin","renderTopRow","BTable","rightAlign","verticalAlign","BMedia","children","$children","$aside","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","defaultValue","getThValues","thValue","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","label","isRowHeader","formatted","stickyColumn","cellTag","cellVariant","tdClass","thAttr","tdAttr","stackedHeading","scope","unformatted","toggleDetails","detailsShowing","rowSelected","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","striped","primaryKey","rowShowDetails","hasRowClickHandler","$rows","detailsId","safeId","$tds","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableAttrs","userTrClasses","userTrAttrs","tabindex","mouseenter","mouseleave","ref","refInFor","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","getTbodyTrs","tbody","trs","tr","getTbodyTrIndex","el","tagName","indexOf","hasListener","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTbody","$busy","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","click","keydown","$tbody","$props","caption","captionHtml","captionMixin","captionId","renderCaption","$caption","hasCaptionSlot","classof","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ariaInvalid","autocomplete","debounce","lazy","lazyFormatter","number","placeholder","plaintext","readonly","trim","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","formatValue","force","updateValue","doUpdate","$input","onInput","composing","formattedValue","propagation","onChange","onBlur","focus","disabled","blur","TYPES","list","max","min","noWheel","step","BFormInput","localType","computedAttrs","form","computedAriaInvalid","computedListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","blank","blankColor","block","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","titleTag","BCardTitle","namespaced","state","getters","mutations","actions","fetchUsers","queryParams","Promise","resolve","reject","axios","params","response","catch","error","fetchUser","addUser","userData","post","user","origFields","sample","memo","itemsMixin","parseCountDown","show","parseShow","dismissLabel","dismissible","fade","BAlert","countDown","localShow","clearCountDownInterval","$_countDownTimeout","dismiss","$alert","$dismissButton","noFade","bodyClass","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","footerClass","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","EVENT_FILTER","BMediaAside","BMediaBody","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","headVariant","renderTfoot","renderThead","stableSort","compareFn","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","clickOutMixin","listenForClickOut","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","isClickOut","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","selector","els","boundary","dropleft","dropright","dropup","noFlip","offset","popperOpts","dropdownMixin","bvDropdown","bvNavbar","visible","visibleChangePrevented","inNavbar","toggler","toggle","directionClass","boundaryClass","eventName","bvEvent","menu","relatedTarget","componentId","emitEvent","focusToggler","showMenu","hideMenu","$_popper","$_hideTimeout","whileOpenListen","destroyPopper","clearHideTimeout","createPopper","focusMenu","element","getPopperConfig","destroy","updatePopper","scheduleUpdate","_unused","placement","popperConfig","modifiers","flip","enabled","boundariesElement","preventOverflow","isOpen","$root","rootCloseListener","vm","hide","refocus","$once","_event","onMousedown","onKeydown","onEsc","focusNext","onSplitClick","hideHandler","up","_this4","getItems","focusItem","find","_this5","linkClass","BDropdownItem","closeDropdown","active","style","fetchInvoices","fetchInvoice","fetchClients","_v","$store","appConfig","isRTL","perPageOptions","model","callback","$$v","expression","searchQuery","statusOptions","_u","statusFilter","tableColumns","isSortDirDesc","proxy","resolveInvoiceStatusVariantAndIcon","invoiceStatus","balance","dueDate","avatar","client","resolveClientAvatarVariant","companyEmail","$router","dataMeta","to","of","totalInvoices","useInvoicesList","toast","useToast","refInvoiceListTable","localItemsCount","refetchData","store","dispatch","q","page","status","invoices","total","ToastificationContent","BRow","BCol","BButton","BAvatar","BLink","BBadge","BDropdown","BTooltip","vSelect","setup","validator","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","makePageArray","startNumber","_","classes","sanitizeLimit","limit","sanitizeCurrentPage","onSpaceKey","immediatePropagation","currentTarget","ariaLabel","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","focusFirst","focusPrev","focusLast","getButtons","btn","reverse","buttons","_this6","_this7","pageNumbers","p","_this$paginationParam2","fill","$buttons","isActivePage","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","isDisabled","$btnContent","$inner","makeEllipsis","isLast","makePageButton","btnContent","content","$firstPageBtn","$lastPageBtn","$pagination","plain","formCustomMixin","custom","formSizeMixin","TABLE_TAG_NAMES","filterEvent","labelFor","ALIGN_SELF_VALUES","computeBreakpoint","breakpoint","className","computeBreakpointClass","breakpointPropMap","generateProps","breakpoints","breakpointCol","breakpointOffset","breakpointOrder","col","order","alignSelf","cols","_classList$push","classList","_keys","c","hasColClasses","_makePropsConfigurabl","MODEL_PROP_NAME_ENABLED","MODEL_EVENT_NAME_ENABLED","MODEL_PROP_NAME_SHOW","MODEL_EVENT_NAME_SHOW","boundaryPadding","container","customClass","delay","localTitle","localContent","templateData","interactive","noninteractive","templateTitleContent","$_toolpop","forceHide","doDisable","doEnable","updateData","updateContent","updated","doOpen","doClose","$destroy","Component","getComponent","scopeId","$toolpop","_scopeId","onShow","onShown","onHide","onHidden","onDisabled","onEnabled","setTitle","setContent","disable","enable","$","thisNumberValue","fails","nativeToFixed","floor","Math","pow","x","acc","log","x2","FORCED","proto","forced","fractionDigits","z","j","fractDigits","sign","multiply","c2","divide","dataToString","s","t","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","useUsersList","refUserListTable","totalUsers","roleFilter","planFilter","plan","users","resolveUserRoleVariant","resolveUserRoleIcon","resolveUserStatusVariant","fullName","email","username","country","contact","directives","rawName","Ripple","AppTimeline","AppTimelineItem","permissionsData","UserViewUserInfoCard","UserViewUserPlanCard","UserViewUserTimelineCard","UserViewUserPermissionsCard","InvoiceList","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","isStackedAlways","hasHeadClickListener","makeCell","labelHtml","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","BFormCheckbox","bvGroup","isChecked","checked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","_typeof","isObject","today","getDate","getMonth","getFullYear","isDynamicRouteActive","route","router","resolvedRoute","path","currentRoute","useRouter","getCurrentInstance","reactive","$route","r","toRefs","textSelectionActive","sel","containsNode","_methods","ariaLabelledby","button","buttonVariant","inline","formRadioCheckMixin","hasFocus","isBtnMode","isPlain","isCustom","isSwitch","switches","switch","isInline","isRequired","computedName","groupName","computedForm","computedSize","computedState","computedButtonVariant","buttonClasses","handleFocus","$button","$label","for","formStateMixin","colgroupMixin","renderColgroup","$colgroup","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleClass","toggleTag","toggleText","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","$split","btnProps","href","$toggle","mousedown","$menu","SELECTOR","autofocus","formControlMixin","handleAutofocus","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","buttonType","square","bvAvatarGroup","localSrc","computedVariant","computedRounded","fontStyle","fontSize","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","onImgError","_class2","link","$badge","hasBadgeSlot","badgeText","componentData","pill"],"mappings":"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","file":"js/chunk-3097cd52.216aadee.js","sourcesContent":["import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../vue';\nimport { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return null;\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n icon: makeProp(PROP_TYPE_STRING),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n icon: null\n })\n }));\n }\n});","import { isToday } from './utils'\n\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\n\nexport const title = (value, replacer = ' ') => {\n if (!value) return ''\n const str = value.toString()\n\n const arr = str.split(replacer)\n const capitalizedArray = []\n arr.forEach(word => {\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\n capitalizedArray.push(capitalized)\n })\n return capitalizedArray.join(' ')\n}\n\nexport const avatarText = value => {\n if (!value) return ''\n const nameArray = value.split(' ')\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\n}\n\n/**\n * Format and return date in Humanize format\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\n * @param {String} value date to format\n * @param {Object} formatting Intl object to format with\n */\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\n if (!value) return value\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n/**\n * Return short human friendly month representation of date\n * Can also convert date to only time if date is of today (Better UX)\n * @param {String} value date to format\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\n */\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\n const date = new Date(value)\n let formatting = { month: 'short', day: 'numeric' }\n\n if (toTimeForCurrentDay && isToday(date)) {\n formatting = { hour: 'numeric', minute: 'numeric' }\n }\n\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n// Strip all the tags from markup and return plain text\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',_vm._g(_vm._b({staticClass:\"timeline-item\",class:[(\"timeline-variant-\" + _vm.variant), _vm.fillBorder ? (\"timeline-item-fill-border-\" + _vm.variant) : null]},'li',_vm.$attrs,false),_vm.$listeners),[(!_vm.icon)?_c('div',{staticClass:\"timeline-item-point\"}):_c('div',{staticClass:\"timeline-item-icon d-flex align-items-center justify-content-center rounded-circle\"},[_c('feather-icon',{attrs:{\"icon\":_vm.icon}})],1),_vm._t(\"default\",[_c('div',{staticClass:\"d-flex flex-sm-row flex-column flex-wrap justify-content-between mb-1 mb-sm-0\"},[_c('h6',{domProps:{\"textContent\":_vm._s(_vm.title)}}),_c('small',{staticClass:\"timeline-item-time text-nowrap text-muted\",domProps:{\"textContent\":_vm._s(_vm.time)}})]),_c('p',{staticClass:\"mb-0\",domProps:{\"textContent\":_vm._s(_vm.subtitle)}})])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./AppTimelineItem.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!./AppTimelineItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppTimelineItem.vue?vue&type=template&id=4bbac430&scoped=true&\"\nimport script from \"./AppTimelineItem.vue?vue&type=script&lang=js&\"\nexport * from \"./AppTimelineItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppTimelineItem.vue?vue&type=style&index=0&id=4bbac430&lang=scss&scoped=true&\"\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 \"4bbac430\",\n null\n \n)\n\nexport default component.exports","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toastification\"},[_c('div',{staticClass:\"d-flex align-items-start\"},[_c('b-avatar',{staticClass:\"mr-75 flex-shrink-0\",attrs:{\"variant\":_vm.variant,\"size\":\"1.8rem\"}},[_c('feather-icon',{attrs:{\"icon\":_vm.icon,\"size\":\"15\"}})],1),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',[(_vm.title)?_c('h5',{staticClass:\"mb-0 font-weight-bolder toastification-title\",class:(\"text-\" + _vm.variant),domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e(),(_vm.text)?_c('small',{staticClass:\"d-inline-block text-body\",domProps:{\"textContent\":_vm._s(_vm.text)}}):_vm._e()]),_c('span',{staticClass:\"cursor-pointer toastification-close-icon ml-auto \",on:{\"click\":function($event){return _vm.$emit('close-toast')}}},[(!_vm.hideClose)?_c('feather-icon',{staticClass:\"text-body\",attrs:{\"icon\":\"XIcon\"}}):_vm._e()],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./ToastificationContent.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!./ToastificationContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToastificationContent.vue?vue&type=template&id=00bc57af&scoped=true&\"\nimport script from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nexport * from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToastificationContent.vue?vue&type=style&index=0&id=00bc57af&lang=scss&scoped=true&\"\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 \"00bc57af\",\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_PAGINATION } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_PAGE_CLICK } from '../../constants/events';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, isVisible } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { mathCeil, mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, paginationMixin, props as paginationProps } from '../../mixins/pagination'; // --- Constants ---\n\nvar DEFAULT_PER_PAGE = 20;\nvar DEFAULT_TOTAL_ROWS = 0; // --- Helper methods ---\n// Sanitize the provided per page number (converting to a number)\n\nvar sanitizePerPage = function sanitizePerPage(value) {\n return mathMax(toInteger(value) || DEFAULT_PER_PAGE, 1);\n}; // Sanitize the provided total rows number (converting to a number)\n\n\nvar sanitizeTotalRows = function sanitizeTotalRows(value) {\n return mathMax(toInteger(value) || DEFAULT_TOTAL_ROWS, 0);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, paginationProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_PER_PAGE),\n totalRows: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_TOTAL_ROWS)\n})), NAME_PAGINATION); // --- Main component ---\n// @vue/component\n\nexport var BPagination = /*#__PURE__*/Vue.extend({\n name: NAME_PAGINATION,\n // The render function is brought in via the `paginationMixin`\n mixins: [paginationMixin],\n props: props,\n computed: {\n numberOfPages: function numberOfPages() {\n var result = mathCeil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage));\n return result < 1 ? 1 : result;\n },\n // Used for watching changes to `perPage` and `numberOfPages`\n pageSizeNumberOfPages: function pageSizeNumberOfPages() {\n return {\n perPage: sanitizePerPage(this.perPage),\n totalRows: sanitizeTotalRows(this.totalRows),\n numberOfPages: this.numberOfPages\n };\n }\n },\n watch: {\n pageSizeNumberOfPages: function pageSizeNumberOfPages(newValue, oldValue) {\n if (!isUndefinedOrNull(oldValue)) {\n if (newValue.perPage !== oldValue.perPage && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n this.currentPage = 1;\n } else if (newValue.numberOfPages !== oldValue.numberOfPages && this.currentPage > newValue.numberOfPages) {\n // If `numberOfPages` changes and is less than\n // the `currentPage` number, reset to page 1\n this.currentPage = 1;\n }\n }\n\n this.localNumberOfPages = newValue.numberOfPages;\n }\n },\n created: function created() {\n var _this = this;\n\n // Set the initial page count\n this.localNumberOfPages = this.numberOfPages; // Set the initial page value\n\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n\n if (currentPage > 0) {\n this.currentPage = currentPage;\n } else {\n this.$nextTick(function () {\n // If this value parses to `NaN` or a value less than `1`\n // trigger an initial emit of `null` if no page specified\n _this.currentPage = 0;\n });\n }\n },\n methods: {\n // These methods are used by the render function\n onClick: function onClick(event, pageNumber) {\n var _this2 = this;\n\n // Dont do anything if clicking the current active page\n if (pageNumber === this.currentPage) {\n return;\n }\n\n var target = event.target; // Emit a user-cancelable `page-click` event\n\n var clickEvt = new BvEvent(EVENT_NAME_PAGE_CLICK, {\n cancelable: true,\n vueTarget: this,\n target: target\n });\n this.$emit(clickEvt.type, clickEvt, pageNumber);\n\n if (clickEvt.defaultPrevented) {\n return;\n } // Update the `v-model`\n\n\n this.currentPage = pageNumber; // Emit event triggered by user interaction\n\n this.$emit(EVENT_NAME_CHANGE, this.currentPage); // Keep the current button focused if possible\n\n this.$nextTick(function () {\n if (isVisible(target) && _this2.$el.contains(target)) {\n attemptFocus(target);\n } else {\n _this2.focusCurrent();\n }\n });\n },\n makePage: function makePage(pageNum) {\n return pageNum;\n },\n\n /* istanbul ignore next */\n linkProps: function linkProps() {\n // No props, since we render a plain button\n return {};\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Supported values: 'lite', 'dark', or null\n footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTfoot = /*#__PURE__*/Vue.extend({\n name: NAME_TFOOT,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTfoot: function isTfoot() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n tfootClasses: function tfootClasses() {\n return [this.footVariant ? \"thead-\".concat(this.footVariant) : null];\n },\n tfootAttrs: function tfootAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'rowgroup'\n });\n }\n },\n render: function render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\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 { isDate, isObject, isUndefinedOrNull } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string'; // Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Strings are returned as-is\n// Numbers get converted to string\n// `null` and `undefined` values are filtered out\n// Dates are converted to their native string format\n\nexport var stringifyObjectValues = function stringifyObjectValues(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n } // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n\n\n if (isObject(value) && !isDate(value)) {\n return keys(value).sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n .map(function (k) {\n return stringifyObjectValues(value[k]);\n }).filter(function (v) {\n return !!v;\n }) // Ignore empty strings\n .join(' ');\n }\n\n return toString(value);\n};","import { arrayIncludes } from '../../../utils/array';\nimport { isArray, isFunction } from '../../../utils/inspect';\nimport { clone, keys, pick } from '../../../utils/object';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Return a copy of a row after all reserved fields have been filtered out\n\nexport var sanitizeRow = function sanitizeRow(row, ignoreFields, includeFields) {\n var fieldsObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // We first need to format the row based on the field configurations\n // This ensures that we add formatted values for keys that may not\n // exist in the row itself\n var formattedRow = keys(fieldsObj).reduce(function (result, key) {\n var field = fieldsObj[key];\n var filterByFormatted = field.filterByFormatted;\n var formatter = isFunction(filterByFormatted) ?\n /* istanbul ignore next */\n filterByFormatted : filterByFormatted ?\n /* istanbul ignore next */\n field.formatter : null;\n\n if (isFunction(formatter)) {\n result[key] = formatter(row[key], key, row);\n }\n\n return result;\n }, clone(row)); // Determine the allowed keys:\n // - Ignore special fields that start with `_`\n // - Ignore fields in the `ignoreFields` array\n // - Include only fields in the `includeFields` array\n\n var allowedKeys = keys(formattedRow).filter(function (key) {\n return !IGNORED_FIELD_KEYS[key] && !(isArray(ignoreFields) && ignoreFields.length > 0 && arrayIncludes(ignoreFields, key)) && !(isArray(includeFields) && includeFields.length > 0 && !arrayIncludes(includeFields, key));\n });\n return pick(formattedRow, allowedKeys);\n};","import { isObject } from '../../../utils/inspect';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\nimport { sanitizeRow } from './sanitize-row'; // Stringifies the values of a record, ignoring any special top level field keys\n// TODO: Add option to stringify `scopedSlot` items\n\nexport var stringifyRecordValues = function stringifyRecordValues(row, ignoreFields, includeFields, fieldsObj) {\n return isObject(row) ? stringifyObjectValues(sanitizeRow(row, ignoreFields, includeFields, fieldsObj)) :\n /* istanbul ignore next */\n '';\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_FILTERED } from '../../../constants/events';\nimport { PROP_TYPE_REG_EXP, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY, PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { RX_DIGITS, RX_SPACES } from '../../../constants/regex';\nimport { concat } from '../../../utils/array';\nimport { cloneDeep } from '../../../utils/clone-deep';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { toInteger } from '../../../utils/number';\nimport { hasPropFunction, makeProp } from '../../../utils/props';\nimport { escapeRegExp } from '../../../utils/string';\nimport { warn } from '../../../utils/warn';\nimport { stringifyRecordValues } from './stringify-record-values'; // --- Constants ---\n\nvar DEBOUNCE_DEPRECATED_MSG = 'Prop \"filter-debounce\" is deprecated. Use the debounce feature of \"\" instead.'; // --- Props ---\n\nexport var props = {\n filter: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_REG_EXP])),\n filterDebounce: makeProp(PROP_TYPE_NUMBER_STRING, 0, function (value) {\n return RX_DIGITS.test(String(value));\n }),\n filterFunction: makeProp(PROP_TYPE_FUNCTION),\n filterIgnoredFields: makeProp(PROP_TYPE_ARRAY, []),\n filterIncludedFields: makeProp(PROP_TYPE_ARRAY, [])\n}; // --- Mixin ---\n// @vue/component\n\nexport var filteringMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n // Flag for displaying which empty slot to show and some event triggering\n isFiltered: false,\n // Where we store the copy of the filter criteria after debouncing\n // We pre-set it with the sanitized filter value\n localFilter: this.filterSanitize(this.filter)\n };\n },\n computed: {\n computedFilterIgnored: function computedFilterIgnored() {\n return concat(this.filterIgnoredFields || []).filter(identity);\n },\n computedFilterIncluded: function computedFilterIncluded() {\n return concat(this.filterIncludedFields || []).filter(identity);\n },\n computedFilterDebounce: function computedFilterDebounce() {\n var ms = toInteger(this.filterDebounce, 0);\n /* istanbul ignore next */\n\n if (ms > 0) {\n warn(DEBOUNCE_DEPRECATED_MSG, NAME_TABLE);\n }\n\n return ms;\n },\n localFiltering: function localFiltering() {\n return this.hasProvider ? !!this.noProviderFiltering : true;\n },\n // For watching changes to `filteredItems` vs `localItems`\n filteredCheck: function filteredCheck() {\n var filteredItems = this.filteredItems,\n localItems = this.localItems,\n localFilter = this.localFilter;\n return {\n filteredItems: filteredItems,\n localItems: localItems,\n localFilter: localFilter\n };\n },\n // Sanitized/normalize filter-function prop\n localFilterFn: function localFilterFn() {\n // Return `null` to signal to use internal filter function\n var filterFunction = this.filterFunction;\n return hasPropFunction(filterFunction) ? filterFunction : null;\n },\n // Returns the records in `localItems` that match the filter criteria\n // Returns the original `localItems` array if not sorting\n filteredItems: function filteredItems() {\n // Note the criteria is debounced and sanitized\n var items = this.localItems,\n criteria = this.localFilter; // Resolve the filtering function, when requested\n // We prefer the provided filtering function and fallback to the internal one\n // When no filtering criteria is specified the filtering factories will return `null`\n\n var filterFn = this.localFiltering ? this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria) : null; // We only do local filtering when requested and there are records to filter\n\n return filterFn && items.length > 0 ? items.filter(filterFn) : items;\n }\n },\n watch: {\n // Watch for debounce being set to 0\n computedFilterDebounce: function computedFilterDebounce(newValue) {\n if (!newValue && this.$_filterTimer) {\n this.clearFilterTimer();\n this.localFilter = this.filterSanitize(this.filter);\n }\n },\n // Watch for changes to the filter criteria, and debounce if necessary\n filter: {\n // We need a deep watcher in case the user passes\n // an object when using `filter-function`\n deep: true,\n handler: function handler(newCriteria) {\n var _this = this;\n\n var timeout = this.computedFilterDebounce;\n this.clearFilterTimer();\n\n if (timeout && timeout > 0) {\n // If we have a debounce time, delay the update of `localFilter`\n this.$_filterTimer = setTimeout(function () {\n _this.localFilter = _this.filterSanitize(newCriteria);\n }, timeout);\n } else {\n // Otherwise, immediately update `localFilter` with `newFilter` value\n this.localFilter = this.filterSanitize(newCriteria);\n }\n }\n },\n // Watch for changes to the filter criteria and filtered items vs `localItems`\n // Set visual state and emit events as required\n filteredCheck: function filteredCheck(_ref) {\n var filteredItems = _ref.filteredItems,\n localFilter = _ref.localFilter;\n // Determine if the dataset is filtered or not\n var isFiltered = false;\n\n if (!localFilter) {\n // If filter criteria is falsey\n isFiltered = false;\n } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n // If filter criteria is an empty array or object\n isFiltered = false;\n } else if (localFilter) {\n // If filter criteria is truthy\n isFiltered = true;\n }\n\n if (isFiltered) {\n this.$emit(EVENT_NAME_FILTERED, filteredItems, filteredItems.length);\n }\n\n this.isFiltered = isFiltered;\n },\n isFiltered: function isFiltered(newValue, oldValue) {\n if (newValue === false && oldValue === true) {\n // We need to emit a filtered event if `isFiltered` transitions from `true` to\n // `false` so that users can update their pagination controls\n var localItems = this.localItems;\n this.$emit(EVENT_NAME_FILTERED, localItems, localItems.length);\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create private non-reactive props\n this.$_filterTimer = null; // If filter is \"pre-set\", set the criteria\n // This will trigger any watchers/dependents\n // this.localFilter = this.filterSanitize(this.filter)\n // Set the initial filtered state in a `$nextTick()` so that\n // we trigger a filtered event if needed\n\n this.$nextTick(function () {\n _this2.isFiltered = Boolean(_this2.localFilter);\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearFilterTimer();\n },\n methods: {\n clearFilterTimer: function clearFilterTimer() {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n },\n filterSanitize: function filterSanitize(criteria) {\n // Sanitizes filter criteria based on internal or external filtering\n if (this.localFiltering && !this.localFilterFn && !(isString(criteria) || isRegExp(criteria))) {\n // If using internal filter function, which only accepts string or RegExp,\n // return '' to signify no filter\n return '';\n } // Could be a string, object or array, as needed by external filter function\n // We use `cloneDeep` to ensure we have a new copy of an object or array\n // without Vue's reactive observers\n\n\n return cloneDeep(criteria);\n },\n // Filter Function factories\n filterFnFactory: function filterFnFactory(filterFn, criteria) {\n // Wrapper factory for external filter functions\n // Wrap the provided filter-function and return a new function\n // Returns `null` if no filter-function defined or if criteria is falsey\n // Rather than directly grabbing `this.computedLocalFilterFn` or `this.filterFunction`\n // we have it passed, so that the caller computed prop will be reactive to changes\n // in the original filter-function (as this routine is a method)\n if (!filterFn || !isFunction(filterFn) || !criteria || looseEqual(criteria, []) || looseEqual(criteria, {})) {\n return null;\n } // Build the wrapped filter test function, passing the criteria to the provided function\n\n\n var fn = function fn(item) {\n // Generated function returns true if the criteria matches part\n // of the serialized data, otherwise false\n return filterFn(item, criteria);\n }; // Return the wrapped function\n\n\n return fn;\n },\n defaultFilterFnFactory: function defaultFilterFnFactory(criteria) {\n var _this3 = this;\n\n // Generates the default filter function, using the given filter criteria\n // Returns `null` if no criteria or criteria format not supported\n if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n // Built in filter can only support strings or RegExp criteria (at the moment)\n return null;\n } // Build the RegExp needed for filtering\n\n\n var regExp = criteria;\n\n if (isString(regExp)) {\n // Escape special RegExp characters in the string and convert contiguous\n // whitespace to \\s+ matches\n var pattern = escapeRegExp(criteria).replace(RX_SPACES, '\\\\s+'); // Build the RegExp (no need for global flag, as we only need\n // to find the value once in the string)\n\n regExp = new RegExp(\".*\".concat(pattern, \".*\"), 'i');\n } // Generate the wrapped filter test function to use\n\n\n var fn = function fn(item) {\n // This searches all row values (and sub property values) in the entire (excluding\n // special `_` prefixed keys), because we convert the record to a space-separated\n // string containing all the value properties (recursively), even ones that are\n // not visible (not specified in this.fields)\n // Users can ignore filtering on specific fields, or on only certain fields,\n // and can optionall specify searching results of fields with formatter\n //\n // TODO: Enable searching on scoped slots (optional, as it will be SLOW)\n //\n // Generated function returns true if the criteria matches part of\n // the serialized data, otherwise false\n //\n // We set `lastIndex = 0` on the `RegExp` in case someone specifies the `/g` global flag\n regExp.lastIndex = 0;\n return regExp.test(stringifyRecordValues(item, _this3.computedFilterIgnored, _this3.computedFilterIncluded, _this3.computedFieldsObj));\n }; // Return the generated function\n\n\n return fn;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { mathMax } from '../../../utils/math';\nimport { toInteger } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n currentPage: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, 0)\n}; // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n props: props,\n computed: {\n localPaging: function localPaging() {\n return this.hasProvider ? !!this.noProviderPaging : true;\n },\n paginatedItems: function paginatedItems() {\n var items = this.sortedItems || this.filteredItems || this.localItems || [];\n var currentPage = mathMax(toInteger(this.currentPage, 1), 1);\n var perPage = mathMax(toInteger(this.perPage, 0), 0); // Apply local pagination\n\n if (this.localPaging && perPage) {\n // Grab the current page of data (which may be past filtered items limit)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n } // Return the items to display in the table\n\n\n return items;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_REFRESH, EVENT_NAME_REFRESHED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { isArray, isFunction, isPromise } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { clone } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { warn } from '../../../utils/warn';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_REFRESHED = getRootEventName(NAME_TABLE, EVENT_NAME_REFRESHED);\nvar ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_NAME_REFRESH); // --- Props ---\n\nexport var props = {\n // Passed to the context object\n // Not used by `` directly\n apiUrl: makeProp(PROP_TYPE_STRING),\n // Adds in 'Function' support\n items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),\n noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var providerMixin = Vue.extend({\n mixins: [listenOnRootMixin],\n props: props,\n computed: {\n hasProvider: function hasProvider() {\n return isFunction(this.items);\n },\n providerTriggerContext: function providerTriggerContext() {\n // Used to trigger the provider function via a watcher. Only the fields that\n // are needed for triggering a provider update are included. Note that the\n // regular this.context is sent to the provider during fetches though, as they\n // may need all the prop info.\n var ctx = {\n apiUrl: this.apiUrl,\n filter: null,\n sortBy: null,\n sortDesc: null,\n perPage: null,\n currentPage: null\n };\n\n if (!this.noProviderFiltering) {\n // Either a string, or could be an object or array.\n ctx.filter = this.localFilter;\n }\n\n if (!this.noProviderSorting) {\n ctx.sortBy = this.localSortBy;\n ctx.sortDesc = this.localSortDesc;\n }\n\n if (!this.noProviderPaging) {\n ctx.perPage = this.perPage;\n ctx.currentPage = this.currentPage;\n }\n\n return clone(ctx);\n }\n },\n watch: {\n // Provider update triggering\n items: function items(newValue) {\n // If a new provider has been specified, trigger an update\n if (this.hasProvider || isFunction(newValue)) {\n this.$nextTick(this._providerUpdate);\n }\n },\n providerTriggerContext: function providerTriggerContext(newValue, oldValue) {\n // Trigger the provider to update as the relevant context values have changed.\n if (!looseEqual(newValue, oldValue)) {\n this.$nextTick(this._providerUpdate);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Call the items provider if necessary\n if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n // Fetch on mount if localItems is empty\n this._providerUpdate();\n } // Listen for global messages to tell us to force refresh the table\n\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REFRESH, function (id) {\n if (id === _this.id || id === _this) {\n _this.refresh();\n }\n });\n },\n methods: {\n refresh: function refresh() {\n var items = this.items,\n refresh = this.refresh; // Public Method: Force a refresh of the provider function\n\n this.$off(EVENT_NAME_REFRESHED, refresh);\n\n if (this.computedBusy) {\n // Can't force an update when forced busy by user (busy prop === true)\n if (this.localBusy && this.hasProvider) {\n // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n this.$on(EVENT_NAME_REFRESHED, refresh);\n }\n } else {\n this.clearSelected();\n\n if (this.hasProvider) {\n this.$nextTick(this._providerUpdate);\n } else {\n /* istanbul ignore next */\n this.localItems = isArray(items) ? items.slice() : [];\n }\n }\n },\n // Provider related methods\n _providerSetLocal: function _providerSetLocal(items) {\n this.localItems = isArray(items) ? items.slice() : [];\n this.localBusy = false;\n this.$emit(EVENT_NAME_REFRESHED); // New root emit\n\n if (this.id) {\n this.emitOnRoot(ROOT_EVENT_NAME_REFRESHED, this.id);\n }\n },\n _providerUpdate: function _providerUpdate() {\n var _this2 = this;\n\n // Refresh the provider function items.\n if (!this.hasProvider) {\n // Do nothing if no provider\n return;\n } // If table is busy, wait until refreshed before calling again\n\n\n if (this.computedBusy) {\n // Schedule a new refresh once `refreshed` is emitted\n this.$nextTick(this.refresh);\n return;\n } // Set internal busy state\n\n\n this.localBusy = true; // Call provider function with context and optional callback after DOM is fully updated\n\n this.$nextTick(function () {\n try {\n // Call provider function passing it the context and optional callback\n var data = _this2.items(_this2.context, _this2._providerSetLocal);\n\n if (isPromise(data)) {\n // Provider returned Promise\n data.then(function (items) {\n // Provider resolved with items\n _this2._providerSetLocal(items);\n });\n } else if (isArray(data)) {\n // Provider returned Array data\n _this2._providerSetLocal(data);\n } else {\n /* istanbul ignore if */\n if (_this2.items.length !== 2) {\n // Check number of arguments provider function requested\n // Provider not using callback (didn't request second argument), so we clear\n // busy state as most likely there was an error in the provider function\n\n /* istanbul ignore next */\n warn(\"Provider function didn't request callback and did not return a promise or data.\", NAME_TABLE);\n _this2.localBusy = false;\n }\n }\n } catch (e)\n /* istanbul ignore next */\n {\n // Provider function borked on us, so we spew out a warning\n // and clear the busy state\n warn(\"Provider function error [\".concat(e.name, \"] \").concat(e.message, \".\"), NAME_TABLE);\n _this2.localBusy = false;\n\n _this2.$off(EVENT_NAME_REFRESHED, _this2.refresh);\n }\n });\n }\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED, EVENT_NAME_FILTERED, EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_SELECTED } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes, createArray } from '../../../utils/array';\nimport { identity } from '../../../utils/identity';\nimport { isArray, isNumber } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax, mathMin } from '../../../utils/math';\nimport { makeProp } from '../../../utils/props';\nimport { sanitizeRow } from './sanitize-row'; // --- Constants ---\n\nvar SELECT_MODES = ['range', 'multi', 'single']; // --- Props ---\n\nexport var props = {\n // Disable use of click handlers for row selection\n noSelectOnClick: makeProp(PROP_TYPE_BOOLEAN, false),\n selectMode: makeProp(PROP_TYPE_STRING, 'multi', function (value) {\n return arrayIncludes(SELECT_MODES, value);\n }),\n selectable: makeProp(PROP_TYPE_BOOLEAN, false),\n selectedVariant: makeProp(PROP_TYPE_STRING, 'active')\n}; // --- Mixin ---\n// @vue/component\n\nexport var selectableMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n selectedRows: [],\n selectedLastRow: -1\n };\n },\n computed: {\n isSelectable: function isSelectable() {\n return this.selectable && this.selectMode;\n },\n hasSelectableRowClick: function hasSelectableRowClick() {\n return this.isSelectable && !this.noSelectOnClick;\n },\n supportsSelectableRows: function supportsSelectableRows() {\n return true;\n },\n selectableHasSelection: function selectableHasSelection() {\n var selectedRows = this.selectedRows;\n return this.isSelectable && selectedRows && selectedRows.length > 0 && selectedRows.some(identity);\n },\n selectableIsMultiSelect: function selectableIsMultiSelect() {\n return this.isSelectable && arrayIncludes(['range', 'multi'], this.selectMode);\n },\n selectableTableClasses: function selectableTableClasses() {\n var _ref;\n\n var isSelectable = this.isSelectable;\n return _ref = {\n 'b-table-selectable': isSelectable\n }, _defineProperty(_ref, \"b-table-select-\".concat(this.selectMode), isSelectable), _defineProperty(_ref, 'b-table-selecting', this.selectableHasSelection), _defineProperty(_ref, 'b-table-selectable-no-click', isSelectable && !this.hasSelectableRowClick), _ref;\n },\n selectableTableAttrs: function selectableTableAttrs() {\n return {\n // TODO:\n // Should this attribute not be included when no-select-on-click is set\n // since this attribute implies keyboard navigation?\n 'aria-multiselectable': !this.isSelectable ? null : this.selectableIsMultiSelect ? 'true' : 'false'\n };\n }\n },\n watch: {\n computedItems: function computedItems(newValue, oldValue) {\n // Reset for selectable\n var equal = false;\n\n if (this.isSelectable && this.selectedRows.length > 0) {\n // Quick check against array length\n equal = isArray(newValue) && isArray(oldValue) && newValue.length === oldValue.length;\n\n for (var i = 0; equal && i < newValue.length; i++) {\n // Look for the first non-loosely equal row, after ignoring reserved fields\n equal = looseEqual(sanitizeRow(newValue[i]), sanitizeRow(oldValue[i]));\n }\n }\n\n if (!equal) {\n this.clearSelected();\n }\n },\n selectable: function selectable(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(newValue);\n },\n selectMode: function selectMode() {\n this.clearSelected();\n },\n hasSelectableRowClick: function hasSelectableRowClick(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(!newValue);\n },\n selectedRows: function selectedRows(_selectedRows, oldValue) {\n var _this = this;\n\n if (this.isSelectable && !looseEqual(_selectedRows, oldValue)) {\n var items = []; // `.forEach()` skips over non-existent indices (on sparse arrays)\n\n _selectedRows.forEach(function (v, idx) {\n if (v) {\n items.push(_this.computedItems[idx]);\n }\n });\n\n this.$emit(EVENT_NAME_ROW_SELECTED, items);\n }\n }\n },\n beforeMount: function beforeMount() {\n // Set up handlers if needed\n if (this.isSelectable) {\n this.setSelectionHandlers(true);\n }\n },\n methods: {\n // Public methods\n selectRow: function selectRow(index) {\n // Select a particular row (indexed based on computedItems)\n if (this.isSelectable && isNumber(index) && index >= 0 && index < this.computedItems.length && !this.isRowSelected(index)) {\n var selectedRows = this.selectableIsMultiSelect ? this.selectedRows.slice() : [];\n selectedRows[index] = true;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n unselectRow: function unselectRow(index) {\n // Un-select a particular row (indexed based on `computedItems`)\n if (this.isSelectable && isNumber(index) && this.isRowSelected(index)) {\n var selectedRows = this.selectedRows.slice();\n selectedRows[index] = false;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n selectAllRows: function selectAllRows() {\n var length = this.computedItems.length;\n\n if (this.isSelectable && length > 0) {\n this.selectedLastClicked = -1;\n this.selectedRows = this.selectableIsMultiSelect ? createArray(length, true) : [true];\n }\n },\n isRowSelected: function isRowSelected(index) {\n // Determine if a row is selected (indexed based on `computedItems`)\n return !!(isNumber(index) && this.selectedRows[index]);\n },\n clearSelected: function clearSelected() {\n // Clear any active selected row(s)\n this.selectedLastClicked = -1;\n this.selectedRows = [];\n },\n // Internal private methods\n selectableRowClasses: function selectableRowClasses(index) {\n if (this.isSelectable && this.isRowSelected(index)) {\n var variant = this.selectedVariant;\n return _defineProperty({\n 'b-table-row-selected': true\n }, \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(variant), variant);\n }\n\n return {};\n },\n selectableRowAttrs: function selectableRowAttrs(index) {\n return {\n 'aria-selected': !this.isSelectable ? null : this.isRowSelected(index) ? 'true' : 'false'\n };\n },\n setSelectionHandlers: function setSelectionHandlers(on) {\n var method = on && !this.noSelectOnClick ? '$on' : '$off'; // Handle row-clicked event\n\n this[method](EVENT_NAME_ROW_CLICKED, this.selectionHandler); // Clear selection on filter, pagination, and sort changes\n\n this[method](EVENT_NAME_FILTERED, this.clearSelected);\n this[method](EVENT_NAME_CONTEXT_CHANGED, this.clearSelected);\n },\n selectionHandler: function selectionHandler(item, index, event) {\n /* istanbul ignore if: should never happen */\n if (!this.isSelectable || this.noSelectOnClick) {\n // Don't do anything if table is not in selectable mode\n this.clearSelected();\n return;\n }\n\n var selectMode = this.selectMode,\n selectedLastRow = this.selectedLastRow;\n var selectedRows = this.selectedRows.slice();\n var selected = !selectedRows[index]; // Note 'multi' mode needs no special event handling\n\n if (selectMode === 'single') {\n selectedRows = [];\n } else if (selectMode === 'range') {\n if (selectedLastRow > -1 && event.shiftKey) {\n // range\n for (var idx = mathMin(selectedLastRow, index); idx <= mathMax(selectedLastRow, index); idx++) {\n selectedRows[idx] = true;\n }\n\n selected = true;\n } else {\n if (!(event.ctrlKey || event.metaKey)) {\n // Clear range selection if any\n selectedRows = [];\n selected = true;\n }\n\n this.selectedLastRow = selected ? index : -1;\n }\n }\n\n selectedRows[index] = selected;\n this.selectedRows = selectedRows;\n }\n }\n});","var _props, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED, EVENT_NAME_SORT_CHANGED, MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { stableSort } from '../../../utils/stable-sort';\nimport { trim } from '../../../utils/string';\nimport { defaultSortCompare } from './default-sort-compare'; // --- Constants ---\n\nvar MODEL_PROP_NAME_SORT_BY = 'sortBy';\nvar MODEL_EVENT_NAME_SORT_BY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_BY;\nvar MODEL_PROP_NAME_SORT_DESC = 'sortDesc';\nvar MODEL_EVENT_NAME_SORT_DESC = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_DESC;\nvar SORT_DIRECTION_ASC = 'asc';\nvar SORT_DIRECTION_DESC = 'desc';\nvar SORT_DIRECTION_LAST = 'last';\nvar SORT_DIRECTIONS = [SORT_DIRECTION_ASC, SORT_DIRECTION_DESC, SORT_DIRECTION_LAST]; // --- Props ---\n\nexport var props = (_props = {\n labelSortAsc: makeProp(PROP_TYPE_STRING, 'Click to sort Ascending'),\n labelSortClear: makeProp(PROP_TYPE_STRING, 'Click to clear sorting'),\n labelSortDesc: makeProp(PROP_TYPE_STRING, 'Click to sort Descending'),\n noFooterSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n noLocalSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n // Another prop that should have had a better name\n // It should be `noSortClear` (on non-sortable headers)\n // We will need to make sure the documentation is clear on what\n // this prop does (as well as in the code for future reference)\n noSortReset: makeProp(PROP_TYPE_BOOLEAN, false)\n}, _defineProperty(_props, MODEL_PROP_NAME_SORT_BY, makeProp(PROP_TYPE_STRING)), _defineProperty(_props, \"sortCompare\", makeProp(PROP_TYPE_FUNCTION)), _defineProperty(_props, \"sortCompareLocale\", makeProp(PROP_TYPE_ARRAY_STRING)), _defineProperty(_props, \"sortCompareOptions\", makeProp(PROP_TYPE_OBJECT, {\n numeric: true\n})), _defineProperty(_props, MODEL_PROP_NAME_SORT_DESC, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortDirection\", makeProp(PROP_TYPE_STRING, SORT_DIRECTION_ASC, function (value) {\n return arrayIncludes(SORT_DIRECTIONS, value);\n})), _defineProperty(_props, \"sortIconLeft\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortNullLast\", makeProp(PROP_TYPE_BOOLEAN, false)), _props); // --- Mixin ---\n// @vue/component\n\nexport var sortingMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localSortBy: this[MODEL_PROP_NAME_SORT_BY] || '',\n localSortDesc: this[MODEL_PROP_NAME_SORT_DESC] || false\n };\n },\n computed: {\n localSorting: function localSorting() {\n return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting;\n },\n isSortable: function isSortable() {\n return this.computedFields.some(function (f) {\n return f.sortable;\n });\n },\n // Sorts the filtered items and returns a new array of the sorted items\n // When not sorted, the original items array will be returned\n sortedItems: function sortedItems() {\n var sortBy = this.localSortBy,\n sortDesc = this.localSortDesc,\n locale = this.sortCompareLocale,\n nullLast = this.sortNullLast,\n sortCompare = this.sortCompare,\n localSorting = this.localSorting;\n var items = (this.filteredItems || this.localItems || []).slice();\n\n var localeOptions = _objectSpread(_objectSpread({}, this.sortCompareOptions), {}, {\n usage: 'sort'\n });\n\n if (sortBy && localSorting) {\n var field = this.computedFieldsObj[sortBy] || {};\n var sortByFormatted = field.sortByFormatted;\n var formatter = isFunction(sortByFormatted) ?\n /* istanbul ignore next */\n sortByFormatted : sortByFormatted ? this.getFieldFormatter(sortBy) : undefined; // `stableSort` returns a new array, and leaves the original array intact\n\n return stableSort(items, function (a, b) {\n var result = null; // Call user provided `sortCompare` routine first\n\n if (isFunction(sortCompare)) {\n // TODO:\n // Change the `sortCompare` signature to the one of `defaultSortCompare`\n // with the next major version bump\n result = sortCompare(a, b, sortBy, sortDesc, formatter, localeOptions, locale);\n } // Fallback to built-in `defaultSortCompare` if `sortCompare`\n // is not defined or returns `null`/`false`\n\n\n if (isUndefinedOrNull(result) || result === false) {\n result = defaultSortCompare(a, b, {\n sortBy: sortBy,\n formatter: formatter,\n locale: locale,\n localeOptions: localeOptions,\n nullLast: nullLast\n });\n } // Negate result if sorting in descending order\n\n\n return (result || 0) * (sortDesc ? -1 : 1);\n });\n }\n\n return items;\n }\n },\n watch: (_watch = {\n /* istanbul ignore next: pain in the butt to test */\n isSortable: function isSortable(newValue) {\n if (newValue) {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n } else {\n this.$off(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n }\n }, _defineProperty(_watch, MODEL_PROP_NAME_SORT_DESC, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortDesc) {\n return;\n }\n\n this.localSortDesc = newValue || false;\n }), _defineProperty(_watch, MODEL_PROP_NAME_SORT_BY, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortBy) {\n return;\n }\n\n this.localSortBy = newValue || '';\n }), _defineProperty(_watch, \"localSortDesc\", function localSortDesc(newValue, oldValue) {\n // Emit update to sort-desc.sync\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_DESC, newValue);\n }\n }), _defineProperty(_watch, \"localSortBy\", function localSortBy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_BY, newValue);\n }\n }), _watch),\n created: function created() {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n },\n methods: {\n // Handlers\n // Need to move from thead-mixin\n handleSort: function handleSort(key, field, event, isFoot) {\n var _this = this;\n\n if (!this.isSortable) {\n /* istanbul ignore next */\n return;\n }\n\n if (isFoot && this.noFooterSorting) {\n return;\n } // TODO: make this tri-state sorting\n // cycle desc => asc => none => desc => ...\n\n\n var sortChanged = false;\n\n var toggleLocalSortDesc = function toggleLocalSortDesc() {\n var sortDirection = field.sortDirection || _this.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n _this.localSortDesc = false;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n _this.localSortDesc = true;\n } else {// sortDirection === 'last'\n // Leave at last sort direction from previous column\n }\n };\n\n if (field.sortable) {\n var sortKey = !this.localSorting && field.sortKey ? field.sortKey : key;\n\n if (this.localSortBy === sortKey) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = sortKey; // this.localSortDesc = false\n\n toggleLocalSortDesc();\n }\n\n sortChanged = true;\n } else if (this.localSortBy && !this.noSortReset) {\n this.localSortBy = '';\n toggleLocalSortDesc();\n sortChanged = true;\n }\n\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit(EVENT_NAME_SORT_CHANGED, this.context);\n }\n },\n // methods to compute classes and attrs for thead>th cells\n sortTheadThClasses: function sortTheadThClasses(key, field, isFoot) {\n return {\n // If sortable and sortIconLeft are true, then place sort icon on the left\n 'b-table-sort-icon-left': field.sortable && this.sortIconLeft && !(isFoot && this.noFooterSorting)\n };\n },\n sortTheadThAttrs: function sortTheadThAttrs(key, field, isFoot) {\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No attributes if not a sortable table\n return {};\n }\n\n var sortable = field.sortable; // Assemble the aria-sort attribute value\n\n var ariaSort = sortable && this.localSortBy === key ? this.localSortDesc ? 'descending' : 'ascending' : sortable ? 'none' : null; // Return the attribute\n\n return {\n 'aria-sort': ariaSort\n };\n },\n sortTheadThLabel: function sortTheadThLabel(key, field, isFoot) {\n // A label to be placed in an `.sr-only` element in the header cell\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No label if not a sortable table\n return null;\n }\n\n var sortable = field.sortable; // The correctness of these labels is very important for screen-reader users.\n\n var labelSorting = '';\n\n if (sortable) {\n if (this.localSortBy === key) {\n // currently sorted sortable column.\n labelSorting = this.localSortDesc ? this.labelSortAsc : this.labelSortDesc;\n } else {\n // Not currently sorted sortable column.\n // Not using nested ternary's here for clarity/readability\n // Default for ariaLabel\n labelSorting = this.localSortDesc ? this.labelSortDesc : this.labelSortAsc; // Handle sortDirection setting\n\n var sortDirection = this.sortDirection || field.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n labelSorting = this.labelSortAsc;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n labelSorting = this.labelSortDesc;\n }\n }\n } else if (!this.noSortReset) {\n // Non sortable column\n labelSorting = this.localSortBy ? this.labelSortClear : '';\n } // Return the sr-only sort label or null if no label\n\n\n return trim(labelSorting) || null;\n }\n }\n});","import { get } from '../../../utils/get';\nimport { isDate, isFunction, isNumber, isNumeric, isUndefinedOrNull } from '../../../utils/inspect';\nimport { toFloat } from '../../../utils/number';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\n\nvar normalizeValue = function normalizeValue(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n }\n\n if (isNumeric(value)) {\n return toFloat(value, value);\n }\n\n return value;\n}; // Default sort compare routine\n//\n// TODO:\n// Add option to sort by multiple columns (tri-state per column,\n// plus order of columns in sort) where `sortBy` could be an array\n// of objects `[ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]`\n// or an array of arrays `[ ['foo','asc'], ['bar','desc'] ]`\n// Multisort will most likely be handled in `mixin-sort.js` by\n// calling this method for each sortBy\n\n\nexport var defaultSortCompare = function defaultSortCompare(a, b) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? null : _ref$sortBy,\n _ref$formatter = _ref.formatter,\n formatter = _ref$formatter === void 0 ? null : _ref$formatter,\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? undefined : _ref$locale,\n _ref$localeOptions = _ref.localeOptions,\n localeOptions = _ref$localeOptions === void 0 ? {} : _ref$localeOptions,\n _ref$nullLast = _ref.nullLast,\n nullLast = _ref$nullLast === void 0 ? false : _ref$nullLast;\n\n // Get the value by `sortBy`\n var aa = get(a, sortBy, null);\n var bb = get(b, sortBy, null); // Apply user-provided formatter\n\n if (isFunction(formatter)) {\n aa = formatter(aa, sortBy, a);\n bb = formatter(bb, sortBy, b);\n } // Internally normalize value\n // `null` / `undefined` => ''\n // `'0'` => `0`\n\n\n aa = normalizeValue(aa);\n bb = normalizeValue(bb);\n\n if (isDate(aa) && isDate(bb) || isNumber(aa) && isNumber(bb)) {\n // Special case for comparing dates and numbers\n // Internally dates are compared via their epoch number values\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n } else if (nullLast && aa === '' && bb !== '') {\n // Special case when sorting `null` / `undefined` / '' last\n return 1;\n } else if (nullLast && aa !== '' && bb === '') {\n // Special case when sorting `null` / `undefined` / '' last\n return -1;\n } // Do localized string comparison\n\n\n return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOptions);\n};","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TOP_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var topRowMixin = Vue.extend({\n methods: {\n renderTopRow: function renderTopRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_TOP_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-top-row',\n class: [isFunction(tbodyTrClass) ? tbodyTrClass(null, 'row-top') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? tbodyTrAttr(null, 'row-top') : tbodyTrAttr,\n key: 'b-top-row'\n }, [this.normalizeSlot(SLOT_NAME_TOP_ROW, {\n columns: fields.length,\n fields: fields\n })]);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TABLE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { bottomRowMixin, props as bottomRowProps } from './helpers/mixin-bottom-row';\nimport { busyMixin, props as busyProps } from './helpers/mixin-busy';\nimport { captionMixin, props as captionProps } from './helpers/mixin-caption';\nimport { colgroupMixin, props as colgroupProps } from './helpers/mixin-colgroup';\nimport { emptyMixin, props as emptyProps } from './helpers/mixin-empty';\nimport { filteringMixin, props as filteringProps } from './helpers/mixin-filtering';\nimport { itemsMixin, props as itemsProps } from './helpers/mixin-items';\nimport { paginationMixin, props as paginationProps } from './helpers/mixin-pagination';\nimport { providerMixin, props as providerProps } from './helpers/mixin-provider';\nimport { selectableMixin, props as selectableProps } from './helpers/mixin-selectable';\nimport { sortingMixin, props as sortingProps } from './helpers/mixin-sorting';\nimport { stackedMixin, props as stackedProps } from './helpers/mixin-stacked';\nimport { tableRendererMixin, props as tableRendererProps } from './helpers/mixin-table-renderer';\nimport { tbodyMixin, props as tbodyProps } from './helpers/mixin-tbody';\nimport { tfootMixin, props as tfootProps } from './helpers/mixin-tfoot';\nimport { theadMixin, props as theadProps } from './helpers/mixin-thead';\nimport { topRowMixin, props as topRowProps } from './helpers/mixin-top-row'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), bottomRowProps), busyProps), captionProps), colgroupProps), emptyProps), filteringProps), itemsProps), paginationProps), providerProps), selectableProps), sortingProps), stackedProps), tableRendererProps), tbodyProps), tfootProps), theadProps), topRowProps)), NAME_TABLE); // --- Main component ---\n// @vue/component\n\nexport var BTable = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [// General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin, // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin, // Table features mixins\n stackedMixin, filteringMixin, sortingMixin, paginationMixin, captionMixin, colgroupMixin, selectableMixin, emptyMixin, topRowMixin, bottomRowMixin, busyMixin, providerMixin],\n props: props // Render function is provided by `tableRendererMixin`\n\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots,\n children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\n }), $children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_HOVERED, EVENT_NAME_ROW_UNHOVERED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT_FUNCTION } from '../../../constants/props';\nimport { SLOT_NAME_ROW_DETAILS } from '../../../constants/slots';\nimport { get } from '../../../utils/get';\nimport { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nimport { BTh } from '../th';\nimport { FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS } from './constants'; // --- Props ---\n\nexport var props = {\n detailsTdClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tbodyTrAttr: makeProp(PROP_TYPE_OBJECT_FUNCTION),\n tbodyTrClass: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_FUNCTION]))\n}; // --- Mixin ---\n// @vue/component\n\nexport var tbodyRowMixin = Vue.extend({\n props: props,\n methods: {\n // Methods for computing classes, attributes and styles for table cells\n getTdValues: function getTdValues(item, key, tdValue, defaultValue) {\n var $parent = this.$parent;\n\n if (tdValue) {\n var value = get(item, key, '');\n\n if (isFunction(tdValue)) {\n return tdValue(value, key, item);\n } else if (isString(tdValue) && isFunction($parent[tdValue])) {\n return $parent[tdValue](value, key, item);\n }\n\n return tdValue;\n }\n\n return defaultValue;\n },\n getThValues: function getThValues(item, key, thValue, type, defaultValue) {\n var $parent = this.$parent;\n\n if (thValue) {\n var value = get(item, key, '');\n\n if (isFunction(thValue)) {\n return thValue(value, key, item, type);\n } else if (isString(thValue) && isFunction($parent[thValue])) {\n return $parent[thValue](value, key, item, type);\n }\n\n return thValue;\n }\n\n return defaultValue;\n },\n // Method to get the value for a field\n getFormattedValue: function getFormattedValue(item, field) {\n var key = field.key;\n var formatter = this.getFieldFormatter(key);\n var value = get(item, key, null);\n\n if (isFunction(formatter)) {\n value = formatter(value, key, item);\n }\n\n return isUndefinedOrNull(value) ? '' : value;\n },\n // Factory function methods\n toggleDetailsFactory: function toggleDetailsFactory(hasDetailsSlot, item) {\n var _this = this;\n\n // Returns a function to toggle a row's details slot\n return function () {\n if (hasDetailsSlot) {\n _this.$set(item, FIELD_KEY_SHOW_DETAILS, !item[FIELD_KEY_SHOW_DETAILS]);\n }\n };\n },\n // Row event handlers\n rowHovered: function rowHovered(event) {\n // `mouseenter` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_HOVERED, event);\n }\n },\n rowUnhovered: function rowUnhovered(event) {\n // `mouseleave` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_UNHOVERED, event);\n }\n },\n // Renders a TD or TH for a row's field\n renderTbodyRowCell: function renderTbodyRowCell(field, colIndex, item, rowIndex) {\n var _this2 = this;\n\n var isStacked = this.isStacked;\n var key = field.key,\n label = field.label,\n isRowHeader = field.isRowHeader;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var formatted = this.getFormattedValue(item, field);\n var stickyColumn = !isStacked && (this.isResponsive || this.stickyHeader) && field.stickyColumn; // We only uses the helper components for sticky columns to\n // improve performance of BTable/BTableLite by reducing the\n // total number of vue instances created during render\n\n var cellTag = stickyColumn ? isRowHeader ? BTh : BTd : isRowHeader ? 'th' : 'td';\n var cellVariant = item[FIELD_KEY_CELL_VARIANT] && item[FIELD_KEY_CELL_VARIANT][key] ? item[FIELD_KEY_CELL_VARIANT][key] : field.variant || null;\n var data = {\n // For the Vue key, we concatenate the column index and\n // field key (as field keys could be duplicated)\n // TODO: Although we do prevent duplicate field keys...\n // So we could change this to: `row-${rowIndex}-cell-${key}`\n class: [field.class ? field.class : '', this.getTdValues(item, key, field.tdClass, '')],\n props: {},\n attrs: _objectSpread({\n 'aria-colindex': String(colIndex + 1)\n }, isRowHeader ? this.getThValues(item, key, field.thAttr, 'row', {}) : this.getTdValues(item, key, field.tdAttr, {})),\n key: \"row-\".concat(rowIndex, \"-cell-\").concat(colIndex, \"-\").concat(key)\n };\n\n if (stickyColumn) {\n // We are using the helper BTd or BTh\n data.props = {\n stackedHeading: isStacked ? label : null,\n stickyColumn: true,\n variant: cellVariant\n };\n } else {\n // Using native TD or TH element, so we need to\n // add in the attributes and variant class\n data.attrs['data-label'] = isStacked && !isUndefinedOrNull(label) ? toString(label) : null;\n data.attrs.role = isRowHeader ? 'rowheader' : 'cell';\n data.attrs.scope = isRowHeader ? 'row' : null; // Add in the variant class\n\n if (cellVariant) {\n data.class.push(\"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(cellVariant));\n }\n }\n\n var slotScope = {\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, key, ''),\n value: formatted,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item),\n detailsShowing: Boolean(item[FIELD_KEY_SHOW_DETAILS])\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n slotScope.rowSelected = this.isRowSelected(rowIndex);\n\n slotScope.selectRow = function () {\n return _this2.selectRow(rowIndex);\n };\n\n slotScope.unselectRow = function () {\n return _this2.unselectRow(rowIndex);\n };\n } // The new `v-slot` syntax doesn't like a slot name starting with\n // a square bracket and if using in-document HTML templates, the\n // v-slot attributes are lower-cased by the browser.\n // Switched to round bracket syntax to prevent confusion with\n // dynamic slot name syntax.\n // We look for slots in this order: `cell(${key})`, `cell(${key.toLowerCase()})`, 'cell()'\n // Slot names are now cached by mixin tbody in `this.$_bodyFieldSlotNameCache`\n // Will be `null` if no slot (or fallback slot) exists\n\n\n var slotName = this.$_bodyFieldSlotNameCache[key];\n var $childNodes = slotName ? this.normalizeSlot(slotName, slotScope) : toString(formatted);\n\n if (this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n $childNodes = [h('div', [$childNodes])];\n } // Render either a td or th cell\n\n\n return h(cellTag, data, [$childNodes]);\n },\n // Renders an item's row (or rows if details supported)\n renderTbodyRow: function renderTbodyRow(item, rowIndex) {\n var _this3 = this;\n\n var fields = this.computedFields,\n striped = this.striped,\n primaryKey = this.primaryKey,\n currentPage = this.currentPage,\n perPage = this.perPage,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var rowShowDetails = item[FIELD_KEY_SHOW_DETAILS] && hasDetailsSlot;\n var hasRowClickHandler = this.$listeners[EVENT_NAME_ROW_CLICKED] || this.hasSelectableRowClick; // We can return more than one TR if rowDetails enabled\n\n var $rows = []; // Details ID needed for `aria-details` when details showing\n // We set it to `null` when not showing so that attribute\n // does not appear on the element\n\n var detailsId = rowShowDetails ? this.safeId(\"_details_\".concat(rowIndex, \"_\")) : null; // For each item data field in row\n\n var $tds = fields.map(function (field, colIndex) {\n return _this3.renderTbodyRowCell(field, colIndex, item, rowIndex);\n }); // Calculate the row number in the dataset (indexed from 1)\n\n var ariaRowIndex = null;\n\n if (currentPage && perPage && perPage > 0) {\n ariaRowIndex = String((currentPage - 1) * perPage + rowIndex + 1);\n } // Create a unique :key to help ensure that sub components are re-rendered rather than\n // re-used, which can cause issues. If a primary key is not provided we use the rendered\n // rows index within the tbody.\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n\n\n var primaryKeyValue = toString(get(item, primaryKey)) || null;\n var rowKey = primaryKeyValue || toString(rowIndex); // If primary key is provided, use it to generate a unique ID on each tbody > tr\n // In the format of '{tableId}__row_{primaryKeyValue}'\n\n var rowId = primaryKeyValue ? this.safeId(\"_row_\".concat(primaryKeyValue)) : null; // Selectable classes and attributes\n\n var selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {};\n var selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}; // Additional classes and attributes\n\n var userTrClasses = isFunction(tbodyTrClass) ? tbodyTrClass(item, 'row') : tbodyTrClass;\n var userTrAttrs = isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(item, 'row') : tbodyTrAttr; // Add the item row\n\n $rows.push(h(BTr, {\n class: [userTrClasses, selectableClasses, rowShowDetails ? 'b-table-has-details' : ''],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({\n id: rowId\n }, userTrAttrs), {}, {\n // Users cannot override the following attributes\n tabindex: hasRowClickHandler ? '0' : null,\n 'data-pk': primaryKeyValue || null,\n 'aria-details': detailsId,\n 'aria-owns': detailsId,\n 'aria-rowindex': ariaRowIndex\n }, selectableAttrs),\n on: {\n // Note: These events are not A11Y friendly!\n mouseenter: this.rowHovered,\n mouseleave: this.rowUnhovered\n },\n key: \"__b-table-row-\".concat(rowKey, \"__\"),\n ref: 'item-rows',\n refInFor: true\n }, $tds)); // Row Details slot\n\n if (rowShowDetails) {\n var detailsScope = {\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item)\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n detailsScope.rowSelected = this.isRowSelected(rowIndex);\n\n detailsScope.selectRow = function () {\n return _this3.selectRow(rowIndex);\n };\n\n detailsScope.unselectRow = function () {\n return _this3.unselectRow(rowIndex);\n };\n } // Render the details slot in a TD\n\n\n var $details = h(BTd, {\n props: {\n colspan: fields.length\n },\n class: this.detailsTdClass\n }, [this.normalizeSlot(SLOT_NAME_ROW_DETAILS, detailsScope)]); // Add a hidden row to keep table row striping consistent when details showing\n // Only added if the table is striped\n\n if (striped) {\n $rows.push( // We don't use `BTr` here as we don't need the extra functionality\n h('tr', {\n staticClass: 'd-none',\n attrs: {\n 'aria-hidden': 'true',\n role: 'presentation'\n },\n key: \"__b-table-details-stripe__\".concat(rowKey)\n }));\n } // Add the actual details row\n\n\n var userDetailsTrClasses = isFunction(this.tbodyTrClass) ?\n /* istanbul ignore next */\n this.tbodyTrClass(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrClass;\n var userDetailsTrAttrs = isFunction(this.tbodyTrAttr) ?\n /* istanbul ignore next */\n this.tbodyTrAttr(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrAttr;\n $rows.push(h(BTr, {\n staticClass: 'b-table-details',\n class: [userDetailsTrClasses],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({}, userDetailsTrAttrs), {}, {\n // Users cannot override the following attributes\n id: detailsId,\n tabindex: '-1'\n }),\n key: \"__b-table-details__\".concat(rowKey)\n }, [$details]));\n } else if (hasDetailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n $rows.push(h());\n\n if (striped) {\n // Add extra placeholder if table is striped\n $rows.push(h());\n }\n } // Return the row(s)\n\n\n return $rows;\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_CONTEXTMENU, EVENT_NAME_ROW_DBLCLICKED, EVENT_NAME_ROW_MIDDLE_CLICKED } from '../../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_SPACE, CODE_UP } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { arrayIncludes, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, isActiveElement, isElement } from '../../../utils/dom';\nimport { stopEvent } from '../../../utils/events';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, pluckProps } from '../../../utils/props';\nimport { BTbody, props as BTbodyProps } from '../tbody';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\nimport { tbodyRowMixin, props as tbodyRowProps } from './mixin-tbody-row'; // --- Helper methods ---\n\nvar getCellSlotName = function getCellSlotName(value) {\n return \"cell(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread({}, BTbodyProps), tbodyRowProps), {}, {\n tbodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})); // --- Mixin ---\n// @vue/component\n\nexport var tbodyMixin = Vue.extend({\n mixins: [tbodyRowMixin],\n props: props,\n beforeDestroy: function beforeDestroy() {\n this.$_bodyFieldSlotNameCache = null;\n },\n methods: {\n // Returns all the item TR elements (excludes detail and spacer rows)\n // `this.$refs['item-rows']` is an array of item TR components/elements\n // Rows should all be `` components, but we map to TR elements\n // Also note that `this.$refs['item-rows']` may not always be in document order\n getTbodyTrs: function getTbodyTrs() {\n var $refs = this.$refs;\n var tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n var trs = ($refs['item-rows'] || []).map(function (tr) {\n return tr.$el || tr;\n });\n return tbody && tbody.children && tbody.children.length > 0 && trs && trs.length > 0 ? arrayFrom(tbody.children).filter(function (tr) {\n return arrayIncludes(trs, tr);\n }) :\n /* istanbul ignore next */\n [];\n },\n // Returns index of a particular TBODY item TR\n // We set `true` on closest to include self in result\n getTbodyTrIndex: function getTbodyTrIndex(el) {\n /* istanbul ignore next: should not normally happen */\n if (!isElement(el)) {\n return -1;\n }\n\n var tr = el.tagName === 'TR' ? el : closest('tr', el, true);\n return tr ? this.getTbodyTrs().indexOf(tr) : -1;\n },\n // Emits a row event, with the item object, row index and original event\n emitTbodyRowEvent: function emitTbodyRowEvent(type, event) {\n if (type && this.hasListener(type) && event && event.target) {\n var rowIndex = this.getTbodyTrIndex(event.target);\n\n if (rowIndex > -1) {\n // The array of TRs correlate to the `computedItems` array\n var item = this.computedItems[rowIndex];\n this.$emit(type, item, rowIndex, event);\n }\n }\n },\n tbodyRowEvtStopped: function tbodyRowEvtStopped(event) {\n return this.stopIfBusy && this.stopIfBusy(event);\n },\n // Delegated row event handlers\n onTbodyRowKeydown: function onTbodyRowKeydown(event) {\n // Keyboard navigation and row click emulation\n var target = event.target,\n keyCode = event.keyCode;\n\n if (this.tbodyRowEvtStopped(event) || target.tagName !== 'TR' || !isActiveElement(target) || target.tabIndex !== 0) {\n // Early exit if not an item row TR\n return;\n }\n\n if (arrayIncludes([CODE_ENTER, CODE_SPACE], keyCode)) {\n // Emulated click for keyboard users, transfer to click handler\n stopEvent(event);\n this.onTBodyRowClicked(event);\n } else if (arrayIncludes([CODE_UP, CODE_DOWN, CODE_HOME, CODE_END], keyCode)) {\n // Keyboard navigation\n var rowIndex = this.getTbodyTrIndex(target);\n\n if (rowIndex > -1) {\n stopEvent(event);\n var trs = this.getTbodyTrs();\n var shift = event.shiftKey;\n\n if (keyCode === CODE_HOME || shift && keyCode === CODE_UP) {\n // Focus first row\n attemptFocus(trs[0]);\n } else if (keyCode === CODE_END || shift && keyCode === CODE_DOWN) {\n // Focus last row\n attemptFocus(trs[trs.length - 1]);\n } else if (keyCode === CODE_UP && rowIndex > 0) {\n // Focus previous row\n attemptFocus(trs[rowIndex - 1]);\n } else if (keyCode === CODE_DOWN && rowIndex < trs.length - 1) {\n // Focus next row\n attemptFocus(trs[rowIndex + 1]);\n }\n }\n }\n },\n onTBodyRowClicked: function onTBodyRowClicked(event) {\n // Don't emit event when the table is busy, the user clicked\n // on a non-disabled control or is selecting text\n if (this.tbodyRowEvtStopped(event) || filterEvent(event) || textSelectionActive(this.$el)) {\n return;\n }\n\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CLICKED, event);\n },\n onTbodyRowMiddleMouseRowClicked: function onTbodyRowMiddleMouseRowClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && event.which === 2) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_MIDDLE_CLICKED, event);\n }\n },\n onTbodyRowContextmenu: function onTbodyRowContextmenu(event) {\n if (!this.tbodyRowEvtStopped(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CONTEXTMENU, event);\n }\n },\n onTbodyRowDblClicked: function onTbodyRowDblClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && !filterEvent(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_DBLCLICKED, event);\n }\n },\n // Render the tbody element and children\n // Note:\n // Row hover handlers are handled by the tbody-row mixin\n // As mouseenter/mouseleave events do not bubble\n renderTbody: function renderTbody() {\n var _this = this;\n\n var items = this.computedItems,\n renderBusy = this.renderBusy,\n renderTopRow = this.renderTopRow,\n renderEmpty = this.renderEmpty,\n renderBottomRow = this.renderBottomRow;\n var h = this.$createElement;\n var hasRowClickHandler = this.hasListener(EVENT_NAME_ROW_CLICKED) || this.hasSelectableRowClick; // Prepare the tbody rows\n\n var $rows = []; // Add the item data rows or the busy slot\n\n var $busy = renderBusy ? renderBusy() : null;\n\n if ($busy) {\n // If table is busy and a busy slot, then return only the busy \"row\" indicator\n $rows.push($busy);\n } else {\n // Table isn't busy, or we don't have a busy slot\n // Create a slot cache for improved performance when looking up cell slot names\n // Values will be keyed by the field's `key` and will store the slot's name\n // Slots could be dynamic (i.e. `v-if`), so we must compute on each render\n // Used by tbody-row mixin render helper\n var cache = {};\n var defaultSlotName = getCellSlotName();\n defaultSlotName = this.hasNormalizedSlot(defaultSlotName) ? defaultSlotName : null;\n this.computedFields.forEach(function (field) {\n var key = field.key;\n var slotName = getCellSlotName(key);\n var lowercaseSlotName = getCellSlotName(key.toLowerCase());\n cache[key] = _this.hasNormalizedSlot(slotName) ? slotName : _this.hasNormalizedSlot(lowercaseSlotName) ?\n /* istanbul ignore next */\n lowercaseSlotName : defaultSlotName;\n }); // Created as a non-reactive property so to not trigger component updates\n // Must be a fresh object each render\n\n this.$_bodyFieldSlotNameCache = cache; // Add static top row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderTopRow ? renderTopRow() : h()); // Render the rows\n\n items.forEach(function (item, rowIndex) {\n // Render the individual item row (rows if details slot)\n $rows.push(_this.renderTbodyRow(item, rowIndex));\n }); // Empty items / empty filtered row slot (only shows if `items.length < 1`)\n\n $rows.push(renderEmpty ? renderEmpty() : h()); // Static bottom row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderBottomRow ? renderBottomRow() : h());\n } // Note: these events will only emit if a listener is registered\n\n\n var handlers = {\n auxclick: this.onTbodyRowMiddleMouseRowClicked,\n // TODO:\n // Perhaps we do want to automatically prevent the\n // default context menu from showing if there is a\n // `row-contextmenu` listener registered\n contextmenu: this.onTbodyRowContextmenu,\n // The following event(s) is not considered A11Y friendly\n dblclick: this.onTbodyRowDblClicked // Hover events (`mouseenter`/`mouseleave`) are handled by `tbody-row` mixin\n\n }; // Add in click/keydown listeners if needed\n\n if (hasRowClickHandler) {\n handlers.click = this.onTBodyRowClicked;\n handlers.keydown = this.onTbodyRowKeydown;\n } // Assemble rows into the tbody\n\n\n var $tbody = h(BTbody, {\n class: this.tbodyClass || null,\n props: pluckProps(BTbodyProps, this.$props),\n // BTbody transfers all native event listeners to the root element\n // TODO: Only set the handlers if the table is not busy\n on: handlers,\n ref: 'tbody'\n }, $rows); // Return the assembled tbody\n\n return $tbody;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_CAPTION } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING) // `caption-top` is part of table-render mixin (styling)\n // captionTop: makeProp(PROP_TYPE_BOOLEAN, false)\n\n}; // --- Mixin ---\n// @vue/component\n\nexport var captionMixin = Vue.extend({\n props: props,\n computed: {\n captionId: function captionId() {\n // Even though `this.safeId` looks like a method, it is a computed prop\n // that returns a new function if the underlying ID changes\n return this.isStacked ? this.safeId('_caption_') : null;\n }\n },\n methods: {\n renderCaption: function renderCaption() {\n var caption = this.caption,\n captionHtml = this.captionHtml;\n var h = this.$createElement;\n var $caption = h();\n var hasCaptionSlot = this.hasNormalizedSlot(SLOT_NAME_TABLE_CAPTION);\n\n if (hasCaptionSlot || caption || captionHtml) {\n $caption = h('caption', {\n attrs: {\n id: this.captionId\n },\n domProps: hasCaptionSlot ? {} : htmlOrText(captionHtml, caption),\n key: 'caption'\n }, this.normalizeSlot(SLOT_NAME_TABLE_CAPTION));\n }\n\n return $caption;\n }\n }\n});","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/Vue.extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\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!./InvoiceList.vue?vue&type=style&index=1&lang=scss&\"","import axios from '@axios'\n\nexport default {\n namespaced: true,\n state: {},\n getters: {},\n mutations: {},\n actions: {\n fetchUsers(ctx, queryParams) {\n return new Promise((resolve, reject) => {\n axios\n .get('/apps/user/users', { params: queryParams })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n fetchUser(ctx, { id }) {\n return new Promise((resolve, reject) => {\n axios\n .get(`/apps/user/users/${id}`)\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n addUser(ctx, userData) {\n return new Promise((resolve, reject) => {\n axios\n .post('/apps/user/users', { user: userData })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n },\n}\n","import { identity } from '../../../utils/identity';\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect';\nimport { clone, keys } from '../../../utils/object';\nimport { startCase } from '../../../utils/string';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Private function to massage field entry into common object format\n\nvar processField = function processField(key, value) {\n var field = null;\n\n if (isString(value)) {\n // Label shortcut\n field = {\n key: key,\n label: value\n };\n } else if (isFunction(value)) {\n // Formatter shortcut\n field = {\n key: key,\n formatter: value\n };\n } else if (isObject(value)) {\n field = clone(value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n\n /* istanbul ignore next */\n field = {\n key: key\n };\n }\n\n return field;\n}; // We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\n\n\nexport var normalizeFields = function normalizeFields(origFields, items) {\n var fields = [];\n\n if (isArray(origFields)) {\n // Normalize array Form\n origFields.filter(identity).forEach(function (f) {\n if (isString(f)) {\n fields.push({\n key: f,\n label: startCase(f)\n });\n } else if (isObject(f) && f.key && isString(f.key)) {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(clone(f));\n } else if (isObject(f) && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n var key = keys(f)[0];\n var field = processField(key, f[key]);\n\n if (field) {\n fields.push(field);\n }\n }\n });\n } // If no field provided, take a sample from first record (if exits)\n\n\n if (fields.length === 0 && isArray(items) && items.length > 0) {\n var sample = items[0];\n keys(sample).forEach(function (k) {\n if (!IGNORED_FIELD_KEYS[k]) {\n fields.push({\n key: k,\n label: startCase(k)\n });\n }\n });\n } // Ensure we have a unique array of fields and that they have String labels\n\n\n var memo = {};\n return fields.filter(function (f) {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = isString(f.label) ? f.label : startCase(f.key);\n return true;\n }\n\n return false;\n });\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isArray, isFunction, isString } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { makeModelMixin } from '../../../utils/model';\nimport { toInteger } from '../../../utils/number';\nimport { clone, sortKeys } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { normalizeFields } from './normalize-fields'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_ARRAY,\n defaultValue: []\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, _defineProperty({\n fields: makeProp(PROP_TYPE_ARRAY, null),\n // Provider mixin adds in `Function` type\n items: makeProp(PROP_TYPE_ARRAY, []),\n // Primary key for record\n // If provided the value in each row must be unique!\n primaryKey: makeProp(PROP_TYPE_STRING)\n}, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])))); // --- Mixin ---\n// @vue/component\n\nexport var itemsMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var items = this.items;\n return {\n // Our local copy of the items\n // Must be an array\n localItems: isArray(items) ? items.slice() : []\n };\n },\n computed: {\n computedFields: function computedFields() {\n // We normalize fields into an array of objects\n // `[ { key:..., label:..., ...}, {...}, ..., {..}]`\n return normalizeFields(this.fields, this.localItems);\n },\n computedFieldsObj: function computedFieldsObj() {\n // Fields as a simple lookup hash object\n // Mainly for formatter lookup and use in `scopedSlots` for convenience\n // If the field has a formatter, it normalizes formatter to a\n // function ref or `undefined` if no formatter\n var $parent = this.$parent;\n return this.computedFields.reduce(function (obj, f) {\n // We use object spread here so we don't mutate the original field object\n obj[f.key] = clone(f);\n\n if (f.formatter) {\n // Normalize formatter to a function ref or `undefined`\n var formatter = f.formatter;\n\n if (isString(formatter) && isFunction($parent[formatter])) {\n formatter = $parent[formatter];\n } else if (!isFunction(formatter)) {\n /* istanbul ignore next */\n formatter = undefined;\n } // Return formatter function or `undefined` if none\n\n\n obj[f.key].formatter = formatter;\n }\n\n return obj;\n }, {});\n },\n computedItems: function computedItems() {\n // Fallback if various mixins not provided\n return (this.paginatedItems || this.sortedItems || this.filteredItems || this.localItems ||\n /* istanbul ignore next */\n []).slice();\n },\n context: function context() {\n // Current state of sorting, filtering and pagination props/values\n return {\n filter: this.localFilter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n perPage: mathMax(toInteger(this.perPage, 0), 0),\n currentPage: mathMax(toInteger(this.currentPage, 0), 1),\n apiUrl: this.apiUrl\n };\n }\n },\n watch: {\n items: function items(newValue) {\n // Set `localItems`/`filteredItems` to a copy of the provided array\n this.localItems = isArray(newValue) ? newValue.slice() : [];\n },\n // Watch for changes on `computedItems` and update the `v-model`\n computedItems: function computedItems(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n },\n // Watch for context changes\n context: function context(newValue, oldValue) {\n // Emit context information for external paging/filtering/sorting handling\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT_CHANGED, newValue);\n }\n }\n },\n mounted: function mounted() {\n // Initially update the `v-model` of displayed items\n this.$emit(MODEL_EVENT_NAME, this.computedItems);\n },\n methods: {\n // Method to get the formatter method for a given field key\n getFieldFormatter: function getFieldFormatter(key) {\n var field = this.computedFieldsObj[key]; // `this.computedFieldsObj` has pre-normalized the formatter to a\n // function ref if present, otherwise `undefined`\n\n return field ? field.formatter : undefined;\n }\n }\n});","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 { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\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!./AppTimelineItem.vue?vue&type=style&index=0&id=4bbac430&lang=scss&scoped=true&\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Constants used by table helpers\nexport var FIELD_KEY_CELL_VARIANT = '_cellVariants';\nexport var FIELD_KEY_ROW_VARIANT = '_rowVariant';\nexport var FIELD_KEY_SHOW_DETAILS = '_showDetails'; // Object of item keys that should be ignored for headers and\n// stringification and filter events\n\nexport var IGNORED_FIELD_KEYS = [FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS].reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, true));\n}, {}); // Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\n\nexport var EVENT_FILTER = ['a', 'a *', // Include content inside links\n'button', 'button *', // Include content inside buttons\n'input:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'textarea:not(.disabled):not([disabled])', '[role=\"link\"]', '[role=\"link\"] *', '[role=\"button\"]', '[role=\"button\"] *', '[tabindex]:not(.disabled):not([disabled])'].join(',');","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_ASIDE } 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 right: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA_ASIDE); // --- Main component ---\n// @vue/component\n\nexport var BMediaAside = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_ASIDE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var verticalAlign = props.verticalAlign;\n var align = verticalAlign === 'top' ? 'start' : verticalAlign === 'bottom' ? 'end' :\n /* istanbul ignore next */\n verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-aside',\n class: _defineProperty({\n 'media-aside-right': props.right\n }, \"align-self-\".concat(align), align)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_BODY } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_MEDIA_BODY); // --- Main component ---\n// @vue/component\n\nexport var BMediaBody = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-body'\n }), children);\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot'; // --- Props ---\n\nexport var props = {\n footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n // Any Bootstrap theme variant (or custom)\n // Falls back to `headRowVariant`\n footRowVariant: makeProp(PROP_TYPE_STRING),\n // 'dark', 'light', or `null` (or custom)\n footVariant: makeProp(PROP_TYPE_STRING),\n tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tfootMixin = Vue.extend({\n props: props,\n methods: {\n renderTFootCustom: function renderTFootCustom() {\n var h = this.$createElement;\n\n if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n return h(BTfoot, {\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n },\n key: 'bv-tfoot-custom'\n }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n }\n\n return h();\n },\n renderTfoot: function renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n }\n }\n});","/*\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};","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!./AppTimeline.vue?vue&type=style&index=0&id=484a211f&lang=scss&scoped=true&\"","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\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 Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\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!./ToastificationContent.vue?vue&type=style&index=0&id=00bc57af&lang=scss&scoped=true&\"","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_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: this.$props,\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","import axios from '@axios'\n\nexport default {\n namespaced: true,\n state: {},\n getters: {},\n mutations: {},\n actions: {\n fetchInvoices(ctx, queryParams) {\n return new Promise((resolve, reject) => {\n axios\n .get('/apps/invoice/invoices', { params: queryParams })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n fetchInvoice(ctx, { id }) {\n return new Promise((resolve, reject) => {\n axios\n .get(`/apps/invoice/invoices/${id}`)\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n fetchClients() {\n return new Promise((resolve, reject) => {\n axios\n .get('/apps/invoice/clients')\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n // addUser(ctx, userData) {\n // return new Promise((resolve, reject) => {\n // axios\n // .post('/apps/user/users', { user: userData })\n // .then(response => resolve(response))\n // .catch(error => reject(error))\n // })\n // },\n },\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[_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(\"Entries\")]),_c('v-select',{staticClass:\"per-page-selector d-inline-block ml-50 mr-1\",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('b-button',{attrs:{\"variant\":\"primary\",\"to\":{ name: 'apps-invoice-add'}}},[_vm._v(\" Add Record \")])],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\":\"Search...\"},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}}),_c('v-select',{staticClass:\"invoice-filter-select\",attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.statusOptions,\"placeholder\":\"Select Status\"},scopedSlots:_vm._u([{key:\"selected-option\",fn:function(ref){\nvar label = ref.label;\nreturn [_c('span',{staticClass:\"text-truncate overflow-hidden\"},[_vm._v(\" \"+_vm._s(label)+\" \")])]}}]),model:{value:(_vm.statusFilter),callback:function ($$v) {_vm.statusFilter=$$v},expression:\"statusFilter\"}})],1)])],1)],1),_c('b-table',{ref:\"refInvoiceListTable\",staticClass:\"position-relative\",attrs:{\"items\":_vm.fetchInvoices,\"responsive\":\"\",\"fields\":_vm.tableColumns,\"primary-key\":\"id\",\"sort-by\":_vm.sortBy,\"show-empty\":\"\",\"empty-text\":\"No matching records found\",\"sort-desc\":_vm.isSortDirDesc},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.isSortDirDesc=$event},\"update:sort-desc\":function($event){_vm.isSortDirDesc=$event}},scopedSlots:_vm._u([{key:\"head(invoiceStatus)\",fn:function(){return [_c('feather-icon',{staticClass:\"mx-auto\",attrs:{\"icon\":\"TrendingUpIcon\"}})]},proxy:true},{key:\"cell(id)\",fn:function(data){return [_c('b-link',{staticClass:\"font-weight-bold\",attrs:{\"to\":{ name: 'apps-invoice-preview', params: { id: data.item.id }}}},[_vm._v(\" #\"+_vm._s(data.value)+\" \")])]}},{key:\"cell(invoiceStatus)\",fn:function(data){return [_c('b-avatar',{attrs:{\"id\":(\"invoice-row-\" + (data.item.id)),\"size\":\"32\",\"variant\":(\"light-\" + (_vm.resolveInvoiceStatusVariantAndIcon(data.item.invoiceStatus).variant))}},[_c('feather-icon',{attrs:{\"icon\":_vm.resolveInvoiceStatusVariantAndIcon(data.item.invoiceStatus).icon}})],1),_c('b-tooltip',{attrs:{\"target\":(\"invoice-row-\" + (data.item.id)),\"placement\":\"top\"}},[_c('p',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(data.item.invoiceStatus)+\" \")]),_c('p',{staticClass:\"mb-0\"},[_vm._v(\" Balance: \"+_vm._s(data.item.balance)+\" \")]),_c('p',{staticClass:\"mb-0\"},[_vm._v(\" Due Date: \"+_vm._s(data.item.dueDate)+\" \")])])]}},{key:\"cell(client)\",fn:function(data){return [_c('b-media',{attrs:{\"vertical-align\":\"center\"},scopedSlots:_vm._u([{key:\"aside\",fn:function(){return [_c('b-avatar',{attrs:{\"size\":\"32\",\"src\":data.item.avatar,\"text\":_vm.avatarText(data.item.client.name),\"variant\":(\"light-\" + (_vm.resolveClientAvatarVariant(data.item.invoiceStatus)))}})]},proxy:true}],null,true)},[_c('span',{staticClass:\"font-weight-bold d-block text-nowrap\"},[_vm._v(\" \"+_vm._s(data.item.client.name)+\" \")]),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(data.item.client.companyEmail))])])]}},{key:\"cell(issuedDate)\",fn:function(data){return [_c('span',{staticClass:\"text-nowrap\"},[_vm._v(\" \"+_vm._s(data.value)+\" \")])]}},{key:\"cell(balance)\",fn:function(data){return [(data.value === 0)?[_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":\"light-success\"}},[_vm._v(\" Paid \")])]:[_vm._v(\" \"+_vm._s(data.value)+\" \")]]}},{key:\"cell(actions)\",fn:function(data){return [_c('div',{staticClass:\"text-nowrap\"},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"id\":(\"invoice-row-\" + (data.item.id) + \"-send-icon\"),\"icon\":\"SendIcon\",\"size\":\"16\"}}),_c('b-tooltip',{staticClass:\"cursor-pointer\",attrs:{\"title\":\"Send Invoice\",\"target\":(\"invoice-row-\" + (data.item.id) + \"-send-icon\")}}),_c('feather-icon',{staticClass:\"mx-1\",attrs:{\"id\":(\"invoice-row-\" + (data.item.id) + \"-preview-icon\"),\"icon\":\"EyeIcon\",\"size\":\"16\"},on:{\"click\":function($event){return _vm.$router.push({ name: 'apps-invoice-preview', params: { id: data.item.id }})}}}),_c('b-tooltip',{attrs:{\"title\":\"Preview Invoice\",\"target\":(\"invoice-row-\" + (data.item.id) + \"-preview-icon\")}}),_c('b-dropdown',{attrs:{\"variant\":\"link\",\"toggle-class\":\"p-0\",\"no-caret\":\"\",\"right\":_vm.$store.state.appConfig.isRTL},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('feather-icon',{staticClass:\"align-middle text-body\",attrs:{\"icon\":\"MoreVerticalIcon\",\"size\":\"16\"}})]},proxy:true}],null,true)},[_c('b-dropdown-item',[_c('feather-icon',{attrs:{\"icon\":\"DownloadIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Download\")])],1),_c('b-dropdown-item',{attrs:{\"to\":{ name: 'apps-invoice-edit', params: { id: data.item.id } }}},[_c('feather-icon',{attrs:{\"icon\":\"EditIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Edit\")])],1),_c('b-dropdown-item',[_c('feather-icon',{attrs:{\"icon\":\"TrashIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Delete\")])],1),_c('b-dropdown-item',[_c('feather-icon',{attrs:{\"icon\":\"CopyIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Duplicate\")])],1)],1)],1)]}}])}),_c('div',{staticClass:\"mx-2 mb-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-start\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Showing \"+_vm._s(_vm.dataMeta.from)+\" to \"+_vm._s(_vm.dataMeta.to)+\" of \"+_vm._s(_vm.dataMeta.of)+\" entries\")])]),_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-end\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('b-pagination',{staticClass:\"mb-0 mt-1 mt-sm-0\",attrs:{\"total-rows\":_vm.totalInvoices,\"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)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, watch, computed } from '@vue/composition-api'\nimport store from '@/store'\n\n// Notification\nimport { useToast } from 'vue-toastification/composition'\nimport ToastificationContent from '@core/components/toastification/ToastificationContent.vue'\n\nexport default function useInvoicesList() {\n // Use toast\n const toast = useToast()\n\n const refInvoiceListTable = ref(null)\n\n // Table Handlers\n const tableColumns = [\n { key: 'id', label: '#', sortable: true },\n { key: 'invoiceStatus', sortable: true },\n { key: 'client', sortable: true },\n { key: 'total', sortable: true, formatter: val => `$${val}` },\n { key: 'issuedDate', sortable: true },\n { key: 'balance', sortable: true },\n { key: 'actions' },\n ]\n const perPage = ref(10)\n const totalInvoices = ref(0)\n const currentPage = ref(1)\n const perPageOptions = [10, 25, 50, 100]\n const searchQuery = ref('')\n const sortBy = ref('id')\n const isSortDirDesc = ref(true)\n const statusFilter = ref(null)\n\n const dataMeta = computed(() => {\n const localItemsCount = refInvoiceListTable.value ? refInvoiceListTable.value.localItems.length : 0\n return {\n from: perPage.value * (currentPage.value - 1) + (localItemsCount ? 1 : 0),\n to: perPage.value * (currentPage.value - 1) + localItemsCount,\n of: totalInvoices.value,\n }\n })\n\n const refetchData = () => {\n refInvoiceListTable.value.refresh()\n }\n\n watch([currentPage, perPage, searchQuery, statusFilter], () => {\n refetchData()\n })\n\n const fetchInvoices = (ctx, callback) => {\n store\n .dispatch('app-invoice/fetchInvoices', {\n q: searchQuery.value,\n perPage: perPage.value,\n page: currentPage.value,\n sortBy: sortBy.value,\n sortDesc: isSortDirDesc.value,\n status: statusFilter.value,\n })\n .then(response => {\n const { invoices, total } = response.data\n\n callback(invoices)\n totalInvoices.value = total\n })\n .catch(() => {\n toast({\n component: ToastificationContent,\n props: {\n title: \"Error fetching invoices' list\",\n icon: 'AlertTriangleIcon',\n variant: 'danger',\n },\n })\n })\n }\n\n // *===============================================---*\n // *--------- UI ---------------------------------------*\n // *===============================================---*\n\n const resolveInvoiceStatusVariantAndIcon = status => {\n if (status === 'Partial Payment') return { variant: 'warning', icon: 'PieChartIcon' }\n if (status === 'Paid') return { variant: 'success', icon: 'CheckCircleIcon' }\n if (status === 'Downloaded') return { variant: 'info', icon: 'ArrowDownCircleIcon' }\n if (status === 'Draft') return { variant: 'primary', icon: 'SaveIcon' }\n if (status === 'Sent') return { variant: 'secondary', icon: 'SendIcon' }\n if (status === 'Past Due') return { variant: 'danger', icon: 'InfoIcon' }\n return { variant: 'secondary', icon: 'XIcon' }\n }\n\n const resolveClientAvatarVariant = status => {\n if (status === 'Partial Payment') return 'primary'\n if (status === 'Paid') return 'danger'\n if (status === 'Downloaded') return 'secondary'\n if (status === 'Draft') return 'warning'\n if (status === 'Sent') return 'info'\n if (status === 'Past Due') return 'success'\n return 'primary'\n }\n\n return {\n fetchInvoices,\n tableColumns,\n perPage,\n currentPage,\n totalInvoices,\n dataMeta,\n perPageOptions,\n searchQuery,\n sortBy,\n isSortDirDesc,\n refInvoiceListTable,\n\n statusFilter,\n\n resolveInvoiceStatusVariantAndIcon,\n resolveClientAvatarVariant,\n\n refetchData,\n }\n}\n","\n\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!./InvoiceList.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!./InvoiceList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InvoiceList.vue?vue&type=template&id=9a6e255c&scoped=true&\"\nimport script from \"./InvoiceList.vue?vue&type=script&lang=js&\"\nexport * from \"./InvoiceList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InvoiceList.vue?vue&type=style&index=0&id=9a6e255c&lang=scss&scoped=true&\"\nimport style1 from \"./InvoiceList.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 \"9a6e255c\",\n null\n \n)\n\nexport default component.exports","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 `