{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.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:///./node_modules/flatpickr/dist/l10n/pt.js","webpack:///./src/services/spinService.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/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/table/helpers/mixin-caption.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/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.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/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./src/views/componentes/instituicoes/Alunos.vue?f76d","webpack:///./src/utils/constants.js","webpack:///src/views/componentes/instituicoes/Alunos.vue","webpack:///./src/views/componentes/instituicoes/Alunos.vue?0d7c","webpack:///./src/views/componentes/instituicoes/Alunos.vue","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/col.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./src/services/usersService.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/form-state.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./src/views/componentes/instituicoes/Alunos.vue?8f90","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.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","props","id","inline","novalidate","validated","BForm","name","functional","render","h","_ref","data","children","class","attrs","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","undefined","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","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","$content","overlay","staticClass","$footer","hasFooterSlot","tag","concat","global","factory","exports","fp","window","flatpickr","l10ns","Portuguese","weekdays","shorthand","longhand","months","rangeSeparator","time_24hr","pt","default","showSpinner","document","getElementById","style","display","hideSpinner","footVariant","BTfoot","mixins","provide","bvTableRowGroup","inject","bvTable","inheritAttrs","isTfoot","isDark","dark","isStacked","isResponsive","isStickyHeader","hasStickyHeader","stickyHeader","tableVariant","tfootClasses","tfootAttrs","bvAttrs","role","on","bvListeners","normalizeSlot","bottomRowMixin","renderBottomRow","fields","computedFields","stacked","tbodyTrClass","tbodyTrAttr","$createElement","hasNormalizedSlot","columns","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","watch","newValue","oldValue","$emit","stopIfBusy","event","renderBusy","colspan","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","stringifyObjectValues","sort","map","k","v","join","row","ignoreFields","includeFields","fieldsObj","formattedRow","reduce","result","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","prototype","toString","call","slice","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","arr2","DEBOUNCE_DEPRECATED_MSG","filterDebounce","String","filterFunction","filterIgnoredFields","filterIncludedFields","filteringMixin","localFilter","filterSanitize","computedFilterIgnored","identity","computedFilterIncluded","computedFilterDebounce","ms","warn","localFiltering","hasProvider","noProviderFiltering","filteredCheck","filteredItems","localItems","localFilterFn","criteria","filterFn","filterFnFactory","defaultFilterFnFactory","$_filterTimer","clearFilterTimer","deep","handler","newCriteria","_this","timeout","setTimeout","created","_this2","$nextTick","Boolean","beforeDestroy","clearTimeout","item","_this3","regExp","pattern","replace","RegExp","lastIndex","computedFieldsObj","currentPage","perPage","paginationMixin","localPaging","noProviderPaging","paginatedItems","sortedItems","math","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","apiUrl","noProviderSorting","providerMixin","providerTriggerContext","ctx","sortBy","sortDesc","localSortBy","localSortDesc","_providerUpdate","mounted","listenOnRoot","refresh","$off","$on","clearSelected","_providerSetLocal","emitOnRoot","context","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","variant","selectableRowAttrs","method","selectionHandler","selected","shiftKey","ctrlKey","metaKey","a","b","_ref$sortBy","_ref$formatter","_ref$locale","locale","_ref$localeOptions","localeOptions","_ref$nullLast","nullLast","aa","bb","localeCompare","MODEL_PROP_NAME_SORT_BY","MODEL_EVENT_NAME_SORT_BY","MODEL_PROP_NAME_SORT_DESC","MODEL_EVENT_NAME_SORT_DESC","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","SORT_DIRECTION_LAST","SORT_DIRECTIONS","labelSortAsc","labelSortClear","labelSortDesc","noFooterSorting","noLocalSorting","noSortReset","numeric","sortingMixin","localSorting","isSortable","f","sortable","sortCompareLocale","sortNullLast","sortCompare","sortCompareOptions","usage","sortByFormatted","getFieldFormatter","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortDirection","sortKey","sortTheadThClasses","sortIconLeft","sortTheadThAttrs","ariaSort","sortTheadThLabel","labelSorting","topRowMixin","renderTopRow","BTable","BInputGroupPrepend","append","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","defaultValue","$parent","getThValues","thValue","type","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","label","isRowHeader","formatted","stickyColumn","cellTag","cellVariant","tdClass","thAttr","tdAttr","stackedHeading","scope","unformatted","toggleDetails","detailsShowing","rowSelected","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","striped","primaryKey","rowShowDetails","hasRowClickHandler","$listeners","$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","hasListener","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTbody","$busy","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","click","keydown","$tbody","$props","caption","captionHtml","captionMixin","captionId","renderCaption","$caption","hasCaptionSlot","_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","stopWheel","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","blank","blankColor","block","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","title","titleTag","BCardTitle","origFields","sample","memo","itemsMixin","appendHtml","prepend","prependHtml","size","BInputGroup","$prepend","hasPrependSlot","$append","hasAppendSlot","bodyClass","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","footerClass","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","EVENT_FILTER","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","headVariant","renderTfoot","renderThead","stableSort","compareFn","runtime","Op","hasOwn","hasOwnProperty","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","skipTempReset","prev","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_vm","_h","_c","_self","_v","$event","preventDefault","fetchStudents","model","filtro","callback","$$v","expression","fetchedStudents","totalItems","onChangePage","content","tableColumns","isSortDirDesc","_u","resolveUserStatusVariant","approved","_s","resolveUserStatusText","$store","appConfig","isRTL","proxy","approveStudent","staticRenderFns","RoleEnum","Admin","Student","components","BPagination","BDropdown","BDropdownItem","BBadge","BRow","BCol","BButton","prepareRequest","page","itemsPerPage","component","formSizeMixin","TABLE_TAG_NAMES","filterEvent","labelFor","ALIGN_SELF_VALUES","computeBreakpoint","breakpoint","className","computeBreakpointClass","breakpointPropMap","generateProps","breakpoints","breakpointCol","breakpointOffset","breakpointOrder","col","offset","order","alignSelf","cols","_classList$push","classList","_keys","c","hasColClasses","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","isStackedAlways","hasHeadClickListener","makeCell","labelHtml","ariaLabel","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","controller","getAll","axiosIns","utilsService","getQueryParams","res","getById","getByLogin","login","update","put","patch","req","post","changePassword","obterUserScore","BInputGroupAppend","textSelectionActive","sel","containsNode","BInputGroupText","formStateMixin","computedState","colgroupMixin","renderColgroup","$colgroup","SELECTOR","autofocus","formControlMixin","handleAutofocus","linkProps","href","to","pill","active","link","noop"],"mappings":"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","file":"js/chunk-42cd9f29.1aa00656.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});","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});","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\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});","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.pt = {}));\n}(this, (function (exports) { 'use strict';\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Portuguese = {\n weekdays: {\n shorthand: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Segunda-feira\",\n \"Terça-feira\",\n \"Quarta-feira\",\n \"Quinta-feira\",\n \"Sexta-feira\",\n \"Sábado\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Fev\",\n \"Mar\",\n \"Abr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Set\",\n \"Out\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ],\n },\n rangeSeparator: \" até \",\n time_24hr: true,\n };\n fp.l10ns.pt = Portuguese;\n var pt = fp.l10ns;\n\n exports.Portuguese = Portuguese;\n exports.default = pt;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","export function showSpinner() {\r\n document.getElementById('loading-bg').style.display = 'block'\r\n}\r\n\r\nexport function hideSpinner() {\r\n document.getElementById('loading-bg').style.display = 'none'\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 } 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, 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});","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});","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, 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});","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});","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});","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(',');","import { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot'; // --- Props ---\n\nexport var props = {\n footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n // Any Bootstrap theme variant (or custom)\n // Falls back to `headRowVariant`\n footRowVariant: makeProp(PROP_TYPE_STRING),\n // 'dark', 'light', or `null` (or custom)\n footVariant: makeProp(PROP_TYPE_STRING),\n tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tfootMixin = Vue.extend({\n props: props,\n methods: {\n renderTFootCustom: function renderTFootCustom() {\n var h = this.$createElement;\n\n if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n return h(BTfoot, {\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n },\n key: 'bv-tfoot-custom'\n }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n }\n\n return h();\n },\n renderTfoot: function renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n }\n }\n});","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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('div', [_c('b-row', [_c('b-col', [_c('b-card', {\n staticClass: \"header-marcar_consulta bg-gradient-primary\"\n }, [_c('b-row', {\n attrs: {\n \"align-v\": \"center\"\n }\n }, [_c('b-col', {\n attrs: {\n \"lg\": \"3\"\n }\n }, [_c('h1', [_c('feather-icon', {\n staticClass: \"mr-50\",\n attrs: {\n \"icon\": \"BookOpenIcon\",\n \"size\": \"30\"\n }\n }), _vm._v(\" Alunos \")], 1)]), _c('b-col', {\n attrs: {\n \"lg\": \"6\"\n }\n }, [_c('b-form', {\n on: {\n \"submit\": function submit($event) {\n $event.preventDefault();\n return _vm.fetchStudents.apply(null, arguments);\n }\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 \"icon\": \"SearchIcon\"\n }\n })], 1), _c('b-form-input', {\n attrs: {\n \"placeholder\": \"Buscar Aluno\"\n },\n model: {\n value: _vm.filtro.name,\n callback: function callback($$v) {\n _vm.$set(_vm.filtro, \"name\", $$v);\n },\n expression: \"filtro.name\"\n }\n })], 1)], 1)], 1)], 1)], 1)], 1)], 1), _c('div', {\n staticClass: \"d-flex\"\n }, [_c('b-pagination', {\n staticClass: \"ml-auto\",\n attrs: {\n \"total-rows\": _vm.fetchedStudents.totalItems,\n \"per-page\": _vm.perPage\n },\n on: {\n \"input\": _vm.onChangePage\n },\n model: {\n value: _vm.currentPage,\n callback: function callback($$v) {\n _vm.currentPage = $$v;\n },\n expression: \"currentPage\"\n }\n })], 1), _c('b-card', {\n attrs: {\n \"no-body\": \"\"\n }\n }, [_c('b-table', {\n ref: \"refUserListTable\",\n staticClass: \"position-relative\",\n attrs: {\n \"items\": _vm.fetchedStudents.content,\n \"responsive\": \"\",\n \"fields\": _vm.tableColumns,\n \"primary-key\": \"id\",\n \"sort-by\": _vm.sortBy,\n \"show-empty\": \"\",\n \"empty-text\": \"No matching records found\",\n \"sort-desc\": _vm.isSortDirDesc\n },\n on: {\n \"update:sortBy\": function updateSortBy($event) {\n _vm.sortBy = $event;\n },\n \"update:sort-by\": function updateSortBy($event) {\n _vm.sortBy = $event;\n },\n \"update:sortDesc\": function updateSortDesc($event) {\n _vm.isSortDirDesc = $event;\n },\n \"update:sort-desc\": function updateSortDesc($event) {\n _vm.isSortDirDesc = $event;\n }\n },\n scopedSlots: _vm._u([{\n key: \"cell(approved)\",\n fn: function fn(data) {\n return [_c('b-badge', {\n staticClass: \"text-capitalize\",\n attrs: {\n \"pill\": \"\",\n \"variant\": \"light-\".concat(_vm.resolveUserStatusVariant(data.item.approved))\n }\n }, [_vm._v(\" \" + _vm._s(_vm.resolveUserStatusText(data.item.approved)) + \" \")])];\n }\n }, {\n key: \"cell(actions)\",\n fn: function fn(data) {\n return [_c('b-dropdown', {\n attrs: {\n \"variant\": \"link\",\n \"no-caret\": \"\",\n \"right\": _vm.$store.state.appConfig.isRTL\n },\n scopedSlots: _vm._u([{\n key: \"button-content\",\n fn: function fn() {\n return [_c('feather-icon', {\n staticClass: \"align-middle text-body\",\n attrs: {\n \"icon\": \"MoreVerticalIcon\",\n \"size\": \"16\"\n }\n })];\n },\n proxy: true\n }], null, true)\n }, [_c('b-dropdown-item', {\n on: {\n \"click\": function click($event) {\n return _vm.approveStudent(data.item.id, !data.item.approved);\n }\n }\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": !data.item.approved ? 'CheckIcon' : 'XCircleIcon'\n }\n }), _c('span', {\n staticClass: \"align-middle ml-50\"\n }, [_vm._v(\" \" + _vm._s(!data.item.approved ? 'Aprovar' : 'Desaprovar') + \" Aluno\")])], 1)], 1)];\n }\n }])\n })], 1), _c('div', {\n staticClass: \"d-flex\"\n }, [_c('b-pagination', {\n staticClass: \"ml-auto\",\n attrs: {\n \"total-rows\": _vm.fetchedStudents.totalItems,\n \"per-page\": _vm.fetchedStudents.perPage\n },\n model: {\n value: _vm.fetchedStudents.currentPage,\n callback: function callback($$v) {\n _vm.$set(_vm.fetchedStudents, \"currentPage\", $$v);\n },\n expression: \"fetchedStudents.currentPage\"\n }\n })], 1)], 1);\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const RoleEnum = {\r\n Admin: 0,\r\n Student: 2,\r\n}\r\n","\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!./Alunos.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!./Alunos.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Alunos.vue?vue&type=template&id=4e1cc95a&\"\nimport script from \"./Alunos.vue?vue&type=script&lang=js&\"\nexport * from \"./Alunos.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Alunos.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","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from '../../vue';\nimport { NAME_COL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_COL_CLASS } from '../../constants/regex';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { memoize } from '../../utils/memoize';\nimport { assign, create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase } from '../../utils/string'; // --- Constants ---\n\nvar ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch']; // --- Helper methods ---\n// Compute a breakpoint class name\n\nvar computeBreakpoint = function computeBreakpoint(type, breakpoint, value) {\n var className = type;\n\n if (isUndefinedOrNull(value) || value === false) {\n return undefined;\n }\n\n if (breakpoint) {\n className += \"-\".concat(breakpoint);\n } // Handling the boolean style prop when accepting `[Boolean, String, Number]`\n // means Vue will not convert `` to `sm: true` for us\n // Since the default is `false`, '' indicates the prop's presence\n\n\n if (type === 'col' && (value === '' || value === true)) {\n // .col-md\n return lowerCase(className);\n } // .order-md-6\n\n\n className += \"-\".concat(value);\n return lowerCase(className);\n}; // Memoized function for better performance on generating class names\n\n\nvar computeBreakpointClass = memoize(computeBreakpoint); // Cached copy of the breakpoint prop names\n\nvar breakpointPropMap = create(null); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n var breakpoints = getBreakpointsUpCached().filter(identity); // i.e. 'col-sm', 'col-md-6', 'col-lg-auto', ...\n\n var breakpointCol = breakpoints.reduce(function (props, breakpoint) {\n props[breakpoint] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'offset-md-1', 'offset-lg-12', ...\n\n var breakpointOffset = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'offset')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'order-md-1', 'order-lg-12', ...\n\n var breakpointOrder = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'order')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // For loop doesn't need to check `.hasOwnProperty()`\n // when using an object created from `null`\n\n breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n }); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, breakpointCol), breakpointOffset), breakpointOrder), {}, {\n // Flex alignment\n alignSelf: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(ALIGN_SELF_VALUES, value);\n }),\n // Generic flexbox 'col' (xs)\n col: makeProp(PROP_TYPE_BOOLEAN, false),\n // i.e. 'col-1', 'col-2', 'col-auto', ...\n cols: makeProp(PROP_TYPE_NUMBER_STRING),\n offset: makeProp(PROP_TYPE_NUMBER_STRING),\n order: makeProp(PROP_TYPE_NUMBER_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_COL);\n}; // --- Main component ---\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BCol = {\n name: NAME_COL,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var cols = props.cols,\n offset = props.offset,\n order = props.order,\n alignSelf = props.alignSelf;\n var classList = []; // Loop through `col`, `offset`, `order` breakpoint props\n\n for (var type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n var _keys = breakpointPropMap[type];\n\n for (var i = 0; i < _keys.length; i++) {\n // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])\n var c = computeBreakpointClass(type, _keys[i].replace(type, ''), props[_keys[i]]); // If a class is returned, push it onto the array.\n\n if (c) {\n classList.push(c);\n }\n }\n }\n\n var hasColClasses = classList.some(function (className) {\n return RX_COL_CLASS.test(className);\n });\n classList.push((_classList$push = {\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: props.col || !hasColClasses && !cols\n }, _defineProperty(_classList$push, \"col-\".concat(cols), cols), _defineProperty(_classList$push, \"offset-\".concat(offset), offset), _defineProperty(_classList$push, \"order-\".concat(order), order), _defineProperty(_classList$push, \"align-self-\".concat(alignSelf), alignSelf), _classList$push));\n return h(props.tag, mergeData(data, {\n class: classList\n }), children);\n }\n};","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});","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});","import axiosIns from '@/libs/axios'\r\nimport utilsService from './utilsService'\r\n\r\nconst controller = 'user'\r\n\r\nexport default {\r\n async getAll(filter) {\r\n return axiosIns\r\n .get(`${controller}?${utilsService.getQueryParams(filter)}`)\r\n .then(res => res.data)\r\n },\r\n async getById(id) {\r\n return axiosIns.get(`${controller}/${id}`).then(res => res.data)\r\n },\r\n async getByLogin(login) {\r\n return axiosIns.get(`${controller}?login=${login}`).then(res => res.data.content[0])\r\n },\r\n async update(obj) {\r\n return axiosIns.put(controller, obj).then(res => res.data)\r\n },\r\n async approveStudent(id, approved) {\r\n return axiosIns.patch(`${controller}/${id}`, { approved }).then(res => res.data)\r\n },\r\n async create(req) {\r\n return axiosIns.post(controller, req).then(res => res.data)\r\n },\r\n async changePassword(req) {\r\n return axiosIns.put(`${controller}/change-password`, req).then(res => res.data)\r\n },\r\n async obterUserScore(req) {\r\n return axiosIns.put(`${controller}/change-password`, req).then(res => res.data)\r\n },\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});","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true for is-valid\n * - false for is-invalid\n * - null for no contextual state\n */\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { isBoolean } from '../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Tri-state prop: true, false, null (or undefined)\n state: makeProp(PROP_TYPE_BOOLEAN, null)\n}, 'formState'); // --- Mixin ---\n// @vue/component\n\nexport var formStateMixin = Vue.extend({\n props: props,\n computed: {\n computedState: function computedState() {\n // If not a boolean, ensure that value is null\n return isBoolean(this.state) ? this.state : null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n return state === true ? 'is-valid' : state === false ? 'is-invalid' : null;\n },\n computedAriaInvalid: function computedAriaInvalid() {\n var ariaInvalid = this.ariaInvalid;\n\n if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n return 'true';\n }\n\n return this.computedState === false ? 'true' : ariaInvalid;\n }\n }\n});","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var colgroupMixin = Vue.extend({\n methods: {\n renderColgroup: function renderColgroup() {\n var fields = this.computedFields;\n var h = this.$createElement;\n var $colgroup = h();\n\n if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n columns: fields.length,\n fields: fields\n })]);\n }\n\n return $colgroup;\n }\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});","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!./Alunos.vue?vue&type=style&index=0&lang=scss&\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","export var noop = function noop() {};"],"sourceRoot":""}