{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/td.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack:///./src/@core/utils/filter.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?ed0d","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?270b","webpack:///./src/@core/components/toastification/ToastificationContent.vue","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-bottom-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-busy.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-empty.js","webpack:///./node_modules/bootstrap-vue/esm/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/table/tr.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/has-listener.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.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/form-checkbox/form-checkbox-group.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/input-group/input-group-addon.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-stacked.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./src/views/apps/user/userStoreModule.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav.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/input-group/input-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/th.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-table-renderer.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack:///./node_modules/bootstrap-vue/esm/components/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:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?0793","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?fe9c","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?2b89","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:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./src/@core/comp-functions/forms/form-utils.js","webpack:///./src/@core/utils/utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue?f130","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?17c5","webpack:///src/views/apps/user/users-edit/UserEditTabAccount.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?0db0","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?5e0c","webpack:///src/views/apps/user/users-edit/UserEditTabInformation.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?04d8","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue?69cb","webpack:///src/views/apps/user/users-edit/UserEditTabSocial.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue?d8e3","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue","webpack:///src/views/apps/user/users-edit/UsersEdit.vue","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue?1c5b","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"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","parseSpan","spanValidator","colspan","rowspan","stackedHeading","stickyColumn","variant","BTd","mixins","inject","bvTableTr","default","inheritAttrs","tag","inTbody","inThead","inTfoot","isDark","isStacked","isStackedCell","isResponsive","isStickyHeader","hasStickyHeader","isStickyColumn","rowVariant","headVariant","footVariant","tableVariant","computedColspan","computedRowspan","cellClasses","cellAttrs","headOrFoot","role","scope","bvAttrs","$content","normalizeSlot","class","attrs","on","bvListeners","BThead","provide","bvTableRowGroup","bvTable","isThead","dark","stickyHeader","theadClasses","theadAttrs","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","id","inline","novalidate","validated","BForm","children","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","cardImgProps","bind","imgSrc","required","card","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","domProps","html","overlay","staticClass","$footer","hasFooterSlot","_vm","_h","$createElement","_c","_self","_s","_e","text","$event","$emit","hideClose","staticRenderFns","BAvatar","type","Boolean","component","redefine","anObject","fails","flags","TO_STRING","RegExpPrototype","RegExp","prototype","nativeToString","NOT_GENERIC","call","INCORRECT_NAME","R","p","rf","f","undefined","unsafe","BTfoot","isTfoot","tfootClasses","tfootAttrs","bottomRowMixin","renderBottomRow","fields","computedFields","tbodyTrClass","tbodyTrAttr","hasNormalizedSlot","columns","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","watch","newValue","oldValue","stopIfBusy","event","renderBusy","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","stringifyObjectValues","sort","k","v","row","ignoreFields","includeFields","fieldsObj","formattedRow","reduce","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","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","_this","timeout","setTimeout","created","_this2","$nextTick","beforeDestroy","clearTimeout","fn","item","_this3","regExp","pattern","lastIndex","computedFieldsObj","currentPage","perPage","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","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","sortable","sortCompareLocale","sortNullLast","sortCompare","sortCompareOptions","usage","sortByFormatted","getFieldFormatter","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortDirection","sortKey","sortTheadThClasses","sortIconLeft","sortTheadThAttrs","ariaSort","sortTheadThLabel","labelSorting","topRowMixin","renderTopRow","BTable","LIGHT","DARK","BTr","isTbody","isRowDark","trClasses","trAttrs","hasListenerMixin","hasListener","$listeners","$events","_events","rightAlign","verticalAlign","BMedia","$children","$aside","BInputGroupPrepend","append","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","defaultValue","getThValues","thValue","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","label","isRowHeader","formatted","cellTag","cellVariant","tdClass","thAttr","tdAttr","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","$el","trs","tr","getTbodyTrIndex","el","tagName","indexOf","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTbody","$busy","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","click","keydown","$tbody","$props","_objectSpread2","BFormCheckboxGroup","bvCheckGroup","isRadioGroup","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","defaultPrevented","propagation","onChange","onBlur","focus","disabled","blur","isText","BInputGroupAddon","TYPES","list","max","min","noWheel","step","BFormInput","localType","computedAttrs","form","computedAriaInvalid","computedListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","stackedMixin","isStackedAlways","stackedTableClasses","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","blank","blankColor","block","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","titleTag","BCardTitle","fixRegExpWellKnownSymbolLogic","toObject","toLength","advanceStringIndex","regExpExec","Math","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","it","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","regexp","res","done","rx","S","functionalReplace","global","fullUnicode","unicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","position","captures","j","namedCaptures","groups","replacerArgs","replacement","getSubstitution","tailPos","m","match","ch","capture","namespaced","state","getters","mutations","actions","fetchUsers","queryParams","Promise","resolve","reject","axios","params","response","catch","error","fetchUser","addUser","userData","post","user","computeJustifyContent","cardHeader","fill","justified","pills","small","tabs","vertical","BNav","origFields","sample","memo","itemsMixin","appendHtml","prepend","prependHtml","size","BInputGroup","$prepend","hasPrependSlot","$append","hasAppendSlot","parseCountDown","show","parseShow","dismissLabel","dismissible","fade","BAlert","countDown","localShow","clearCountDownInterval","$_countDownTimeout","dismiss","$alert","$dismissButton","noFade","MODEL_PROP_NAME_ACTIVE","MODEL_EVENT_NAME_ACTIVE","BTab","bvTabs","localActive","_isTab","tabClasses","active","activeTabClass","controlledBy","buttonId","computedNoFade","computedLazy","activate","deactivate","firstTab","registerTab","updated","updateButton","unregisterTab","activateTab","deactivateTab","directives","mode","bodyClass","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","footerClass","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","BTh","extends","bordered","borderless","captionTop","fixed","hover","noBorderCollapse","outlined","responsive","tableClass","tableRendererMixin","wrapperClasses","wrapperStyles","maxHeight","tableClasses","isTableSimple","border","tableAttrs","adb","ariaAttrs","rowCount","renderColgroup","renderThead","renderTfoot","$table","style","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","stableSort","compareFn","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","alignContent","alignH","alignV","noGutters","BRow","_classList$push","classList","c","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","TABLE_TAG_NAMES","filterEvent","labelFor","$","thisNumberValue","nativeToFixed","pow","x","acc","log","x2","FORCED","proto","forced","fractionDigits","z","fractDigits","sign","multiply","c2","divide","dataToString","s","t","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","useUsersList","toast","useToast","refUserListTable","tableColumns","totalUsers","perPageOptions","searchQuery","isSortDirDesc","roleFilter","planFilter","statusFilter","dataMeta","localItemsCount","to","of","refetchData","callback","store","dispatch","q","page","plan","status","users","total","ToastificationContent","resolveUserRoleVariant","resolveUserRoleIcon","resolveUserStatusVariant","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","makeCell","labelHtml","ariaLabel","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","useInputImageRenderer","inputEl","inputImageRenderer","file","files","reader","FileReader","addEventListener","readAsDataURL","isObject","today","getDate","getMonth","getFullYear","isDynamicRouteActive","route","router","resolvedRoute","path","currentRoute","useRouter","vm","getCurrentInstance","proxy","reactive","$route","r","toRefs","$router","cloneObject","JSON","parse","stringify","BInputGroupAppend","textSelectionActive","sel","containsNode","BInputGroupText","colgroupMixin","$colgroup","_v","_u","avatar","fullName","refInputEl","model","username","$$v","expression","email","$store","appConfig","isRTL","statusOptions","roleOptions","company","permissionsData","BButton","BCol","BFormGroup","BFormCheckbox","vSelect","setup","base64","previewEl","dateFormat","userDataInfo","dob","mobile","website","languageOptions","language","genderOptions","gender","contactOptionsOptions","contactOptions","addressLine1","addressLine2","postcode","city","country","_l","socialInputs","socialField","dataField","userDataSocial","twitter","facebook","instagram","github","codepen","slack","BTabs","BLink","UserEditTabAccount","UserEditTabInformation","UserEditTabSocial","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","linkProps","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","button","buttonType","square","bvAvatarGroup","localSrc","computedSize","computedVariant","computedRounded","fontStyle","fontSize","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","offset","onImgError","onClick","_class2","link","$badge","hasBadgeSlot","badgeText","componentData","noop","notDisabled","tab","BVTabButton","controls","noKeyNav","posInSet","setSize","handleEvt","_this$tab","titleItemClass","titleLinkClass","titleLinkAttributes","$link","activeNavItemClass","navProps","contentClass","navClass","navWrapperClass","noNavStyle","currentTab","registeredTabs","localNavClass","classes","$tab","previousTab","nextTab","updateTabs","$_observer","setObserver","$t","disconnect","content","childList","subtree","attributes","attributeFilter","getTabs","$tabs","order","selector","reverse","find","getButtonForTab","buttons","$btn","$button","$forceUpdate","tabEvent","cancelable","vueTarget","componentId","focusButton","emitTabClick","clickTab","currentIndex","lastTab","_this4","$activeTab","$fallbackTab","$buttons","_on","$nav","col"],"mappings":"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","file":"js/chunk-3c4d46c5.1d810d13.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});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TABLE_CELL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Helper methods ---\n// Parse a rowspan or colspan into a digit (or `null` if < `1` )\n\nvar parseSpan = function parseSpan(value) {\n value = toInteger(value, 0);\n return value > 0 ? value : null;\n};\n/* istanbul ignore next */\n\n\nvar spanValidator = function spanValidator(value) {\n return isUndefinedOrNull(value) || parseSpan(value) > 0;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n colspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n rowspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n stackedHeading: makeProp(PROP_TYPE_STRING),\n stickyColumn: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TABLE_CELL); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTd = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_CELL,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n inject: {\n bvTableTr: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Overridden by ``\n tag: function tag() {\n return 'td';\n },\n inTbody: function inTbody() {\n return this.bvTableTr.inTbody;\n },\n inThead: function inThead() {\n return this.bvTableTr.inThead;\n },\n inTfoot: function inTfoot() {\n return this.bvTableTr.inTfoot;\n },\n isDark: function isDark() {\n return this.bvTableTr.isDark;\n },\n isStacked: function isStacked() {\n return this.bvTableTr.isStacked;\n },\n // We only support stacked-heading in tbody in stacked mode\n isStackedCell: function isStackedCell() {\n return this.inTbody && this.isStacked;\n },\n isResponsive: function isResponsive() {\n return this.bvTableTr.isResponsive;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return this.bvTableTr.isStickyHeader;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return this.bvTableTr.hasStickyHeader;\n },\n // Needed to handle background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky column cells are only available in responsive\n // mode (horizontal scrolling) or when sticky header mode\n // Applies to cells in `thead`, `tbody` and `tfoot`\n isStickyColumn: function isStickyColumn() {\n return !this.isStacked && (this.isResponsive || this.hasStickyHeader) && this.stickyColumn;\n },\n rowVariant: function rowVariant() {\n return this.bvTableTr.variant;\n },\n headVariant: function headVariant() {\n return this.bvTableTr.headVariant;\n },\n footVariant: function footVariant() {\n return this.bvTableTr.footVariant;\n },\n tableVariant: function tableVariant() {\n return this.bvTableTr.tableVariant;\n },\n computedColspan: function computedColspan() {\n return parseSpan(this.colspan);\n },\n computedRowspan: function computedRowspan() {\n return parseSpan(this.rowspan);\n },\n // We use computed props here for improved performance by caching\n // the results of the string interpolation\n cellClasses: function cellClasses() {\n var variant = this.variant,\n headVariant = this.headVariant,\n isStickyColumn = this.isStickyColumn;\n\n if (!variant && this.isStickyHeader && !headVariant || !variant && isStickyColumn && this.inTfoot && !this.footVariant || !variant && isStickyColumn && this.inThead && !headVariant || !variant && isStickyColumn && this.inTbody) {\n // Needed for sticky-header mode as Bootstrap v4 table cells do\n // not inherit parent's `background-color`\n variant = this.rowVariant || this.tableVariant || 'b-table-default';\n }\n\n return [variant ? \"\".concat(this.isDark ? 'bg' : 'table', \"-\").concat(variant) : null, isStickyColumn ? 'b-table-sticky-column' : null];\n },\n cellAttrs: function cellAttrs() {\n var stackedHeading = this.stackedHeading; // We use computed props here for improved performance by caching\n // the results of the object spread (Object.assign)\n\n var headOrFoot = this.inThead || this.inTfoot; // Make sure col/rowspan's are > 0 or null\n\n var colspan = this.computedColspan;\n var rowspan = this.computedRowspan; // Default role and scope\n\n var role = 'cell';\n var scope = null; // Compute role and scope\n // We only add scopes with an explicit span of 1 or greater\n\n if (headOrFoot) {\n // Header or footer cells\n role = 'columnheader';\n scope = colspan > 0 ? 'colspan' : 'col';\n } else if (isTag(this.tag, 'th')) {\n // th's in tbody\n role = 'rowheader';\n scope = rowspan > 0 ? 'rowgroup' : 'row';\n }\n\n return _objectSpread(_objectSpread({\n colspan: colspan,\n rowspan: rowspan,\n role: role,\n scope: scope\n }, this.bvAttrs), {}, {\n // Add in the stacked cell label data-attribute if in\n // stacked mode (if a stacked heading label is provided)\n 'data-label': this.isStackedCell && !isUndefinedOrNull(stackedHeading) ?\n /* istanbul ignore next */\n toString(stackedHeading) : null\n });\n }\n },\n render: function render(h) {\n var $content = [this.normalizeSlot()];\n return h(this.tag, {\n class: this.cellClasses,\n attrs: this.cellAttrs,\n // Transfer any native listeners\n on: this.bvListeners\n }, [this.isStackedCell ? h('div', [$content]) : $content]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_THEAD } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Also sniffed by `` / `` / ``\n // Supported values: 'lite', 'dark', or `null`\n headVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_THEAD); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BThead = /*#__PURE__*/Vue.extend({\n name: NAME_THEAD,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isThead: function isThead() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n theadClasses: function theadClasses() {\n return [this.headVariant ? \"thead-\".concat(this.headVariant) : null];\n },\n theadAttrs: function theadAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('thead', {\n class: this.theadClasses,\n attrs: this.theadAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { isToday } from './utils'\r\n\r\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\r\n\r\nexport const title = (value, replacer = ' ') => {\r\n if (!value) return ''\r\n const str = value.toString()\r\n\r\n const arr = str.split(replacer)\r\n const capitalizedArray = []\r\n arr.forEach(word => {\r\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\r\n capitalizedArray.push(capitalized)\r\n })\r\n return capitalizedArray.join(' ')\r\n}\r\n\r\nexport const avatarText = value => {\r\n if (!value) return ''\r\n const nameArray = value.split(' ')\r\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\r\n}\r\n\r\n/**\r\n * Format and return date in Humanize format\r\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\r\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\r\n * @param {String} value date to format\r\n * @param {Object} formatting Intl object to format with\r\n */\r\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\r\n if (!value) return value\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n/**\r\n * Return short human friendly month representation of date\r\n * Can also convert date to only time if date is of today (Better UX)\r\n * @param {String} value date to format\r\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\r\n */\r\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\r\n const date = new Date(value)\r\n let formatting = { month: 'short', day: 'numeric' }\r\n\r\n if (toTimeForCurrentDay && isToday(date)) {\r\n formatting = { hour: 'numeric', minute: 'numeric' }\r\n }\r\n\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n// Strip all the tags from markup and return plain text\r\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\r\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","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","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_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});","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 () {\n var _vm=this;\n var _h=_vm.$createElement;\n var _c=_vm._self._c||_h;\n\n return _c('div', {\n staticClass: \"toastification\"\n }, [_c('div', {\n staticClass: \"d-flex align-items-start\"\n }, [_c('b-avatar', {\n staticClass: \"mr-75 flex-shrink-0\",\n attrs: {\n \"variant\": _vm.variant,\n \"size\": \"1.8rem\"\n }\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": _vm.icon,\n \"size\": \"15\"\n }\n })], 1), _c('div', {\n staticClass: \"d-flex flex-grow-1\"\n }, [_c('div', [_vm.title ? _c('h5', {\n staticClass: \"mb-0 font-weight-bolder toastification-title\",\n class: \"text-\".concat(_vm.variant),\n domProps: {\n \"textContent\": _vm._s(_vm.title)\n }\n }) : _vm._e(), _vm.text ? _c('small', {\n staticClass: \"d-inline-block text-body\",\n domProps: {\n \"textContent\": _vm._s(_vm.text)\n }\n }) : _vm._e()]), _c('span', {\n staticClass: \"cursor-pointer toastification-close-icon ml-auto \",\n on: {\n \"click\": function click($event) {\n return _vm.$emit('close-toast');\n }\n }\n }, [!_vm.hideClose ? _c('feather-icon', {\n staticClass: \"text-body\",\n attrs: {\n \"icon\": \"XIcon\"\n }\n }) : _vm._e()], 1)])], 1)]);\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-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--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-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=55dd3057&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=55dd3057&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 \"55dd3057\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Supported values: 'lite', 'dark', or null\n footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTfoot = /*#__PURE__*/Vue.extend({\n name: NAME_TFOOT,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTfoot: function isTfoot() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n tfootClasses: function tfootClasses() {\n return [this.footVariant ? \"thead-\".concat(this.footVariant) : null];\n },\n tfootAttrs: function tfootAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'rowgroup'\n });\n }\n },\n render: function render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_BOTTOM_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var bottomRowMixin = Vue.extend({\n props: props,\n methods: {\n renderBottomRow: function renderBottomRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_BOTTOM_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-bottom-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-bottom') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-bottom') : tbodyTrAttr,\n key: 'b-bottom-row'\n }, this.normalizeSlot(SLOT_NAME_BOTTOM_ROW, {\n columns: fields.length,\n fields: fields\n }));\n }\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Constants ---\n\nvar MODEL_PROP_NAME_BUSY = 'busy';\nvar MODEL_EVENT_NAME_BUSY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_BUSY; // --- Props ---\n\nexport var props = _defineProperty({}, MODEL_PROP_NAME_BUSY, makeProp(PROP_TYPE_BOOLEAN, false)); // --- Mixin ---\n// @vue/component\n\nexport var busyMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localBusy: false\n };\n },\n computed: {\n computedBusy: function computedBusy() {\n return this[MODEL_PROP_NAME_BUSY] || this.localBusy;\n }\n },\n watch: {\n localBusy: function localBusy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_BUSY, newValue);\n }\n }\n },\n methods: {\n // Event handler helper\n stopIfBusy: function stopIfBusy(event) {\n // If table is busy (via provider) then don't propagate\n if (this.computedBusy) {\n stopEvent(event);\n return true;\n }\n\n return false;\n },\n // Render the busy indicator or return `null` if not busy\n renderBusy: function renderBusy() {\n var tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Return a busy indicator row, or `null` if not busy\n\n if (this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY)) {\n return h(BTr, {\n staticClass: 'b-table-busy-slot',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, SLOT_NAME_TABLE_BUSY) : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, SLOT_NAME_TABLE_BUSY) : tbodyTrAttr,\n key: 'table-busy-slot'\n }, [h(BTd, {\n props: {\n colspan: this.computedFields.length || null\n }\n }, [this.normalizeSlot(SLOT_NAME_TABLE_BUSY)])]);\n } // We return `null` here so that we can determine if we need to\n // render the table items rows or not\n\n\n return null;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_EMPTYFILTERED, SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Props ---\n\nexport var props = {\n emptyFilteredHtml: makeProp(PROP_TYPE_STRING),\n emptyFilteredText: makeProp(PROP_TYPE_STRING, 'There are no records matching your request'),\n emptyHtml: makeProp(PROP_TYPE_STRING),\n emptyText: makeProp(PROP_TYPE_STRING, 'There are no records to show'),\n showEmpty: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var emptyMixin = Vue.extend({\n props: props,\n methods: {\n renderEmpty: function renderEmpty() {\n var items = this.computedItems;\n var h = this.$createElement;\n var $empty = h();\n\n if (this.showEmpty && (!items || items.length === 0) && !(this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY))) {\n var fields = this.computedFields,\n isFiltered = this.isFiltered,\n emptyText = this.emptyText,\n emptyHtml = this.emptyHtml,\n emptyFilteredText = this.emptyFilteredText,\n emptyFilteredHtml = this.emptyFilteredHtml,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n $empty = this.normalizeSlot(isFiltered ? SLOT_NAME_EMPTYFILTERED : SLOT_NAME_EMPTY, {\n emptyFilteredHtml: emptyFilteredHtml,\n emptyFilteredText: emptyFilteredText,\n emptyHtml: emptyHtml,\n emptyText: emptyText,\n fields: fields,\n // Not sure why this is included, as it will always be an empty array\n items: items\n });\n\n if (!$empty) {\n $empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: isFiltered ? htmlOrText(emptyFilteredHtml, emptyFilteredText) : htmlOrText(emptyHtml, emptyText)\n });\n }\n\n $empty = h(BTd, {\n props: {\n colspan: fields.length || null\n }\n }, [h('div', {\n attrs: {\n role: 'alert',\n 'aria-live': 'polite'\n }\n }, [$empty])]);\n $empty = h(BTr, {\n staticClass: 'b-table-empty-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-empty') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-empty') : tbodyTrAttr,\n key: isFiltered ? 'b-empty-filtered-row' : 'b-empty-row'\n }, [$empty]);\n }\n\n return $empty;\n }\n }\n});","import { 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});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TR } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar LIGHT = 'light';\nvar DARK = 'dark'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TR); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTr = /*#__PURE__*/Vue.extend({\n name: NAME_TR,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableTr: this\n };\n },\n inject: {\n bvTableRowGroup: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / ``\n inTbody: function inTbody() {\n return this.bvTableRowGroup.isTbody;\n },\n // Sniffed by `` / ``\n inThead: function inThead() {\n return this.bvTableRowGroup.isThead;\n },\n // Sniffed by `` / ``\n inTfoot: function inTfoot() {\n return this.bvTableRowGroup.isTfoot;\n },\n // Sniffed by `` / ``\n isDark: function isDark() {\n return this.bvTableRowGroup.isDark;\n },\n // Sniffed by `` / ``\n isStacked: function isStacked() {\n return this.bvTableRowGroup.isStacked;\n },\n // Sniffed by `` / ``\n isResponsive: function isResponsive() {\n return this.bvTableRowGroup.isResponsive;\n },\n // Sniffed by `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return this.bvTableRowGroup.isStickyHeader;\n },\n // Sniffed by / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTableRowGroup.hasStickyHeader;\n },\n // Sniffed by `` / ``\n tableVariant: function tableVariant() {\n return this.bvTableRowGroup.tableVariant;\n },\n // Sniffed by `` / ``\n headVariant: function headVariant() {\n return this.inThead ? this.bvTableRowGroup.headVariant : null;\n },\n // Sniffed by `` / ``\n footVariant: function footVariant() {\n return this.inTfoot ? this.bvTableRowGroup.footVariant : null;\n },\n isRowDark: function isRowDark() {\n return this.headVariant === LIGHT || this.footVariant === LIGHT ?\n /* istanbul ignore next */\n false : this.headVariant === DARK || this.footVariant === DARK ?\n /* istanbul ignore next */\n true : this.isDark;\n },\n trClasses: function trClasses() {\n var variant = this.variant;\n return [variant ? \"\".concat(this.isRowDark ? 'bg' : 'table', \"-\").concat(variant) : null];\n },\n trAttrs: function trAttrs() {\n return _objectSpread({\n role: 'row'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('tr', {\n class: this.trClasses,\n attrs: this.trAttrs,\n // Pass native listeners to child\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","// Mixin to determine if an event listener has been registered\n// either via `v-on:name` (in the parent) or programmatically\n// via `vm.$on('name', ...)`\n// See: https://github.com/vuejs/vue/issues/10825\nimport { Vue } from '../vue';\nimport { isArray, isUndefined } from '../utils/inspect'; // @vue/component\n\nexport var hasListenerMixin = Vue.extend({\n methods: {\n hasListener: function hasListener(name) {\n // Only includes listeners registered via `v-on:name`\n var $listeners = this.$listeners || {}; // Includes `v-on:name` and `this.$on('name')` registered listeners\n // Note this property is not part of the public Vue API, but it is\n // the only way to determine if a listener was added via `vm.$on`\n\n var $events = this._events || {}; // Registered listeners in `this._events` are always an array,\n // but might be zero length\n\n return !isUndefined($listeners[name]) || isArray($events[name]) && $events[name].length > 0;\n }\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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_PREPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_PREPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupPrepend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_PREPEND,\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 // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: false\n })\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});","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_GROUP } from '../../constants/components';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, formRadioCheckGroupMixin, props as formRadioCheckGroupProps } from '../../mixins/form-radio-check-group'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckGroupProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])), _defineProperty(_objectSpread2, \"switches\", makeProp(PROP_TYPE_BOOLEAN, false)), _objectSpread2))), NAME_FORM_CHECKBOX_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckboxGroup = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX_GROUP,\n // Includes render function\n mixins: [formRadioCheckGroupMixin],\n provide: function provide() {\n return {\n bvCheckGroup: this\n };\n },\n props: props,\n computed: {\n isRadioGroup: function isRadioGroup() {\n return false;\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});","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_ADDON } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n isText: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_ADDON); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAddon = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_ADDON,\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 append = props.append;\n return h(props.tag, mergeData(data, {\n class: {\n 'input-group-append': append,\n 'input-group-prepend': !append\n },\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(BInputGroupText, children)] : children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_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 } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN_STRING } from '../../../constants/props';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n stacked: makeProp(PROP_TYPE_BOOLEAN_STRING, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var stackedMixin = Vue.extend({\n props: props,\n computed: {\n isStacked: function isStacked() {\n var stacked = this.stacked; // `true` when always stacked, or returns breakpoint specified\n\n return stacked === '' ? true : stacked;\n },\n isStackedAlways: function isStackedAlways() {\n return this.isStacked === true;\n },\n stackedTableClasses: function stackedTableClasses() {\n var isStackedAlways = this.isStackedAlways;\n return _defineProperty({\n 'b-table-stacked': isStackedAlways\n }, \"b-table-stacked-\".concat(this.stacked), !isStackedAlways && this.isStacked);\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});","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","import axios from '@axios'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {},\r\n getters: {},\r\n mutations: {},\r\n actions: {\r\n fetchUsers(ctx, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .get('/apps/user/users', { params: queryParams })\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n fetchUser(ctx, { id }) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .get(`/apps/user/users/${id}`)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n addUser(ctx, userData) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post('/apps/user/users', { user: userData })\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n },\r\n}\r\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_NAV } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n align = props.align,\n cardHeader = props.cardHeader;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': !vertical && cardHeader && tabs,\n 'card-header-pills': !vertical && cardHeader && pills && !tabs,\n 'flex-column': vertical,\n 'nav-fill': !vertical && props.fill,\n 'nav-justified': !vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(align), !vertical && align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\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});","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_INPUT_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_APPEND, SLOT_NAME_DEFAULT, SLOT_NAME_PREPEND } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_STRING),\n appendHtml: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n prepend: makeProp(PROP_TYPE_STRING),\n prependHtml: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BInputGroup = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP,\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 var prepend = props.prepend,\n prependHtml = props.prependHtml,\n append = props.append,\n appendHtml = props.appendHtml,\n size = props.size;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $prepend = h();\n var hasPrependSlot = hasNormalizedSlot(SLOT_NAME_PREPEND, $scopedSlots, $slots);\n\n if (hasPrependSlot || prepend || prependHtml) {\n $prepend = h(BInputGroupPrepend, [hasPrependSlot ? normalizeSlot(SLOT_NAME_PREPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(prependHtml, prepend)\n })]);\n }\n\n var $append = h();\n var hasAppendSlot = hasNormalizedSlot(SLOT_NAME_APPEND, $scopedSlots, $slots);\n\n if (hasAppendSlot || append || appendHtml) {\n $append = h(BInputGroupAppend, [hasAppendSlot ? normalizeSlot(SLOT_NAME_APPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(appendHtml, append)\n })]);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, \"input-group-\".concat(size), size),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), [$prepend, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots), $append]);\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});","var _objectSpread2, _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_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ACTIVE = 'active';\nvar MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_ACTIVE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"buttonId\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"disabled\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"lazy\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"noBody\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"tag\", makeProp(PROP_TYPE_STRING, 'div')), _defineProperty(_objectSpread2, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"titleItemClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _defineProperty(_objectSpread2, \"titleLinkAttributes\", makeProp(PROP_TYPE_OBJECT)), _defineProperty(_objectSpread2, \"titleLinkClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _objectSpread2))), NAME_TAB); // --- Main component ---\n// @vue/component\n\nexport var BTab = /*#__PURE__*/Vue.extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default: function _default() {\n return {};\n }\n }\n },\n props: props,\n data: function data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n // For parent sniffing of child\n _isTab: function _isTab() {\n return true;\n },\n tabClasses: function tabClasses() {\n var active = this.localActive,\n disabled = this.disabled;\n return [{\n active: active,\n disabled: disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_ACTIVE, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n }), _defineProperty(_watch, \"disabled\", function disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n var firstTab = this.bvTabs.firstTab;\n\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n }), _defineProperty(_watch, \"localActive\", function localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }), _watch),\n mounted: function mounted() {\n // Inform `` of our presence\n this.registerTab();\n },\n updated: function updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n var updateButton = this.bvTabs.updateButton;\n\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Inform `` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `` of our presence\n var registerTab = this.bvTabs.registerTab;\n\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab: function unregisterTab() {\n // Inform `` of our departure\n var unregisterTab = this.bvTabs.unregisterTab;\n\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate: function activate() {\n // Not inside a `` component or tab is disabled\n var activateTab = this.bvTabs.activateTab;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate: function deactivate() {\n // Not inside a `` component or not active to begin with\n var deactivateTab = this.bvTabs.deactivateTab;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render: function render(h) {\n var localActive = this.localActive;\n var $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n }, // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\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});","import { Vue } from '../../vue';\nimport { NAME_TH } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BTd, props as BTdProps } from './td'; // --- Props ---\n\nexport var props = makePropsConfigurable(BTdProps, NAME_TH); // --- 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 BTh = /*#__PURE__*/Vue.extend({\n name: NAME_TH,\n extends: BTd,\n props: props,\n computed: {\n tag: function tag() {\n return 'th';\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 { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { identity } from '../../../utils/identity';\nimport { isBoolean } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { attrsMixin } from '../../../mixins/attrs'; // Main `` render mixin\n// Includes all main table styling options\n// --- Props ---\n\nexport var props = {\n bordered: makeProp(PROP_TYPE_BOOLEAN, false),\n borderless: makeProp(PROP_TYPE_BOOLEAN, false),\n captionTop: makeProp(PROP_TYPE_BOOLEAN, false),\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n hover: makeProp(PROP_TYPE_BOOLEAN, false),\n noBorderCollapse: makeProp(PROP_TYPE_BOOLEAN, false),\n outlined: makeProp(PROP_TYPE_BOOLEAN, false),\n responsive: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n // If a string, it is assumed to be the table `max-height` value\n stickyHeader: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false),\n tableClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tableVariant: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tableRendererMixin = Vue.extend({\n mixins: [attrsMixin],\n provide: function provide() {\n return {\n bvTable: this\n };\n },\n // Don't place attributes on root element automatically,\n // as table could be wrapped in responsive `
`\n inheritAttrs: false,\n props: props,\n computed: {\n // Layout related computed props\n isResponsive: function isResponsive() {\n var responsive = this.responsive;\n responsive = responsive === '' ? true : responsive;\n return this.isStacked ? false : responsive;\n },\n isStickyHeader: function isStickyHeader() {\n var stickyHeader = this.stickyHeader;\n stickyHeader = stickyHeader === '' ? true : stickyHeader;\n return this.isStacked ? false : stickyHeader;\n },\n wrapperClasses: function wrapperClasses() {\n var isResponsive = this.isResponsive;\n return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? \"table-responsive-\".concat(this.responsive) : ''].filter(identity);\n },\n wrapperStyles: function wrapperStyles() {\n var isStickyHeader = this.isStickyHeader;\n return isStickyHeader && !isBoolean(isStickyHeader) ? {\n maxHeight: isStickyHeader\n } : {};\n },\n tableClasses: function tableClasses() {\n var hover = this.hover,\n tableVariant = this.tableVariant;\n hover = this.isTableSimple ? hover : hover && this.computedItems.length > 0 && !this.computedBusy;\n return [// User supplied classes\n this.tableClass, // Styling classes\n {\n 'table-striped': this.striped,\n 'table-hover': hover,\n 'table-dark': this.dark,\n 'table-bordered': this.bordered,\n 'table-borderless': this.borderless,\n 'table-sm': this.small,\n // The following are b-table custom styles\n border: this.outlined,\n 'b-table-fixed': this.fixed,\n 'b-table-caption-top': this.captionTop,\n 'b-table-no-border-collapse': this.noBorderCollapse\n }, tableVariant ? \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(tableVariant) : '', // Stacked table classes\n this.stackedTableClasses, // Selectable classes\n this.selectableTableClasses];\n },\n tableAttrs: function tableAttrs() {\n var items = this.computedItems,\n filteredItems = this.filteredItems,\n fields = this.computedFields,\n selectableTableAttrs = this.selectableTableAttrs; // Preserve user supplied aria-describedby, if provided in `$attrs`\n\n var adb = [(this.bvAttrs || {})['aria-describedby'], this.captionId].filter(identity).join(' ') || null;\n var ariaAttrs = this.isTableSimple ? {} : {\n 'aria-busy': this.computedBusy ? 'true' : 'false',\n 'aria-colcount': toString(fields.length),\n 'aria-describedby': adb\n };\n var rowCount = items && filteredItems && filteredItems.length > items.length ? toString(filteredItems.length) : null;\n return _objectSpread(_objectSpread(_objectSpread({\n // We set `aria-rowcount` before merging in `$attrs`,\n // in case user has supplied their own\n 'aria-rowcount': rowCount\n }, this.bvAttrs), {}, {\n // Now we can override any `$attrs` here\n id: this.safeId(),\n role: 'table'\n }, ariaAttrs), selectableTableAttrs);\n }\n },\n render: function render(h) {\n var wrapperClasses = this.wrapperClasses,\n renderCaption = this.renderCaption,\n renderColgroup = this.renderColgroup,\n renderThead = this.renderThead,\n renderTbody = this.renderTbody,\n renderTfoot = this.renderTfoot;\n var $content = [];\n\n if (this.isTableSimple) {\n $content.push(this.normalizeSlot());\n } else {\n // Build the `
`\n\n $content.push(renderColgroup ? renderColgroup() : null); // Build the ``\n\n $content.push(renderThead ? renderThead() : null); // Build the ``\n\n $content.push(renderTbody ? renderTbody() : null); // Build the ``\n\n $content.push(renderTfoot ? renderTfoot() : null);\n } // Assemble `
` (from caption mixin)\n $content.push(renderCaption ? renderCaption() : null); // Build the `
`\n\n\n var $table = h('table', {\n staticClass: 'table b-table',\n class: this.tableClasses,\n attrs: this.tableAttrs,\n key: 'b-table'\n }, $content.filter(identity)); // Add responsive/sticky wrapper if needed and return table\n\n return wrapperClasses.length > 0 ? h('div', {\n class: wrapperClasses,\n style: this.wrapperStyles,\n key: 'wrap'\n }, [$table]) : $table;\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\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});","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabAccount.vue?vue&type=style&index=0&lang=scss&\"","/*\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};","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_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\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 BRow = {\n name: NAME_ROW,\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;\n this.props = generateProps();\n return this.props;\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 alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } 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 tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY); // --- 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 BTbody = /*#__PURE__*/Vue.extend({\n name: NAME_TBODY,\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 isTbody: function isTbody() {\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 isTransitionGroup: function isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs: function tbodyAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n },\n tbodyProps: function tbodyProps() {\n var tbodyTransitionProps = this.tbodyTransitionProps;\n return tbodyTransitionProps ? _objectSpread(_objectSpread({}, tbodyTransitionProps), {}, {\n tag: 'tbody'\n }) : {};\n }\n },\n render: function render(h) {\n var data = {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs\n };\n\n if (this.isTransitionGroup) {\n // We use native listeners if a transition group for any delegated events\n data.on = this.tbodyTransitionHandlers || {};\n data.nativeOn = this.bvListeners;\n } else {\n // Otherwise we place any listeners on the tbody element\n data.on = this.bvListeners;\n }\n\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\n }\n});","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabInformation.vue?vue&type=style&index=0&lang=scss&\"","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};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&lang=scss&scoped=true&\"","'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'\r\nimport store from '@/store'\r\nimport { title } from '@core/utils/filter'\r\n\r\n// Notification\r\nimport { useToast } from 'vue-toastification/composition'\r\nimport ToastificationContent from '@core/components/toastification/ToastificationContent.vue'\r\n\r\nexport default function useUsersList() {\r\n // Use toast\r\n const toast = useToast()\r\n\r\n const refUserListTable = ref(null)\r\n\r\n // Table Handlers\r\n const tableColumns = [\r\n { key: 'user', sortable: true },\r\n { key: 'email', sortable: true },\r\n { key: 'role', sortable: true },\r\n {\r\n key: 'currentPlan',\r\n label: 'Plan',\r\n formatter: title,\r\n sortable: true,\r\n },\r\n { key: 'status', sortable: true },\r\n { key: 'actions' },\r\n ]\r\n const perPage = ref(10)\r\n const totalUsers = ref(0)\r\n const currentPage = ref(1)\r\n const perPageOptions = [10, 25, 50, 100]\r\n const searchQuery = ref('')\r\n const sortBy = ref('id')\r\n const isSortDirDesc = ref(true)\r\n const roleFilter = ref(null)\r\n const planFilter = ref(null)\r\n const statusFilter = ref(null)\r\n\r\n const dataMeta = computed(() => {\r\n const localItemsCount = refUserListTable.value ? refUserListTable.value.localItems.length : 0\r\n return {\r\n from: perPage.value * (currentPage.value - 1) + (localItemsCount ? 1 : 0),\r\n to: perPage.value * (currentPage.value - 1) + localItemsCount,\r\n of: totalUsers.value,\r\n }\r\n })\r\n\r\n const refetchData = () => {\r\n refUserListTable.value.refresh()\r\n }\r\n\r\n watch([currentPage, perPage, searchQuery, roleFilter, planFilter, statusFilter], () => {\r\n refetchData()\r\n })\r\n\r\n const fetchUsers = (ctx, callback) => {\r\n store\r\n .dispatch('app-user/fetchUsers', {\r\n q: searchQuery.value,\r\n perPage: perPage.value,\r\n page: currentPage.value,\r\n sortBy: sortBy.value,\r\n sortDesc: isSortDirDesc.value,\r\n role: roleFilter.value,\r\n plan: planFilter.value,\r\n status: statusFilter.value,\r\n })\r\n .then(response => {\r\n const { users, total } = response.data\r\n\r\n callback(users)\r\n totalUsers.value = total\r\n })\r\n .catch(() => {\r\n toast({\r\n component: ToastificationContent,\r\n props: {\r\n title: 'Error fetching users list',\r\n icon: 'AlertTriangleIcon',\r\n variant: 'danger',\r\n },\r\n })\r\n })\r\n }\r\n\r\n // *===============================================---*\r\n // *--------- UI ---------------------------------------*\r\n // *===============================================---*\r\n\r\n const resolveUserRoleVariant = role => {\r\n if (role === 'subscriber') return 'primary'\r\n if (role === 'author') return 'warning'\r\n if (role === 'maintainer') return 'success'\r\n if (role === 'editor') return 'info'\r\n if (role === 'admin') return 'danger'\r\n return 'primary'\r\n }\r\n\r\n const resolveUserRoleIcon = role => {\r\n if (role === 'subscriber') return 'UserIcon'\r\n if (role === 'author') return 'SettingsIcon'\r\n if (role === 'maintainer') return 'DatabaseIcon'\r\n if (role === 'editor') return 'Edit2Icon'\r\n if (role === 'admin') return 'ServerIcon'\r\n return 'UserIcon'\r\n }\r\n\r\n const resolveUserStatusVariant = status => {\r\n if (status === 'pending') return 'warning'\r\n if (status === 'active') return 'success'\r\n if (status === 'inactive') return 'secondary'\r\n return 'primary'\r\n }\r\n\r\n return {\r\n fetchUsers,\r\n tableColumns,\r\n perPage,\r\n currentPage,\r\n totalUsers,\r\n dataMeta,\r\n perPageOptions,\r\n searchQuery,\r\n sortBy,\r\n isSortDirDesc,\r\n refUserListTable,\r\n\r\n resolveUserRoleVariant,\r\n resolveUserRoleIcon,\r\n resolveUserStatusVariant,\r\n refetchData,\r\n\r\n // Extra Filters\r\n roleFilter,\r\n planFilter,\r\n statusFilter,\r\n }\r\n}\r\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\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});","export const useInputImageRenderer = (inputEl, callback) => {\r\n const inputImageRenderer = () => {\r\n const file = inputEl.value.files[0]\r\n const reader = new FileReader()\r\n\r\n reader.addEventListener(\r\n 'load',\r\n () => {\r\n callback(reader.result)\r\n },\r\n false,\r\n )\r\n\r\n if (file) {\r\n reader.readAsDataURL(file)\r\n }\r\n }\r\n return {\r\n inputImageRenderer,\r\n }\r\n}\r\n\r\nexport const _ = null\r\n","import router from '@/router'\r\n// eslint-disable-next-line object-curly-newline\r\nimport {\r\n reactive,\r\n getCurrentInstance,\r\n watch,\r\n toRefs,\r\n} from '@vue/composition-api'\r\n\r\nexport const isObject = obj => typeof obj === 'object' && obj !== null\r\n\r\nexport const isToday = date => {\r\n const today = new Date()\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n date.getDate() === today.getDate() &&\r\n date.getMonth() === today.getMonth() &&\r\n date.getFullYear() === today.getFullYear()\r\n /* eslint-enable */\r\n )\r\n}\r\n\r\nconst getRandomFromArray = array =>\r\n array[Math.floor(Math.random() * array.length)]\r\n\r\n// ? Light and Dark variant is not included\r\n// prettier-ignore\r\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])\r\n\r\nexport const isDynamicRouteActive = route => {\r\n const { route: resolvedRoute } = router.resolve(route)\r\n return resolvedRoute.path === router.currentRoute.path\r\n}\r\n\r\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\r\nexport const useRouter = () => {\r\n const vm = getCurrentInstance().proxy\r\n const state = reactive({\r\n route: vm.$route,\r\n })\r\n\r\n watch(\r\n () => vm.$route,\r\n r => {\r\n state.route = r\r\n }\r\n )\r\n\r\n return { ...toRefs(state), router: vm.$router }\r\n}\r\n\r\nexport const cloneObject = obj => JSON.parse(JSON.stringify(obj))\r\n\r\n/**\r\n * This is just enhancement over Object.extend [Gives deep extend]\r\n * @param {target} a Object which contains values to be overridden\r\n * @param {source} b Object which contains values to override\r\n */\r\n// export const objectExtend = (a, b) => {\r\n// // Don't touch 'null' or 'undefined' objects.\r\n// if (a == null || b == null) {\r\n// return a\r\n// }\r\n\r\n// Object.keys(b).forEach(key => {\r\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\r\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = objectExtend(a[key], b[key])\r\n// }\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// }\r\n// })\r\n\r\n// return a\r\n// }\r\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_INPUT_GROUP_APPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_APPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAppend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_APPEND,\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 // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: true\n })\n }), children);\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};","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_TEXT } 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_INPUT_GROUP_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupText = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_TEXT,\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: 'input-group-text'\n }), children);\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});","var render = function () {\n var _vm=this;\n var _h=_vm.$createElement;\n var _c=_vm._self._c||_h;\n\n return _c(_vm.userData === undefined ? 'div' : 'b-card', {\n tag: \"component\"\n }, [_c('b-alert', {\n attrs: {\n \"variant\": \"danger\",\n \"show\": _vm.userData === undefined\n }\n }, [_c('h4', {\n staticClass: \"alert-heading\"\n }, [_vm._v(\" Error fetching user data \")]), _c('div', {\n staticClass: \"alert-body\"\n }, [_vm._v(\" No user found with this user id. Check \"), _c('b-link', {\n staticClass: \"alert-link\",\n attrs: {\n \"to\": {\n name: 'apps-users-list'\n }\n }\n }, [_vm._v(\" User List \")]), _vm._v(\" for other users. \")], 1)]), _vm.userData ? _c('b-tabs', {\n attrs: {\n \"pills\": \"\"\n }\n }, [_c('b-tab', {\n attrs: {\n \"active\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"title\",\n fn: function fn() {\n return [_c('feather-icon', {\n staticClass: \"mr-0 mr-sm-50\",\n attrs: {\n \"icon\": \"UserIcon\",\n \"size\": \"16\"\n }\n }), _c('span', {\n staticClass: \"d-none d-sm-inline\"\n }, [_vm._v(\"Account\")])];\n },\n proxy: true\n }], null, false, 819792000)\n }, [_c('user-edit-tab-account', {\n staticClass: \"mt-2 pt-75\",\n attrs: {\n \"user-data\": _vm.userData\n }\n })], 1), _c('b-tab', {\n scopedSlots: _vm._u([{\n key: \"title\",\n fn: function fn() {\n return [_c('feather-icon', {\n staticClass: \"mr-0 mr-sm-50\",\n attrs: {\n \"icon\": \"InfoIcon\",\n \"size\": \"16\"\n }\n }), _c('span', {\n staticClass: \"d-none d-sm-inline\"\n }, [_vm._v(\"Information\")])];\n },\n proxy: true\n }], null, false, 1675473746)\n }, [_c('user-edit-tab-information', {\n staticClass: \"mt-2 pt-75\"\n })], 1), _c('b-tab', {\n scopedSlots: _vm._u([{\n key: \"title\",\n fn: function fn() {\n return [_c('feather-icon', {\n staticClass: \"mr-0 mr-sm-50\",\n attrs: {\n \"icon\": \"Share2Icon\",\n \"size\": \"16\"\n }\n }), _c('span', {\n staticClass: \"d-none d-sm-inline\"\n }, [_vm._v(\"Social\")])];\n },\n proxy: true\n }], null, false, 1914541044)\n }, [_c('user-edit-tab-social', {\n staticClass: \"mt-2 pt-75\"\n })], 1)], 1) : _vm._e()], 1);\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm=this;\n var _h=_vm.$createElement;\n var _c=_vm._self._c||_h;\n\n return _c('div', [_c('b-media', {\n staticClass: \"mb-2\",\n scopedSlots: _vm._u([{\n key: \"aside\",\n fn: function fn() {\n return [_c('b-avatar', {\n ref: \"previewEl\",\n attrs: {\n \"src\": _vm.userData.avatar,\n \"text\": _vm.avatarText(_vm.userData.fullName),\n \"variant\": \"light-\".concat(_vm.resolveUserRoleVariant(_vm.userData.role)),\n \"size\": \"90px\",\n \"rounded\": \"\"\n }\n })];\n },\n proxy: true\n }])\n }, [_c('h4', {\n staticClass: \"mb-1\"\n }, [_vm._v(\" \" + _vm._s(_vm.userData.fullName) + \" \")]), _c('div', {\n staticClass: \"d-flex flex-wrap\"\n }, [_c('b-button', {\n attrs: {\n \"variant\": \"primary\"\n },\n on: {\n \"click\": function click($event) {\n return _vm.$refs.refInputEl.click();\n }\n }\n }, [_c('input', {\n ref: \"refInputEl\",\n staticClass: \"d-none\",\n attrs: {\n \"type\": \"file\"\n },\n on: {\n \"input\": _vm.inputImageRenderer\n }\n }), _c('span', {\n staticClass: \"d-none d-sm-inline\"\n }, [_vm._v(\"Update\")]), _c('feather-icon', {\n staticClass: \"d-inline d-sm-none\",\n attrs: {\n \"icon\": \"EditIcon\"\n }\n })], 1), _c('b-button', {\n staticClass: \"ml-1\",\n attrs: {\n \"variant\": \"outline-secondary\"\n }\n }, [_c('span', {\n staticClass: \"d-none d-sm-inline\"\n }, [_vm._v(\"Remove\")]), _c('feather-icon', {\n staticClass: \"d-inline d-sm-none\",\n attrs: {\n \"icon\": \"TrashIcon\"\n }\n })], 1)], 1)]), _c('b-form', [_c('b-row', [_c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Username\",\n \"label-for\": \"username\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"username\"\n },\n model: {\n value: _vm.userData.username,\n callback: function callback($$v) {\n _vm.$set(_vm.userData, \"username\", $$v);\n },\n expression: \"userData.username\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Name\",\n \"label-for\": \"full-name\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"full-name\"\n },\n model: {\n value: _vm.userData.fullName,\n callback: function callback($$v) {\n _vm.$set(_vm.userData, \"fullName\", $$v);\n },\n expression: \"userData.fullName\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Email\",\n \"label-for\": \"email\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"email\",\n \"type\": \"email\"\n },\n model: {\n value: _vm.userData.email,\n callback: function callback($$v) {\n _vm.$set(_vm.userData, \"email\", $$v);\n },\n expression: \"userData.email\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Status\",\n \"label-for\": \"user-status\"\n }\n }, [_c('v-select', {\n attrs: {\n \"dir\": _vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\n \"options\": _vm.statusOptions,\n \"reduce\": function reduce(val) {\n return val.value;\n },\n \"clearable\": false,\n \"input-id\": \"user-status\"\n },\n model: {\n value: _vm.userData.status,\n callback: function callback($$v) {\n _vm.$set(_vm.userData, \"status\", $$v);\n },\n expression: \"userData.status\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"User Role\",\n \"label-for\": \"user-role\"\n }\n }, [_c('v-select', {\n attrs: {\n \"dir\": _vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\n \"options\": _vm.roleOptions,\n \"reduce\": function reduce(val) {\n return val.value;\n },\n \"clearable\": false,\n \"input-id\": \"user-role\"\n },\n model: {\n value: _vm.userData.role,\n callback: function callback($$v) {\n _vm.$set(_vm.userData, \"role\", $$v);\n },\n expression: \"userData.role\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Company\",\n \"label-for\": \"company\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"company\"\n },\n model: {\n value: _vm.userData.company,\n callback: function callback($$v) {\n _vm.$set(_vm.userData, \"company\", $$v);\n },\n expression: \"userData.company\"\n }\n })], 1)], 1)], 1)], 1), _c('b-card', {\n staticClass: \"border mt-1\",\n attrs: {\n \"no-body\": \"\"\n }\n }, [_c('b-card-header', {\n staticClass: \"p-1\"\n }, [_c('b-card-title', {\n staticClass: \"font-medium-2\"\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": \"LockIcon\",\n \"size\": \"18\"\n }\n }), _c('span', {\n staticClass: \"align-middle ml-50\"\n }, [_vm._v(\"Permission\")])], 1)], 1), _c('b-table', {\n staticClass: \"mb-0\",\n attrs: {\n \"striped\": \"\",\n \"responsive\": \"\",\n \"items\": _vm.permissionsData\n },\n scopedSlots: _vm._u([{\n key: \"cell(module)\",\n fn: function fn(data) {\n return [_vm._v(\" \" + _vm._s(data.value) + \" \")];\n }\n }, {\n key: \"cell()\",\n fn: function fn(data) {\n return [_c('b-form-checkbox', {\n attrs: {\n \"checked\": data.value\n }\n })];\n }\n }])\n })], 1), _c('b-button', {\n staticClass: \"mb-1 mb-sm-0 mr-0 mr-sm-1\",\n attrs: {\n \"variant\": \"primary\",\n \"block\": _vm.$store.getters['app/currentBreakPoint'] === 'xs'\n }\n }, [_vm._v(\" Save Changes \")]), _c('b-button', {\n attrs: {\n \"variant\": \"outline-secondary\",\n \"type\": \"reset\",\n \"block\": _vm.$store.getters['app/currentBreakPoint'] === 'xs'\n }\n }, [_vm._v(\" Reset \")])], 1);\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabAccount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabAccount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserEditTabAccount.vue?vue&type=template&id=57670665&\"\nimport script from \"./UserEditTabAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./UserEditTabAccount.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserEditTabAccount.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {\n var _vm=this;\n var _h=_vm.$createElement;\n var _c=_vm._self._c||_h;\n\n return _c('div', [_c('div', {\n staticClass: \"d-flex\"\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": \"UserIcon\",\n \"size\": \"19\"\n }\n }), _c('h4', {\n staticClass: \"mb-0 ml-50\"\n }, [_vm._v(\" Personal Information \")])], 1), _c('b-form', {\n staticClass: \"mt-1\"\n }, [_c('b-row', [_c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Birth Date\",\n \"label-for\": \"birth-date\"\n }\n }, [_c('flat-pickr', {\n staticClass: \"form-control\",\n attrs: {\n \"config\": {\n dateFormat: 'Y-m-d'\n },\n \"placeholder\": \"YYYY-MM-DD\"\n },\n model: {\n value: _vm.userDataInfo.dob,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"dob\", $$v);\n },\n expression: \"userDataInfo.dob\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Mobile\",\n \"label-for\": \"mobile\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"mobile\"\n },\n model: {\n value: _vm.userDataInfo.mobile,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"mobile\", $$v);\n },\n expression: \"userDataInfo.mobile\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Website\",\n \"label-for\": \"website\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"website\"\n },\n model: {\n value: _vm.userDataInfo.website,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"website\", $$v);\n },\n expression: \"userDataInfo.website\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Language\",\n \"label-for\": \"language\"\n }\n }, [_c('v-select', {\n attrs: {\n \"dir\": _vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\n \"options\": _vm.languageOptions,\n \"clearable\": false,\n \"input-id\": \"language\"\n },\n model: {\n value: _vm.userDataInfo.language,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"language\", $$v);\n },\n expression: \"userDataInfo.language\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Gender\",\n \"label-for\": \"gender\",\n \"label-class\": \"mb-1\"\n }\n }, [_c('b-form-radio-group', {\n attrs: {\n \"id\": \"gender\",\n \"options\": _vm.genderOptions,\n \"value\": \"male\"\n },\n model: {\n value: _vm.userDataInfo.gender,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"gender\", $$v);\n },\n expression: \"userDataInfo.gender\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Contact Options\",\n \"label-for\": \"contact-options\",\n \"label-class\": \"mb-1\"\n }\n }, [_c('b-form-checkbox-group', {\n attrs: {\n \"id\": \"contact-options\",\n \"options\": _vm.contactOptionsOptions\n },\n model: {\n value: _vm.userDataInfo.contactOptions,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"contactOptions\", $$v);\n },\n expression: \"userDataInfo.contactOptions\"\n }\n })], 1)], 1)], 1), _c('div', {\n staticClass: \"d-flex mt-2\"\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": \"MapPinIcon\",\n \"size\": \"19\"\n }\n }), _c('h4', {\n staticClass: \"mb-0 ml-50\"\n }, [_vm._v(\" Address \")])], 1), _c('b-row', {\n staticClass: \"mt-1\"\n }, [_c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Address Line 1\",\n \"label-for\": \"address-line-1\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"address-line-1\"\n },\n model: {\n value: _vm.userDataInfo.addressLine1,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"addressLine1\", $$v);\n },\n expression: \"userDataInfo.addressLine1\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Address Line 2\",\n \"label-for\": \"address-line-2\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"address-line-2\",\n \"placeholder\": \"Los Santos\"\n },\n model: {\n value: _vm.userDataInfo.addressLine2,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"addressLine2\", $$v);\n },\n expression: \"userDataInfo.addressLine2\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Postcode\",\n \"label-for\": \"postcode\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"postcode\",\n \"type\": \"number\",\n \"placeholder\": \"597626\"\n },\n model: {\n value: _vm.userDataInfo.postcode,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"postcode\", $$v);\n },\n expression: \"userDataInfo.postcode\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"City\",\n \"label-for\": \"city\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"city\"\n },\n model: {\n value: _vm.userDataInfo.city,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"city\", $$v);\n },\n expression: \"userDataInfo.city\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"State\",\n \"label-for\": \"state\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"state\",\n \"placeholder\": \"Manhattan\"\n },\n model: {\n value: _vm.userDataInfo.state,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"state\", $$v);\n },\n expression: \"userDataInfo.state\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": \"Country\",\n \"label-for\": \"country\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"country\",\n \"placeholder\": \"United States\"\n },\n model: {\n value: _vm.userDataInfo.country,\n callback: function callback($$v) {\n _vm.$set(_vm.userDataInfo, \"country\", $$v);\n },\n expression: \"userDataInfo.country\"\n }\n })], 1)], 1)], 1), _c('b-row', {\n staticClass: \"mt-2\"\n }, [_c('b-col', [_c('b-button', {\n staticClass: \"mb-1 mb-sm-0 mr-0 mr-sm-1\",\n attrs: {\n \"variant\": \"primary\",\n \"block\": _vm.$store.getters['app/currentBreakPoint'] === 'xs'\n }\n }, [_vm._v(\" Save Changes \")]), _c('b-button', {\n attrs: {\n \"variant\": \"outline-secondary\",\n \"block\": _vm.$store.getters['app/currentBreakPoint'] === 'xs'\n }\n }, [_vm._v(\" Reset \")])], 1)], 1)], 1)], 1);\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabInformation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabInformation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserEditTabInformation.vue?vue&type=template&id=1413b28c&\"\nimport script from \"./UserEditTabInformation.vue?vue&type=script&lang=js&\"\nexport * from \"./UserEditTabInformation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserEditTabInformation.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {\n var _vm=this;\n var _h=_vm.$createElement;\n var _c=_vm._self._c||_h;\n\n return _c('b-form', [_c('b-row', [_vm._l(_vm.socialInputs, function (socialField) {\n return _c('b-col', {\n key: socialField.dataField,\n attrs: {\n \"cols\": \"12\",\n \"md\": \"6\",\n \"lg\": \"4\"\n }\n }, [_c('b-form-group', {\n attrs: {\n \"label\": socialField.label,\n \"label-for\": socialField.dataField\n }\n }, [_c('b-input-group', {\n staticClass: \"input-group-merge\"\n }, [_c('b-input-group-prepend', {\n attrs: {\n \"is-text\": \"\"\n }\n }, [_c('feather-icon', {\n attrs: {\n \"size\": \"16\",\n \"icon\": socialField.icon\n }\n })], 1), _c('b-form-input', {\n attrs: {\n \"id\": socialField.dataField,\n \"type\": \"url\"\n },\n model: {\n value: _vm.userDataSocial[socialField.dataField],\n callback: function callback($$v) {\n _vm.$set(_vm.userDataSocial, socialField.dataField, $$v);\n },\n expression: \"userDataSocial[socialField.dataField]\"\n }\n })], 1)], 1)], 1);\n }), _c('b-col', {\n staticClass: \"mt-2\"\n }, [_c('b-button', {\n staticClass: \"mb-1 mb-sm-0 mr-0 mr-sm-1\",\n attrs: {\n \"variant\": \"primary\",\n \"block\": _vm.$store.getters['app/currentBreakPoint'] === 'xs'\n }\n }, [_vm._v(\" Save Changes \")]), _c('b-button', {\n attrs: {\n \"variant\": \"outline-secondary\",\n \"block\": _vm.$store.getters['app/currentBreakPoint'] === 'xs'\n }\n }, [_vm._v(\" Reset \")])], 1)], 2)], 1);\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabSocial.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabSocial.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserEditTabSocial.vue?vue&type=template&id=7ecf2d12&\"\nimport script from \"./UserEditTabSocial.vue?vue&type=script&lang=js&\"\nexport * from \"./UserEditTabSocial.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","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersEdit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersEdit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UsersEdit.vue?vue&type=template&id=1abc03f6&\"\nimport script from \"./UsersEdit.vue?vue&type=script&lang=js&\"\nexport * from \"./UsersEdit.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 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});","export var noop = function noop() {};","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_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CHANGED, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_PREV } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_TABS_END, SLOT_NAME_TABS_START, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } 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 { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Filter function to filter out disabled tabs\n\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVTabButton = /*#__PURE__*/Vue.extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n bvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvt: function handleEvt(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n\n var type = event.type,\n keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render: function render(h) {\n var id = this.id,\n tabIndex = this.tabIndex,\n setSize = this.setSize,\n posInSet = this.posInSet,\n controls = this.controls,\n handleEvt = this.handleEvt;\n var _this$tab = this.tab,\n title = _this$tab.title,\n localActive = _this$tab.localActive,\n disabled = _this$tab.disabled,\n titleItemClass = _this$tab.titleItemClass,\n titleLinkClass = _this$tab.titleLinkClass,\n titleLinkAttributes = _this$tab.titleLinkAttributes;\n var $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled: disabled\n }, titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: disabled\n },\n attrs: _objectSpread(_objectSpread({}, titleLinkAttributes), {}, {\n id: id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n }),\n on: {\n click: handleEvt,\n keydown: handleEvt\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n}); // --- Props ---\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), navProps), {}, {\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n card: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_TABS); // --- Main component ---\n// @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n props: props,\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n var $tab = this.tabs[newValue];\n\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n }), _defineProperty(_watch, \"currentTab\", function currentTab(newValue) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function ($tab, i) {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit(MODEL_EVENT_NAME, index);\n }), _defineProperty(_watch, \"tabs\", function tabs(newValue, oldValue) {\n var _this = this;\n\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }), oldValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n _this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n }), _defineProperty(_watch, \"registeredTabs\", function registeredTabs() {\n this.updateTabs();\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted: function mounted() {\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.setObserver(false); // Ensure no references to child instances exist\n\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab: function unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function ($t) {\n return $t !== $tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver() {\n var _this2 = this;\n\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n var handler = function handler() {\n _this2.$nextTick(function () {\n requestAF(function () {\n _this2.updateTabs();\n });\n });\n }; // Watch for changes to `` sub components\n\n\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n var $tabs = this.registeredTabs.filter(function ($tab) {\n return $tab.$children.filter(function ($t) {\n return $t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n /* istanbul ignore next: too difficult to test */\n\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n var selector = $tabs.map(function ($tab) {\n return \"#\".concat($tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function ($el) {\n return $el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n\n\n return stableSort($tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n updateTabs: function updateTabs() {\n var $tabs = this.getTabs(); // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n\n var tabIndex = $tabs.indexOf($tabs.slice().reverse().find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n })); // Else try setting to `currentTab`\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find first non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n } // Ensure only one tab is active at a time\n\n\n $tabs.forEach(function ($tab, index) {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab($tab) {\n return (this.$refs.buttons || []).find(function ($btn) {\n return $btn.tab === $tab;\n });\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton: function updateButton($tab) {\n var $button = this.getButtonForTab($tab);\n\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab: function activateTab($tab) {\n var currentTab = this.currentTab,\n $tabs = this.tabs;\n var result = false;\n\n if ($tab) {\n var index = $tabs.indexOf($tab);\n\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n var tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n } // Couldn't set tab, so ensure v-model is up to date\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab: function deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function ($t) {\n return $t !== $tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton: function focusButton($tab) {\n var _this3 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this3.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick: function emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab: function clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var $tab = this.tabs.find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var $tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var align = this.align,\n card = this.card,\n end = this.end,\n fill = this.fill,\n firstTab = this.firstTab,\n justified = this.justified,\n lastTab = this.lastTab,\n nextTab = this.nextTab,\n noKeyNav = this.noKeyNav,\n noNavStyle = this.noNavStyle,\n pills = this.pills,\n previousTab = this.previousTab,\n small = this.small,\n $tabs = this.tabs,\n vertical = this.vertical; // Currently active tab\n\n var $activeTab = $tabs.find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var $fallbackTab = $tabs.find(function ($tab) {\n return !$tab.disabled;\n }); // For each `` found create the tab buttons\n\n var $buttons = $tabs.map(function ($tab, index) {\n var _on;\n\n var safeId = $tab.safeId; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n var tabIndex = null;\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(\"_BV_tab_button_\") : null),\n noKeyNav: noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex: tabIndex\n },\n on: (_on = {}, _defineProperty(_on, EVENT_NAME_CLICK, function (event) {\n _this4.clickTab($tab, event);\n }), _defineProperty(_on, EVENT_NAME_FIRST, firstTab), _defineProperty(_on, EVENT_NAME_PREV, previousTab), _defineProperty(_on, EVENT_NAME_NEXT, nextTab), _defineProperty(_on, EVENT_NAME_LAST, lastTab), _on),\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true\n });\n });\n var $nav = h(BNav, {\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: fill,\n justified: justified,\n align: align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n vertical: vertical,\n small: small,\n cardHeader: card && !vertical\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: [{\n 'card-header': card && !vertical && !end,\n 'card-footer': card && !vertical && end,\n 'col-auto': vertical\n }, this.navWrapperClass],\n key: 'bv-tabs-nav'\n }, [$nav]);\n var $children = this.normalizeSlot() || [];\n var $empty = h();\n\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active', {\n 'card-body': card\n }],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n\n var $content = h('div', {\n staticClass: 'tab-content',\n class: [{\n col: vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: vertical,\n 'no-gutters': vertical && card\n },\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});"],"sourceRoot":""}