{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./src/@core/comp-functions/forms/form-validation.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:///./src/views/admin-panel/profile/ProfileUser.vue","webpack:///./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue","webpack:///./src/views/admin-panel/profile/useProfile.ts","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue?e51c","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue?23d3","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue?8b5b","webpack:///./src/views/admin-panel/profile/ProfileTabChangePassword.vue","webpack:///./src/views/admin-panel/profile/ProfileTabChangePassword.vue?2bae","webpack:///./src/views/admin-panel/profile/ProfileTabChangePassword.vue?52d9","webpack:///./src/views/admin-panel/profile/ProfileTabChangePassword.vue?7cdc","webpack:///./src/views/admin-panel/profile/ProfileUser.vue?bab2","webpack:///./src/views/admin-panel/profile/ProfileUser.vue?6c07","webpack:///./src/views/admin-panel/profile/ProfileUser.vue?6bb6","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/esm/utils/locale.js","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue?63f6","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/form-radio.js","webpack:///./node_modules/bootstrap-vue/esm/constants/date.js","webpack:///./node_modules/bootstrap-vue/esm/utils/date.js","webpack:///./node_modules/bootstrap-vue/esm/components/calendar/calendar.js","webpack:///./node_modules/bootstrap-vue/esm/directives/hover/hover.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-btn-label-control/bv-form-btn-label-control.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-datepicker/form-datepicker.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"names":["props","id","inline","novalidate","validated","BForm","extend","name","functional","render","h","_ref","data","children","class","attrs","noBody","rightAlign","tag","verticalAlign","BMedia","slots","scopedSlots","$children","slotScope","$slots","$scopedSlots","push","$aside","right","staticClass","formValidation","resetFormData","clearFormData","arguments","length","undefined","refFormObserver","ref","resetObserver","_refFormObserver$valu","value","reset","getValidationState","dirty","fieldRequired","required","changed","_ref$valid","valid","result","resetForm","nextTick","clearForm","_defineProperty","obj","key","Object","defineProperty","enumerable","configurable","writable","computeJustifyContent","concat","align","cardHeader","fill","justified","pills","small","tabs","vertical","BNav","_class","_watch","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread","target","i","source","forEach","getOwnPropertyDescriptors","defineProperties","_makeModelMixin","type","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","parseCountDown","show","parseShow","dismissLabel","dismissible","fade","variant","BAlert","mixins","countDown","localShow","this","watch","newValue","_this","clearCountDownInterval","$emit","$_countDownTimeout","setTimeout","$nextTick","created","$_filterTimer","beforeDestroy","methods","dismiss","clearTimeout","$alert","$dismissButton","on","click","normalizeSlot","role","noFade","_objectSpread2","MODEL_PROP_NAME_ACTIVE","MODEL_EVENT_NAME_ACTIVE","BTab","inject","bvTabs","default","localActive","disabled","computed","_isTab","tabClasses","active","card","activeTabClass","controlledBy","buttonId","safeId","computedNoFade","computedLazy","lazy","oldValue","activate","deactivate","firstTab","mounted","registerTab","updated","updateButton","hasNormalizedSlot","unregisterTab","activateTab","deactivateTab","$content","directives","mode","_vm","_c","_self","_setupProxy","model","tabIndex","callback","$$v","expression","_u","fn","_v","proxy","staticRenderFns","handleSubmit","$event","preventDefault","onSubmit","validationContext","isSaving","userLocal","email","$set","_s","errors","login","profileOptions","profile","showEconomicGroup","$store","state","appConfig","isRTL","economicGroupOptions","reduceOptionValue","economicGroup","_e","groupTitle","groupOptions","dealershipsOptions","setDealerships","dealerships","receiveDailyReport","status","insertedBy","updatedBy","rawName","modifiers","validator","warn","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","every","v","item","getAsEntry","webkitGetAsEntry","dataTransferItemList","traverseDirectories","Promise","all","array","kind","map","entry","isDirectory","createReader","isFile","resolve","file","$path","identity","getAllFileEntriesInDirectory","directoryReader","path","entryPromises","readDirectoryEntries","readEntries","entries","then","accept","browseText","capture","directory","dropPlaceholder","fileNameFormatter","multiple","noDrop","noDropPlaceholder","noTraverse","placeholder","BFormFile","inheritAttrs","files","dragging","dropAllowed","hasFocus","computedAccept","trim","split","extOrType","startMatch","endMatch","test","slice","rx","RegExp","computedCapture","computedAttrs","form","bvAttrs","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","allowed","$createElement","filesTraversed","names","$_form","$form","$el","isFileValid","some","a","isFilesArrayValid","join","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","items","add","$refs","input","_unused","$input","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","plain","onChange","_this2","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","_this3","onDrop","_this4","custom","size","stateClass","focus","style","zIndex","change","focusin","focusout","$label","for","pointerEvents","dragenter","dragover","dragleave","drop","useProfile","ctx","fetchListGroups","_asyncToGenerator","_regeneratorRuntime","mark","_callee","option","wrap","_context","prev","next","useGroup","requestListGroup","draw","response","group","Id","label","Nome","catch","$toast","component","ToastificationContent","title","icon","sent","abrupt","stop","fetchListProfile","_ref2","_callee2","_context2","useAdministrator","requestGetProfiles","nome","fetchListDealerships","_ref3","_callee3","amountPerRequest","requests","total","businessData","pages","page","_context3","useDealerships","requestList","paginate","Data","recordsTotal","Math","ceil","reduce","prevValue","currentValue","NomeFantasia","fetchGetLoggedUser","_ref4","_callee4","_context4","useUser","requestGetLoggedUser","fetchUpdateUser","_ref5","_callee5","_context5","dispatch","perfilId","receberBoletimDiario","_x","Profile","_Vue","_classCallCheck","params","GRUPO_EMPRESA_TITLE","user","saving","useGroupEconomic","verifyEconomicGroupPermission","_inherits","_createClass","get","requestGet","groupEconomic","dateInc","Control_DatInc","timeInc","dateUp","Control_DatAlter","timeUp","Login","Email","cpfCnpj","CpfCnpj","ConcessionariasIds","ReceberBoletimDiario","Ativo","PerfilNome","PerfilId","Control_UsuInc","Control_UsuAlter","finally","options","Vue","__decorate","Component","components","AvButton","BImg","BFormGroup","BFormInput","BRow","BCol","BCard","BCardText","BMediaAside","BMediaBody","BLink","vSelect","BFormRadio","BFormDatepicker","ValidationProvider","ValidationObserver","BFormInvalidFeedback","Ripple","passwordFieldTypeOld","passwordValueOld","passwordToggleIconOld","togglePasswordOld","passwordFieldTypeNew","newPasswordValue","passwordToggleIconNew","togglePasswordNew","passwordFieldTypeRetype","retypePassword","passwordToggleIconRetype","togglePasswordRetype","ProfileSettingPassword","requestChangePassword","senha","novaSenha","Status","BButton","BInputGroup","BInputGroupAppend","ProfilePage","BTabs","ProfileTabInfo","ProfileTabChangePassword","stableSort","compareFn","index","sort","b","bind","e","RTL_LANGS","locale","toLowerCase","isLocaleRTL","parts","replace","locale1","locale2","bvGroup","from","computedLocalChecked","CALENDAR_GREGORY","CALENDAR_LONG","CALENDAR_NARROW","CALENDAR_SHORT","DATE_FORMAT_2_DIGIT","DATE_FORMAT_NUMERIC","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","prototype","toString","call","constructor","Array","len","arr2","Symbol","iterator","_arr","_n","_d","_i","done","err","isArray","_construct","Parent","args","Class","_isNativeReflectConstruct","Reflect","construct","Constructor","Function","instance","_setPrototypeOf","sham","Proxy","Date","p","setPrototypeOf","__proto__","createDate","_len","_key","date","_date$split$map","_date$split$map2","year","month","day","getFullYear","getMonth","getDate","formatYMD","locales","calendar","fmt","Intl","DateTimeFormat","resolvedOptions","createDateFormatter","dtf","format","datesEqual","date1","date2","firstDateOfMonth","setDate","lastDateOfMonth","setMonth","addYears","numberOfYears","setFullYear","oneMonthAgo","oneMonthAhead","oneYearAgo","oneYearAhead","oneDecadeAgo","oneDecadeAhead","min","max","ariaControls","block","dateDisabledFn","dateFormatOptions","weekday","dateInfoFn","direction","hidden","hideHeader","initialDate","labelCalendar","labelCurrentMonth","labelHelp","labelNav","labelNextDecade","labelNextMonth","labelNextYear","labelNoDateSelected","labelPrevDecade","labelPrevMonth","labelPrevYear","labelSelected","labelToday","navButtonVariant","noHighlightToday","noKeyNav","readonly","roleDescription","selectedVariant","showDecadeNav","startWeekday","todayVariant","valueAsDate","weekdayHeaderFormat","width","BCalendar","selected","selectedYMD","activeYMD","getToday","gridHasFocus","isLive","valueId","widgetId","navId","gridId","gridCaptionId","gridHelpId","activeId","selectedDate","activeDate","computedMin","computedMax","computedWeekStarts","math","computedLocale","computedDateDisabledFn","computedDateInfoFn","calendarLocale","calendarYear","calendarMonth","calendarFirstDay","calendarDaysInMonth","computedVariant","computedTodayVariant","computedNavButtonVariant","dir","context","selectedFormatted","formatDateString","activeFormatted","dateDisabled","rtl","dateOutOfRange","rangeFn","ymd","hour","minute","second","formatYearMonth","formatWeekdayName","formatWeekdayNameShort","formatDay","nf","NumberFormat","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","notation","prevDecadeDisabled","prevYearDisabled","prevMonthDisabled","thisMonthDisabled","nextMonthDisabled","nextYearDisabled","nextDecadeDisabled","matrix","firstDay","daysInMonth","startIndex","getDay","weekOffset","currentDay","week","j","dayYMD","dayDisabled","dateInfo","isThisMonth","isDisabled","info","calendarHeadings","d","text","old","newYMD","oldYMD","constrainDate","setLive","activated","deactivated","grid","blur","emitSelected","_this5","setGridFocusFlag","onKeydownWrapper","altKey","ctrlKey","keyCode","checkDate","constrainedToday","onKeydownGrid","onClickDay","clickedDate","gotoPrevDecade","gotoPrevYear","gotoPrevMonth","gotoCurrentMonth","gotoNextMonth","gotoNextYear","gotoNextDecade","onHeaderClick","_this6","hideDecadeNav","todayYMD","highlightToday","$header","tabindex","labelSelectedDate","navScope","navProps","shiftV","navPrevProps","flipH","navNextProps","$prevDecadeIcon","$prevYearIcon","$prevMonthIcon","$thisMonthIcon","$nextMonthIcon","$nextYearIcon","$nextDecadeIcon","makeNavBtn","content","handler","btnDisabled","shortcut","$nav","$gridCaption","$gridWeekDays","idx","$gridBody","$cells","dIndex","isSelected","isActive","isToday","idCell","$btn","$gridHelp","$grid","keydown","$slot","$widget","lang","PROP","MOUSEENTER","MOUSELEAVE","createListener","listener","el","_ref$value","hasListener","handlerChanged","VBHover","componentUpdated","unbind","dropdown","buttonOnly","buttonVariant","formattedValue","menuClass","BVFormBtnLabelControl","isHovered","idButton","idLabel","idMenu","idWrapper","computedDir","toggle","setFocus","handleHover","hovered","visible","invalid","btnScope","opened","$button","mousedown","onMousedown","scale","$hidden","$menu","onKeydown","sizeFormClass","directionClass","boundaryClass","calendarProps","formBtnLabelControlProps","calendarWidth","closeButton","closeButtonVariant","dark","labelCloseButton","labelResetButton","labelTodayButton","noCloseOnSelect","resetButton","resetButtonVariant","resetValue","todayButton","todayButtonVariant","localYMD","isVisible","localLocale","calendarYM","computedLang","computedResetValue","control","updatePopper","setAndClose","hide","onSelected","onInput","onContext","onTodayButton","onResetButton","onCloseButton","onShow","onShown","onHidden","defaultButtonFn","$props","$footer","_label","_label2","$calendar","shown","textTag","notDisabled","tab","BVTabButton","controls","posInSet","setSize","link","handleEvt","shiftKey","indexOf","_this$tab","titleItemClass","titleLinkClass","titleLinkAttributes","$link","activeNavItemClass","contentClass","end","navClass","navWrapperClass","noNavStyle","provide","currentTab","registeredTabs","localNavClass","classes","$tab","previousTab","nextTab","updateTabs","$_observer","setObserver","$t","disconnect","childList","subtree","attributes","attributeFilter","getTabs","$tabs","order","selector","reverse","find","getButtonForTab","buttons","$forceUpdate","tabEvent","cancelable","vueTarget","componentId","defaultPrevented","focusButton","emitTabClick","clickTab","currentIndex","lastTab","$activeTab","$fallbackTab","$buttons","_on","refInFor","$empty","col","row"],"mappings":"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","file":"js/chunk-6e6af6fc.1faf7bd0.js","sourcesContent":["import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots,\n children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\n }), $children);\n }\n});","import { nextTick, ref } from \"vue\";\n\n// ===========================================================\n// ! This is coupled with \"veeValidate\" plugin\n// ===========================================================\n\nexport default function formValidation(\n resetFormData,\n clearFormData = () => {}\n) {\n // ------------------------------------------------\n // refFormObserver\n // ! This is for veeValidate Observer\n // * Used for veeValidate form observer\n // ------------------------------------------------\n const refFormObserver = ref(null);\n\n // ------------------------------------------------\n // resetObserver\n // ! This function is coupled with veeValidate\n // * It resets form observer\n // ------------------------------------------------\n const resetObserver = () => {\n refFormObserver.value?.reset();\n };\n\n // ------------------------------------------------\n // getValidationState\n // ! This function is coupled with veeValidate\n // * It returns true/false based on validation\n // ------------------------------------------------\n // eslint-disable-next-line object-curly-newline\n const getValidationState = ({\n dirty,\n validated,\n required: fieldRequired,\n changed,\n valid = null,\n }) => {\n const result = dirty || validated ? valid : null;\n return !fieldRequired && !changed ? null : result;\n };\n\n // ------------------------------------------------\n // resetForm\n // ! This function is coupled with veeValidate\n // * This uses resetFormData arg to reset form data\n // ------------------------------------------------\n const resetForm = () => {\n resetFormData();\n nextTick(() => {\n resetObserver();\n });\n };\n\n // ------------------------------------------------\n // clearForm\n // ! This function is coupled with veeValidate\n // * This uses clearFormData arg to reset form data\n // ------------------------------------------------\n const clearForm = () => {\n clearFormData();\n nextTick(() => {\n resetObserver();\n });\n };\n\n return {\n refFormObserver,\n resetObserver,\n getValidationState,\n resetForm,\n clearForm,\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_NAV } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n align = props.align,\n cardHeader = props.cardHeader;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': !vertical && cardHeader && tabs,\n 'card-header-pills': !vertical && cardHeader && pills && !tabs,\n 'flex-column': vertical,\n 'nav-fill': !vertical && props.fill,\n 'nav-justified': !vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(align), !vertical && align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","var _objectSpread2, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ACTIVE = 'active';\nvar MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_ACTIVE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"buttonId\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"disabled\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"lazy\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"noBody\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"tag\", makeProp(PROP_TYPE_STRING, 'div')), _defineProperty(_objectSpread2, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"titleItemClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _defineProperty(_objectSpread2, \"titleLinkAttributes\", makeProp(PROP_TYPE_OBJECT)), _defineProperty(_objectSpread2, \"titleLinkClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _objectSpread2))), NAME_TAB); // --- Main component ---\n// @vue/component\n\nexport var BTab = /*#__PURE__*/Vue.extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default: function _default() {\n return {};\n }\n }\n },\n props: props,\n data: function data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n // For parent sniffing of child\n _isTab: function _isTab() {\n return true;\n },\n tabClasses: function tabClasses() {\n var active = this.localActive,\n disabled = this.disabled;\n return [{\n active: active,\n disabled: disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_ACTIVE, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n }), _defineProperty(_watch, \"disabled\", function disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n var firstTab = this.bvTabs.firstTab;\n\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n }), _defineProperty(_watch, \"localActive\", function localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }), _watch),\n mounted: function mounted() {\n // Inform `` of our presence\n this.registerTab();\n },\n updated: function updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n var updateButton = this.bvTabs.updateButton;\n\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Inform `` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `` of our presence\n var registerTab = this.bvTabs.registerTab;\n\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab: function unregisterTab() {\n // Inform `` of our departure\n var unregisterTab = this.bvTabs.unregisterTab;\n\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate: function activate() {\n // Not inside a `` component or tab is disabled\n var activateTab = this.bvTabs.activateTab;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate: function deactivate() {\n // Not inside a `` component or not active to begin with\n var deactivateTab = this.bvTabs.deactivateTab;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render: function render(h) {\n var localActive = this.localActive;\n var $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n }, // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\n }\n});","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-card',[_c('b-tabs',{model:{value:(_vm.tabIndex),callback:function ($$v) {_vm.tabIndex=$$v},expression:\"tabIndex\"}},[_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('feather-icon',{staticClass:\"mr-0 mr-sm-50\",attrs:{\"icon\":\"UserIcon\",\"size\":\"16\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Informações Pessoais e Acesso\")])]},proxy:true}])},[_c('profile-tab-info')],1),_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('feather-icon',{staticClass:\"mr-0 mr-sm-50\",attrs:{\"icon\":\"Edit3Icon\",\"size\":\"16\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Alteração de Senha\")])]},proxy:true}])},[_c('profile-tab-change-password')],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_FILE } from '../../constants/components';\nimport { HAS_PROMISE_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DROP_PLACEHOLDER, SLOT_NAME_FILE_NAME, SLOT_NAME_PLACEHOLDER } from '../../constants/slots';\nimport { RX_EXTENSION, RX_STAR } from '../../constants/regex';\nimport { File } from '../../constants/safe-types';\nimport { from as arrayFrom, flatten, flattenDeep } from '../../utils/array';\nimport { cloneDeep } from '../../utils/clone-deep';\nimport { closest } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isFile, isFunction, isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { escapeRegExp } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formSizeProps } from '../../mixins/form-size'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: [PROP_TYPE_ARRAY, File],\n defaultValue: null,\n validator: function validator(value) {\n /* istanbul ignore next */\n if (value === '') {\n warn(VALUE_EMPTY_DEPRECATED_MSG, NAME_FORM_FILE);\n return true;\n }\n\n return isUndefinedOrNull(value) || isValidValue(value);\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar VALUE_EMPTY_DEPRECATED_MSG = 'Setting \"value\"/\"v-model\" to an empty string for reset is deprecated. Set to \"null\" instead.'; // --- Helper methods ---\n\nvar isValidValue = function isValidValue(value) {\n return isFile(value) || isArray(value) && value.every(function (v) {\n return isValidValue(v);\n });\n}; // Helper method to \"safely\" get the entry from a data-transfer item\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getDataTransferItemEntry = function getDataTransferItemEntry(item) {\n return isFunction(item.getAsEntry) ? item.getAsEntry() : isFunction(item.webkitGetAsEntry) ? item.webkitGetAsEntry() : null;\n}; // Drop handler function to get all files\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntries = function getAllFileEntries(dataTransferItemList) {\n var traverseDirectories = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return Promise.all(arrayFrom(dataTransferItemList).filter(function (item) {\n return item.kind === 'file';\n }).map(function (item) {\n var entry = getDataTransferItemEntry(item);\n\n if (entry) {\n if (entry.isDirectory && traverseDirectories) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = '';\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity));\n}; // Get all the file entries (recursive) in a directory\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntriesInDirectory = function getAllFileEntriesInDirectory(directoryReader) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return new Promise(function (resolve) {\n var entryPromises = [];\n\n var readDirectoryEntries = function readDirectoryEntries() {\n directoryReader.readEntries(function (entries) {\n if (entries.length === 0) {\n resolve(Promise.all(entryPromises).then(function (entries) {\n return flatten(entries);\n }));\n } else {\n entryPromises.push(Promise.all(entries.map(function (entry) {\n if (entry) {\n if (entry.isDirectory) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(path).concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = \"\".concat(path).concat(file.name);\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity)));\n readDirectoryEntries();\n }\n });\n };\n\n readDirectoryEntries();\n });\n}; // --- Props ---\n\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formCustomProps), formStateProps), formSizeProps), {}, {\n accept: makeProp(PROP_TYPE_STRING, ''),\n browseText: makeProp(PROP_TYPE_STRING, 'Browse'),\n // Instruct input to capture from camera\n capture: makeProp(PROP_TYPE_BOOLEAN, false),\n directory: makeProp(PROP_TYPE_BOOLEAN, false),\n dropPlaceholder: makeProp(PROP_TYPE_STRING, 'Drop files here'),\n fileNameFormatter: makeProp(PROP_TYPE_FUNCTION),\n multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n noDrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noDropPlaceholder: makeProp(PROP_TYPE_STRING, 'Not allowed'),\n // TODO:\n // Should we deprecate this and only support flat file structures?\n // Nested file structures are only supported when files are dropped\n // A Chromium \"bug\" prevents `webkitEntries` from being populated\n // on the file input's `change` event and is marked as \"WontFix\"\n // Mozilla implemented the behavior the same way as Chromium\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=138987\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1326031\n noTraverse: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING, 'No file chosen')\n})), NAME_FORM_FILE); // --- Main component ---\n// @vue/component\n\nexport var BFormFile = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_FILE,\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n files: [],\n dragging: false,\n // IE 11 doesn't respect setting `event.dataTransfer.dropEffect`,\n // so we handle it ourselves as well\n // https://stackoverflow.com/a/46915971/2744776\n dropAllowed: !this.noDrop,\n hasFocus: false\n };\n },\n computed: {\n // Convert `accept` to an array of `[{ RegExpr, isMime }, ...]`\n computedAccept: function computedAccept() {\n var accept = this.accept;\n accept = (accept || '').trim().split(/[,\\s]+/).filter(identity); // Allow any file type/extension\n\n if (accept.length === 0) {\n return null;\n }\n\n return accept.map(function (extOrType) {\n var prop = 'name';\n var startMatch = '^';\n var endMatch = '$';\n\n if (RX_EXTENSION.test(extOrType)) {\n // File extension /\\.ext$/\n startMatch = '';\n } else {\n // MIME type /^mime\\/.+$/ or /^mime\\/type$/\n prop = 'type';\n\n if (RX_STAR.test(extOrType)) {\n endMatch = '.+$'; // Remove trailing `*`\n\n extOrType = extOrType.slice(0, -1);\n }\n } // Escape all RegExp special chars\n\n\n extOrType = escapeRegExp(extOrType);\n var rx = new RegExp(\"\".concat(startMatch).concat(extOrType).concat(endMatch));\n return {\n rx: rx,\n prop: prop\n };\n });\n },\n computedCapture: function computedCapture() {\n var capture = this.capture;\n return capture === true || capture === '' ? true : capture || null;\n },\n computedAttrs: function computedAttrs() {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n form = this.form,\n computedCapture = this.computedCapture,\n accept = this.accept,\n multiple = this.multiple,\n directory = this.directory;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n type: 'file',\n id: this.safeId(),\n name: name,\n disabled: disabled,\n required: required,\n form: form || null,\n capture: computedCapture,\n accept: accept || null,\n multiple: multiple,\n directory: directory,\n webkitdirectory: directory,\n 'aria-required': required ? 'true' : null\n });\n },\n computedFileNameFormatter: function computedFileNameFormatter() {\n var fileNameFormatter = this.fileNameFormatter;\n return hasPropFunction(fileNameFormatter) ? fileNameFormatter : this.defaultFileNameFormatter;\n },\n clonedFiles: function clonedFiles() {\n return cloneDeep(this.files);\n },\n flattenedFiles: function flattenedFiles() {\n return flattenDeep(this.files);\n },\n fileNames: function fileNames() {\n return this.flattenedFiles.map(function (file) {\n return file.name;\n });\n },\n labelContent: function labelContent() {\n // Draging active\n\n /* istanbul ignore next: used by drag/drop which can't be tested easily */\n if (this.dragging && !this.noDrop) {\n return (// TODO: Add additional scope with file count, and other not-allowed reasons\n this.normalizeSlot(SLOT_NAME_DROP_PLACEHOLDER, {\n allowed: this.dropAllowed\n }) || (this.dropAllowed ? this.dropPlaceholder : this.$createElement('span', {\n staticClass: 'text-danger'\n }, this.noDropPlaceholder))\n );\n } // No file chosen\n\n\n if (this.files.length === 0) {\n return this.normalizeSlot(SLOT_NAME_PLACEHOLDER) || this.placeholder;\n }\n\n var flattenedFiles = this.flattenedFiles,\n clonedFiles = this.clonedFiles,\n fileNames = this.fileNames,\n computedFileNameFormatter = this.computedFileNameFormatter; // There is a slot for formatting the files/names\n\n if (this.hasNormalizedSlot(SLOT_NAME_FILE_NAME)) {\n return this.normalizeSlot(SLOT_NAME_FILE_NAME, {\n files: flattenedFiles,\n filesTraversed: clonedFiles,\n names: fileNames\n });\n }\n\n return computedFileNameFormatter(flattenedFiles, clonedFiles, fileNames);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!newValue || isArray(newValue) && newValue.length === 0) {\n this.reset();\n }\n }), _defineProperty(_watch, \"files\", function files(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n var multiple = this.multiple,\n noTraverse = this.noTraverse;\n var files = !multiple || noTraverse ? flattenDeep(newValue) : newValue;\n this.$emit(MODEL_EVENT_NAME, multiple ? files : files[0] || null);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_form = null;\n },\n mounted: function mounted() {\n // Listen for form reset events, to reset the file input\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOn($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n this.$_form = $form;\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $form = this.$_form;\n\n if ($form) {\n eventOff($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n methods: {\n isFileValid: function isFileValid(file) {\n if (!file) {\n return false;\n }\n\n var accept = this.computedAccept;\n return accept ? accept.some(function (a) {\n return a.rx.test(file[a.prop]);\n }) : true;\n },\n isFilesArrayValid: function isFilesArrayValid(files) {\n var _this = this;\n\n return isArray(files) ? files.every(function (file) {\n return _this.isFileValid(file);\n }) : this.isFileValid(files);\n },\n defaultFileNameFormatter: function defaultFileNameFormatter(flattenedFiles, clonedFiles, fileNames) {\n return fileNames.join(', ');\n },\n setFiles: function setFiles(files) {\n // Reset the dragging flags\n this.dropAllowed = !this.noDrop;\n this.dragging = false; // Set the selected files\n\n this.files = this.multiple ? this.directory ? files : flattenDeep(files) : flattenDeep(files).slice(0, 1);\n },\n\n /* istanbul ignore next: used by Drag/Drop */\n setInputFiles: function setInputFiles(files) {\n // Try an set the file input files array so that `required`\n // constraint works for dropped files (will fail in IE11 though)\n // To be used only when dropping files\n try {\n // Firefox < 62 workaround exploiting https://bugzilla.mozilla.org/show_bug.cgi?id=1422655\n var dataTransfer = new ClipboardEvent('').clipboardData || new DataTransfer(); // Add flattened files to temp `dataTransfer` object to get a true `FileList` array\n\n flattenDeep(cloneDeep(files)).forEach(function (file) {\n // Make sure to remove the custom `$path` attribute\n delete file.$path;\n dataTransfer.items.add(file);\n });\n this.$refs.input.files = dataTransfer.files;\n } catch (_unused) {}\n },\n reset: function reset() {\n // IE 11 doesn't support setting `$input.value` to `''` or `null`\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well\n // Wrapped in try in case IE 11 or mobile Safari crap out\n try {\n var $input = this.$refs.input;\n $input.value = '';\n $input.type = '';\n $input.type = 'file';\n } catch (_unused2) {}\n\n this.files = [];\n },\n handleFiles: function handleFiles(files) {\n var isDrop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isDrop) {\n // When dropped, make sure to filter files with the internal `accept` logic\n var filteredFiles = files.filter(this.isFilesArrayValid); // Only update files when we have any after filtering\n\n if (filteredFiles.length > 0) {\n this.setFiles(filteredFiles); // Try an set the file input's files array so that `required`\n // constraint works for dropped files (will fail in IE 11 though)\n\n this.setInputFiles(filteredFiles);\n }\n } else {\n // We always update the files from the `change` event\n this.setFiles(files);\n }\n },\n focusHandler: function focusHandler(event) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a `[type=file]:focus ~ sibling` selector issue,\n // so we add a `focus` class to get around these bugs\n if (this.plain || event.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n onChange: function onChange(event) {\n var _this2 = this;\n\n var type = event.type,\n target = event.target,\n _event$dataTransfer = event.dataTransfer,\n dataTransfer = _event$dataTransfer === void 0 ? {} : _event$dataTransfer;\n var isDrop = type === 'drop'; // Always emit original event\n\n this.$emit(EVENT_NAME_CHANGE, event);\n var items = arrayFrom(dataTransfer.items || []);\n\n if (HAS_PROMISE_SUPPORT && items.length > 0 && !isNull(getDataTransferItemEntry(items[0]))) {\n // Drop handling for modern browsers\n // Supports nested directory structures in `directory` mode\n\n /* istanbul ignore next: not supported in JSDOM */\n getAllFileEntries(items, this.directory).then(function (files) {\n return _this2.handleFiles(files, isDrop);\n });\n } else {\n // Standard file input handling (native file input change event),\n // or fallback drop mode (IE 11 / Opera) which don't support `directory` mode\n var files = arrayFrom(target.files || dataTransfer.files || []).map(function (file) {\n // Add custom `$path` property to each file (to be consistent with drop mode)\n file.$path = file.webkitRelativePath || '';\n return file;\n });\n this.handleFiles(files, isDrop);\n }\n },\n onDragenter: function onDragenter(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer2 = event.dataTransfer,\n dataTransfer = _event$dataTransfer2 === void 0 ? {} : _event$dataTransfer2; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n // Note this event fires repeatedly while the mouse is over the dropzone at\n // intervals in the milliseconds, so avoid doing much processing in here\n onDragover: function onDragover(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer3 = event.dataTransfer,\n dataTransfer = _event$dataTransfer3 === void 0 ? {} : _event$dataTransfer3; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n onDragleave: function onDragleave(event) {\n var _this3 = this;\n\n stopEvent(event);\n this.$nextTick(function () {\n _this3.dragging = false; // Reset `dropAllowed` to default\n\n _this3.dropAllowed = !_this3.noDrop;\n });\n },\n // Triggered by a file drop onto drop target\n onDrop: function onDrop(event) {\n var _this4 = this;\n\n stopEvent(event);\n this.dragging = false; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n this.$nextTick(function () {\n // Reset `dropAllowed` to default\n _this4.dropAllowed = !_this4.noDrop;\n });\n return;\n }\n\n this.onChange(event);\n }\n },\n render: function render(h) {\n var custom = this.custom,\n plain = this.plain,\n size = this.size,\n dragging = this.dragging,\n stateClass = this.stateClass,\n bvAttrs = this.bvAttrs; // Form Input\n\n var $input = h('input', {\n class: [{\n 'form-control-file': plain,\n 'custom-file-input': custom,\n focus: custom && this.hasFocus\n }, stateClass],\n // With IE 11, the input gets in the \"way\" of the drop events,\n // so we move it out of the way by putting it behind the label\n // Bootstrap v4 has it in front\n style: custom ? {\n zIndex: -5\n } : {},\n attrs: this.computedAttrs,\n on: {\n change: this.onChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.reset\n },\n ref: 'input'\n });\n\n if (plain) {\n return $input;\n } // Overlay label\n\n\n var $label = h('label', {\n staticClass: 'custom-file-label',\n class: {\n dragging: dragging\n },\n attrs: {\n for: this.safeId(),\n // This goes away in Bootstrap v5\n 'data-browse': this.browseText || null\n }\n }, [h('span', {\n staticClass: 'd-block form-file-text',\n // `pointer-events: none` is used to make sure\n // the drag events fire only on the label\n style: {\n pointerEvents: 'none'\n }\n }, [this.labelContent])]); // Return rendered custom file input\n\n return h('div', {\n staticClass: 'custom-file b-form-file',\n class: [_defineProperty({}, \"b-custom-control-\".concat(size), size), stateClass, bvAttrs.class],\n style: bvAttrs.style,\n attrs: {\n id: this.safeId('_BV_file_outer_')\n },\n on: {\n dragenter: this.onDragenter,\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n }, [$input, $label]);\n }\n});","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-card',[_c('div',{staticClass:\"mb-2\"},[_c('h3',[_vm._v(\"Informações Pessoais\")])]),_c('validation-observer',{ref:\"refFormObserver\",scopedSlots:_vm._u([{key:\"default\",fn:function({ handleSubmit }){return [_c('b-form',{staticClass:\"mt-2\",on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onSubmit)}}},[_c('b-row',[_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\"}},[_c('validation-provider',{attrs:{\"name\":\"E-mail\",\"rules\":\"required|email\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"E-mail\",\"label-for\":\"email\"}},[_c('b-form-input',{attrs:{\"id\":\"email\",\"placeholder\":\"E-mail\",\"state\":_vm.formValidation.getValidationState(validationContext),\"disabled\":_vm.isSaving},model:{value:(_vm.userLocal.email),callback:function ($$v) {_vm.$set(_vm.userLocal, \"email\", $$v)},expression:\"userLocal.email\"}}),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)})],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\"}},[_c('validation-provider',{attrs:{\"name\":\"Nome\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"Nome\",\"label-for\":\"nome\"}},[_c('b-form-input',{attrs:{\"id\":\"nome\",\"placeholder\":\"Name\",\"state\":_vm.formValidation.getValidationState(validationContext),\"disabled\":_vm.isSaving},model:{value:(_vm.userLocal.name),callback:function ($$v) {_vm.$set(_vm.userLocal, \"name\", $$v)},expression:\"userLocal.name\"}})],1)]}}],null,true)})],1),_c('b-col',{staticClass:\"mb-2\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"mt-2\"},[_c('h3',[_vm._v(\"Informações De Acesso\")])])]),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Login\",\"label-for\":\"login\"}},[_c('b-form-input',{attrs:{\"id\":\"login\",\"placeholder\":\"Login\",\"disabled\":\"\"},model:{value:(_vm.userLocal.login),callback:function ($$v) {_vm.$set(_vm.userLocal, \"login\", $$v)},expression:\"userLocal.login\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Perfil\",\"label-for\":\"profile\"}},[_c('v-select',{attrs:{\"clearable\":false,\"input-id\":\"profile\",\"options\":_vm.profileOptions,\"disabled\":\"\"},model:{value:(_vm.userLocal.profile),callback:function ($$v) {_vm.$set(_vm.userLocal, \"profile\", $$v)},expression:\"userLocal.profile\"}})],1)],1),(_vm.showEconomicGroup)?_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Grupo Econômico\",\"label-for\":\"economicGroup\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"clearable\":false,\"input-id\":\"economicGroup\",\"options\":_vm.economicGroupOptions,\"reduce\":_vm.reduceOptionValue,\"disabled\":\"\"},model:{value:(_vm.userLocal.economicGroup),callback:function ($$v) {_vm.$set(_vm.userLocal, \"economicGroup\", $$v)},expression:\"userLocal.economicGroup\"}})],1)],1):_vm._e(),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":_vm.groupTitle,\"label-for\":\"group\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"clearable\":false,\"input-id\":\"group\",\"options\":_vm.groupOptions,\"reduce\":_vm.reduceOptionValue,\"disabled\":\"\"},model:{value:(_vm.userLocal.economicGroup),callback:function ($$v) {_vm.$set(_vm.userLocal, \"economicGroup\", $$v)},expression:\"userLocal.economicGroup\"}})],1)],1),_c('b-col',{staticClass:\"mb-2\",attrs:{\"xs\":\"12\",\"cols\":\"12\",\"md\":\"12\",\"lg\":\"12\"}},[_c('b-form-group',{attrs:{\"label\":\"Concessionárias\",\"label-for\":\"position\"}},[[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"multiple\":\"\",\"options\":_vm.dealershipsOptions,\"reduce\":_vm.setDealerships,\"disabled\":\"\"},model:{value:(_vm.userLocal.dealerships),callback:function ($$v) {_vm.$set(_vm.userLocal, \"dealerships\", $$v)},expression:\"userLocal.dealerships\"}})]],2)],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Receber Boletim Diário\"}},[_c('div',{staticClass:\"demo-inline-spacing mb-2\"},[_c('b-form-radio',{attrs:{\"id\":\"receive-daily-report-field-yes\",\"name\":\"receber-boletim-diario\",\"value\":true},model:{value:(_vm.userLocal.receiveDailyReport),callback:function ($$v) {_vm.$set(_vm.userLocal, \"receiveDailyReport\", $$v)},expression:\"userLocal.receiveDailyReport\"}},[_vm._v(\" Sim \")]),_c('b-form-radio',{attrs:{\"id\":\"receive-daily-report-field-no\",\"name\":\"receber-boletim-diario\",\"value\":false},model:{value:(_vm.userLocal.receiveDailyReport),callback:function ($$v) {_vm.$set(_vm.userLocal, \"receiveDailyReport\", $$v)},expression:\"userLocal.receiveDailyReport\"}},[_vm._v(\" Não \")])],1)])],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Status\"}},[_c('div',{staticClass:\"demo-inline-spacing mb-2\"},[_c('b-form-radio',{attrs:{\"name\":\"status\",\"value\":true,\"disabled\":\"\"},model:{value:(_vm.userLocal.status),callback:function ($$v) {_vm.$set(_vm.userLocal, \"status\", $$v)},expression:\"userLocal.status\"}},[_vm._v(\" Ativo \")]),_c('b-form-radio',{attrs:{\"name\":\"status\",\"value\":false,\"disabled\":\"\"},model:{value:(_vm.userLocal.status),callback:function ($$v) {_vm.$set(_vm.userLocal, \"status\", $$v)},expression:\"userLocal.status\"}},[_vm._v(\" Inativo \")])],1)])],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Inserido Por\",\"label-for\":\"inserido-por\"}},[_c('b-form-input',{attrs:{\"id\":\"inserido-por\",\"placeholder\":\"Inserido por\",\"readonly\":\"\"},model:{value:(_vm.userLocal.insertedBy),callback:function ($$v) {_vm.$set(_vm.userLocal, \"insertedBy\", $$v)},expression:\"userLocal.insertedBy\"}})],1)],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Alterado Por\",\"label-for\":\"Alterado-por\"}},[_c('b-form-input',{attrs:{\"id\":\"alterado-por\",\"placeholder\":\"Alterado por\",\"readonly\":\"\"},model:{value:(_vm.userLocal.updatedBy),callback:function ($$v) {_vm.$set(_vm.userLocal, \"updatedBy\", $$v)},expression:\"userLocal.updatedBy\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('av-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"mt-2 mr-1\",attrs:{\"variant\":\"primary\",\"type\":\"submit\",\"loading\":_vm.isSaving}},[_vm._v(\" Salvar \")])],1)],1)],1)]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import ToastificationContent from \"@core/components/toastification/ToastificationContent.vue\";\n\n// Services\nimport {\n useDealerships,\n useAdministrator,\n useGroup,\n useUser,\n} from \"@/services\";\n\n// Interfaces\nimport {\n IDealerships,\n IResponseListDealerships,\n} from \"@core/services/interfaces/business/dealerships/IDealershipsService\";\nimport {\n IUser,\n IResponseUpdateUser,\n} from \"@core/services/interfaces/user/IUserService\";\nimport {\n IResponseListGroup,\n TDataGroup,\n} from \"@core/services/interfaces/business/group/IGroupService\";\nimport { IOption } from \"@core/services/interfaces/IUtil\";\nimport { IResponseGetProfiles } from \"@core/services/interfaces/administrator/IAdministratorService\";\nimport { AxiosResponse } from \"axios\";\n\nexport default function useProfile(ctx: any) {\n /**\n * Preenchendo select com os grupos econômicos\n * @returns Promise\n */\n const fetchListGroups = async (): Promise<\n Array<{ value: number; label: string }>\n > => {\n const option = await useGroup\n .requestListGroup({\n draw: 1,\n length: 10000,\n })\n .then((response: IResponseListGroup) => {\n const data: Array<{ value: number; label: string }> =\n response.data.data.map((group: TDataGroup) => ({\n value: group.Id,\n label: group.Nome,\n }));\n\n return data;\n })\n .catch(() => {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Erro ao buscar a lista de Grupos Empresariais!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n\n return [];\n });\n\n return option;\n };\n\n const fetchListProfile = async (): Promise => {\n const option = useAdministrator\n .requestGetProfiles()\n .then((response: AxiosResponse) => {\n const data: Array<{ value: string; label: string }> =\n response.data.data.map((profile) => ({\n value: profile.id,\n label: profile.nome,\n }));\n\n return data;\n })\n .catch(() => {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Erro ao buscar a lista de Perfis!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n\n return [];\n });\n\n return option;\n };\n\n const fetchListDealerships = async (): Promise<\n Array<{ value: string; label: string }>\n > => {\n const amountPerRequest = 5000;\n let requests = [];\n let total = 0;\n let success = true;\n let businessData: IDealerships[] = [];\n\n await useDealerships\n .requestList({\n paginate: true,\n draw: 1,\n length: amountPerRequest,\n })\n .then((response: IResponseListDealerships) => {\n total = response.data.Data.recordsTotal;\n businessData = response.data.Data.data;\n })\n .catch(() => {\n success = false;\n });\n\n const pages = Math.ceil(total / amountPerRequest);\n for (let page = 2; page <= pages; page++) {\n requests.push(\n useDealerships.requestList({\n paginate: true,\n draw: page,\n length: amountPerRequest,\n })\n );\n }\n\n await Promise.all(requests)\n .then((response: IResponseListDealerships[]) => {\n businessData = response.reduce(\n (\n prevValue: IDealerships[],\n currentValue: IResponseListDealerships\n ) => {\n return prevValue.concat(currentValue.data.Data.data);\n },\n businessData\n );\n })\n .catch(() => {\n success = false;\n });\n\n const option = businessData.map((dealerships: IDealerships) => ({\n value: dealerships.Id,\n label: dealerships.NomeFantasia,\n }));\n\n return option;\n };\n\n const fetchGetLoggedUser = async (): Promise => {\n const option = await useUser\n .requestGetLoggedUser()\n .then((response: any) => {\n return response.data.Data;\n })\n .catch(() => {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Erro ao buscar dados do usuário!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n\n return [];\n });\n\n return option;\n };\n\n /**\n * Dispara a ação de atualizar Usuário\n */\n const fetchUpdateUser = async (profile: any): Promise => {\n await ctx.$store\n .dispatch(\"app-user/fetchUpdateUser\", {\n id: profile.id,\n perfilId: profile.profile.value,\n email: profile.email,\n nome: profile.name,\n receberBoletimDiario: profile.receiveDailyReport,\n })\n .then((response: IResponseUpdateUser) => {\n if (response.status == 200 || response.status == 201) {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Usuário atualizado com sucesso!\",\n icon: \"CheckIcon\",\n variant: \"success\",\n },\n });\n\n ctx.$emit(\"refresh-data\");\n } else {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Ocorreu um erro inesperado!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n }\n })\n .catch(() => {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Erro ao atualizar usuário!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n });\n };\n\n return {\n fetchListProfile,\n fetchListGroups,\n fetchListDealerships,\n fetchGetLoggedUser,\n fetchUpdateUser,\n };\n}\n","\nimport {\n BFormFile,\n BForm,\n BFormGroup,\n BFormInput,\n BFormInvalidFeedback,\n BRow,\n BCol,\n BAlert,\n BCard,\n BCardText,\n BMedia,\n BMediaAside,\n BMediaBody,\n BLink,\n BImg,\n} from \"bootstrap-vue\";\nimport { BFormRadio } from \"bootstrap-vue\";\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { BFormDatepicker } from \"bootstrap-vue\";\nimport Ripple from \"vue-ripple-directive\";\nimport formValidation from \"@core/comp-functions/forms/form-validation\";\nimport vSelect from \"vue-select\";\nimport useProfile from \"./useProfile\";\nimport { IUser } from \"@core/services/interfaces/user/IUserService\";\nimport { ValidationProvider, ValidationObserver } from \"vee-validate\";\nimport { AvButton } from \"@/components\";\n\n// Services\nimport { useGroupEconomic } from \"@/services\";\n\n// Interfaces\nimport { IResponseListGroupEconomic } from \"@core/services/interfaces/business/group-economic/IGroupEconomicService\";\n\n@Component({\n name: \"profileData\",\n components: {\n AvButton,\n BForm,\n BImg,\n BFormFile,\n BFormGroup,\n BFormInput,\n BRow,\n BCol,\n BAlert,\n BCard,\n BCardText,\n BMedia,\n BMediaAside,\n BMediaBody,\n BLink,\n vSelect,\n BFormRadio,\n BFormDatepicker,\n ValidationProvider,\n ValidationObserver,\n BFormInvalidFeedback,\n },\n directives: {\n Ripple,\n },\n})\nexport default class Profile extends Vue {\n groupTitle =\n this.$store.state[\"appConfig\"].params.GRUPO_EMPRESA_TITLE ||\n \"Grupo Empresa\";\n economicGroup: { value: number | null; label: string | null } = {\n value: null,\n label: null,\n };\n economicGroupOptions: Array<{ value: number; label: string }> = [];\n profileOptions: Array<{ value: number; label: string }> = [];\n groupOptions: Array<{ value: number; label: string }> = [];\n dealershipsOptions: Array<{ value: string; label: string }> = [];\n user = {} as IUser;\n saving = false;\n showEconomicGroup: boolean = useGroupEconomic.verifyEconomicGroupPermission();\n userLocal = {} as {\n id: string;\n name: string;\n login: string;\n email: string;\n cpfCnpj: string;\n dealerships: string[];\n economicGroup: any;\n receiveDailyReport: boolean;\n status: boolean;\n profile: { label: string; value: string };\n insertedBy: string;\n updatedBy: string;\n };\n\n useProfile = useProfile(this);\n formValidation = formValidation();\n\n // Computed\n get isSaving(): boolean {\n return this.saving;\n }\n\n // Lifecycle\n created() {\n if (this.showEconomicGroup) {\n useGroupEconomic\n .requestGet()\n .then((response: IResponseListGroupEconomic) => {\n this.economicGroupOptions = response.data.data.map(\n (groupEconomic) => ({\n value: groupEconomic.Id,\n label: groupEconomic.Nome,\n })\n );\n });\n }\n\n this.useProfile\n .fetchListProfile()\n .then((data: Array<{ value: number; label: string }>) => {\n this.profileOptions = data;\n });\n\n this.useProfile\n .fetchListGroups()\n .then((data: Array<{ value: number; label: string }>) => {\n this.groupOptions = data;\n });\n\n this.useProfile\n .fetchListDealerships()\n .then((data: Array<{ value: string; label: string }>) => {\n this.dealershipsOptions = data;\n });\n\n this.useProfile.fetchGetLoggedUser().then((data: IUser) => {\n this.user = data;\n const dateInc: string = data.Control_DatInc.split(\"T\")[0];\n const timeInc: string = data.Control_DatInc.split(\"T\")[1];\n const dateUp: string = data.Control_DatAlter.split(\"T\")[0];\n const timeUp: string = data.Control_DatAlter.split(\"T\")[1];\n\n this.userLocal = {\n id: data.Id,\n name: data.Nome,\n login: data.Login,\n email: data.Email,\n cpfCnpj: data.CpfCnpj,\n dealerships: data.ConcessionariasIds,\n economicGroup: null,\n receiveDailyReport: data.ReceberBoletimDiario,\n status: data.Ativo,\n profile: { label: data.PerfilNome, value: data.PerfilId },\n insertedBy: `${data.Control_UsuInc} - ${dateInc.split(\"-\")[2]}/${\n dateInc.split(\"-\")[1]\n }/${dateInc.split(\"-\")[0]} ${timeInc.split(\".\")[0]}`,\n updatedBy: `${data.Control_UsuAlter} - ${dateUp.split(\"-\")[2]}/${\n dateUp.split(\"-\")[1]\n }/${dateUp.split(\"-\")[0]} ${timeUp.split(\".\")[0]}`,\n };\n });\n }\n\n // Methods\n onSubmit(): void {\n this.saving = true;\n this.useProfile.fetchUpdateUser(this.userLocal).finally(() => {\n this.saving = false;\n });\n }\n\n reduceOptionValue = (option: { label: string; value: any }): any => {\n return option.value;\n };\n\n setDealerships(options: { label: string; value: number }) {\n return options.value;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTabInfo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTabInfo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProfileTabInfo.vue?vue&type=template&id=16f3f6b0\"\nimport script from \"./ProfileTabInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./ProfileTabInfo.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ProfileTabInfo.vue?vue&type=style&index=0&id=16f3f6b0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-card',[_c('validation-observer',{ref:\"refFormObserver\",scopedSlots:_vm._u([{key:\"default\",fn:function({ handleSubmit }){return [_c('b-form',{staticClass:\"p-2\",on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onSubmit)}}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('validation-provider',{attrs:{\"name\":\"Senha Atual\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"Senha Atual\",\"label-for\":\"current-password\"}},[_c('b-input-group',{staticClass:\"input-group-merge\",class:{\n 'is-invalid':\n _vm.formValidation.getValidationState(validationContext) ==\n false,\n }},[_c('b-form-input',{attrs:{\"id\":\"current-password\",\"placeholder\":\"Senha Atual\",\"state\":_vm.formValidation.getValidationState(validationContext),\"type\":_vm.passwordFieldTypeOld,\"required\":\"\",\"trim\":\"\",\"disabled\":_vm.isSaving},model:{value:(_vm.passwordValueOld),callback:function ($$v) {_vm.passwordValueOld=$$v},expression:\"passwordValueOld\"}}),_c('b-input-group-append',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":_vm.passwordToggleIconOld},on:{\"click\":function($event){return _vm.togglePasswordOld()}}})],1)],1),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)})],1)],1),_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('validation-provider',{attrs:{\"name\":\"Nova Senha\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label-for\":\"password\",\"label\":\"Nova Senha\"}},[_c('b-input-group',{staticClass:\"input-group-merge\",class:{\n 'is-invalid':\n _vm.formValidation.getValidationState(validationContext) ==\n false,\n }},[_c('b-form-input',{attrs:{\"id\":\"password\",\"type\":_vm.passwordFieldTypeNew,\"placeholder\":\"Nova Senha\",\"state\":_vm.formValidation.getValidationState(validationContext),\"trim\":\"\",\"disabled\":_vm.isSaving},model:{value:(_vm.newPasswordValue),callback:function ($$v) {_vm.newPasswordValue=$$v},expression:\"newPasswordValue\"}}),_c('b-input-group-append',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":_vm.passwordToggleIconNew},on:{\"click\":function($event){return _vm.togglePasswordNew()}}})],1)],1),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('validation-provider',{attrs:{\"name\":\"'Nova Senha'\",\"rules\":\"confirmed:Nova Senha\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label-for\":\"confirmedPassword\",\"label\":\"Reescrever Nova Senha\"}},[_c('b-input-group',{staticClass:\"input-group-merge\",class:{\n 'is-invalid':\n _vm.formValidation.getValidationState(validationContext) ==\n false,\n }},[_c('b-form-input',{attrs:{\"id\":\"confirmedPassword\",\"type\":_vm.passwordFieldTypeRetype,\"placeholder\":\"Reescrever Nova Senha\",\"state\":_vm.formValidation.getValidationState(validationContext),\"disabled\":_vm.isSaving},model:{value:(_vm.retypePassword),callback:function ($$v) {_vm.retypePassword=$$v},expression:\"retypePassword\"}}),_c('b-input-group-append',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":_vm.passwordToggleIconRetype},on:{\"click\":function($event){return _vm.togglePasswordRetype()}}})],1)],1),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)})],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('av-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"mt-1 mr-1\",attrs:{\"variant\":\"primary\",\"type\":\"submit\",\"loading\":_vm.isSaving}},[_vm._v(\" Salvar \")])],1)],1)],1)]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n BButton,\n BForm,\n BFormGroup,\n BFormInput,\n BRow,\n BCol,\n BCard,\n BInputGroup,\n BInputGroupAppend,\n BFormInvalidFeedback,\n} from \"bootstrap-vue\";\nimport { AvButton } from \"@/components\";\nimport Ripple from \"vue-ripple-directive\";\nimport formValidation from \"@core/comp-functions/forms/form-validation\";\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { ValidationProvider, ValidationObserver } from \"vee-validate\";\nimport { IResponseChangePassword } from \"@core/services/interfaces/administrator/IAdministratorService\";\nimport ToastificationContent from \"@core/components/toastification/ToastificationContent.vue\";\n\n// Services\nimport { useAdministrator } from \"@/services\";\n\n@Component({\n name: \"ProfileSettingPassword\",\n components: {\n BButton,\n BForm,\n BFormGroup,\n BFormInput,\n BRow,\n BCol,\n BCard,\n BInputGroup,\n BFormInvalidFeedback,\n BInputGroupAppend,\n ValidationProvider,\n ValidationObserver,\n AvButton,\n },\n directives: {\n Ripple,\n },\n})\nexport default class ProfileSettingPassword extends Vue {\n // Data\n passwordValueOld: string = \"\";\n newPasswordValue: string = \"\";\n retypePassword: string = \"\";\n passwordFieldTypeOld: string = \"password\";\n passwordFieldTypeNew: string = \"password\";\n passwordFieldTypeRetype: string = \"password\";\n saving = false;\n\n formValidation = formValidation();\n\n // Computeds\n get isSaving(): boolean {\n return this.saving;\n }\n\n get passwordToggleIconOld(): string {\n return this.passwordFieldTypeOld === \"password\" ? \"EyeIcon\" : \"EyeOffIcon\";\n }\n\n get passwordToggleIconNew(): string {\n return this.passwordFieldTypeNew === \"password\" ? \"EyeIcon\" : \"EyeOffIcon\";\n }\n\n get passwordToggleIconRetype(): string {\n return this.passwordFieldTypeRetype === \"password\"\n ? \"EyeIcon\"\n : \"EyeOffIcon\";\n }\n\n get isNewPasswordSame(): boolean | null {\n if (this.newPasswordValue == \"\" && this.retypePassword == \"\") return null;\n\n return this.newPasswordValue === this.retypePassword;\n }\n\n // Methods\n togglePasswordOld(): void {\n this.passwordFieldTypeOld =\n this.passwordFieldTypeOld === \"password\" ? \"text\" : \"password\";\n }\n\n togglePasswordNew(): void {\n this.passwordFieldTypeNew =\n this.passwordFieldTypeNew === \"password\" ? \"text\" : \"password\";\n }\n\n togglePasswordRetype(): void {\n this.passwordFieldTypeRetype =\n this.passwordFieldTypeRetype === \"password\" ? \"text\" : \"password\";\n }\n\n onSubmit(): void {\n this.saving = true;\n useAdministrator\n .requestChangePassword({\n senha: this.passwordValueOld,\n novaSenha: this.newPasswordValue,\n })\n .then((response: IResponseChangePassword) => {\n if (response.data.Status == 200 || response.data.Status == 201) {\n this.$toast({\n component: ToastificationContent,\n props: {\n title: \"Senha atualizada com sucesso!\",\n icon: \"CheckIcon\",\n variant: \"success\",\n },\n });\n } else {\n this.$toast({\n component: ToastificationContent,\n props: {\n title: \"Ocorreu um erro inesperado!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n }\n })\n .catch(() => {\n this.$toast({\n component: ToastificationContent,\n props: {\n title:\n \"Erro ao atualizar a senha, verifique se a senha atual corresponde e tente novamente!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n })\n .finally(() => {\n this.saving = false;\n });\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTabChangePassword.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTabChangePassword.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProfileTabChangePassword.vue?vue&type=template&id=29bb236e\"\nimport script from \"./ProfileTabChangePassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ProfileTabChangePassword.vue?vue&type=script&lang=ts\"\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","\nimport {\n BTab,\n BTabs,\n BCard,\n BAlert,\n BLink,\n BFormGroup,\n BForm,\n BRow,\n BCol,\n BFormInput,\n} from \"bootstrap-vue\";\nimport ProfileTabInfo from \"./ProfileTabInfo.vue\";\nimport ProfileTabChangePassword from \"./ProfileTabChangePassword.vue\";\nimport { Component, Vue } from \"vue-property-decorator\";\n\n@Component({\n name: \"ProfilePage\",\n components: {\n BTab,\n BTabs,\n BCard,\n BAlert,\n BLink,\n BFormGroup,\n BForm,\n BRow,\n BCol,\n BFormInput,\n ProfileTabInfo,\n ProfileTabChangePassword,\n },\n})\nexport default class ProfilePage extends Vue {\n tabIndex = 0;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileUser.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileUser.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProfileUser.vue?vue&type=template&id=760ba92c\"\nimport script from \"./ProfileUser.vue?vue&type=script&lang=ts\"\nexport * from \"./ProfileUser.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_ASIDE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA_ASIDE); // --- Main component ---\n// @vue/component\n\nexport var BMediaAside = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_ASIDE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var verticalAlign = props.verticalAlign;\n var align = verticalAlign === 'top' ? 'start' : verticalAlign === 'bottom' ? 'end' :\n /* istanbul ignore next */\n verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-aside',\n class: _defineProperty({\n 'media-aside-right': props.right\n }, \"align-self-\".concat(align), align)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_BODY } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_MEDIA_BODY); // --- Main component ---\n// @vue/component\n\nexport var BMediaBody = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-body'\n }), children);\n }\n});","/*\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};","// Localization utilities\nimport { RX_STRIP_LOCALE_MODS } from '../constants/regex';\nimport { arrayIncludes } from './array';\nimport { toString } from './string'; // Languages that are RTL\n\nvar RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(function (locale) {\n return locale.toLowerCase();\n}); // Returns true if the locale is RTL\n\nexport var isLocaleRTL = function isLocaleRTL(locale) {\n // Determines if the locale is RTL (only single locale supported)\n var parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');\n var locale1 = parts.slice(0, 2).join('-');\n var locale2 = parts[0];\n return arrayIncludes(RTL_LANGS, locale1) || arrayIncludes(RTL_LANGS, locale2);\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!./ProfileTabInfo.vue?vue&type=style&index=0&id=16f3f6b0&prod&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 } from '../../vue';\nimport { NAME_FORM_RADIO } from '../../constants/components';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formRadioCheckProps), formSizeProps), formStateProps)), NAME_FORM_RADIO); // --- Main component ---\n// @vue/component\n\nexport var BFormRadio = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO,\n mixins: [idMixin, formRadioCheckMixin, // Includes shared render function\n formControlMixin, formSizeMixin, formStateMixin],\n inject: {\n bvGroup: {\n from: 'bvRadioGroup',\n default: false\n }\n },\n props: props,\n watch: {\n computedLocalChecked: function computedLocalChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }\n }\n});","export var CALENDAR_GREGORY = 'gregory';\nexport var CALENDAR_LONG = 'long';\nexport var CALENDAR_NARROW = 'narrow';\nexport var CALENDAR_SHORT = 'short';\nexport var DATE_FORMAT_2_DIGIT = '2-digit';\nexport var DATE_FORMAT_NUMERIC = 'numeric';","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure 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 _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 _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n// Date utility functions\nimport { CALENDAR_GREGORY } from '../constants/date';\nimport { RX_DATE, RX_DATE_SPLIT } from '../constants/regex';\nimport { concat } from './array';\nimport { identity } from './identity';\nimport { isDate, isString } from './inspect';\nimport { toInteger } from './number'; // --- Date utility methods ---\n// Create or clone a date (`new Date(...)` shortcut)\n\nexport var createDate = function createDate() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(Date, args);\n}; // Parse a date sting, or Date object, into a Date object (with no time information)\n\nexport var parseYMD = function parseYMD(date) {\n if (isString(date) && RX_DATE.test(date.trim())) {\n var _date$split$map = date.split(RX_DATE_SPLIT).map(function (v) {\n return toInteger(v, 1);\n }),\n _date$split$map2 = _slicedToArray(_date$split$map, 3),\n year = _date$split$map2[0],\n month = _date$split$map2[1],\n day = _date$split$map2[2];\n\n return createDate(year, month - 1, day);\n } else if (isDate(date)) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n return null;\n}; // Format a date object as `YYYY-MM-DD` format\n\nexport var formatYMD = function formatYMD(date) {\n date = parseYMD(date);\n\n if (!date) {\n return null;\n }\n\n var year = date.getFullYear();\n var month = \"0\".concat(date.getMonth() + 1).slice(-2);\n var day = \"0\".concat(date.getDate()).slice(-2);\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n}; // Given a locale (or locales), resolve the browser available locale\n\nexport var resolveLocale = function resolveLocale(locales)\n/* istanbul ignore next */\n{\n var calendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_GREGORY;\n locales = concat(locales).filter(identity);\n var fmt = new Intl.DateTimeFormat(locales, {\n calendar: calendar\n });\n return fmt.resolvedOptions().locale;\n}; // Create a `Intl.DateTimeFormat` formatter function\n\nexport var createDateFormatter = function createDateFormatter(locale, options)\n/* istanbul ignore next */\n{\n var dtf = new Intl.DateTimeFormat(locale, options);\n return dtf.format;\n}; // Determine if two dates are the same date (ignoring time portion)\n\nexport var datesEqual = function datesEqual(date1, date2) {\n // Returns true of the date portion of two date objects are equal\n // We don't compare the time portion\n return formatYMD(date1) === formatYMD(date2);\n}; // --- Date \"math\" utility methods (for BCalendar component mainly) ---\n\nexport var firstDateOfMonth = function firstDateOfMonth(date) {\n date = createDate(date);\n date.setDate(1);\n return date;\n};\nexport var lastDateOfMonth = function lastDateOfMonth(date) {\n date = createDate(date);\n date.setMonth(date.getMonth() + 1);\n date.setDate(0);\n return date;\n};\nexport var addYears = function addYears(date, numberOfYears) {\n date = createDate(date);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear() + numberOfYears); // Handle Feb 29th for leap years\n\n if (date.getMonth() !== month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAgo = function oneMonthAgo(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month - 1); // Handle when days in month are different\n\n if (date.getMonth() === month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAhead = function oneMonthAhead(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month + 1); // Handle when days in month are different\n\n if (date.getMonth() === (month + 2) % 12) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneYearAgo = function oneYearAgo(date) {\n return addYears(date, -1);\n};\nexport var oneYearAhead = function oneYearAhead(date) {\n return addYears(date, 1);\n};\nexport var oneDecadeAgo = function oneDecadeAgo(date) {\n return addYears(date, -10);\n};\nexport var oneDecadeAhead = function oneDecadeAhead(date) {\n return addYears(date, 10);\n}; // Helper function to constrain a date between two values\n// Always returns a `Date` object or `null` if no date passed\n\nexport var constrainDate = function constrainDate(date) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // Ensure values are `Date` objects (or `null`)\n date = parseYMD(date);\n min = parseYMD(min) || date;\n max = parseYMD(max) || date; // Return a new `Date` object (or `null`)\n\n return date ? date < min ? min : date > max ? max : date : null;\n};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_CALENDAR } from '../../constants/components';\nimport { CALENDAR_GREGORY, CALENDAR_LONG, CALENDAR_NARROW, CALENDAR_SHORT, DATE_FORMAT_2_DIGIT, DATE_FORMAT_NUMERIC } from '../../constants/date';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_SELECTED } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_LEFT, CODE_PAGEDOWN, CODE_PAGEUP, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_NAV_NEXT_DECADE, SLOT_NAME_NAV_NEXT_MONTH, SLOT_NAME_NAV_NEXT_YEAR, SLOT_NAME_NAV_PEV_DECADE, SLOT_NAME_NAV_PEV_MONTH, SLOT_NAME_NAV_PEV_YEAR, SLOT_NAME_NAV_THIS_MONTH } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { createDate, createDateFormatter, constrainDate as _constrainDate, datesEqual, firstDateOfMonth, formatYMD, lastDateOfMonth, oneMonthAgo, oneMonthAhead, oneYearAgo, oneYearAhead, oneDecadeAgo, oneDecadeAhead, parseYMD, resolveLocale } from '../../utils/date';\nimport { attemptBlur, attemptFocus, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isPlainObject, isString } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconChevronLeft, BIconChevronDoubleLeft, BIconChevronBarLeft, BIconCircleFill } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n // Makes calendar the full width of its parent container\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n dateDisabledFn: makeProp(PROP_TYPE_FUNCTION),\n // `Intl.DateTimeFormat` object\n dateFormatOptions: makeProp(PROP_TYPE_OBJECT, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n day: DATE_FORMAT_NUMERIC,\n weekday: CALENDAR_LONG\n }),\n // Function to set a class of (classes) on the date cell\n // if passed a string or an array\n // TODO:\n // If the function returns an object, look for class prop for classes,\n // and other props for handling events/details/descriptions\n dateInfoFn: makeProp(PROP_TYPE_FUNCTION),\n // 'ltr', 'rtl', or `null` (for auto detect)\n direction: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true`, renders a comment node, but keeps the component instance active\n // Mainly for , so that we can get the component's value and locale\n // But we might just use separate date formatters, using the resolved locale\n // (adjusted for the gregorian calendar)\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true` makes the selected date header `sr-only`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // This specifies the calendar year/month/day that will be shown when\n // first opening the datepicker if no v-model value is provided\n // Default is the current date (or `min`/`max`)\n initialDate: makeProp(PROP_TYPE_DATE_STRING),\n // Labels for buttons and keyboard shortcuts\n labelCalendar: makeProp(PROP_TYPE_STRING, 'Calendar'),\n labelCurrentMonth: makeProp(PROP_TYPE_STRING, 'Current month'),\n labelHelp: makeProp(PROP_TYPE_STRING, 'Use cursor keys to navigate calendar dates'),\n labelNav: makeProp(PROP_TYPE_STRING, 'Calendar navigation'),\n labelNextDecade: makeProp(PROP_TYPE_STRING, 'Next decade'),\n labelNextMonth: makeProp(PROP_TYPE_STRING, 'Next month'),\n labelNextYear: makeProp(PROP_TYPE_STRING, 'Next year'),\n labelNoDateSelected: makeProp(PROP_TYPE_STRING, 'No date selected'),\n labelPrevDecade: makeProp(PROP_TYPE_STRING, 'Previous decade'),\n labelPrevMonth: makeProp(PROP_TYPE_STRING, 'Previous month'),\n labelPrevYear: makeProp(PROP_TYPE_STRING, 'Previous year'),\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected date'),\n labelToday: makeProp(PROP_TYPE_STRING, 'Today'),\n // Locale(s) to use\n // Default is to use page/browser default setting\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n max: makeProp(PROP_TYPE_DATE_STRING),\n min: makeProp(PROP_TYPE_DATE_STRING),\n // Variant color to use for the navigation buttons\n navButtonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // Disable highlighting today's date\n noHighlightToday: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n roleDescription: makeProp(PROP_TYPE_STRING),\n // Variant color to use for the selected date\n selectedVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // When `true` enables the decade navigation buttons\n showDecadeNav: makeProp(PROP_TYPE_BOOLEAN, false),\n // Day of week to start calendar on\n // `0` (Sunday), `1` (Monday), ... `6` (Saturday)\n startWeekday: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n // Variant color to use for today's date (defaults to `selectedVariant`)\n todayVariant: makeProp(PROP_TYPE_STRING),\n // Always return the `v-model` value as a date object\n valueAsDate: makeProp(PROP_TYPE_BOOLEAN, false),\n // Format of the weekday names at the top of the calendar\n // `short` is typically a 3 letter abbreviation,\n // `narrow` is typically a single letter\n // `long` is the full week day name\n // Although some locales may override this (i.e `ar`, etc.)\n weekdayHeaderFormat: makeProp(PROP_TYPE_STRING, CALENDAR_SHORT, function (value) {\n return arrayIncludes([CALENDAR_LONG, CALENDAR_SHORT, CALENDAR_NARROW], value);\n }),\n // Has no effect if prop `block` is set\n width: makeProp(PROP_TYPE_STRING, '270px')\n})), NAME_CALENDAR); // --- Main component ---\n// @vue/component\n\nexport var BCalendar = Vue.extend({\n name: NAME_CALENDAR,\n // Mixin order is important!\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n var selected = formatYMD(this[MODEL_PROP_NAME]) || '';\n return {\n // Selected date\n selectedYMD: selected,\n // Date in calendar grid that has `tabindex` of `0`\n activeYMD: selected || formatYMD(_constrainDate(this.initialDate || this.getToday()), this.min, this.max),\n // Will be true if the calendar grid has/contains focus\n gridHasFocus: false,\n // Flag to enable the `aria-live` region(s) after mount\n // to prevent screen reader \"outbursts\" when mounting\n isLive: false\n };\n },\n computed: {\n valueId: function valueId() {\n return this.safeId();\n },\n widgetId: function widgetId() {\n return this.safeId('_calendar-wrapper_');\n },\n navId: function navId() {\n return this.safeId('_calendar-nav_');\n },\n gridId: function gridId() {\n return this.safeId('_calendar-grid_');\n },\n gridCaptionId: function gridCaptionId() {\n return this.safeId('_calendar-grid-caption_');\n },\n gridHelpId: function gridHelpId() {\n return this.safeId('_calendar-grid-help_');\n },\n activeId: function activeId() {\n return this.activeYMD ? this.safeId(\"_cell-\".concat(this.activeYMD, \"_\")) : null;\n },\n // TODO: Use computed props to convert `YYYY-MM-DD` to `Date` object\n selectedDate: function selectedDate() {\n // Selected as a `Date` object\n return parseYMD(this.selectedYMD);\n },\n activeDate: function activeDate() {\n // Active as a `Date` object\n return parseYMD(this.activeYMD);\n },\n computedMin: function computedMin() {\n return parseYMD(this.min);\n },\n computedMax: function computedMax() {\n return parseYMD(this.max);\n },\n computedWeekStarts: function computedWeekStarts() {\n // `startWeekday` is a prop (constrained to `0` through `6`)\n return mathMax(toInteger(this.startWeekday, 0), 0) % 7;\n },\n computedLocale: function computedLocale() {\n // Returns the resolved locale used by the calendar\n return resolveLocale(concat(this.locale).filter(identity), CALENDAR_GREGORY);\n },\n computedDateDisabledFn: function computedDateDisabledFn() {\n var dateDisabledFn = this.dateDisabledFn;\n return hasPropFunction(dateDisabledFn) ? dateDisabledFn : function () {\n return false;\n };\n },\n // TODO: Change `dateInfoFn` to handle events and notes as well as classes\n computedDateInfoFn: function computedDateInfoFn() {\n var dateInfoFn = this.dateInfoFn;\n return hasPropFunction(dateInfoFn) ? dateInfoFn : function () {\n return {};\n };\n },\n calendarLocale: function calendarLocale() {\n // This locale enforces the gregorian calendar (for use in formatter functions)\n // Needed because IE 11 resolves `ar-IR` as islamic-civil calendar\n // and IE 11 (and some other browsers) do not support the `calendar` option\n // And we currently only support the gregorian calendar\n var fmt = new Intl.DateTimeFormat(this.computedLocale, {\n calendar: CALENDAR_GREGORY\n });\n var calendar = fmt.resolvedOptions().calendar;\n var locale = fmt.resolvedOptions().locale;\n /* istanbul ignore if: mainly for IE 11 and a few other browsers, hard to test in JSDOM */\n\n if (calendar !== CALENDAR_GREGORY) {\n // Ensure the locale requests the gregorian calendar\n // Mainly for IE 11, and currently we can't handle non-gregorian calendars\n // TODO: Should we always return this value?\n locale = locale.replace(/-u-.+$/i, '').concat('-u-ca-gregory');\n }\n\n return locale;\n },\n calendarYear: function calendarYear() {\n return this.activeDate.getFullYear();\n },\n calendarMonth: function calendarMonth() {\n return this.activeDate.getMonth();\n },\n calendarFirstDay: function calendarFirstDay() {\n // We set the time for this date to 12pm to work around\n // date formatting issues in Firefox and Safari\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/5818\n return createDate(this.calendarYear, this.calendarMonth, 1, 12);\n },\n calendarDaysInMonth: function calendarDaysInMonth() {\n // We create a new date as to not mutate the original\n var date = createDate(this.calendarFirstDay);\n date.setMonth(date.getMonth() + 1, 0);\n return date.getDate();\n },\n computedVariant: function computedVariant() {\n return \"btn-\".concat(this.selectedVariant || 'primary');\n },\n computedTodayVariant: function computedTodayVariant() {\n return \"btn-outline-\".concat(this.todayVariant || this.selectedVariant || 'primary');\n },\n computedNavButtonVariant: function computedNavButtonVariant() {\n return \"btn-outline-\".concat(this.navButtonVariant || 'primary');\n },\n isRTL: function isRTL() {\n // `true` if the language requested is RTL\n var dir = toString(this.direction).toLowerCase();\n\n if (dir === 'rtl') {\n /* istanbul ignore next */\n return true;\n } else if (dir === 'ltr') {\n /* istanbul ignore next */\n return false;\n }\n\n return isLocaleRTL(this.computedLocale);\n },\n context: function context() {\n var selectedYMD = this.selectedYMD,\n activeYMD = this.activeYMD;\n var selectedDate = parseYMD(selectedYMD);\n var activeDate = parseYMD(activeYMD);\n return {\n // The current value of the `v-model`\n selectedYMD: selectedYMD,\n selectedDate: selectedDate,\n selectedFormatted: selectedDate ? this.formatDateString(selectedDate) : this.labelNoDateSelected,\n // Which date cell is considered active due to navigation\n activeYMD: activeYMD,\n activeDate: activeDate,\n activeFormatted: activeDate ? this.formatDateString(activeDate) : '',\n // `true` if the date is disabled (when using keyboard navigation)\n disabled: this.dateDisabled(activeDate),\n // Locales used in formatting dates\n locale: this.computedLocale,\n calendarLocale: this.calendarLocale,\n rtl: this.isRTL\n };\n },\n // Computed props that return a function reference\n dateOutOfRange: function dateOutOfRange() {\n // Check whether a date is within the min/max range\n // Returns a new function ref if the pops change\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var min = this.computedMin,\n max = this.computedMax;\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n return min && date < min || max && date > max;\n };\n },\n dateDisabled: function dateDisabled() {\n var _this = this;\n\n // Returns a function for validating if a date is within range\n // We grab this variables first to ensure a new function ref\n // is generated when the props value changes\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var rangeFn = this.dateOutOfRange; // Return the function ref\n\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n var ymd = formatYMD(date);\n return !!(rangeFn(date) || _this.computedDateDisabledFn(ymd, date));\n };\n },\n // Computed props that return date formatter functions\n formatDateString: function formatDateString() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, _objectSpread(_objectSpread({\n // Ensure we have year, month, day shown for screen readers/ARIA\n // If users really want to leave one of these out, they can\n // pass `undefined` for the property value\n year: DATE_FORMAT_NUMERIC,\n month: DATE_FORMAT_2_DIGIT,\n day: DATE_FORMAT_2_DIGIT\n }, this.dateFormatOptions), {}, {\n // Ensure hours/minutes/seconds are not shown\n // As we do not support the time portion (yet)\n hour: undefined,\n minute: undefined,\n second: undefined,\n // Ensure calendar is gregorian\n calendar: CALENDAR_GREGORY\n }));\n },\n formatYearMonth: function formatYearMonth() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayName: function formatWeekdayName() {\n // Long weekday name for weekday header aria-label\n return createDateFormatter(this.calendarLocale, {\n weekday: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayNameShort: function formatWeekdayNameShort() {\n // Weekday header cell format\n // defaults to 'short' 3 letter days, where possible\n return createDateFormatter(this.calendarLocale, {\n weekday: this.weekdayHeaderFormat || CALENDAR_SHORT,\n calendar: CALENDAR_GREGORY\n });\n },\n formatDay: function formatDay() {\n // Calendar grid day number formatter\n // We don't use DateTimeFormatter here as it can place extra\n // character(s) after the number (i.e the `zh` locale)\n var nf = new Intl.NumberFormat([this.computedLocale], {\n style: 'decimal',\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard'\n }); // Return a formatter function instance\n\n return function (date) {\n return nf.format(date.getDate());\n };\n },\n // Disabled states for the nav buttons\n prevDecadeDisabled: function prevDecadeDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneDecadeAgo(this.activeDate)) < min;\n },\n prevYearDisabled: function prevYearDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneYearAgo(this.activeDate)) < min;\n },\n prevMonthDisabled: function prevMonthDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneMonthAgo(this.activeDate)) < min;\n },\n thisMonthDisabled: function thisMonthDisabled() {\n // TODO: We could/should check if today is out of range\n return this.disabled;\n },\n nextMonthDisabled: function nextMonthDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneMonthAhead(this.activeDate)) > max;\n },\n nextYearDisabled: function nextYearDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneYearAhead(this.activeDate)) > max;\n },\n nextDecadeDisabled: function nextDecadeDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneDecadeAhead(this.activeDate)) > max;\n },\n // Calendar dates generation\n calendar: function calendar() {\n var matrix = [];\n var firstDay = this.calendarFirstDay;\n var calendarYear = firstDay.getFullYear();\n var calendarMonth = firstDay.getMonth();\n var daysInMonth = this.calendarDaysInMonth;\n var startIndex = firstDay.getDay(); // `0`..`6`\n\n var weekOffset = (this.computedWeekStarts > startIndex ? 7 : 0) - this.computedWeekStarts; // Build the calendar matrix\n\n var currentDay = 0 - weekOffset - startIndex;\n\n for (var week = 0; week < 6 && currentDay < daysInMonth; week++) {\n // For each week\n matrix[week] = []; // The following could be a map function\n\n for (var j = 0; j < 7; j++) {\n // For each day in week\n currentDay++;\n var date = createDate(calendarYear, calendarMonth, currentDay);\n var month = date.getMonth();\n var dayYMD = formatYMD(date);\n var dayDisabled = this.dateDisabled(date); // TODO: This could be a normalizer method\n\n var dateInfo = this.computedDateInfoFn(dayYMD, parseYMD(dayYMD));\n dateInfo = isString(dateInfo) || isArray(dateInfo) ?\n /* istanbul ignore next */\n {\n class: dateInfo\n } : isPlainObject(dateInfo) ? _objectSpread({\n class: ''\n }, dateInfo) :\n /* istanbul ignore next */\n {\n class: ''\n };\n matrix[week].push({\n ymd: dayYMD,\n // Cell content\n day: this.formatDay(date),\n label: this.formatDateString(date),\n // Flags for styling\n isThisMonth: month === calendarMonth,\n isDisabled: dayDisabled,\n // TODO: Handle other dateInfo properties such as notes/events\n info: dateInfo\n });\n }\n }\n\n return matrix;\n },\n calendarHeadings: function calendarHeadings() {\n var _this2 = this;\n\n return this.calendar[0].map(function (d) {\n return {\n text: _this2.formatWeekdayNameShort(parseYMD(d.ymd)),\n label: _this2.formatWeekdayName(parseYMD(d.ymd))\n };\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n var selected = formatYMD(newValue) || '';\n var old = formatYMD(oldValue) || '';\n\n if (!datesEqual(selected, old)) {\n this.activeYMD = selected || this.activeYMD;\n this.selectedYMD = selected;\n }\n }), _defineProperty(_watch, \"selectedYMD\", function selectedYMD(newYMD, oldYMD) {\n // TODO:\n // Should we compare to `formatYMD(this.value)` and emit\n // only if they are different?\n if (newYMD !== oldYMD) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newYMD) || null : newYMD || '');\n }\n }), _defineProperty(_watch, \"context\", function context(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT, newValue);\n }\n }), _defineProperty(_watch, \"hidden\", function hidden(newValue) {\n // Reset the active focused day when hidden\n this.activeYMD = this.selectedYMD || formatYMD(this[MODEL_PROP_NAME] || this.constrainDate(this.initialDate || this.getToday())); // Enable/disable the live regions\n\n this.setLive(!newValue);\n }), _watch),\n created: function created() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.$emit(EVENT_NAME_CONTEXT, _this3.context);\n });\n },\n mounted: function mounted() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.setLive(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.setLive(false);\n },\n methods: {\n // Public method(s)\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.grid);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.grid);\n }\n },\n // Private methods\n setLive: function setLive(on) {\n var _this4 = this;\n\n if (on) {\n this.$nextTick(function () {\n requestAF(function () {\n _this4.isLive = true;\n });\n });\n } else {\n this.isLive = false;\n }\n },\n getToday: function getToday() {\n return parseYMD(createDate());\n },\n constrainDate: function constrainDate(date) {\n // Constrains a date between min and max\n // returns a new `Date` object instance\n return _constrainDate(date, this.computedMin, this.computedMax);\n },\n emitSelected: function emitSelected(date) {\n var _this5 = this;\n\n // Performed in a `$nextTick()` to (probably) ensure\n // the input event has emitted first\n this.$nextTick(function () {\n _this5.$emit(EVENT_NAME_SELECTED, formatYMD(date) || '', parseYMD(date) || null);\n });\n },\n // Event handlers\n setGridFocusFlag: function setGridFocusFlag(event) {\n // Sets the gridHasFocus flag to make date \"button\" look focused\n this.gridHasFocus = !this.disabled && event.type === 'focus';\n },\n onKeydownWrapper: function onKeydownWrapper(event) {\n // Calendar keyboard navigation\n // Handles PAGEUP/PAGEDOWN/END/HOME/LEFT/UP/RIGHT/DOWN\n // Focuses grid after updating\n if (this.noKeyNav) {\n /* istanbul ignore next */\n return;\n }\n\n var altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n keyCode = event.keyCode;\n\n if (!arrayIncludes([CODE_PAGEUP, CODE_PAGEDOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_UP, CODE_RIGHT, CODE_DOWN], keyCode)) {\n /* istanbul ignore next */\n return;\n }\n\n stopEvent(event);\n var activeDate = createDate(this.activeDate);\n var checkDate = createDate(this.activeDate);\n var day = activeDate.getDate();\n var constrainedToday = this.constrainDate(this.getToday());\n var isRTL = this.isRTL;\n\n if (keyCode === CODE_PAGEUP) {\n // PAGEUP - Previous month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAgo : oneYearAgo : oneMonthAgo)(activeDate); // We check the first day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setDate(1);\n } else if (keyCode === CODE_PAGEDOWN) {\n // PAGEDOWN - Next month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAhead : oneYearAhead : oneMonthAhead)(activeDate); // We check the last day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setMonth(checkDate.getMonth() + 1);\n checkDate.setDate(0);\n } else if (keyCode === CODE_LEFT) {\n // LEFT - Previous day (or next day for RTL)\n activeDate.setDate(day + (isRTL ? 1 : -1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_RIGHT) {\n // RIGHT - Next day (or previous day for RTL)\n activeDate.setDate(day + (isRTL ? -1 : 1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_UP) {\n // UP - Previous week\n activeDate.setDate(day - 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_DOWN) {\n // DOWN - Next week\n activeDate.setDate(day + 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_HOME) {\n // HOME - Today\n activeDate = constrainedToday;\n checkDate = activeDate;\n } else if (keyCode === CODE_END) {\n // END - Selected date, or today if no selected date\n activeDate = parseYMD(this.selectedDate) || constrainedToday;\n checkDate = activeDate;\n }\n\n if (!this.dateOutOfRange(checkDate) && !datesEqual(activeDate, this.activeDate)) {\n // We only jump to date if within min/max\n // We don't check for individual disabled dates though (via user function)\n this.activeYMD = formatYMD(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n },\n onKeydownGrid: function onKeydownGrid(event) {\n // Pressing enter/space on grid to select active date\n var keyCode = event.keyCode;\n var activeDate = this.activeDate;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n stopEvent(event);\n\n if (!this.disabled && !this.readonly && !this.dateDisabled(activeDate)) {\n this.selectedYMD = formatYMD(activeDate);\n this.emitSelected(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n }\n },\n onClickDay: function onClickDay(day) {\n // Clicking on a date \"button\" to select it\n var selectedDate = this.selectedDate,\n activeDate = this.activeDate;\n var clickedDate = parseYMD(day.ymd);\n\n if (!this.disabled && !day.isDisabled && !this.dateDisabled(clickedDate)) {\n if (!this.readonly) {\n // If readonly mode, we don't set the selected date, just the active date\n // If the clicked date is equal to the already selected date, we don't update the model\n this.selectedYMD = formatYMD(datesEqual(clickedDate, selectedDate) ? selectedDate : clickedDate);\n this.emitSelected(clickedDate);\n }\n\n this.activeYMD = formatYMD(datesEqual(clickedDate, activeDate) ? activeDate : createDate(clickedDate)); // Ensure grid is focused\n\n this.focus();\n }\n },\n gotoPrevDecade: function gotoPrevDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAgo(this.activeDate)));\n },\n gotoPrevYear: function gotoPrevYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAgo(this.activeDate)));\n },\n gotoPrevMonth: function gotoPrevMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAgo(this.activeDate)));\n },\n gotoCurrentMonth: function gotoCurrentMonth() {\n // TODO: Maybe this goto date should be configurable?\n this.activeYMD = formatYMD(this.constrainDate(this.getToday()));\n },\n gotoNextMonth: function gotoNextMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAhead(this.activeDate)));\n },\n gotoNextYear: function gotoNextYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAhead(this.activeDate)));\n },\n gotoNextDecade: function gotoNextDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAhead(this.activeDate)));\n },\n onHeaderClick: function onHeaderClick() {\n if (!this.disabled) {\n this.activeYMD = this.selectedYMD || formatYMD(this.getToday());\n this.focus();\n }\n }\n },\n render: function render(h) {\n var _this6 = this;\n\n // If `hidden` prop is set, render just a placeholder node\n if (this.hidden) {\n return h();\n }\n\n var valueId = this.valueId,\n widgetId = this.widgetId,\n navId = this.navId,\n gridId = this.gridId,\n gridCaptionId = this.gridCaptionId,\n gridHelpId = this.gridHelpId,\n activeId = this.activeId,\n disabled = this.disabled,\n noKeyNav = this.noKeyNav,\n isLive = this.isLive,\n isRTL = this.isRTL,\n activeYMD = this.activeYMD,\n selectedYMD = this.selectedYMD,\n safeId = this.safeId;\n var hideDecadeNav = !this.showDecadeNav;\n var todayYMD = formatYMD(this.getToday());\n var highlightToday = !this.noHighlightToday; // Header showing current selected date\n\n var $header = h('output', {\n staticClass: 'form-control form-control-sm text-center',\n class: {\n 'text-muted': disabled,\n readonly: this.readonly || disabled\n },\n attrs: {\n id: valueId,\n for: gridId,\n role: 'status',\n tabindex: disabled ? null : '-1',\n // Mainly for testing purposes, as we do not know\n // the exact format `Intl` will format the date string\n 'data-selected': toString(selectedYMD),\n // We wait until after mount to enable `aria-live`\n // to prevent initial announcement on page render\n 'aria-live': isLive ? 'polite' : 'off',\n 'aria-atomic': isLive ? 'true' : null\n },\n on: {\n // Transfer focus/click to focus grid\n // and focus active date (or today if no selection)\n click: this.onHeaderClick,\n focus: this.onHeaderClick\n }\n }, this.selectedDate ? [// We use `bdi` elements here in case the label doesn't match the locale\n // Although IE 11 does not deal with at all (equivalent to a span)\n h('bdi', {\n staticClass: 'sr-only'\n }, \" (\".concat(toString(this.labelSelected), \") \")), h('bdi', this.formatDateString(this.selectedDate))] : this.labelNoDateSelected || \"\\xA0\" // ' '\n );\n $header = h('header', {\n staticClass: 'b-calendar-header',\n class: {\n 'sr-only': this.hideHeader\n },\n attrs: {\n title: this.selectedDate ? this.labelSelectedDate || null : null\n }\n }, [$header]); // Content for the date navigation buttons\n\n var navScope = {\n isRTL: isRTL\n };\n var navProps = {\n shiftV: 0.5\n };\n\n var navPrevProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: isRTL\n });\n\n var navNextProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: !isRTL\n });\n\n var $prevDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navPrevProps\n });\n var $prevYearIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navPrevProps\n });\n var $prevMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_MONTH, navScope) || h(BIconChevronLeft, {\n props: navPrevProps\n });\n var $thisMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_THIS_MONTH, navScope) || h(BIconCircleFill, {\n props: navProps\n });\n var $nextMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_MONTH, navScope) || h(BIconChevronLeft, {\n props: navNextProps\n });\n var $nextYearIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navNextProps\n });\n var $nextDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navNextProps\n }); // Utility to create the date navigation buttons\n\n var makeNavBtn = function makeNavBtn(content, label, handler, btnDisabled, shortcut) {\n return h('button', {\n staticClass: 'btn btn-sm border-0 flex-fill',\n class: [_this6.computedNavButtonVariant, {\n disabled: btnDisabled\n }],\n attrs: {\n title: label || null,\n type: 'button',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-label': label || null,\n 'aria-disabled': btnDisabled ? 'true' : null,\n 'aria-keyshortcuts': shortcut || null\n },\n on: btnDisabled ? {} : {\n click: handler\n }\n }, [h('div', {\n attrs: {\n 'aria-hidden': 'true'\n }\n }, [content])]);\n }; // Generate the date navigation buttons\n\n\n var $nav = h('div', {\n staticClass: 'b-calendar-nav d-flex',\n attrs: {\n id: navId,\n role: 'group',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-hidden': disabled ? 'true' : null,\n 'aria-label': this.labelNav || null,\n 'aria-controls': gridId\n }\n }, [hideDecadeNav ? h() : makeNavBtn($prevDecadeIcon, this.labelPrevDecade, this.gotoPrevDecade, this.prevDecadeDisabled, 'Ctrl+Alt+PageDown'), makeNavBtn($prevYearIcon, this.labelPrevYear, this.gotoPrevYear, this.prevYearDisabled, 'Alt+PageDown'), makeNavBtn($prevMonthIcon, this.labelPrevMonth, this.gotoPrevMonth, this.prevMonthDisabled, 'PageDown'), makeNavBtn($thisMonthIcon, this.labelCurrentMonth, this.gotoCurrentMonth, this.thisMonthDisabled, 'Home'), makeNavBtn($nextMonthIcon, this.labelNextMonth, this.gotoNextMonth, this.nextMonthDisabled, 'PageUp'), makeNavBtn($nextYearIcon, this.labelNextYear, this.gotoNextYear, this.nextYearDisabled, 'Alt+PageUp'), hideDecadeNav ? h() : makeNavBtn($nextDecadeIcon, this.labelNextDecade, this.gotoNextDecade, this.nextDecadeDisabled, 'Ctrl+Alt+PageUp')]); // Caption for calendar grid\n\n var $gridCaption = h('header', {\n staticClass: 'b-calendar-grid-caption text-center font-weight-bold',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n id: gridCaptionId,\n 'aria-live': isLive ? 'polite' : null,\n 'aria-atomic': isLive ? 'true' : null\n },\n key: 'grid-caption'\n }, this.formatYearMonth(this.calendarFirstDay)); // Calendar weekday headings\n\n var $gridWeekDays = h('div', {\n staticClass: 'b-calendar-grid-weekdays row no-gutters border-bottom',\n attrs: {\n 'aria-hidden': 'true'\n }\n }, this.calendarHeadings.map(function (d, idx) {\n return h('small', {\n staticClass: 'col text-truncate',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n title: d.label === d.text ? null : d.label,\n 'aria-label': d.label\n },\n key: idx\n }, d.text);\n })); // Calendar day grid\n\n var $gridBody = this.calendar.map(function (week) {\n var $cells = week.map(function (day, dIndex) {\n var _class;\n\n var isSelected = day.ymd === selectedYMD;\n var isActive = day.ymd === activeYMD;\n var isToday = day.ymd === todayYMD;\n var idCell = safeId(\"_cell-\".concat(day.ymd, \"_\")); // \"fake\" button\n\n var $btn = h('span', {\n staticClass: 'btn border-0 rounded-circle text-nowrap',\n // Should we add some classes to signify if today/selected/etc?\n class: (_class = {\n // Give the fake button a focus ring\n focus: isActive && _this6.gridHasFocus,\n // Styling\n disabled: day.isDisabled || disabled,\n active: isSelected\n }, _defineProperty(_class, _this6.computedVariant, isSelected), _defineProperty(_class, _this6.computedTodayVariant, isToday && highlightToday && !isSelected && day.isThisMonth), _defineProperty(_class, 'btn-outline-light', !(isToday && highlightToday) && !isSelected && !isActive), _defineProperty(_class, 'btn-light', !(isToday && highlightToday) && !isSelected && isActive), _defineProperty(_class, 'text-muted', !day.isThisMonth && !isSelected), _defineProperty(_class, 'text-dark', !(isToday && highlightToday) && !isSelected && !isActive && day.isThisMonth), _defineProperty(_class, 'font-weight-bold', (isSelected || day.isThisMonth) && !day.isDisabled), _class),\n on: {\n click: function click() {\n return _this6.onClickDay(day);\n }\n }\n }, day.day);\n return h('div', // Cell with button\n {\n staticClass: 'col p-0',\n class: day.isDisabled ? 'bg-light' : day.info.class || '',\n attrs: {\n id: idCell,\n role: 'button',\n 'data-date': day.ymd,\n // Primarily for testing purposes\n // Only days in the month are presented as buttons to screen readers\n 'aria-hidden': day.isThisMonth ? null : 'true',\n 'aria-disabled': day.isDisabled || disabled ? 'true' : null,\n 'aria-label': [day.label, isSelected ? \"(\".concat(_this6.labelSelected, \")\") : null, isToday ? \"(\".concat(_this6.labelToday, \")\") : null].filter(identity).join(' '),\n // NVDA doesn't convey `aria-selected`, but does `aria-current`,\n // ChromeVox doesn't convey `aria-current`, but does `aria-selected`,\n // so we set both attributes for robustness\n 'aria-selected': isSelected ? 'true' : null,\n 'aria-current': isSelected ? 'date' : null\n },\n key: dIndex\n }, [$btn]);\n }); // Return the week \"row\"\n // We use the first day of the weeks YMD value as a\n // key for efficient DOM patching / element re-use\n\n return h('div', {\n staticClass: 'row no-gutters',\n key: week[0].ymd\n }, $cells);\n });\n $gridBody = h('div', {\n // A key is only required on the body if we add in transition support\n staticClass: 'b-calendar-grid-body',\n style: disabled ? {\n pointerEvents: 'none'\n } : {} // key: this.activeYMD.slice(0, -3)\n\n }, $gridBody);\n var $gridHelp = h('footer', {\n staticClass: 'b-calendar-grid-help border-top small text-muted text-center bg-light',\n attrs: {\n id: gridHelpId\n }\n }, [h('div', {\n staticClass: 'small'\n }, this.labelHelp)]);\n var $grid = h('div', {\n staticClass: 'b-calendar-grid form-control h-auto text-center',\n attrs: {\n id: gridId,\n role: 'application',\n tabindex: noKeyNav ? '-1' : disabled ? null : '0',\n 'data-month': activeYMD.slice(0, -3),\n // `YYYY-MM`, mainly for testing\n 'aria-roledescription': this.labelCalendar || null,\n 'aria-labelledby': gridCaptionId,\n 'aria-describedby': gridHelpId,\n // `aria-readonly` is not considered valid on `role=\"application\"`\n // https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\n // 'aria-readonly': this.readonly && !disabled ? 'true' : null,\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-activedescendant': activeId\n },\n on: {\n keydown: this.onKeydownGrid,\n focus: this.setGridFocusFlag,\n blur: this.setGridFocusFlag\n },\n ref: 'grid'\n }, [$gridCaption, $gridWeekDays, $gridBody, $gridHelp]); // Optional bottom slot\n\n var $slot = this.normalizeSlot();\n $slot = $slot ? h('footer', {\n staticClass: 'b-calendar-footer'\n }, $slot) : h();\n var $widget = h('div', {\n staticClass: 'b-calendar-inner',\n style: this.block ? {} : {\n width: this.width\n },\n attrs: {\n id: widgetId,\n dir: isRTL ? 'rtl' : 'ltr',\n lang: this.computedLocale || null,\n role: 'group',\n 'aria-disabled': disabled ? 'true' : null,\n // If datepicker controls an input, this will specify the ID of the input\n 'aria-controls': this.ariaControls || null,\n // This should be a prop (so it can be changed to Date picker, etc, localized\n 'aria-roledescription': this.roleDescription || null,\n 'aria-describedby': [// Should the attr (if present) go last?\n // Or should this attr be a prop?\n this.bvAttrs['aria-describedby'], valueId, gridHelpId].filter(identity).join(' ')\n },\n on: {\n keydown: this.onKeydownWrapper\n }\n }, [$header, $nav, $grid, $slot]); // Wrap in an outer div that can be styled\n\n return h('div', {\n staticClass: 'b-calendar',\n class: {\n 'd-block': this.block\n }\n }, [$widget]);\n }\n});","// v-b-hover directive\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { eventOnOff } from '../../utils/events';\nimport { isFunction } from '../../utils/inspect'; // --- Constants ---\n\nvar PROP = '__BV_hover_handler__';\nvar MOUSEENTER = 'mouseenter';\nvar MOUSELEAVE = 'mouseleave'; // --- Helper methods ---\n\nvar createListener = function createListener(handler) {\n var listener = function listener(event) {\n handler(event.type === MOUSEENTER, event);\n };\n\n listener.fn = handler;\n return listener;\n};\n\nvar updateListeners = function updateListeners(on, el, listener) {\n eventOnOff(on, el, MOUSEENTER, listener, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, el, MOUSELEAVE, listener, EVENT_OPTIONS_NO_CAPTURE);\n}; // --- Directive bind/unbind/update handler ---\n\n\nvar directive = function directive(el, _ref) {\n var _ref$value = _ref.value,\n handler = _ref$value === void 0 ? null : _ref$value;\n\n if (IS_BROWSER) {\n var listener = el[PROP];\n var hasListener = isFunction(listener);\n var handlerChanged = !(hasListener && listener.fn === handler);\n\n if (hasListener && handlerChanged) {\n updateListeners(false, el, listener);\n delete el[PROP];\n }\n\n if (isFunction(handler) && handlerChanged) {\n el[PROP] = createListener(handler);\n updateListeners(true, el, el[PROP]);\n }\n }\n}; // VBHover directive\n\n\nexport var VBHover = {\n bind: directive,\n componentUpdated: directive,\n unbind: function unbind(el) {\n directive(el, {\n value: null\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\n//\n// Private component used by `b-form-datepicker` and `b-form-timepicker`\n//\nimport { Vue } from '../../vue';\nimport { NAME_FORM_BUTTON_LABEL_CONTROL } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { props as formControlProps } from '../../mixins/form-control';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { VBHover } from '../../directives/hover/hover';\nimport { BIconChevronDown } from '../../icons/icons'; // --- Props ---\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formSizeProps), formStateProps), omit(dropdownProps, ['disabled'])), omit(formControlProps, ['autofocus'])), {}, {\n // When `true`, renders a `btn-group` wrapper and visually hides the label\n buttonOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Applicable in button mode only\n buttonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // This is the value shown in the label\n // Defaults back to `value`\n formattedValue: makeProp(PROP_TYPE_STRING),\n // Value placed in `.sr-only` span inside label when value is present\n labelSelected: makeProp(PROP_TYPE_STRING),\n lang: makeProp(PROP_TYPE_STRING),\n // Extra classes to apply to the `dropdown-menu` div\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // This is the value placed on the hidden input when no value selected\n placeholder: makeProp(PROP_TYPE_STRING),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Tri-state prop: `true`, `false` or `null`\n rtl: makeProp(PROP_TYPE_BOOLEAN, null),\n value: makeProp(PROP_TYPE_STRING, '')\n})); // --- Main component ---\n// @vue/component\n\nexport var BVFormBtnLabelControl = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_BUTTON_LABEL_CONTROL,\n directives: {\n 'b-hover': VBHover\n },\n mixins: [idMixin, formSizeMixin, formStateMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n isHovered: false,\n hasFocus: false\n };\n },\n computed: {\n idButton: function idButton() {\n return this.safeId();\n },\n idLabel: function idLabel() {\n return this.safeId('_value_');\n },\n idMenu: function idMenu() {\n return this.safeId('_dialog_');\n },\n idWrapper: function idWrapper() {\n return this.safeId('_outer_');\n },\n computedDir: function computedDir() {\n return this.rtl === true ? 'rtl' : this.rtl === false ? 'ltr' : null;\n }\n },\n methods: {\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.toggle);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.toggle);\n }\n },\n setFocus: function setFocus(event) {\n this.hasFocus = event.type === 'focus';\n },\n handleHover: function handleHover(hovered) {\n this.isHovered = hovered;\n }\n },\n render: function render(h) {\n var _class;\n\n var idButton = this.idButton,\n idLabel = this.idLabel,\n idMenu = this.idMenu,\n idWrapper = this.idWrapper,\n disabled = this.disabled,\n readonly = this.readonly,\n required = this.required,\n name = this.name,\n state = this.state,\n visible = this.visible,\n size = this.size,\n isHovered = this.isHovered,\n hasFocus = this.hasFocus,\n labelSelected = this.labelSelected,\n buttonVariant = this.buttonVariant,\n buttonOnly = this.buttonOnly;\n var value = toString(this.value) || '';\n var invalid = state === false || required && !value;\n var btnScope = {\n isHovered: isHovered,\n hasFocus: hasFocus,\n state: state,\n opened: visible\n };\n var $button = h('button', {\n staticClass: 'btn',\n class: (_class = {}, _defineProperty(_class, \"btn-\".concat(buttonVariant), buttonOnly), _defineProperty(_class, \"btn-\".concat(size), size), _defineProperty(_class, 'h-auto', !buttonOnly), _defineProperty(_class, 'dropdown-toggle', buttonOnly), _defineProperty(_class, 'dropdown-toggle-no-caret', buttonOnly), _class),\n attrs: {\n id: idButton,\n type: 'button',\n disabled: disabled,\n 'aria-haspopup': 'dialog',\n 'aria-expanded': visible ? 'true' : 'false',\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n mousedown: this.onMousedown,\n click: this.toggle,\n keydown: this.toggle,\n // Handle ENTER, SPACE and DOWN\n '!focus': this.setFocus,\n '!blur': this.setFocus\n },\n ref: 'toggle'\n }, [this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT, btnScope) :\n /* istanbul ignore next */\n h(BIconChevronDown, {\n props: {\n scale: 1.25\n }\n })]); // Hidden input\n\n var $hidden = h();\n\n if (name && !disabled) {\n $hidden = h('input', {\n attrs: {\n type: 'hidden',\n name: name || null,\n form: this.form || null,\n value: value\n }\n });\n } // Dropdown content\n\n\n var $menu = h('div', {\n staticClass: 'dropdown-menu',\n class: [this.menuClass, {\n show: visible,\n 'dropdown-menu-right': this.right\n }],\n attrs: {\n id: idMenu,\n role: 'dialog',\n tabindex: '-1',\n 'aria-modal': 'false',\n 'aria-labelledby': idLabel\n },\n on: {\n keydown: this.onKeydown // Handle ESC\n\n },\n ref: 'menu'\n }, [this.normalizeSlot(SLOT_NAME_DEFAULT, {\n opened: visible\n })]); // Value label\n\n var $label = h('label', {\n class: buttonOnly ? 'sr-only' // Hidden in button only mode\n : ['form-control', // Mute the text if showing the placeholder\n {\n 'text-muted': !value\n }, this.stateClass, this.sizeFormClass],\n attrs: {\n id: idLabel,\n for: idButton,\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n // Disable bubbling of the click event to\n // prevent menu from closing and re-opening\n '!click':\n /* istanbul ignore next */\n function click(event) {\n stopEvent(event, {\n preventDefault: false\n });\n }\n }\n }, [value ? this.formattedValue || value : this.placeholder || '', // Add the selected label for screen readers when a value is provided\n value && labelSelected ? h('bdi', {\n staticClass: 'sr-only'\n }, labelSelected) : '']); // Return the custom form control wrapper\n\n return h('div', {\n staticClass: 'b-form-btn-label-control dropdown',\n class: [this.directionClass, this.boundaryClass, [{\n 'btn-group': buttonOnly,\n 'form-control': !buttonOnly,\n focus: hasFocus && !buttonOnly,\n show: visible,\n 'is-valid': state === true,\n 'is-invalid': state === false\n }, buttonOnly ? null : this.sizeFormClass]],\n attrs: {\n id: idWrapper,\n role: buttonOnly ? null : 'group',\n lang: this.lang || null,\n dir: this.computedDir,\n 'aria-disabled': disabled,\n 'aria-readonly': readonly && !disabled,\n 'aria-labelledby': idLabel,\n 'aria-invalid': state === false || required && !value ? 'true' : null,\n 'aria-required': required ? 'true' : null\n }\n }, [$button, $hidden, $menu, $label]);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_DATEPICKER } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT } from '../../constants/slots';\nimport { createDate, constrainDate, formatYMD, parseYMD } from '../../utils/date';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { omit, pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { BIconCalendar, BIconCalendarFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BCalendar, props as BCalendarProps } from '../calendar/calendar';\nimport { BVFormBtnLabelControl, props as BVFormBtnLabelControlProps } from '../form-btn-label-control/bv-form-btn-label-control'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nvar calendarProps = omit(BCalendarProps, ['block', 'hidden', 'id', 'noKeyNav', 'roleDescription', 'value', 'width']);\nvar formBtnLabelControlProps = omit(BVFormBtnLabelControlProps, ['formattedValue', 'id', 'lang', 'rtl', 'value']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), calendarProps), formBtnLabelControlProps), {}, {\n // Width of the calendar dropdown\n calendarWidth: makeProp(PROP_TYPE_STRING, '270px'),\n closeButton: makeProp(PROP_TYPE_BOOLEAN, false),\n closeButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-secondary'),\n // Dark mode\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n labelCloseButton: makeProp(PROP_TYPE_STRING, 'Close'),\n labelResetButton: makeProp(PROP_TYPE_STRING, 'Reset'),\n labelTodayButton: makeProp(PROP_TYPE_STRING, 'Select today'),\n noCloseOnSelect: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButton: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-danger'),\n resetValue: makeProp(PROP_TYPE_DATE_STRING),\n todayButton: makeProp(PROP_TYPE_BOOLEAN, false),\n todayButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-primary')\n})), NAME_FORM_DATEPICKER); // --- Main component ---\n// @vue/component\n\nexport var BFormDatepicker = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_DATEPICKER,\n mixins: [idMixin, modelMixin],\n props: props,\n data: function data() {\n return {\n // We always use `YYYY-MM-DD` value internally\n localYMD: formatYMD(this[MODEL_PROP_NAME]) || '',\n // If the popup is open\n isVisible: false,\n // Context data from BCalendar\n localLocale: null,\n isRTL: false,\n formattedValue: '',\n activeYMD: ''\n };\n },\n computed: {\n calendarYM: function calendarYM() {\n // Returns the calendar year/month\n // Returns the `YYYY-MM` portion of the active calendar date\n return this.activeYMD.slice(0, -3);\n },\n computedLang: function computedLang() {\n return (this.localLocale || '').replace(/-u-.*$/i, '') || null;\n },\n computedResetValue: function computedResetValue() {\n return formatYMD(constrainDate(this.resetValue)) || '';\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.localYMD = formatYMD(newValue) || '';\n }), _defineProperty(_watch, \"localYMD\", function localYMD(newValue) {\n // We only update the v-model when the datepicker is open\n if (this.isVisible) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newValue) || null : newValue || '');\n }\n }), _defineProperty(_watch, \"calendarYM\", function calendarYM(newValue, oldValue) {\n // Displayed calendar month has changed\n // So possibly the calendar height has changed...\n // We need to update popper computed position\n if (newValue !== oldValue && oldValue) {\n try {\n this.$refs.control.updatePopper();\n } catch (_unused) {}\n }\n }), _watch),\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.control);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.control);\n }\n },\n // Private methods\n setAndClose: function setAndClose(ymd) {\n var _this = this;\n\n this.localYMD = ymd; // Close calendar popup, unless `noCloseOnSelect`\n\n if (!this.noCloseOnSelect) {\n this.$nextTick(function () {\n _this.$refs.control.hide(true);\n });\n }\n },\n onSelected: function onSelected(ymd) {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setAndClose(ymd);\n });\n },\n onInput: function onInput(ymd) {\n if (this.localYMD !== ymd) {\n this.localYMD = ymd;\n }\n },\n onContext: function onContext(ctx) {\n var activeYMD = ctx.activeYMD,\n isRTL = ctx.isRTL,\n locale = ctx.locale,\n selectedYMD = ctx.selectedYMD,\n selectedFormatted = ctx.selectedFormatted;\n this.isRTL = isRTL;\n this.localLocale = locale;\n this.formattedValue = selectedFormatted;\n this.localYMD = selectedYMD;\n this.activeYMD = activeYMD; // Re-emit the context event\n\n this.$emit(EVENT_NAME_CONTEXT, ctx);\n },\n onTodayButton: function onTodayButton() {\n // Set to today (or min/max if today is out of range)\n this.setAndClose(formatYMD(constrainDate(createDate(), this.min, this.max)));\n },\n onResetButton: function onResetButton() {\n this.setAndClose(this.computedResetValue);\n },\n onCloseButton: function onCloseButton() {\n this.$refs.control.hide(true);\n },\n // Menu handlers\n onShow: function onShow() {\n this.isVisible = true;\n },\n onShown: function onShown() {\n var _this3 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this3.$refs.calendar);\n\n _this3.$emit(EVENT_NAME_SHOWN);\n });\n },\n onHidden: function onHidden() {\n this.isVisible = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n // Render helpers\n defaultButtonFn: function defaultButtonFn(_ref) {\n var isHovered = _ref.isHovered,\n hasFocus = _ref.hasFocus;\n return this.$createElement(isHovered || hasFocus ? BIconCalendarFill : BIconCalendar, {\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n },\n render: function render(h) {\n var localYMD = this.localYMD,\n disabled = this.disabled,\n readonly = this.readonly,\n dark = this.dark,\n $props = this.$props,\n $scopedSlots = this.$scopedSlots;\n var placeholder = isUndefinedOrNull(this.placeholder) ? this.labelNoDateSelected : this.placeholder; // Optional footer buttons\n\n var $footer = [];\n\n if (this.todayButton) {\n var label = this.labelTodayButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.todayButtonVariant\n },\n attrs: {\n 'aria-label': label || null\n },\n on: {\n click: this.onTodayButton\n }\n }, label));\n }\n\n if (this.resetButton) {\n var _label = this.labelResetButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.resetButtonVariant\n },\n attrs: {\n 'aria-label': _label || null\n },\n on: {\n click: this.onResetButton\n }\n }, _label));\n }\n\n if (this.closeButton) {\n var _label2 = this.labelCloseButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled,\n size: 'sm',\n variant: this.closeButtonVariant\n },\n attrs: {\n 'aria-label': _label2 || null\n },\n on: {\n click: this.onCloseButton\n }\n }, _label2));\n }\n\n if ($footer.length > 0) {\n $footer = [h('div', {\n staticClass: 'b-form-date-controls d-flex flex-wrap',\n class: {\n 'justify-content-between': $footer.length > 1,\n 'justify-content-end': $footer.length < 2\n }\n }, $footer)];\n }\n\n var $calendar = h(BCalendar, {\n staticClass: 'b-form-date-calendar w-100',\n props: _objectSpread(_objectSpread({}, pluckProps(calendarProps, $props)), {}, {\n hidden: !this.isVisible,\n value: localYMD,\n valueAsDate: false,\n width: this.calendarWidth\n }),\n on: {\n selected: this.onSelected,\n input: this.onInput,\n context: this.onContext\n },\n scopedSlots: pick($scopedSlots, ['nav-prev-decade', 'nav-prev-year', 'nav-prev-month', 'nav-this-month', 'nav-next-month', 'nav-next-year', 'nav-next-decade']),\n key: 'calendar',\n ref: 'calendar'\n }, $footer);\n return h(BVFormBtnLabelControl, {\n staticClass: 'b-form-datepicker',\n props: _objectSpread(_objectSpread({}, pluckProps(formBtnLabelControlProps, $props)), {}, {\n formattedValue: localYMD ? this.formattedValue : '',\n id: this.safeId(),\n lang: this.computedLang,\n menuClass: [{\n 'bg-dark': dark,\n 'text-light': dark\n }, this.menuClass],\n placeholder: placeholder,\n rtl: this.isRTL,\n value: localYMD\n }),\n on: {\n show: this.onShow,\n shown: this.onShown,\n hidden: this.onHidden\n },\n scopedSlots: _defineProperty({}, SLOT_NAME_BUTTON_CONTENT, $scopedSlots[SLOT_NAME_BUTTON_CONTENT] || this.defaultButtonFn),\n ref: 'control'\n }, [$calendar]);\n }\n});","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});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CHANGED, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_PREV } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_TABS_END, SLOT_NAME_TABS_START, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Filter function to filter out disabled tabs\n\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVTabButton = /*#__PURE__*/Vue.extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n bvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvt: function handleEvt(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n\n var type = event.type,\n keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render: function render(h) {\n var id = this.id,\n tabIndex = this.tabIndex,\n setSize = this.setSize,\n posInSet = this.posInSet,\n controls = this.controls,\n handleEvt = this.handleEvt;\n var _this$tab = this.tab,\n title = _this$tab.title,\n localActive = _this$tab.localActive,\n disabled = _this$tab.disabled,\n titleItemClass = _this$tab.titleItemClass,\n titleLinkClass = _this$tab.titleLinkClass,\n titleLinkAttributes = _this$tab.titleLinkAttributes;\n var $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled: disabled\n }, titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: disabled\n },\n attrs: _objectSpread(_objectSpread({}, titleLinkAttributes), {}, {\n id: id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n }),\n on: {\n click: handleEvt,\n keydown: handleEvt\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n}); // --- Props ---\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), navProps), {}, {\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n card: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_TABS); // --- Main component ---\n// @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n props: props,\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n var $tab = this.tabs[newValue];\n\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n }), _defineProperty(_watch, \"currentTab\", function currentTab(newValue) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function ($tab, i) {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit(MODEL_EVENT_NAME, index);\n }), _defineProperty(_watch, \"tabs\", function tabs(newValue, oldValue) {\n var _this = this;\n\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }), oldValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n _this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n }), _defineProperty(_watch, \"registeredTabs\", function registeredTabs() {\n this.updateTabs();\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted: function mounted() {\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.setObserver(false); // Ensure no references to child instances exist\n\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab: function unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function ($t) {\n return $t !== $tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver() {\n var _this2 = this;\n\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n var handler = function handler() {\n _this2.$nextTick(function () {\n requestAF(function () {\n _this2.updateTabs();\n });\n });\n }; // Watch for changes to `` sub components\n\n\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n var $tabs = this.registeredTabs.filter(function ($tab) {\n return $tab.$children.filter(function ($t) {\n return $t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n /* istanbul ignore next: too difficult to test */\n\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n var selector = $tabs.map(function ($tab) {\n return \"#\".concat($tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function ($el) {\n return $el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n\n\n return stableSort($tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n updateTabs: function updateTabs() {\n var $tabs = this.getTabs(); // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n\n var tabIndex = $tabs.indexOf($tabs.slice().reverse().find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n })); // Else try setting to `currentTab`\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find first non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n } // Ensure only one tab is active at a time\n\n\n $tabs.forEach(function ($tab, index) {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab($tab) {\n return (this.$refs.buttons || []).find(function ($btn) {\n return $btn.tab === $tab;\n });\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton: function updateButton($tab) {\n var $button = this.getButtonForTab($tab);\n\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab: function activateTab($tab) {\n var currentTab = this.currentTab,\n $tabs = this.tabs;\n var result = false;\n\n if ($tab) {\n var index = $tabs.indexOf($tab);\n\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n var tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n } // Couldn't set tab, so ensure v-model is up to date\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab: function deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function ($t) {\n return $t !== $tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton: function focusButton($tab) {\n var _this3 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this3.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick: function emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab: function clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var $tab = this.tabs.find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var $tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var align = this.align,\n card = this.card,\n end = this.end,\n fill = this.fill,\n firstTab = this.firstTab,\n justified = this.justified,\n lastTab = this.lastTab,\n nextTab = this.nextTab,\n noKeyNav = this.noKeyNav,\n noNavStyle = this.noNavStyle,\n pills = this.pills,\n previousTab = this.previousTab,\n small = this.small,\n $tabs = this.tabs,\n vertical = this.vertical; // Currently active tab\n\n var $activeTab = $tabs.find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var $fallbackTab = $tabs.find(function ($tab) {\n return !$tab.disabled;\n }); // For each `` found create the tab buttons\n\n var $buttons = $tabs.map(function ($tab, index) {\n var _on;\n\n var safeId = $tab.safeId; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n var tabIndex = null;\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(\"_BV_tab_button_\") : null),\n noKeyNav: noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex: tabIndex\n },\n on: (_on = {}, _defineProperty(_on, EVENT_NAME_CLICK, function (event) {\n _this4.clickTab($tab, event);\n }), _defineProperty(_on, EVENT_NAME_FIRST, firstTab), _defineProperty(_on, EVENT_NAME_PREV, previousTab), _defineProperty(_on, EVENT_NAME_NEXT, nextTab), _defineProperty(_on, EVENT_NAME_LAST, lastTab), _on),\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true\n });\n });\n var $nav = h(BNav, {\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: fill,\n justified: justified,\n align: align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n vertical: vertical,\n small: small,\n cardHeader: card && !vertical\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: [{\n 'card-header': card && !vertical && !end,\n 'card-footer': card && !vertical && end,\n 'col-auto': vertical\n }, this.navWrapperClass],\n key: 'bv-tabs-nav'\n }, [$nav]);\n var $children = this.normalizeSlot() || [];\n var $empty = h();\n\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active', {\n 'card-body': card\n }],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n\n var $content = h('div', {\n staticClass: 'tab-content',\n class: [{\n col: vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: vertical,\n 'no-gutters': vertical && card\n },\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});"],"sourceRoot":""}