{"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?fac5","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?fb63","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?3ce7","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?0873","webpack:///./src/views/apps/user/users-view/UserViewUserInfoCard.vue?7c2f","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?dd98","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?40ee","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?85c4","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?916f","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.be7ecfb5.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 \n\n \n \n \n \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!./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 \n \n \n \n \n \n \n \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!./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 \n \n\n \n \n Entries\n \n \n Add Record\n \n \n\n \n \n \n \n \n \n \n {{ label }}\n \n \n \n \n \n \n\n \n\n \n\n \n \n \n\n \n \n \n #{{ data.value }}\n \n \n\n \n \n \n \n \n \n \n {{ data.item.invoiceStatus }}\n \n \n Balance: {{ data.item.balance }}\n \n \n Due Date: {{ data.item.dueDate }}\n \n \n \n\n \n \n \n \n \n \n \n {{ data.item.client.name }}\n \n {{ data.item.client.companyEmail }}\n \n \n\n \n \n \n {{ data.value }}\n \n \n\n \n \n \n \n Paid\n \n \n \n {{ data.value }}\n \n \n\n \n \n\n \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n Download\n \n \n \n Edit\n \n \n \n Delete\n \n \n \n Duplicate\n \n \n \n \n\n \n \n \n\n \n Showing {{ dataMeta.from }} to {{ dataMeta.to }} of {{ dataMeta.of }} entries\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n\n \n \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 `` wrapper\n\n if (isNav) {\n return h('nav', {\n attrs: {\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-hidden': disabled ? 'true' : 'false',\n 'aria-label': isNav ? ariaLabel || null : null\n }\n }, [$pagination]);\n }\n\n return $pagination;\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from '../../vue';\nimport { NAME_COL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_COL_CLASS } from '../../constants/regex';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { memoize } from '../../utils/memoize';\nimport { assign, create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase } from '../../utils/string'; // --- Constants ---\n\nvar ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch']; // --- Helper methods ---\n// Compute a breakpoint class name\n\nvar computeBreakpoint = function computeBreakpoint(type, breakpoint, value) {\n var className = type;\n\n if (isUndefinedOrNull(value) || value === false) {\n return undefined;\n }\n\n if (breakpoint) {\n className += \"-\".concat(breakpoint);\n } // Handling the boolean style prop when accepting `[Boolean, String, Number]`\n // means Vue will not convert `` to `sm: true` for us\n // Since the default is `false`, '' indicates the prop's presence\n\n\n if (type === 'col' && (value === '' || value === true)) {\n // .col-md\n return lowerCase(className);\n } // .order-md-6\n\n\n className += \"-\".concat(value);\n return lowerCase(className);\n}; // Memoized function for better performance on generating class names\n\n\nvar computeBreakpointClass = memoize(computeBreakpoint); // Cached copy of the breakpoint prop names\n\nvar breakpointPropMap = create(null); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n var breakpoints = getBreakpointsUpCached().filter(identity); // i.e. 'col-sm', 'col-md-6', 'col-lg-auto', ...\n\n var breakpointCol = breakpoints.reduce(function (props, breakpoint) {\n props[breakpoint] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'offset-md-1', 'offset-lg-12', ...\n\n var breakpointOffset = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'offset')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'order-md-1', 'order-lg-12', ...\n\n var breakpointOrder = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'order')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // For loop doesn't need to check `.hasOwnProperty()`\n // when using an object created from `null`\n\n breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n }); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, breakpointCol), breakpointOffset), breakpointOrder), {}, {\n // Flex alignment\n alignSelf: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(ALIGN_SELF_VALUES, value);\n }),\n // Generic flexbox 'col' (xs)\n col: makeProp(PROP_TYPE_BOOLEAN, false),\n // i.e. 'col-1', 'col-2', 'col-auto', ...\n cols: makeProp(PROP_TYPE_NUMBER_STRING),\n offset: makeProp(PROP_TYPE_NUMBER_STRING),\n order: makeProp(PROP_TYPE_NUMBER_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_COL);\n}; // --- Main component ---\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BCol = {\n name: NAME_COL,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var cols = props.cols,\n offset = props.offset,\n order = props.order,\n alignSelf = props.alignSelf;\n var classList = []; // Loop through `col`, `offset`, `order` breakpoint props\n\n for (var type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n var _keys = breakpointPropMap[type];\n\n for (var i = 0; i < _keys.length; i++) {\n // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])\n var c = computeBreakpointClass(type, _keys[i].replace(type, ''), props[_keys[i]]); // If a class is returned, push it onto the array.\n\n if (c) {\n classList.push(c);\n }\n }\n }\n\n var hasColClasses = classList.some(function (className) {\n return RX_COL_CLASS.test(className);\n });\n classList.push((_classList$push = {\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: props.col || !hasColClasses && !cols\n }, _defineProperty(_classList$push, \"col-\".concat(cols), cols), _defineProperty(_classList$push, \"offset-\".concat(offset), offset), _defineProperty(_classList$push, \"order-\".concat(order), order), _defineProperty(_classList$push, \"align-self-\".concat(alignSelf), alignSelf), _classList$push));\n return h(props.tag, mergeData(data, {\n class: classList\n }), children);\n }\n};","var _makePropsConfigurabl, _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_TOOLTIP } from '../../constants/components';\nimport { EVENT_NAME_CLOSE, EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_OPEN, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_OBJECT_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement, SVGElement } from '../../constants/safe-types';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { pick } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTooltip } from './helpers/bv-tooltip'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ENABLED = 'disabled';\nvar MODEL_EVENT_NAME_ENABLED = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ENABLED;\nvar MODEL_PROP_NAME_SHOW = 'show';\nvar MODEL_EVENT_NAME_SHOW = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SHOW; // --- Props ---\n\nexport var props = makePropsConfigurable((_makePropsConfigurabl = {\n // String: scrollParent, window, or viewport\n // Element: element reference\n // Object: Vue component\n boundary: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING], 'scrollParent'),\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 50),\n // String: HTML ID of container, if null body is used (default)\n // HTMLElement: element reference reference\n // Object: Vue Component\n container: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING]),\n customClass: makeProp(PROP_TYPE_STRING),\n delay: makeProp(PROP_TYPE_NUMBER_OBJECT_STRING, 50)\n}, _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_ENABLED, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"fallbackPlacement\", makeProp(PROP_TYPE_ARRAY_STRING, 'flip')), _defineProperty(_makePropsConfigurabl, \"id\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"noFade\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"noninteractive\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"offset\", makeProp(PROP_TYPE_NUMBER_STRING, 0)), _defineProperty(_makePropsConfigurabl, \"placement\", makeProp(PROP_TYPE_STRING, 'top')), _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_SHOW, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"target\", makeProp([HTMLElement, SVGElement, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING], undefined, true)), _defineProperty(_makePropsConfigurabl, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"triggers\", makeProp(PROP_TYPE_ARRAY_STRING, 'hover focus')), _defineProperty(_makePropsConfigurabl, \"variant\", makeProp(PROP_TYPE_STRING)), _makePropsConfigurabl), NAME_TOOLTIP); // --- Main component ---\n// @vue/component\n\nexport var BTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP,\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localShow: this[MODEL_PROP_NAME_SHOW],\n localTitle: '',\n localContent: ''\n };\n },\n computed: {\n // Data that will be passed to the template and popper\n templateData: function templateData() {\n return _objectSpread({\n title: this.localTitle,\n content: this.localContent,\n interactive: !this.noninteractive\n }, pick(this.$props, ['boundary', 'boundaryPadding', 'container', 'customClass', 'delay', 'fallbackPlacement', 'id', 'noFade', 'offset', 'placement', 'target', 'target', 'triggers', 'variant', MODEL_PROP_NAME_ENABLED]));\n },\n // Used to watch for changes to the title and content props\n templateTitleContent: function templateTitleContent() {\n var title = this.title,\n content = this.content;\n return {\n title: title,\n content: content\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_SHOW, function (newValue, oldValue) {\n if (newValue !== oldValue && newValue !== this.localShow && this.$_toolpop) {\n if (newValue) {\n this.$_toolpop.show();\n } else {\n // We use `forceHide()` to override any active triggers\n this.$_toolpop.forceHide();\n }\n }\n }), _defineProperty(_watch, MODEL_PROP_NAME_ENABLED, function (newValue) {\n if (newValue) {\n this.doDisable();\n } else {\n this.doEnable();\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n // TODO: May need to be done in a `$nextTick()`\n this.$emit(MODEL_EVENT_NAME_SHOW, newValue);\n }), _defineProperty(_watch, \"templateData\", function templateData() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.$_toolpop) {\n _this.$_toolpop.updateData(_this.templateData);\n }\n });\n }), _defineProperty(_watch, \"templateTitleContent\", function templateTitleContent() {\n this.$nextTick(this.updateContent);\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_toolpop = null;\n },\n updated: function updated() {\n // Update the `propData` object\n // Done in a `$nextTick()` to ensure slot(s) have updated\n this.$nextTick(this.updateContent);\n },\n beforeDestroy: function beforeDestroy() {\n // Shutdown our local event listeners\n this.$off(EVENT_NAME_OPEN, this.doOpen);\n this.$off(EVENT_NAME_CLOSE, this.doClose);\n this.$off(EVENT_NAME_DISABLE, this.doDisable);\n this.$off(EVENT_NAME_ENABLE, this.doEnable); // Destroy the tip instance\n\n if (this.$_toolpop) {\n this.$_toolpop.$destroy();\n this.$_toolpop = null;\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n // Instantiate a new BVTooltip instance\n // Done in a `$nextTick()` to ensure DOM has completed rendering\n // so that target can be found\n this.$nextTick(function () {\n // Load the on demand child instance\n var Component = _this2.getComponent(); // Ensure we have initial content\n\n\n _this2.updateContent(); // Pass down the scoped style attribute if available\n\n\n var scopeId = getScopeId(_this2) || getScopeId(_this2.$parent); // Create the instance\n\n var $toolpop = _this2.$_toolpop = new Component({\n parent: _this2,\n // Pass down the scoped style ID\n _scopeId: scopeId || undefined\n }); // Set the initial data\n\n $toolpop.updateData(_this2.templateData); // Set listeners\n\n $toolpop.$on(EVENT_NAME_SHOW, _this2.onShow);\n $toolpop.$on(EVENT_NAME_SHOWN, _this2.onShown);\n $toolpop.$on(EVENT_NAME_HIDE, _this2.onHide);\n $toolpop.$on(EVENT_NAME_HIDDEN, _this2.onHidden);\n $toolpop.$on(EVENT_NAME_DISABLED, _this2.onDisabled);\n $toolpop.$on(EVENT_NAME_ENABLED, _this2.onEnabled); // Initially disabled?\n\n if (_this2[MODEL_PROP_NAME_ENABLED]) {\n // Initially disabled\n _this2.doDisable();\n } // Listen to open signals from others\n\n\n _this2.$on(EVENT_NAME_OPEN, _this2.doOpen); // Listen to close signals from others\n\n\n _this2.$on(EVENT_NAME_CLOSE, _this2.doClose); // Listen to disable signals from others\n\n\n _this2.$on(EVENT_NAME_DISABLE, _this2.doDisable); // Listen to enable signals from others\n\n\n _this2.$on(EVENT_NAME_ENABLE, _this2.doEnable); // Initially show tooltip?\n\n\n if (_this2.localShow) {\n $toolpop.show();\n }\n });\n },\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVTooltip;\n },\n updateContent: function updateContent() {\n // Overridden by BPopover\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function reference by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setTitle(this.normalizeSlot() || this.title);\n },\n // Helper methods for `updateContent()`\n setTitle: function setTitle(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localTitle !== value) {\n this.localTitle = value;\n }\n },\n setContent: function setContent(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localContent !== value) {\n this.localContent = value;\n }\n },\n // --- Template event handlers ---\n onShow: function onShow(bvEvent) {\n // Placeholder\n this.$emit(EVENT_NAME_SHOW, bvEvent);\n\n if (bvEvent) {\n this.localShow = !bvEvent.defaultPrevented;\n }\n },\n onShown: function onShown(bvEvent) {\n // Tip is now showing\n this.localShow = true;\n this.$emit(EVENT_NAME_SHOWN, bvEvent);\n },\n onHide: function onHide(bvEvent) {\n this.$emit(EVENT_NAME_HIDE, bvEvent);\n },\n onHidden: function onHidden(bvEvent) {\n // Tip is no longer showing\n this.$emit(EVENT_NAME_HIDDEN, bvEvent);\n this.localShow = false;\n },\n onDisabled: function onDisabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `disabled` instead of `disable`\n if (bvEvent && bvEvent.type === EVENT_NAME_DISABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, true);\n this.$emit(EVENT_NAME_DISABLED, bvEvent);\n }\n },\n onEnabled: function onEnabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `enabled` instead of `enable`\n if (bvEvent && bvEvent.type === EVENT_NAME_ENABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, false);\n this.$emit(EVENT_NAME_ENABLED, bvEvent);\n }\n },\n // --- Local event listeners ---\n doOpen: function doOpen() {\n !this.localShow && this.$_toolpop && this.$_toolpop.show();\n },\n doClose: function doClose() {\n this.localShow && this.$_toolpop && this.$_toolpop.hide();\n },\n doDisable: function doDisable() {\n this.$_toolpop && this.$_toolpop.disable();\n },\n doEnable: function doEnable() {\n this.$_toolpop && this.$_toolpop.enable();\n }\n },\n render: function render(h) {\n // Always renders a comment node\n // TODO:\n // Future: Possibly render a target slot (single root element)\n // which we can apply the listeners to (pass `this.$el` to BVTooltip)\n return h();\n }\n});","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\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_HEADER } 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, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\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 headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_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 subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_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.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","import { ref, watch, computed } from '@vue/composition-api'\nimport store from '@/store'\nimport { title } from '@core/utils/filter'\n\n// Notification\nimport { useToast } from 'vue-toastification/composition'\nimport ToastificationContent from '@core/components/toastification/ToastificationContent.vue'\n\nexport default function useUsersList() {\n // Use toast\n const toast = useToast()\n\n const refUserListTable = ref(null)\n\n // Table Handlers\n const tableColumns = [\n { key: 'user', sortable: true },\n { key: 'email', sortable: true },\n { key: 'role', sortable: true },\n {\n key: 'currentPlan',\n label: 'Plan',\n formatter: title,\n sortable: true,\n },\n { key: 'status', sortable: true },\n { key: 'actions' },\n ]\n const perPage = ref(10)\n const totalUsers = 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 roleFilter = ref(null)\n const planFilter = ref(null)\n const statusFilter = ref(null)\n\n const dataMeta = computed(() => {\n const localItemsCount = refUserListTable.value ? refUserListTable.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: totalUsers.value,\n }\n })\n\n const refetchData = () => {\n refUserListTable.value.refresh()\n }\n\n watch([currentPage, perPage, searchQuery, roleFilter, planFilter, statusFilter], () => {\n refetchData()\n })\n\n const fetchUsers = (ctx, callback) => {\n store\n .dispatch('app-user/fetchUsers', {\n q: searchQuery.value,\n perPage: perPage.value,\n page: currentPage.value,\n sortBy: sortBy.value,\n sortDesc: isSortDirDesc.value,\n role: roleFilter.value,\n plan: planFilter.value,\n status: statusFilter.value,\n })\n .then(response => {\n const { users, total } = response.data\n\n callback(users)\n totalUsers.value = total\n })\n .catch(() => {\n toast({\n component: ToastificationContent,\n props: {\n title: 'Error fetching users list',\n icon: 'AlertTriangleIcon',\n variant: 'danger',\n },\n })\n })\n }\n\n // *===============================================---*\n // *--------- UI ---------------------------------------*\n // *===============================================---*\n\n const resolveUserRoleVariant = role => {\n if (role === 'subscriber') return 'primary'\n if (role === 'author') return 'warning'\n if (role === 'maintainer') return 'success'\n if (role === 'editor') return 'info'\n if (role === 'admin') return 'danger'\n return 'primary'\n }\n\n const resolveUserRoleIcon = role => {\n if (role === 'subscriber') return 'UserIcon'\n if (role === 'author') return 'SettingsIcon'\n if (role === 'maintainer') return 'DatabaseIcon'\n if (role === 'editor') return 'Edit2Icon'\n if (role === 'admin') return 'ServerIcon'\n return 'UserIcon'\n }\n\n const resolveUserStatusVariant = status => {\n if (status === 'pending') return 'warning'\n if (status === 'active') return 'success'\n if (status === 'inactive') return 'secondary'\n return 'primary'\n }\n\n return {\n fetchUsers,\n tableColumns,\n perPage,\n currentPage,\n totalUsers,\n dataMeta,\n perPageOptions,\n searchQuery,\n sortBy,\n isSortDirDesc,\n refUserListTable,\n\n resolveUserRoleVariant,\n resolveUserRoleIcon,\n resolveUserStatusVariant,\n refetchData,\n\n // Extra Filters\n roleFilter,\n planFilter,\n statusFilter,\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.userData === undefined}},[_c('h4',{staticClass:\"alert-heading\"},[_vm._v(\" Error fetching user data \")]),_c('div',{staticClass:\"alert-body\"},[_vm._v(\" No user found with this user id. Check \"),_c('b-link',{staticClass:\"alert-link\",attrs:{\"to\":{ name: 'apps-users-list'}}},[_vm._v(\" User List \")]),_vm._v(\" for other users. \")],1)]),(_vm.userData)?[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":\"9\",\"lg\":\"8\",\"md\":\"7\"}},[_c('user-view-user-info-card',{attrs:{\"user-data\":_vm.userData}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"5\",\"xl\":\"3\",\"lg\":\"4\"}},[_c('user-view-user-plan-card')],1)],1),_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('user-view-user-timeline-card')],1),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('user-view-user-permissions-card')],1)],1),_c('invoice-list')]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('b-row',[_c('b-col',{staticClass:\"d-flex justify-content-between flex-column\",attrs:{\"cols\":\"21\",\"xl\":\"6\"}},[_c('div',{staticClass:\"d-flex justify-content-start\"},[_c('b-avatar',{attrs:{\"src\":_vm.userData.avatar,\"text\":_vm.avatarText(_vm.userData.fullName),\"variant\":(\"light-\" + (_vm.resolveUserRoleVariant(_vm.userData.role))),\"size\":\"104px\",\"rounded\":\"\"}}),_c('div',{staticClass:\"d-flex flex-column ml-1\"},[_c('div',{staticClass:\"mb-1\"},[_c('h4',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(_vm.userData.fullName)+\" \")]),_c('span',{staticClass:\"card-text\"},[_vm._v(_vm._s(_vm.userData.email))])]),_c('div',{staticClass:\"d-flex flex-wrap\"},[_c('b-button',{attrs:{\"to\":{ name: 'apps-users-edit', params: { id: _vm.userData.id } },\"variant\":\"primary\"}},[_vm._v(\" Edit \")]),_c('b-button',{staticClass:\"ml-1\",attrs:{\"variant\":\"outline-danger\"}},[_vm._v(\" Delete \")])],1)])],1),_c('div',{staticClass:\"d-flex align-items-center mt-2\"},[_c('div',{staticClass:\"d-flex align-items-center mr-2\"},[_c('b-avatar',{attrs:{\"variant\":\"light-primary\",\"rounded\":\"\"}},[_c('feather-icon',{attrs:{\"icon\":\"DollarSignIcon\",\"size\":\"18\"}})],1),_c('div',{staticClass:\"ml-1\"},[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" 23.3k \")]),_c('small',[_vm._v(\"Monthly Sales\")])])],1),_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-avatar',{attrs:{\"variant\":\"light-success\",\"rounded\":\"\"}},[_c('feather-icon',{attrs:{\"icon\":\"TrendingUpIcon\",\"size\":\"18\"}})],1),_c('div',{staticClass:\"ml-1\"},[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" $99.87k \")]),_c('small',[_vm._v(\"Annual Profit\")])])],1)])]),_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":\"6\"}},[_c('table',{staticClass:\"mt-2 mt-xl-0 w-100\"},[_c('tr',[_c('th',{staticClass:\"pb-50\"},[_c('feather-icon',{staticClass:\"mr-75\",attrs:{\"icon\":\"UserIcon\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"Username\")])],1),_c('td',{staticClass:\"pb-50\"},[_vm._v(\" \"+_vm._s(_vm.userData.username)+\" \")])]),_c('tr',[_c('th',{staticClass:\"pb-50\"},[_c('feather-icon',{staticClass:\"mr-75\",attrs:{\"icon\":\"CheckIcon\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"Status\")])],1),_c('td',{staticClass:\"pb-50 text-capitalize\"},[_vm._v(\" \"+_vm._s(_vm.userData.status)+\" \")])]),_c('tr',[_c('th',{staticClass:\"pb-50\"},[_c('feather-icon',{staticClass:\"mr-75\",attrs:{\"icon\":\"StarIcon\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"Role\")])],1),_c('td',{staticClass:\"pb-50 text-capitalize\"},[_vm._v(\" \"+_vm._s(_vm.userData.role)+\" \")])]),_c('tr',[_c('th',{staticClass:\"pb-50\"},[_c('feather-icon',{staticClass:\"mr-75\",attrs:{\"icon\":\"FlagIcon\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"Country\")])],1),_c('td',{staticClass:\"pb-50\"},[_vm._v(\" \"+_vm._s(_vm.userData.country)+\" \")])]),_c('tr',[_c('th',[_c('feather-icon',{staticClass:\"mr-75\",attrs:{\"icon\":\"PhoneIcon\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"Contact\")])],1),_c('td',[_vm._v(\" \"+_vm._s(_vm.userData.contact)+\" \")])])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n \n\n \n \n \n \n \n \n \n \n {{ userData.fullName }}\n \n {{ userData.email }}\n \n \n \n Edit\n \n \n Delete\n \n \n \n \n\n \n \n \n \n \n \n \n \n 23.3k\n \n Monthly Sales\n \n \n\n \n \n \n \n \n \n $99.87k\n \n Annual Profit\n \n \n \n \n\n \n \n \n \n \n \n Username\n \n \n {{ userData.username }}\n \n \n \n \n \n Status\n \n \n {{ userData.status }}\n \n \n \n \n \n Role\n \n \n {{ userData.role }}\n \n \n \n \n \n Country\n \n \n {{ userData.country }}\n \n \n \n \n \n Contact\n \n \n {{ userData.contact }}\n \n \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!./UserViewUserInfoCard.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!./UserViewUserInfoCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserViewUserInfoCard.vue?vue&type=template&id=685ec749&\"\nimport script from \"./UserViewUserInfoCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UserViewUserInfoCard.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{staticClass:\"border-primary\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"d-flex justify-content-between align-items-center pt-75 pb-25\"},[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" Current Plan \")]),_c('b-badge',{attrs:{\"variant\":\"light-primary\"}},[_vm._v(\" Basic \")]),_c('small',{staticClass:\"text-muted w-100\"},[_vm._v(\"July 22, 2021\")])],1),_c('b-card-body',[_c('ul',{staticClass:\"list-unstyled my-1\"},[_c('li',[_c('span',{staticClass:\"align-middle\"},[_vm._v(\"5 Users\")])]),_c('li',{staticClass:\"my-25\"},[_c('span',{staticClass:\"align-middle\"},[_vm._v(\"10 GB storage\")])]),_c('li',[_c('span',{staticClass:\"align-middle\"},[_vm._v(\"Basic Support\")])])]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":\"primary\",\"block\":\"\"}},[_vm._v(\" Upgrade Plan \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Current Plan\n \n \n Basic\n \n July 22, 2021\n \n\n \n \n \n 5 Users\n \n \n 10 GB storage\n \n \n Basic Support\n \n \n \n Upgrade Plan\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!./UserViewUserPlanCard.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!./UserViewUserPlanCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserViewUserPlanCard.vue?vue&type=template&id=4a46f644&\"\nimport script from \"./UserViewUserPlanCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UserViewUserPlanCard.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"title\":\"User Timeline\"}},[_c('app-timeline',[_c('app-timeline-item',[_c('div',{staticClass:\"d-flex flex-sm-row flex-column flex-wrap justify-content-between mb-1 mb-sm-0\"},[_c('h6',[_vm._v(\"12 Invoices have been paid\")]),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"12 min ago\")])]),_c('p',[_vm._v(\"Invoices have been paid to the company.\")]),_c('p',{staticClass:\"mb-0\"},[_c('b-img',{staticClass:\"mr-1\",attrs:{\"src\":require('@/assets/images/icons/pdf.png'),\"height\":\"auto\",\"width\":\"20\"}}),_c('span',{staticClass:\"align-bottom\"},[_vm._v(\"invoice.pdf\")])],1)]),_c('app-timeline-item',{attrs:{\"variant\":\"warning\"}},[_c('div',{staticClass:\"d-flex flex-sm-row flex-column flex-wrap justify-content-between mb-1 mb-sm-0\"},[_c('h6',[_vm._v(\"Client Meeting\")]),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"45 min ago\")])]),_c('p',[_vm._v(\"Project meeting with john @10:15am.\")]),_c('b-media',{scopedSlots:_vm._u([{key:\"aside\",fn:function(){return [_c('b-avatar',{attrs:{\"src\":require('@/assets/images/avatars/8-small.png')}})]},proxy:true}])},[_c('h6',[_vm._v(\"John Doe (Client)\")]),_c('p',{staticClass:\"mb-0\"},[_vm._v(\" CEO of Infibeam \")])])],1),_c('app-timeline-item',{attrs:{\"variant\":\"info\",\"title\":\"Create a new project for client\",\"subtitle\":\"Add files to new design folder\",\"time\":\"2 days ago\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n\n \n \n \n 12 Invoices have been paid\n 12 min ago\n \n Invoices have been paid to the company.\n \n \n invoice.pdf\n \n \n \n\n \n Client Meeting\n 45 min ago\n \n Project meeting with john @10:15am.\n \n \n \n \n John Doe (Client)\n \n CEO of Infibeam\n \n \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!./UserViewUserTimelineCard.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!./UserViewUserTimelineCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserViewUserTimelineCard.vue?vue&type=template&id=622a4585&\"\nimport script from \"./UserViewUserTimelineCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UserViewUserTimelineCard.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-card-body',[_c('b-card-title',[_vm._v(\"Permissions\")]),_c('b-card-sub-title',[_vm._v(\"Permission according to roles\")])],1),_c('b-table',{staticClass:\"mb-0\",attrs:{\"striped\":\"\",\"responsive\":\"\",\"items\":_vm.permissionsData},scopedSlots:_vm._u([{key:\"cell(module)\",fn:function(data){return [_vm._v(\" \"+_vm._s(data.value)+\" \")]}},{key:\"cell()\",fn:function(data){return [_c('b-form-checkbox',{attrs:{\"disabled\":\"\",\"checked\":data.value}})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Permissions\n Permission according to roles\n \n \n\n \n {{ data.value }}\n \n \n \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!./UserViewUserPermissionsCard.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!./UserViewUserPermissionsCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserViewUserPermissionsCard.vue?vue&type=template&id=3589f1eb&\"\nimport script from \"./UserViewUserPermissionsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UserViewUserPermissionsCard.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","\n \n\n \n \n \n Error fetching user data\n \n \n No user found with this user id. Check\n \n User List\n \n for other users.\n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\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!./UsersView.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!./UsersView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UsersView.vue?vue&type=template&id=6ebfb064&\"\nimport script from \"./UsersView.vue?vue&type=script&lang=js&\"\nexport * from \"./UsersView.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active'; // --- Helper methods ---\n\nvar getHeadSlotName = function getHeadSlotName(value) {\n return \"head(\".concat(value || '', \")\");\n};\n\nvar getFootSlotName = function getFootSlotName(value) {\n return \"foot(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = {\n // Any Bootstrap theme variant (or custom)\n headRowVariant: makeProp(PROP_TYPE_STRING),\n // 'light', 'dark' or `null` (or custom)\n headVariant: makeProp(PROP_TYPE_STRING),\n theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var theadMixin = Vue.extend({\n props: props,\n methods: {\n fieldClasses: function fieldClasses(field) {\n // Header field () classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked: function headClicked(event, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(event)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(event)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n stopEvent(event);\n this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n },\n renderThead: function renderThead() {\n var _this = this;\n\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var fields = this.computedFields,\n isSortable = this.isSortable,\n isSelectable = this.isSelectable,\n headVariant = this.headVariant,\n footVariant = this.footVariant,\n headRowVariant = this.headRowVariant,\n footRowVariant = this.footRowVariant;\n var h = this.$createElement; // In always stacked mode, we don't bother rendering the head/foot\n // Or if no field headings (empty table)\n\n if (this.isStackedAlways || fields.length === 0) {\n return h();\n }\n\n var hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED); // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n\n var selectAllRows = isSelectable ? this.selectAllRows : noop;\n var clearSelected = isSelectable ? this.clearSelected : noop; // Helper function to generate a field cell\n\n var makeCell = function makeCell(field, colIndex) {\n var label = field.label,\n labelHtml = field.labelHtml,\n variant = field.variant,\n stickyColumn = field.stickyColumn,\n key = field.key;\n var ariaLabel = null;\n\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n\n var on = {};\n\n if (hasHeadClickListener) {\n on.click = function (event) {\n _this.headClicked(event, field, isFoot);\n };\n\n on.keydown = function (event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n _this.headClicked(event, field, isFoot);\n }\n };\n }\n\n var sortAttrs = isSortable ? _this.sortTheadThAttrs(key, field, isFoot) : {};\n var sortClass = isSortable ? _this.sortTheadThClasses(key, field, isFoot) : null;\n var sortLabel = isSortable ? _this.sortTheadThLabel(key, field, isFoot) : null;\n var data = {\n class: [_this.fieldClasses(field), sortClass],\n props: {\n variant: variant,\n stickyColumn: stickyColumn\n },\n style: field.thStyle || {},\n attrs: _objectSpread(_objectSpread({\n // We only add a `tabindex` of `0` if there is a head-clicked listener\n // and the current field is sortable\n tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': colIndex + 1,\n 'aria-label': ariaLabel\n }, _this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {})), sortAttrs),\n on: on,\n key: key\n }; // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n\n var slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()]; // Footer will fallback to header slot names\n\n if (isFoot) {\n slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName()].concat(_toConsumableArray(slotNames));\n }\n\n var scope = {\n label: label,\n column: key,\n field: field,\n isFoot: isFoot,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n var $content = _this.normalizeSlot(slotNames, scope) || h('div', {\n domProps: htmlOrText(labelHtml, label)\n });\n var $srLabel = sortLabel ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(sortLabel, \")\")) : null; // Return the header cell\n\n return h(BTh, data, [$content, $srLabel].filter(identity));\n }; // Generate the array of cells\n\n\n var $cells = fields.map(makeCell).filter(identity); // Generate the row(s)\n\n var $trs = [];\n\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass,\n props: {\n variant: isUndefinedOrNull(footRowVariant) ? headRowVariant :\n /* istanbul ignore next */\n footRowVariant\n }\n }, $cells));\n } else {\n var scope = {\n columns: fields.length,\n fields: fields,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass,\n props: {\n variant: headRowVariant\n }\n }, $cells));\n }\n\n return h(isFoot ? BTfoot : BThead, {\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: footVariant || headVariant || null\n } : {\n headVariant: headVariant || null\n },\n key: isFoot ? 'bv-tfoot' : 'bv-thead'\n }, $trs);\n }\n }\n});","var _objectSpread2;\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_FORM_CHECKBOX } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Constants ---\n\nvar MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nvar MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_INDETERMINATE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"switch\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"uncheckedValue\", makeProp(PROP_TYPE_ANY, false)), _defineProperty(_objectSpread2, \"value\", makeProp(PROP_TYPE_ANY, true)), _objectSpread2))), NAME_FORM_CHECKBOX); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckbox = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: null\n }\n },\n props: props,\n computed: {\n isChecked: function isChecked() {\n var value = this.value,\n checked = this.computedLocalChecked;\n return isArray(checked) ? looseIndexOf(checked, value) > -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\n};","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import router from '@/router'\n// eslint-disable-next-line object-curly-newline\nimport { reactive, getCurrentInstance, watch, toRefs } from '@vue/composition-api'\n\nexport const isObject = obj => typeof obj === 'object' && obj !== null\n\nexport const isToday = date => {\n const today = new Date()\n return (\n /* eslint-disable operator-linebreak */\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n /* eslint-enable */\n )\n}\n\nconst getRandomFromArray = array => array[Math.floor(Math.random() * array.length)]\n\n// ? Light and Dark variant is not included\n// prettier-ignore\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])\n\nexport const isDynamicRouteActive = route => {\n const { route: resolvedRoute } = router.resolve(route)\n return resolvedRoute.path === router.currentRoute.path\n}\n\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\nexport const useRouter = () => {\n const vm = getCurrentInstance().proxy\n const state = reactive({\n route: vm.$route,\n })\n\n watch(\n () => vm.$route,\n r => {\n state.route = r\n },\n )\n\n return { ...toRefs(state), router: vm.$router }\n}\n\n/**\n * This is just enhancement over Object.extend [Gives deep extend]\n * @param {target} a Object which contains values to be overridden\n * @param {source} b Object which contains values to override\n */\n// export const objectExtend = (a, b) => {\n// // Don't touch 'null' or 'undefined' objects.\n// if (a == null || b == null) {\n// return a\n// }\n\n// Object.keys(b).forEach(key => {\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = objectExtend(a[key], b[key])\n// }\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// }\n// })\n\n// return a\n// }\n","import { getSel, isElement } from '../../../utils/dom'; // Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\n\nexport var textSelectionActive = function textSelectionActive() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var sel = getSel();\n return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ?\n /* istanbul ignore next */\n sel.containsNode(el, true) : false;\n};","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=0&id=9a6e255c&lang=scss&scoped=true&\"","var _watch, _methods;\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 { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\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(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\n});","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true for is-valid\n * - false for is-invalid\n * - null for no contextual state\n */\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { isBoolean } from '../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Tri-state prop: true, false, null (or undefined)\n state: makeProp(PROP_TYPE_BOOLEAN, null)\n}, 'formState'); // --- Mixin ---\n// @vue/component\n\nexport var formStateMixin = Vue.extend({\n props: props,\n computed: {\n computedState: function computedState() {\n // If not a boolean, ensure that value is null\n return isBoolean(this.state) ? this.state : null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n return state === true ? 'is-valid' : state === false ? 'is-invalid' : null;\n },\n computedAriaInvalid: function computedAriaInvalid() {\n var ariaInvalid = this.ariaInvalid;\n\n if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n return 'true';\n }\n\n return this.computedState === false ? 'true' : ariaInvalid;\n }\n }\n});","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var colgroupMixin = Vue.extend({\n methods: {\n renderColgroup: function renderColgroup() {\n var fields = this.computedFields;\n var h = this.$createElement;\n var $colgroup = h();\n\n if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n columns: fields.length,\n fields: fields\n })]);\n }\n\n return $colgroup;\n }\n }\n});","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 } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': toString(visible)\n },\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',_vm._g(_vm._b({staticClass:\"app-timeline\"},'ul',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./AppTimeline.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!./AppTimeline.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppTimeline.vue?vue&type=template&id=484a211f&scoped=true&\"\nimport script from \"./AppTimeline.vue?vue&type=script&lang=js&\"\nexport * from \"./AppTimeline.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppTimeline.vue?vue&type=style&index=0&id=484a211f&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 \"484a211f\",\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_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\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_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\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 active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEUAAABdCAYAAADzCKvfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExODA4M0IxNEM4MzdEODk1OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQTY5RDZFNjk2NDUxMUU5QjgzM0NGNjBGOUVEM0JBMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQTY5RDZFNTk2NDUxMUU5QjgzM0NGNjBGOUVEM0JBMSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE4MDExNzQwNzIwNjgxMTgwODNCMTRDODM3RDg5NTgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTgwODNCMTRDODM3RDg5NTgiLz4gPC9yZGY6RGVzY3Jp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\""],"sourceRoot":""}
\n {{ data.item.invoiceStatus }}\n
\n Balance: {{ data.item.balance }}\n
\n Due Date: {{ data.item.dueDate }}\n
Invoices have been paid to the company.
\n \n invoice.pdf\n
Project meeting with john @10:15am.
\n CEO of Infibeam\n