{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/spinner/spinner.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/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/col.js","webpack:///./src/views/card/card-action/CardAction.vue?3ddd","webpack:///src/views/card/card-action/CardAction.vue","webpack:///./src/views/card/card-action/CardAction.vue?3497","webpack:///./src/views/card/card-action/CardAction.vue","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:///./src/@core/components/b-card-actions/BCardActions.vue?66ff","webpack:///./src/@core/components/b-card-actions/BCardActions.vue?f8d3","webpack:///./src/@core/components/b-card-actions/BCardActionsContainer.vue?4c84","webpack:///src/@core/components/b-card-actions/BCardActionsContainer.vue","webpack:///./src/@core/components/b-card-actions/BCardActionsContainer.vue?784d","webpack:///./src/@core/components/b-card-actions/BCardActionsContainer.vue","webpack:///src/@core/components/b-card-actions/BCardActions.vue","webpack:///./src/@core/components/b-card-actions/BCardActions.vue?791a","webpack:///./src/@core/components/b-card-actions/BCardActions.vue"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","props","label","role","small","tag","type","variant","BSpinner","extend","name","functional","render","h","_ref","_class","data","slots","scopedSlots","$slots","$scopedSlots","$label","staticClass","attrs","class","concat","bottomRowMixin","methods","renderBottomRow","fields","this","computedFields","stacked","tbodyTrClass","tbodyTrAttr","$createElement","hasNormalizedSlot","normalizeSlot","columns","length","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computed","computedBusy","watch","newValue","oldValue","$emit","stopIfBusy","event","renderBusy","colspan","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","domProps","html","stringifyObjectValues","sort","map","k","filter","v","join","row","ignoreFields","includeFields","fieldsObj","arguments","undefined","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","i","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","fn","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","mixins","providerTriggerContext","ctx","sortBy","sortDesc","localSortBy","localSortDesc","_providerUpdate","mounted","listenOnRoot","id","refresh","$off","$on","clearSelected","_providerSetLocal","emitOnRoot","context","then","e","message","_props","_watch","SELECT_MODES","noSelectOnClick","selectMode","selectable","selectedVariant","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","some","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","equal","setSelectionHandlers","_selectedRows","forEach","idx","push","beforeMount","selectRow","index","isRowSelected","selectedLastClicked","unselectRow","selectAllRows","selectableRowClasses","dark","selectableRowAttrs","on","method","selectionHandler","selected","shiftKey","ctrlKey","metaKey","a","b","_ref$sortBy","_ref$formatter","_ref$locale","locale","_ref$localeOptions","localeOptions","_ref$nullLast","nullLast","aa","get","bb","localeCompare","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread","target","source","getOwnPropertyDescriptors","defineProperties","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","stableSort","compareFn","bind","POSITION_COVER","top","left","bottom","right","bgColor","blur","fixed","noCenter","noFade","noWrap","opacity","number","overlayTag","rounded","show","spinnerSmall","spinnerType","spinnerVariant","wrapTag","zIndex","BOverlay","computedRounded","computedVariant","slotScope","defaultOverlayFn","$overlay","$background","style","backgroundColor","backdropFilter","$content","transform","click","appear","ALIGN_SELF_VALUES","computeBreakpoint","breakpoint","className","computeBreakpointClass","breakpointPropMap","generateProps","breakpoints","breakpointCol","breakpointOffset","breakpointOrder","col","offset","order","alignSelf","cols","BCol","_classList$push","children","classList","_keys","c","hasColClasses","_vm","_h","_c","_self","ref","$event","refreshStop","_u","_v","staticRenderFns","components","BCardActions","BRow","BCardText","ACTION","ICON","DETAILS","component","textTag","cardClosed","_e","showLoading","_g","_b","content_visible","parentID","cardAttrs","$listeners","_s","$attrs","title","availableActions","triggerCollapse","triggerRefresh","model","callback","$$v","expression","_t","includes","rotate","isCollapsed","requried","default","BCardActionsContainer","BCard","BCardTitle","BCardSubTitle","BCardBody","BCollapse","inheritAttrs","collapsed","noActions","actionCollapse","actionRefresh","actionClose","cardStyles","showHeader","showActions","removeCard","triggerClose"],"mappings":"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","file":"js/chunk-3e640801.630d6fe4.js","sourcesContent":["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_SPINNER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_LABEL } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n label: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING, 'status'),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n type: makeProp(PROP_TYPE_STRING, 'border'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_SPINNER); // --- Main component ---\n// @vue/component\n\nexport var BSpinner = /*#__PURE__*/Vue.extend({\n name: NAME_SPINNER,\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 $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $label = normalizeSlot(SLOT_NAME_LABEL, {}, $scopedSlots, $slots) || props.label;\n\n if ($label) {\n $label = h('span', {\n staticClass: 'sr-only'\n }, $label);\n }\n\n return h(props.tag, mergeData(data, {\n attrs: {\n role: $label ? props.role || 'status' : null,\n 'aria-hidden': $label ? null : 'true'\n },\n class: (_class = {}, _defineProperty(_class, \"spinner-\".concat(props.type), props.type), _defineProperty(_class, \"spinner-\".concat(props.type, \"-sm\"), props.small), _defineProperty(_class, \"text-\".concat(props.variant), props.variant), _class)\n }), [$label || h()]);\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});","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_OVERLAY } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_OVERLAY } from '../../constants/slots';\nimport { toFloat } from '../../utils/number';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BSpinner } from '../spinner/spinner';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar POSITION_COVER = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n}; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Alternative to variant, allowing a specific\n // CSS color to be applied to the overlay\n bgColor: makeProp(PROP_TYPE_STRING),\n blur: makeProp(PROP_TYPE_STRING, '2px'),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n noCenter: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // If `true, does not render the default slot\n // and switches to absolute positioning\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false),\n opacity: makeProp(PROP_TYPE_NUMBER_STRING, 0.85, function (value) {\n var number = toFloat(value, 0);\n return number >= 0 && number <= 1;\n }),\n overlayTag: makeProp(PROP_TYPE_STRING, 'div'),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n show: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerSmall: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerType: makeProp(PROP_TYPE_STRING, 'border'),\n spinnerVariant: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'light'),\n wrapTag: makeProp(PROP_TYPE_STRING, 'div'),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING, 10)\n}, NAME_OVERLAY); // --- Main component ---\n// @vue/component\n\nexport var BOverlay = /*#__PURE__*/Vue.extend({\n name: NAME_OVERLAY,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n computedRounded: function computedRounded() {\n var rounded = this.rounded;\n return rounded === true || rounded === '' ? 'rounded' : !rounded ? '' : \"rounded-\".concat(rounded);\n },\n computedVariant: function computedVariant() {\n var variant = this.variant;\n return variant && !this.bgColor ? \"bg-\".concat(variant) : '';\n },\n slotScope: function slotScope() {\n return {\n spinnerType: this.spinnerType || null,\n spinnerVariant: this.spinnerVariant || null,\n spinnerSmall: this.spinnerSmall\n };\n }\n },\n methods: {\n defaultOverlayFn: function defaultOverlayFn(_ref) {\n var spinnerType = _ref.spinnerType,\n spinnerVariant = _ref.spinnerVariant,\n spinnerSmall = _ref.spinnerSmall;\n return this.$createElement(BSpinner, {\n props: {\n type: spinnerType,\n variant: spinnerVariant,\n small: spinnerSmall\n }\n });\n }\n },\n render: function render(h) {\n var _this = this;\n\n var show = this.show,\n fixed = this.fixed,\n noFade = this.noFade,\n noWrap = this.noWrap,\n slotScope = this.slotScope;\n var $overlay = h();\n\n if (show) {\n var $background = h('div', {\n staticClass: 'position-absolute',\n class: [this.computedVariant, this.computedRounded],\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n opacity: this.opacity,\n backgroundColor: this.bgColor || null,\n backdropFilter: this.blur ? \"blur(\".concat(this.blur, \")\") : null\n })\n });\n var $content = h('div', {\n staticClass: 'position-absolute',\n style: this.noCenter ?\n /* istanbul ignore next */\n _objectSpread({}, POSITION_COVER) : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)'\n }\n }, [this.normalizeSlot(SLOT_NAME_OVERLAY, slotScope) || this.defaultOverlayFn(slotScope)]);\n $overlay = h(this.overlayTag, {\n staticClass: 'b-overlay',\n class: {\n 'position-absolute': !noWrap || noWrap && !fixed,\n 'position-fixed': noWrap && fixed\n },\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n zIndex: this.zIndex || 10\n }),\n on: {\n click: function click(event) {\n return _this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n key: 'overlay'\n }, [$background, $content]);\n } // Wrap in a fade transition\n\n\n $overlay = h(BVTransition, {\n props: {\n noFade: noFade,\n appear: true\n },\n on: {\n 'after-enter': function afterEnter() {\n return _this.$emit(EVENT_NAME_SHOWN);\n },\n 'after-leave': function afterLeave() {\n return _this.$emit(EVENT_NAME_HIDDEN);\n }\n }\n }, [$overlay]);\n\n if (noWrap) {\n return $overlay;\n }\n\n return h(this.wrapTag, {\n staticClass: 'b-overlay-wrap position-relative',\n attrs: {\n 'aria-busy': show ? 'true' : null\n }\n }, noWrap ? [$overlay] : [this.normalizeSlot(), $overlay]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from '../../vue';\nimport { NAME_COL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_COL_CLASS } from '../../constants/regex';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { memoize } from '../../utils/memoize';\nimport { assign, create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase } from '../../utils/string'; // --- Constants ---\n\nvar ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch']; // --- Helper methods ---\n// Compute a breakpoint class name\n\nvar computeBreakpoint = function computeBreakpoint(type, breakpoint, value) {\n var className = type;\n\n if (isUndefinedOrNull(value) || value === false) {\n return undefined;\n }\n\n if (breakpoint) {\n className += \"-\".concat(breakpoint);\n } // Handling the boolean style prop when accepting `[Boolean, String, Number]`\n // means Vue will not convert `` to `sm: true` for us\n // Since the default is `false`, '' indicates the prop's presence\n\n\n if (type === 'col' && (value === '' || value === true)) {\n // .col-md\n return lowerCase(className);\n } // .order-md-6\n\n\n className += \"-\".concat(value);\n return lowerCase(className);\n}; // Memoized function for better performance on generating class names\n\n\nvar computeBreakpointClass = memoize(computeBreakpoint); // Cached copy of the breakpoint prop names\n\nvar breakpointPropMap = create(null); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n var breakpoints = getBreakpointsUpCached().filter(identity); // i.e. 'col-sm', 'col-md-6', 'col-lg-auto', ...\n\n var breakpointCol = breakpoints.reduce(function (props, breakpoint) {\n props[breakpoint] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'offset-md-1', 'offset-lg-12', ...\n\n var breakpointOffset = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'offset')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'order-md-1', 'order-lg-12', ...\n\n var breakpointOrder = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'order')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // For loop doesn't need to check `.hasOwnProperty()`\n // when using an object created from `null`\n\n breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n }); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, breakpointCol), breakpointOffset), breakpointOrder), {}, {\n // Flex alignment\n alignSelf: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(ALIGN_SELF_VALUES, value);\n }),\n // Generic flexbox 'col' (xs)\n col: makeProp(PROP_TYPE_BOOLEAN, false),\n // i.e. 'col-1', 'col-2', 'col-auto', ...\n cols: makeProp(PROP_TYPE_NUMBER_STRING),\n offset: makeProp(PROP_TYPE_NUMBER_STRING),\n order: makeProp(PROP_TYPE_NUMBER_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_COL);\n}; // --- Main component ---\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BCol = {\n name: NAME_COL,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var cols = props.cols,\n offset = props.offset,\n order = props.order,\n alignSelf = props.alignSelf;\n var classList = []; // Loop through `col`, `offset`, `order` breakpoint props\n\n for (var type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n var _keys = breakpointPropMap[type];\n\n for (var i = 0; i < _keys.length; i++) {\n // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])\n var c = computeBreakpointClass(type, _keys[i].replace(type, ''), props[_keys[i]]); // If a class is returned, push it onto the array.\n\n if (c) {\n classList.push(c);\n }\n }\n }\n\n var hasColClasses = classList.some(function (className) {\n return RX_COL_CLASS.test(className);\n });\n classList.push((_classList$push = {\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: props.col || !hasColClasses && !cols\n }, _defineProperty(_classList$push, \"col-\".concat(cols), cols), _defineProperty(_classList$push, \"offset-\".concat(offset), offset), _defineProperty(_classList$push, \"order-\".concat(order), order), _defineProperty(_classList$push, \"align-self-\".concat(alignSelf), alignSelf), _classList$push));\n return h(props.tag, mergeData(data, {\n class: classList\n }), children);\n }\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{attrs:{\"id\":\"card-actions\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-card-actions',{ref:\"cardAction\",attrs:{\"title\":\"Card Actions\"},on:{\"refresh\":function($event){return _vm.refreshStop('cardAction')}}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-table',{attrs:{\"responsive\":\"\",\"items\":_vm.items,\"bordered\":\"\"},scopedSlots:_vm._u([{key:\"cell(ICON)\",fn:function(data){return [_c('div',{staticClass:\"text-center\"},[_c('feather-icon',{attrs:{\"icon\":data.value}})],1)]}}])})],1)],1)],1)],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-card-actions',{attrs:{\"title\":\"Collapsible\",\"action-collapse\":\"\"}},[_c('b-card-text',[_c('span',[_vm._v(\"You can create a collapsible content by adding \")]),_c('code',[_vm._v(\"actionCollapse\")]),_c('span',[_vm._v(\" prop in \")]),_c('code',[_vm._v(\"\")])]),_c('b-card-text',[_c('span',[_vm._v(\"Click on \")]),_c('feather-icon',{attrs:{\"icon\":\"ChevronDownIcon\"}}),_c('span',[_vm._v(\" to see card collapse in action.\")])],1)],1)],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-card-actions',{ref:\"refreshCard\",attrs:{\"title\":\"Refresh Content\",\"action-refresh\":\"\"},on:{\"refresh\":function($event){return _vm.refreshStop('refreshCard')}}},[_c('b-card-text',[_vm._v(\" To create a card with refresh action use \"),_c('code',[_vm._v(\"actionRefresh\")]),_vm._v(\" prop along with \"),_c('code',[_vm._v(\"\")])]),_c('b-card-text',[_c('span',[_vm._v(\"Click on \")]),_c('feather-icon',{attrs:{\"icon\":\"RotateCwIcon\"}}),_c('span',[_vm._v(\" icon to see refresh card content in action.\")])],1)],1)],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-card-actions',{attrs:{\"title\":\"Remove Card\",\"action-close\":\"\"}},[_c('b-card-text',[_vm._v(\" You can create a closeable card by using \"),_c('code',[_vm._v(\"actionClose\")]),_vm._v(\" prop along with \"),_c('code',[_vm._v(\"\")])]),_c('b-card-text',[_c('span',[_vm._v(\"Click on \")]),_c('feather-icon',{attrs:{\"icon\":\"XIcon\"}}),_c('span',[_vm._v(\" icon to see closeable card in action.\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n You can create a collapsible content by adding \r\n actionCollapse\r\n prop in \r\n <b-card-actions>\r\n \r\n \r\n Click on \r\n \r\n to see card collapse in action.\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n To create a card with refresh action use actionRefresh prop along with\r\n <b-card-actions>\r\n \r\n \r\n Click on \r\n \r\n icon to see refresh card content in action.\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n You can create a closeable card by using actionClose prop along with\r\n <b-card-actions>\r\n \r\n \r\n Click on \r\n \r\n icon to see closeable card in action.\r\n \r\n \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!./CardAction.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!./CardAction.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CardAction.vue?vue&type=template&id=580782ff&\"\nimport script from \"./CardAction.vue?vue&type=script&lang=js&\"\nexport * from \"./CardAction.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n}, NAME_CARD_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BCardText = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_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.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\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!./BCardActions.vue?vue&type=style&index=0&id=7d2530a4&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.cardClosed)?_c('b-overlay',{attrs:{\"variant\":\"white\",\"show\":_vm.showLoading,\"spinner-variant\":\"primary\",\"blur\":\"0\",\"opacity\":\".75\",\"rounded\":\"sm\"}},[_c('b-card',_vm._g(_vm._b({ref:\"bCard\",style:(_vm.cardStyles),attrs:{\"no-body\":\"\",\"aria-expanded\":!_vm.content_visible ? 'true' : 'false',\"aria-controls\":_vm.parentID}},'b-card',_vm.cardAttrs,false),_vm.$listeners),[(_vm.showHeader)?_c('div',{staticClass:\"card-header\"},[_c('div',[_c('b-card-title',[_vm._v(_vm._s(_vm.$attrs.title))]),(_vm.$attrs['sub-title'])?_c('b-card-sub-title',[_vm._v(\" \"+_vm._s(_vm.$attrs['sub-title'])+\" \")]):_vm._e()],1),(_vm.showActions)?_c('b-card-actions-container',{attrs:{\"available-actions\":_vm.availableActions,\"is-collapsed\":!_vm.content_visible},on:{\"collapse\":_vm.triggerCollapse,\"refresh\":_vm.triggerRefresh}}):_vm._e()],1):_vm._e(),_c('b-collapse',{staticClass:\"card-content\",attrs:{\"id\":_vm.parentID,\"visible\":_vm.content_visible},model:{value:(_vm.content_visible),callback:function ($$v) {_vm.content_visible=$$v},expression:\"content_visible\"}},[(_vm.$attrs['no-body'] !== undefined)?_vm._t(\"default\"):_c('b-card-body',[_vm._t(\"default\")],2)],2)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"heading-elements\"},[_c('ul',{staticClass:\"list-inline mb-0\"},[(_vm.availableActions.includes('collapse'))?_c('li',[_c('a',{class:{ rotate: _vm.isCollapsed },attrs:{\"data-action\":\"collapse\"},on:{\"click\":function($event){return _vm.$emit('collapse')}}},[_c('feather-icon',{attrs:{\"icon\":\"ChevronDownIcon\",\"size\":\"16\"}})],1)]):_vm._e(),(_vm.availableActions.includes('refresh'))?_c('li',[_c('a',{attrs:{\"data-action\":\"reload\"},on:{\"click\":function($event){return _vm.$emit('refresh')}}},[_c('feather-icon',{attrs:{\"icon\":\"RotateCwIcon\",\"size\":\"14\"}})],1)]):_vm._e(),(_vm.availableActions.includes('close'))?_c('li',[_c('a',{attrs:{\"data-action\":\"close\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('feather-icon',{attrs:{\"icon\":\"XIcon\",\"size\":\"14\"}})],1)]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./BCardActionsContainer.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!./BCardActionsContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BCardActionsContainer.vue?vue&type=template&id=7de64d6c&\"\nimport script from \"./BCardActionsContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./BCardActionsContainer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BCardActions.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!./BCardActions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BCardActions.vue?vue&type=template&id=7d2530a4&scoped=true&\"\nimport script from \"./BCardActions.vue?vue&type=script&lang=js&\"\nexport * from \"./BCardActions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BCardActions.vue?vue&type=style&index=0&id=7d2530a4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d2530a4\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}