{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./src/@core/utils/filter.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?fb63","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?d65c","webpack:///./src/@core/components/toastification/ToastificationContent.vue","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/form-radio-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-bottom-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-busy.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-empty.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/sanitize-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/stringify-record-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-filtering.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-provider.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-selectable.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-sorting.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/default-sort-compare.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-top-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-caption.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./src/views/apps/user/userStoreModule.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/normalize-fields.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-items.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack:///./node_modules/flatpickr/dist/esm/types/options.js","webpack:///./node_modules/flatpickr/dist/esm/l10n/default.js","webpack:///./node_modules/flatpickr/dist/esm/utils/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dom.js","webpack:///./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dates.js","webpack:///./node_modules/flatpickr/dist/esm/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?dc3a","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?923e","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?a580","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./src/views/apps/user/users-list/useUsersList.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.min.js","webpack:///./src/@core/comp-functions/forms/form-utils.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/@core/utils/utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue?6441","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?5926","webpack:///src/views/apps/user/users-edit/UserEditTabAccount.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?162e","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?8600","webpack:///src/views/apps/user/users-edit/UserEditTabInformation.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?d7f1","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue?d682","webpack:///src/views/apps/user/users-edit/UserEditTabSocial.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue?5e8a","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue","webpack:///src/views/apps/user/users-edit/UsersEdit.vue","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue?83ef","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"names":["formSelectionMixin","extend","computed","selectionStart","cache","get","this","$refs","input","set","val","selectionEnd","selectionDirection","methods","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","props","icon","stacked","BIcon","name","functional","render","h","_ref","data","parent","replace","concat","kFormatter","num","toFixed","title","replacer","str","toString","arr","split","capitalizedArray","word","capitalized","charAt","toUpperCase","slice","join","avatarText","nameArray","map","formatDate","formatting","month","day","year","Intl","DateTimeFormat","format","Date","formatDateToMonthShort","toTimeForCurrentDay","date","isToday","hour","minute","filterTags","toInteger","requireObjectCoercible","module","exports","repeat","count","String","result","n","Infinity","RangeError","id","inline","novalidate","validated","BForm","children","class","attrs","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","cardImgProps","bind","imgSrc","required","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","footer","footerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","domProps","$content","overlay","staticClass","$footer","hasFooterSlot","tag","_vm","_h","$createElement","_c","_self","variant","_s","_e","text","on","$event","$emit","hideClose","staticRenderFns","component","footVariant","BTfoot","mixins","provide","bvTableRowGroup","inject","bvTable","default","inheritAttrs","isTfoot","isDark","dark","isStacked","isResponsive","isStickyHeader","hasStickyHeader","stickyHeader","tableVariant","tfootClasses","tfootAttrs","bvAttrs","role","bvListeners","normalizeSlot","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","BFormRadioGroup","bvRadioGroup","isRadioGroup","bottomRowMixin","renderBottomRow","fields","computedFields","tbodyTrClass","tbodyTrAttr","hasNormalizedSlot","columns","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","watch","newValue","oldValue","stopIfBusy","event","renderBusy","colspan","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","html","stringifyObjectValues","sort","k","v","row","ignoreFields","includeFields","fieldsObj","undefined","formattedRow","reduce","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","prototype","call","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","arr2","DEBOUNCE_DEPRECATED_MSG","filterDebounce","filterFunction","filterIgnoredFields","filterIncludedFields","filteringMixin","localFilter","filterSanitize","computedFilterIgnored","identity","computedFilterIncluded","computedFilterDebounce","ms","warn","localFiltering","hasProvider","noProviderFiltering","filteredCheck","filteredItems","localItems","localFilterFn","criteria","filterFn","filterFnFactory","defaultFilterFnFactory","$_filterTimer","clearFilterTimer","deep","handler","newCriteria","_this","timeout","setTimeout","created","_this2","$nextTick","Boolean","beforeDestroy","clearTimeout","fn","item","_this3","regExp","pattern","RegExp","lastIndex","computedFieldsObj","currentPage","perPage","paginationMixin","localPaging","noProviderPaging","paginatedItems","sortedItems","math","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","apiUrl","noProviderSorting","providerMixin","providerTriggerContext","sortBy","sortDesc","localSortBy","localSortDesc","_providerUpdate","mounted","listenOnRoot","refresh","$off","$on","clearSelected","_providerSetLocal","emitOnRoot","context","then","e","message","_props","_watch","SELECT_MODES","noSelectOnClick","selectMode","selectable","selectedVariant","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","some","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","equal","setSelectionHandlers","_selectedRows","idx","beforeMount","selectRow","index","isRowSelected","selectedLastClicked","unselectRow","selectAllRows","selectableRowClasses","selectableRowAttrs","method","selectionHandler","selected","shiftKey","ctrlKey","metaKey","a","b","_ref$sortBy","_ref$formatter","_ref$locale","locale","_ref$localeOptions","localeOptions","_ref$nullLast","nullLast","aa","bb","localeCompare","MODEL_PROP_NAME_SORT_BY","MODEL_EVENT_NAME_SORT_BY","MODEL_PROP_NAME_SORT_DESC","MODEL_EVENT_NAME_SORT_DESC","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","SORT_DIRECTION_LAST","SORT_DIRECTIONS","labelSortAsc","labelSortClear","labelSortDesc","noFooterSorting","noLocalSorting","noSortReset","numeric","sortingMixin","localSorting","isSortable","f","sortable","sortCompareLocale","sortNullLast","sortCompare","sortCompareOptions","usage","sortByFormatted","getFieldFormatter","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortDirection","sortKey","sortTheadThClasses","sortIconLeft","sortTheadThAttrs","ariaSort","sortTheadThLabel","labelSorting","topRowMixin","renderTopRow","BTable","rightAlign","verticalAlign","BMedia","$children","$aside","BInputGroupPrepend","append","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","defaultValue","getThValues","thValue","type","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","label","isRowHeader","formatted","stickyColumn","cellTag","cellVariant","tdClass","thAttr","tdAttr","stackedHeading","scope","unformatted","toggleDetails","detailsShowing","rowSelected","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","striped","primaryKey","rowShowDetails","hasRowClickHandler","$listeners","$rows","detailsId","safeId","$tds","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableAttrs","userTrClasses","userTrAttrs","tabindex","mouseenter","mouseleave","ref","refInFor","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","getTbodyTrs","tbody","$el","trs","tr","getTbodyTrIndex","el","tagName","indexOf","hasListener","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTbody","$busy","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","click","keydown","$tbody","$props","_objectSpread2","BFormCheckboxGroup","bvCheckGroup","caption","captionHtml","captionMixin","captionId","renderCaption","$caption","hasCaptionSlot","classof","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ariaInvalid","autocomplete","debounce","lazy","lazyFormatter","number","placeholder","plaintext","readonly","trim","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","formatValue","force","updateValue","doUpdate","$input","onInput","composing","formattedValue","defaultPrevented","propagation","onChange","onBlur","focus","disabled","blur","isText","BInputGroupAddon","TYPES","list","max","min","noWheel","step","BFormInput","localType","computedAttrs","form","computedAriaInvalid","computedListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","blank","blankColor","block","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","titleTag","BCardTitle","namespaced","state","getters","mutations","actions","fetchUsers","queryParams","Promise","resolve","reject","axios","params","response","catch","error","fetchUser","addUser","userData","post","user","computeJustifyContent","cardHeader","fill","justified","pills","small","tabs","vertical","BNav","origFields","sample","memo","itemsMixin","appendHtml","prepend","prependHtml","size","BInputGroup","$prepend","hasPrependSlot","$append","hasAppendSlot","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","getWeek","givenDate","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","bool","wait","t","arrayify","toggleClass","elem","className","classList","add","remove","createElement","content","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","setAttribute","appendChild","getEventTarget","composedPath","path","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","parseFloat","H","J","K","getHours","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","setFullYear","Z","ISODate","d","minutes","setMinutes","j","l","m","u","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","c","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","datestr","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","duration","DAY","getDefaultHours","hours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","assign","flatpickr","defaultConfig","setupHelperFunctions","utils","currentMonth","yr","currentYear","init","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","setCalendarWidth","isSafari","positionCalendar","triggerEvent","bindToInstance","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","weekWrapper","removeProperty","updateTime","defaultDate","defaults","getMilliseconds","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","onYearInput","eventTarget","delta","changeYear","ev","addEventListener","_handlers","removeEventListener","triggerChange","evt","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","capture","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","timeIncrement","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","buildMonthSwitch","redraw","incrementNumInput","contains","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","abs","changeMonth","focusOnDay","offset","dayFocused","isInView","activeElement","startElem","buildMonthDays","firstOfMonth","prevMonthDays","getDaysInMonth","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","yearElement","getElementsByTagName","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","getAttribute","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","destroy","lastChild","_type","removeAttribute","isCalendarElem","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","newYear","newYearNum","isNewYear","_a","dateToCheck","enable","parsed","to","allowKeydown","allowInlineKeydown","isTimeObj","preventDefault","focusAndClose","stopPropagation","elems","pluginElements","x","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","JSON","parse","stringify","dataset","formats","_enable","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","querySelector","l10ns","customPositionElement","calendarHeight","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","showOnTop","pageYOffset","pageXOffset","isCenter","isRight","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","editableSheet","styleSheets","sheet","createStyleSheet","head","msMaxTouchPoints","selectedDate","shouldChangeMonth","selectedIndex","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","option","setSelectedDate","inputDate","rule","preloadedDate","nodeName","inputType","mobileFormatStr","hooks","initEvent","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","parseCountDown","show","parseShow","dismissLabel","dismissible","fade","BAlert","countDown","localShow","clearCountDownInterval","$_countDownTimeout","dismiss","$alert","$dismissButton","noFade","MODEL_PROP_NAME_ACTIVE","MODEL_EVENT_NAME_ACTIVE","BTab","bvTabs","localActive","_isTab","tabClasses","active","card","activeTabClass","controlledBy","buttonId","computedNoFade","computedLazy","activate","deactivate","firstTab","registerTab","updated","updateButton","unregisterTab","activateTab","deactivateTab","directives","bodyClass","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","footerClass","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","args","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","EVENT_FILTER","BMediaAside","BMediaBody","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","headVariant","renderTfoot","renderThead","stableSort","compareFn","TABLE_TAG_NAMES","filterEvent","labelFor","$","thisNumberValue","fails","nativeToFixed","floor","pow","log","x2","FORCED","proto","forced","fractionDigits","z","fractDigits","sign","multiply","c2","divide","dataToString","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","useUsersList","toast","useToast","refUserListTable","tableColumns","totalUsers","perPageOptions","searchQuery","isSortDirDesc","roleFilter","planFilter","statusFilter","dataMeta","localItemsCount","of","refetchData","callback","store","dispatch","q","page","plan","status","users","total","ToastificationContent","resolveUserRoleVariant","resolveUserRoleIcon","resolveUserStatusVariant","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","isStackedAlways","hasHeadClickListener","makeCell","labelHtml","ariaLabel","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","r","toStringTag","__esModule","create","hasOwnProperty","p","validator","events","fp","getElem","fpInput","$watch","watchDisabled","immediate","install","useInputImageRenderer","inputEl","inputImageRenderer","file","files","reader","FileReader","readAsDataURL","_typeof","isObject","today","isDynamicRouteActive","route","router","resolvedRoute","currentRoute","useRouter","vm","getCurrentInstance","proxy","reactive","$route","toRefs","$router","BInputGroupAppend","textSelectionActive","sel","containsNode","BInputGroupText","colgroupMixin","renderColgroup","$colgroup","_v","_u","avatar","fullName","refInputEl","model","$$v","expression","$store","appConfig","isRTL","statusOptions","roleOptions","permissionsData","BButton","BAvatar","BRow","BCol","BFormGroup","BFormCheckbox","vSelect","setup","base64","previewEl","userDataInfo","languageOptions","genderOptions","contactOptionsOptions","dob","mobile","website","language","gender","contactOptions","addressLine1","addressLine2","postcode","city","country","_l","socialField","dataField","userDataSocial","twitter","facebook","instagram","github","codepen","slack","socialInputs","BTabs","BLink","UserEditTabAccount","UserEditTabInformation","UserEditTabSocial","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","linkProps","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","button","buttonType","square","bvAvatarGroup","localSrc","computedSize","computedVariant","computedRounded","fontStyle","fontSize","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","onImgError","onClick","_class2","link","$badge","hasBadgeSlot","badgeText","componentData","noop","notDisabled","tab","BVTabButton","controls","noKeyNav","posInSet","setSize","handleEvt","_this$tab","titleItemClass","titleLinkClass","titleLinkAttributes","$link","activeNavItemClass","navProps","contentClass","navClass","navWrapperClass","noNavStyle","currentTab","registeredTabs","localNavClass","classes","$tab","previousTab","nextTab","updateTabs","$_observer","setObserver","$t","disconnect","childList","subtree","attributes","attributeFilter","getTabs","$tabs","order","reverse","find","getButtonForTab","buttons","$btn","$button","$forceUpdate","tabEvent","cancelable","vueTarget","componentId","focusButton","emitTabClick","clickTab","currentIndex","lastTab","_this4","$activeTab","$fallbackTab","$buttons","_on","$nav","col"],"mappings":"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","file":"js/chunk-142f9071.377ee893.js","sourcesContent":["import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../vue';\nimport { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return null;\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n icon: makeProp(PROP_TYPE_STRING),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n icon: null\n })\n }));\n }\n});","import { isToday } from './utils'\n\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\n\nexport const title = (value, replacer = ' ') => {\n if (!value) return ''\n const str = value.toString()\n\n const arr = str.split(replacer)\n const capitalizedArray = []\n arr.forEach(word => {\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\n capitalizedArray.push(capitalized)\n })\n return capitalizedArray.join(' ')\n}\n\nexport const avatarText = value => {\n if (!value) return ''\n const nameArray = value.split(' ')\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\n}\n\n/**\n * Format and return date in Humanize format\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\n * @param {String} value date to format\n * @param {Object} formatting Intl object to format with\n */\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\n if (!value) return value\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n/**\n * Return short human friendly month representation of date\n * Can also convert date to only time if date is of today (Better UX)\n * @param {String} value date to format\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\n */\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\n const date = new Date(value)\n let formatting = { month: 'short', day: 'numeric' }\n\n if (toTimeForCurrentDay && isToday(date)) {\n formatting = { hour: 'numeric', minute: 'numeric' }\n }\n\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n// Strip all the tags from markup and return plain text\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toastification\"},[_c('div',{staticClass:\"d-flex align-items-start\"},[_c('b-avatar',{staticClass:\"mr-75 flex-shrink-0\",attrs:{\"variant\":_vm.variant,\"size\":\"1.8rem\"}},[_c('feather-icon',{attrs:{\"icon\":_vm.icon,\"size\":\"15\"}})],1),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',[(_vm.title)?_c('h5',{staticClass:\"mb-0 font-weight-bolder toastification-title\",class:(\"text-\" + _vm.variant),domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e(),(_vm.text)?_c('small',{staticClass:\"d-inline-block text-body\",domProps:{\"textContent\":_vm._s(_vm.text)}}):_vm._e()]),_c('span',{staticClass:\"cursor-pointer toastification-close-icon ml-auto \",on:{\"click\":function($event){return _vm.$emit('close-toast')}}},[(!_vm.hideClose)?_c('feather-icon',{staticClass:\"text-body\",attrs:{\"icon\":\"XIcon\"}}):_vm._e()],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToastificationContent.vue?vue&type=template&id=00bc57af&scoped=true&\"\nimport script from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nexport * from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToastificationContent.vue?vue&type=style&index=0&id=00bc57af&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00bc57af\",\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Supported values: 'lite', 'dark', or null\n footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTfoot = /*#__PURE__*/Vue.extend({\n name: NAME_TFOOT,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTfoot: function isTfoot() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n tfootClasses: function tfootClasses() {\n return [this.footVariant ? \"thead-\".concat(this.footVariant) : null];\n },\n tfootAttrs: function tfootAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'rowgroup'\n });\n }\n },\n render: function render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\n }));\n }\n});","import { Vue } from '../../vue';\nimport { NAME_FORM_RADIO_GROUP } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { formRadioCheckGroupMixin, props as formRadioCheckGroupProps } from '../../mixins/form-radio-check-group'; // --- Props ---\n\nexport var props = makePropsConfigurable(formRadioCheckGroupProps, NAME_FORM_RADIO_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BFormRadioGroup = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO_GROUP,\n mixins: [formRadioCheckGroupMixin],\n provide: function provide() {\n return {\n bvRadioGroup: this\n };\n },\n props: props,\n computed: {\n isRadioGroup: function isRadioGroup() {\n return true;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_BOTTOM_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var bottomRowMixin = Vue.extend({\n props: props,\n methods: {\n renderBottomRow: function renderBottomRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_BOTTOM_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-bottom-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-bottom') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-bottom') : tbodyTrAttr,\n key: 'b-bottom-row'\n }, this.normalizeSlot(SLOT_NAME_BOTTOM_ROW, {\n columns: fields.length,\n fields: fields\n }));\n }\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Constants ---\n\nvar MODEL_PROP_NAME_BUSY = 'busy';\nvar MODEL_EVENT_NAME_BUSY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_BUSY; // --- Props ---\n\nexport var props = _defineProperty({}, MODEL_PROP_NAME_BUSY, makeProp(PROP_TYPE_BOOLEAN, false)); // --- Mixin ---\n// @vue/component\n\nexport var busyMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localBusy: false\n };\n },\n computed: {\n computedBusy: function computedBusy() {\n return this[MODEL_PROP_NAME_BUSY] || this.localBusy;\n }\n },\n watch: {\n localBusy: function localBusy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_BUSY, newValue);\n }\n }\n },\n methods: {\n // Event handler helper\n stopIfBusy: function stopIfBusy(event) {\n // If table is busy (via provider) then don't propagate\n if (this.computedBusy) {\n stopEvent(event);\n return true;\n }\n\n return false;\n },\n // Render the busy indicator or return `null` if not busy\n renderBusy: function renderBusy() {\n var tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Return a busy indicator row, or `null` if not busy\n\n if (this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY)) {\n return h(BTr, {\n staticClass: 'b-table-busy-slot',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, SLOT_NAME_TABLE_BUSY) : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, SLOT_NAME_TABLE_BUSY) : tbodyTrAttr,\n key: 'table-busy-slot'\n }, [h(BTd, {\n props: {\n colspan: this.computedFields.length || null\n }\n }, [this.normalizeSlot(SLOT_NAME_TABLE_BUSY)])]);\n } // We return `null` here so that we can determine if we need to\n // render the table items rows or not\n\n\n return null;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_EMPTYFILTERED, SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Props ---\n\nexport var props = {\n emptyFilteredHtml: makeProp(PROP_TYPE_STRING),\n emptyFilteredText: makeProp(PROP_TYPE_STRING, 'There are no records matching your request'),\n emptyHtml: makeProp(PROP_TYPE_STRING),\n emptyText: makeProp(PROP_TYPE_STRING, 'There are no records to show'),\n showEmpty: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var emptyMixin = Vue.extend({\n props: props,\n methods: {\n renderEmpty: function renderEmpty() {\n var items = this.computedItems;\n var h = this.$createElement;\n var $empty = h();\n\n if (this.showEmpty && (!items || items.length === 0) && !(this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY))) {\n var fields = this.computedFields,\n isFiltered = this.isFiltered,\n emptyText = this.emptyText,\n emptyHtml = this.emptyHtml,\n emptyFilteredText = this.emptyFilteredText,\n emptyFilteredHtml = this.emptyFilteredHtml,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n $empty = this.normalizeSlot(isFiltered ? SLOT_NAME_EMPTYFILTERED : SLOT_NAME_EMPTY, {\n emptyFilteredHtml: emptyFilteredHtml,\n emptyFilteredText: emptyFilteredText,\n emptyHtml: emptyHtml,\n emptyText: emptyText,\n fields: fields,\n // Not sure why this is included, as it will always be an empty array\n items: items\n });\n\n if (!$empty) {\n $empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: isFiltered ? htmlOrText(emptyFilteredHtml, emptyFilteredText) : htmlOrText(emptyHtml, emptyText)\n });\n }\n\n $empty = h(BTd, {\n props: {\n colspan: fields.length || null\n }\n }, [h('div', {\n attrs: {\n role: 'alert',\n 'aria-live': 'polite'\n }\n }, [$empty])]);\n $empty = h(BTr, {\n staticClass: 'b-table-empty-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-empty') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-empty') : tbodyTrAttr,\n key: isFiltered ? 'b-empty-filtered-row' : 'b-empty-row'\n }, [$empty]);\n }\n\n return $empty;\n }\n }\n});","import { isDate, isObject, isUndefinedOrNull } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string'; // Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Strings are returned as-is\n// Numbers get converted to string\n// `null` and `undefined` values are filtered out\n// Dates are converted to their native string format\n\nexport var stringifyObjectValues = function stringifyObjectValues(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n } // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n\n\n if (isObject(value) && !isDate(value)) {\n return keys(value).sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n .map(function (k) {\n return stringifyObjectValues(value[k]);\n }).filter(function (v) {\n return !!v;\n }) // Ignore empty strings\n .join(' ');\n }\n\n return toString(value);\n};","import { arrayIncludes } from '../../../utils/array';\nimport { isArray, isFunction } from '../../../utils/inspect';\nimport { clone, keys, pick } from '../../../utils/object';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Return a copy of a row after all reserved fields have been filtered out\n\nexport var sanitizeRow = function sanitizeRow(row, ignoreFields, includeFields) {\n var fieldsObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // We first need to format the row based on the field configurations\n // This ensures that we add formatted values for keys that may not\n // exist in the row itself\n var formattedRow = keys(fieldsObj).reduce(function (result, key) {\n var field = fieldsObj[key];\n var filterByFormatted = field.filterByFormatted;\n var formatter = isFunction(filterByFormatted) ?\n /* istanbul ignore next */\n filterByFormatted : filterByFormatted ?\n /* istanbul ignore next */\n field.formatter : null;\n\n if (isFunction(formatter)) {\n result[key] = formatter(row[key], key, row);\n }\n\n return result;\n }, clone(row)); // Determine the allowed keys:\n // - Ignore special fields that start with `_`\n // - Ignore fields in the `ignoreFields` array\n // - Include only fields in the `includeFields` array\n\n var allowedKeys = keys(formattedRow).filter(function (key) {\n return !IGNORED_FIELD_KEYS[key] && !(isArray(ignoreFields) && ignoreFields.length > 0 && arrayIncludes(ignoreFields, key)) && !(isArray(includeFields) && includeFields.length > 0 && !arrayIncludes(includeFields, key));\n });\n return pick(formattedRow, allowedKeys);\n};","import { isObject } from '../../../utils/inspect';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\nimport { sanitizeRow } from './sanitize-row'; // Stringifies the values of a record, ignoring any special top level field keys\n// TODO: Add option to stringify `scopedSlot` items\n\nexport var stringifyRecordValues = function stringifyRecordValues(row, ignoreFields, includeFields, fieldsObj) {\n return isObject(row) ? stringifyObjectValues(sanitizeRow(row, ignoreFields, includeFields, fieldsObj)) :\n /* istanbul ignore next */\n '';\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_FILTERED } from '../../../constants/events';\nimport { PROP_TYPE_REG_EXP, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY, PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { RX_DIGITS, RX_SPACES } from '../../../constants/regex';\nimport { concat } from '../../../utils/array';\nimport { cloneDeep } from '../../../utils/clone-deep';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { toInteger } from '../../../utils/number';\nimport { hasPropFunction, makeProp } from '../../../utils/props';\nimport { escapeRegExp } from '../../../utils/string';\nimport { warn } from '../../../utils/warn';\nimport { stringifyRecordValues } from './stringify-record-values'; // --- Constants ---\n\nvar DEBOUNCE_DEPRECATED_MSG = 'Prop \"filter-debounce\" is deprecated. Use the debounce feature of \"\" instead.'; // --- Props ---\n\nexport var props = {\n filter: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_REG_EXP])),\n filterDebounce: makeProp(PROP_TYPE_NUMBER_STRING, 0, function (value) {\n return RX_DIGITS.test(String(value));\n }),\n filterFunction: makeProp(PROP_TYPE_FUNCTION),\n filterIgnoredFields: makeProp(PROP_TYPE_ARRAY, []),\n filterIncludedFields: makeProp(PROP_TYPE_ARRAY, [])\n}; // --- Mixin ---\n// @vue/component\n\nexport var filteringMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n // Flag for displaying which empty slot to show and some event triggering\n isFiltered: false,\n // Where we store the copy of the filter criteria after debouncing\n // We pre-set it with the sanitized filter value\n localFilter: this.filterSanitize(this.filter)\n };\n },\n computed: {\n computedFilterIgnored: function computedFilterIgnored() {\n return concat(this.filterIgnoredFields || []).filter(identity);\n },\n computedFilterIncluded: function computedFilterIncluded() {\n return concat(this.filterIncludedFields || []).filter(identity);\n },\n computedFilterDebounce: function computedFilterDebounce() {\n var ms = toInteger(this.filterDebounce, 0);\n /* istanbul ignore next */\n\n if (ms > 0) {\n warn(DEBOUNCE_DEPRECATED_MSG, NAME_TABLE);\n }\n\n return ms;\n },\n localFiltering: function localFiltering() {\n return this.hasProvider ? !!this.noProviderFiltering : true;\n },\n // For watching changes to `filteredItems` vs `localItems`\n filteredCheck: function filteredCheck() {\n var filteredItems = this.filteredItems,\n localItems = this.localItems,\n localFilter = this.localFilter;\n return {\n filteredItems: filteredItems,\n localItems: localItems,\n localFilter: localFilter\n };\n },\n // Sanitized/normalize filter-function prop\n localFilterFn: function localFilterFn() {\n // Return `null` to signal to use internal filter function\n var filterFunction = this.filterFunction;\n return hasPropFunction(filterFunction) ? filterFunction : null;\n },\n // Returns the records in `localItems` that match the filter criteria\n // Returns the original `localItems` array if not sorting\n filteredItems: function filteredItems() {\n // Note the criteria is debounced and sanitized\n var items = this.localItems,\n criteria = this.localFilter; // Resolve the filtering function, when requested\n // We prefer the provided filtering function and fallback to the internal one\n // When no filtering criteria is specified the filtering factories will return `null`\n\n var filterFn = this.localFiltering ? this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria) : null; // We only do local filtering when requested and there are records to filter\n\n return filterFn && items.length > 0 ? items.filter(filterFn) : items;\n }\n },\n watch: {\n // Watch for debounce being set to 0\n computedFilterDebounce: function computedFilterDebounce(newValue) {\n if (!newValue && this.$_filterTimer) {\n this.clearFilterTimer();\n this.localFilter = this.filterSanitize(this.filter);\n }\n },\n // Watch for changes to the filter criteria, and debounce if necessary\n filter: {\n // We need a deep watcher in case the user passes\n // an object when using `filter-function`\n deep: true,\n handler: function handler(newCriteria) {\n var _this = this;\n\n var timeout = this.computedFilterDebounce;\n this.clearFilterTimer();\n\n if (timeout && timeout > 0) {\n // If we have a debounce time, delay the update of `localFilter`\n this.$_filterTimer = setTimeout(function () {\n _this.localFilter = _this.filterSanitize(newCriteria);\n }, timeout);\n } else {\n // Otherwise, immediately update `localFilter` with `newFilter` value\n this.localFilter = this.filterSanitize(newCriteria);\n }\n }\n },\n // Watch for changes to the filter criteria and filtered items vs `localItems`\n // Set visual state and emit events as required\n filteredCheck: function filteredCheck(_ref) {\n var filteredItems = _ref.filteredItems,\n localFilter = _ref.localFilter;\n // Determine if the dataset is filtered or not\n var isFiltered = false;\n\n if (!localFilter) {\n // If filter criteria is falsey\n isFiltered = false;\n } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n // If filter criteria is an empty array or object\n isFiltered = false;\n } else if (localFilter) {\n // If filter criteria is truthy\n isFiltered = true;\n }\n\n if (isFiltered) {\n this.$emit(EVENT_NAME_FILTERED, filteredItems, filteredItems.length);\n }\n\n this.isFiltered = isFiltered;\n },\n isFiltered: function isFiltered(newValue, oldValue) {\n if (newValue === false && oldValue === true) {\n // We need to emit a filtered event if `isFiltered` transitions from `true` to\n // `false` so that users can update their pagination controls\n var localItems = this.localItems;\n this.$emit(EVENT_NAME_FILTERED, localItems, localItems.length);\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create private non-reactive props\n this.$_filterTimer = null; // If filter is \"pre-set\", set the criteria\n // This will trigger any watchers/dependents\n // this.localFilter = this.filterSanitize(this.filter)\n // Set the initial filtered state in a `$nextTick()` so that\n // we trigger a filtered event if needed\n\n this.$nextTick(function () {\n _this2.isFiltered = Boolean(_this2.localFilter);\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearFilterTimer();\n },\n methods: {\n clearFilterTimer: function clearFilterTimer() {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n },\n filterSanitize: function filterSanitize(criteria) {\n // Sanitizes filter criteria based on internal or external filtering\n if (this.localFiltering && !this.localFilterFn && !(isString(criteria) || isRegExp(criteria))) {\n // If using internal filter function, which only accepts string or RegExp,\n // return '' to signify no filter\n return '';\n } // Could be a string, object or array, as needed by external filter function\n // We use `cloneDeep` to ensure we have a new copy of an object or array\n // without Vue's reactive observers\n\n\n return cloneDeep(criteria);\n },\n // Filter Function factories\n filterFnFactory: function filterFnFactory(filterFn, criteria) {\n // Wrapper factory for external filter functions\n // Wrap the provided filter-function and return a new function\n // Returns `null` if no filter-function defined or if criteria is falsey\n // Rather than directly grabbing `this.computedLocalFilterFn` or `this.filterFunction`\n // we have it passed, so that the caller computed prop will be reactive to changes\n // in the original filter-function (as this routine is a method)\n if (!filterFn || !isFunction(filterFn) || !criteria || looseEqual(criteria, []) || looseEqual(criteria, {})) {\n return null;\n } // Build the wrapped filter test function, passing the criteria to the provided function\n\n\n var fn = function fn(item) {\n // Generated function returns true if the criteria matches part\n // of the serialized data, otherwise false\n return filterFn(item, criteria);\n }; // Return the wrapped function\n\n\n return fn;\n },\n defaultFilterFnFactory: function defaultFilterFnFactory(criteria) {\n var _this3 = this;\n\n // Generates the default filter function, using the given filter criteria\n // Returns `null` if no criteria or criteria format not supported\n if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n // Built in filter can only support strings or RegExp criteria (at the moment)\n return null;\n } // Build the RegExp needed for filtering\n\n\n var regExp = criteria;\n\n if (isString(regExp)) {\n // Escape special RegExp characters in the string and convert contiguous\n // whitespace to \\s+ matches\n var pattern = escapeRegExp(criteria).replace(RX_SPACES, '\\\\s+'); // Build the RegExp (no need for global flag, as we only need\n // to find the value once in the string)\n\n regExp = new RegExp(\".*\".concat(pattern, \".*\"), 'i');\n } // Generate the wrapped filter test function to use\n\n\n var fn = function fn(item) {\n // This searches all row values (and sub property values) in the entire (excluding\n // special `_` prefixed keys), because we convert the record to a space-separated\n // string containing all the value properties (recursively), even ones that are\n // not visible (not specified in this.fields)\n // Users can ignore filtering on specific fields, or on only certain fields,\n // and can optionall specify searching results of fields with formatter\n //\n // TODO: Enable searching on scoped slots (optional, as it will be SLOW)\n //\n // Generated function returns true if the criteria matches part of\n // the serialized data, otherwise false\n //\n // We set `lastIndex = 0` on the `RegExp` in case someone specifies the `/g` global flag\n regExp.lastIndex = 0;\n return regExp.test(stringifyRecordValues(item, _this3.computedFilterIgnored, _this3.computedFilterIncluded, _this3.computedFieldsObj));\n }; // Return the generated function\n\n\n return fn;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { mathMax } from '../../../utils/math';\nimport { toInteger } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n currentPage: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, 0)\n}; // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n props: props,\n computed: {\n localPaging: function localPaging() {\n return this.hasProvider ? !!this.noProviderPaging : true;\n },\n paginatedItems: function paginatedItems() {\n var items = this.sortedItems || this.filteredItems || this.localItems || [];\n var currentPage = mathMax(toInteger(this.currentPage, 1), 1);\n var perPage = mathMax(toInteger(this.perPage, 0), 0); // Apply local pagination\n\n if (this.localPaging && perPage) {\n // Grab the current page of data (which may be past filtered items limit)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n } // Return the items to display in the table\n\n\n return items;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_REFRESH, EVENT_NAME_REFRESHED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { isArray, isFunction, isPromise } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { clone } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { warn } from '../../../utils/warn';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_REFRESHED = getRootEventName(NAME_TABLE, EVENT_NAME_REFRESHED);\nvar ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_NAME_REFRESH); // --- Props ---\n\nexport var props = {\n // Passed to the context object\n // Not used by `` directly\n apiUrl: makeProp(PROP_TYPE_STRING),\n // Adds in 'Function' support\n items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),\n noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var providerMixin = Vue.extend({\n mixins: [listenOnRootMixin],\n props: props,\n computed: {\n hasProvider: function hasProvider() {\n return isFunction(this.items);\n },\n providerTriggerContext: function providerTriggerContext() {\n // Used to trigger the provider function via a watcher. Only the fields that\n // are needed for triggering a provider update are included. Note that the\n // regular this.context is sent to the provider during fetches though, as they\n // may need all the prop info.\n var ctx = {\n apiUrl: this.apiUrl,\n filter: null,\n sortBy: null,\n sortDesc: null,\n perPage: null,\n currentPage: null\n };\n\n if (!this.noProviderFiltering) {\n // Either a string, or could be an object or array.\n ctx.filter = this.localFilter;\n }\n\n if (!this.noProviderSorting) {\n ctx.sortBy = this.localSortBy;\n ctx.sortDesc = this.localSortDesc;\n }\n\n if (!this.noProviderPaging) {\n ctx.perPage = this.perPage;\n ctx.currentPage = this.currentPage;\n }\n\n return clone(ctx);\n }\n },\n watch: {\n // Provider update triggering\n items: function items(newValue) {\n // If a new provider has been specified, trigger an update\n if (this.hasProvider || isFunction(newValue)) {\n this.$nextTick(this._providerUpdate);\n }\n },\n providerTriggerContext: function providerTriggerContext(newValue, oldValue) {\n // Trigger the provider to update as the relevant context values have changed.\n if (!looseEqual(newValue, oldValue)) {\n this.$nextTick(this._providerUpdate);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Call the items provider if necessary\n if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n // Fetch on mount if localItems is empty\n this._providerUpdate();\n } // Listen for global messages to tell us to force refresh the table\n\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REFRESH, function (id) {\n if (id === _this.id || id === _this) {\n _this.refresh();\n }\n });\n },\n methods: {\n refresh: function refresh() {\n var items = this.items,\n refresh = this.refresh; // Public Method: Force a refresh of the provider function\n\n this.$off(EVENT_NAME_REFRESHED, refresh);\n\n if (this.computedBusy) {\n // Can't force an update when forced busy by user (busy prop === true)\n if (this.localBusy && this.hasProvider) {\n // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n this.$on(EVENT_NAME_REFRESHED, refresh);\n }\n } else {\n this.clearSelected();\n\n if (this.hasProvider) {\n this.$nextTick(this._providerUpdate);\n } else {\n /* istanbul ignore next */\n this.localItems = isArray(items) ? items.slice() : [];\n }\n }\n },\n // Provider related methods\n _providerSetLocal: function _providerSetLocal(items) {\n this.localItems = isArray(items) ? items.slice() : [];\n this.localBusy = false;\n this.$emit(EVENT_NAME_REFRESHED); // New root emit\n\n if (this.id) {\n this.emitOnRoot(ROOT_EVENT_NAME_REFRESHED, this.id);\n }\n },\n _providerUpdate: function _providerUpdate() {\n var _this2 = this;\n\n // Refresh the provider function items.\n if (!this.hasProvider) {\n // Do nothing if no provider\n return;\n } // If table is busy, wait until refreshed before calling again\n\n\n if (this.computedBusy) {\n // Schedule a new refresh once `refreshed` is emitted\n this.$nextTick(this.refresh);\n return;\n } // Set internal busy state\n\n\n this.localBusy = true; // Call provider function with context and optional callback after DOM is fully updated\n\n this.$nextTick(function () {\n try {\n // Call provider function passing it the context and optional callback\n var data = _this2.items(_this2.context, _this2._providerSetLocal);\n\n if (isPromise(data)) {\n // Provider returned Promise\n data.then(function (items) {\n // Provider resolved with items\n _this2._providerSetLocal(items);\n });\n } else if (isArray(data)) {\n // Provider returned Array data\n _this2._providerSetLocal(data);\n } else {\n /* istanbul ignore if */\n if (_this2.items.length !== 2) {\n // Check number of arguments provider function requested\n // Provider not using callback (didn't request second argument), so we clear\n // busy state as most likely there was an error in the provider function\n\n /* istanbul ignore next */\n warn(\"Provider function didn't request callback and did not return a promise or data.\", NAME_TABLE);\n _this2.localBusy = false;\n }\n }\n } catch (e)\n /* istanbul ignore next */\n {\n // Provider function borked on us, so we spew out a warning\n // and clear the busy state\n warn(\"Provider function error [\".concat(e.name, \"] \").concat(e.message, \".\"), NAME_TABLE);\n _this2.localBusy = false;\n\n _this2.$off(EVENT_NAME_REFRESHED, _this2.refresh);\n }\n });\n }\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED, EVENT_NAME_FILTERED, EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_SELECTED } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes, createArray } from '../../../utils/array';\nimport { identity } from '../../../utils/identity';\nimport { isArray, isNumber } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax, mathMin } from '../../../utils/math';\nimport { makeProp } from '../../../utils/props';\nimport { sanitizeRow } from './sanitize-row'; // --- Constants ---\n\nvar SELECT_MODES = ['range', 'multi', 'single']; // --- Props ---\n\nexport var props = {\n // Disable use of click handlers for row selection\n noSelectOnClick: makeProp(PROP_TYPE_BOOLEAN, false),\n selectMode: makeProp(PROP_TYPE_STRING, 'multi', function (value) {\n return arrayIncludes(SELECT_MODES, value);\n }),\n selectable: makeProp(PROP_TYPE_BOOLEAN, false),\n selectedVariant: makeProp(PROP_TYPE_STRING, 'active')\n}; // --- Mixin ---\n// @vue/component\n\nexport var selectableMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n selectedRows: [],\n selectedLastRow: -1\n };\n },\n computed: {\n isSelectable: function isSelectable() {\n return this.selectable && this.selectMode;\n },\n hasSelectableRowClick: function hasSelectableRowClick() {\n return this.isSelectable && !this.noSelectOnClick;\n },\n supportsSelectableRows: function supportsSelectableRows() {\n return true;\n },\n selectableHasSelection: function selectableHasSelection() {\n var selectedRows = this.selectedRows;\n return this.isSelectable && selectedRows && selectedRows.length > 0 && selectedRows.some(identity);\n },\n selectableIsMultiSelect: function selectableIsMultiSelect() {\n return this.isSelectable && arrayIncludes(['range', 'multi'], this.selectMode);\n },\n selectableTableClasses: function selectableTableClasses() {\n var _ref;\n\n var isSelectable = this.isSelectable;\n return _ref = {\n 'b-table-selectable': isSelectable\n }, _defineProperty(_ref, \"b-table-select-\".concat(this.selectMode), isSelectable), _defineProperty(_ref, 'b-table-selecting', this.selectableHasSelection), _defineProperty(_ref, 'b-table-selectable-no-click', isSelectable && !this.hasSelectableRowClick), _ref;\n },\n selectableTableAttrs: function selectableTableAttrs() {\n return {\n // TODO:\n // Should this attribute not be included when no-select-on-click is set\n // since this attribute implies keyboard navigation?\n 'aria-multiselectable': !this.isSelectable ? null : this.selectableIsMultiSelect ? 'true' : 'false'\n };\n }\n },\n watch: {\n computedItems: function computedItems(newValue, oldValue) {\n // Reset for selectable\n var equal = false;\n\n if (this.isSelectable && this.selectedRows.length > 0) {\n // Quick check against array length\n equal = isArray(newValue) && isArray(oldValue) && newValue.length === oldValue.length;\n\n for (var i = 0; equal && i < newValue.length; i++) {\n // Look for the first non-loosely equal row, after ignoring reserved fields\n equal = looseEqual(sanitizeRow(newValue[i]), sanitizeRow(oldValue[i]));\n }\n }\n\n if (!equal) {\n this.clearSelected();\n }\n },\n selectable: function selectable(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(newValue);\n },\n selectMode: function selectMode() {\n this.clearSelected();\n },\n hasSelectableRowClick: function hasSelectableRowClick(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(!newValue);\n },\n selectedRows: function selectedRows(_selectedRows, oldValue) {\n var _this = this;\n\n if (this.isSelectable && !looseEqual(_selectedRows, oldValue)) {\n var items = []; // `.forEach()` skips over non-existent indices (on sparse arrays)\n\n _selectedRows.forEach(function (v, idx) {\n if (v) {\n items.push(_this.computedItems[idx]);\n }\n });\n\n this.$emit(EVENT_NAME_ROW_SELECTED, items);\n }\n }\n },\n beforeMount: function beforeMount() {\n // Set up handlers if needed\n if (this.isSelectable) {\n this.setSelectionHandlers(true);\n }\n },\n methods: {\n // Public methods\n selectRow: function selectRow(index) {\n // Select a particular row (indexed based on computedItems)\n if (this.isSelectable && isNumber(index) && index >= 0 && index < this.computedItems.length && !this.isRowSelected(index)) {\n var selectedRows = this.selectableIsMultiSelect ? this.selectedRows.slice() : [];\n selectedRows[index] = true;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n unselectRow: function unselectRow(index) {\n // Un-select a particular row (indexed based on `computedItems`)\n if (this.isSelectable && isNumber(index) && this.isRowSelected(index)) {\n var selectedRows = this.selectedRows.slice();\n selectedRows[index] = false;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n selectAllRows: function selectAllRows() {\n var length = this.computedItems.length;\n\n if (this.isSelectable && length > 0) {\n this.selectedLastClicked = -1;\n this.selectedRows = this.selectableIsMultiSelect ? createArray(length, true) : [true];\n }\n },\n isRowSelected: function isRowSelected(index) {\n // Determine if a row is selected (indexed based on `computedItems`)\n return !!(isNumber(index) && this.selectedRows[index]);\n },\n clearSelected: function clearSelected() {\n // Clear any active selected row(s)\n this.selectedLastClicked = -1;\n this.selectedRows = [];\n },\n // Internal private methods\n selectableRowClasses: function selectableRowClasses(index) {\n if (this.isSelectable && this.isRowSelected(index)) {\n var variant = this.selectedVariant;\n return _defineProperty({\n 'b-table-row-selected': true\n }, \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(variant), variant);\n }\n\n return {};\n },\n selectableRowAttrs: function selectableRowAttrs(index) {\n return {\n 'aria-selected': !this.isSelectable ? null : this.isRowSelected(index) ? 'true' : 'false'\n };\n },\n setSelectionHandlers: function setSelectionHandlers(on) {\n var method = on && !this.noSelectOnClick ? '$on' : '$off'; // Handle row-clicked event\n\n this[method](EVENT_NAME_ROW_CLICKED, this.selectionHandler); // Clear selection on filter, pagination, and sort changes\n\n this[method](EVENT_NAME_FILTERED, this.clearSelected);\n this[method](EVENT_NAME_CONTEXT_CHANGED, this.clearSelected);\n },\n selectionHandler: function selectionHandler(item, index, event) {\n /* istanbul ignore if: should never happen */\n if (!this.isSelectable || this.noSelectOnClick) {\n // Don't do anything if table is not in selectable mode\n this.clearSelected();\n return;\n }\n\n var selectMode = this.selectMode,\n selectedLastRow = this.selectedLastRow;\n var selectedRows = this.selectedRows.slice();\n var selected = !selectedRows[index]; // Note 'multi' mode needs no special event handling\n\n if (selectMode === 'single') {\n selectedRows = [];\n } else if (selectMode === 'range') {\n if (selectedLastRow > -1 && event.shiftKey) {\n // range\n for (var idx = mathMin(selectedLastRow, index); idx <= mathMax(selectedLastRow, index); idx++) {\n selectedRows[idx] = true;\n }\n\n selected = true;\n } else {\n if (!(event.ctrlKey || event.metaKey)) {\n // Clear range selection if any\n selectedRows = [];\n selected = true;\n }\n\n this.selectedLastRow = selected ? index : -1;\n }\n }\n\n selectedRows[index] = selected;\n this.selectedRows = selectedRows;\n }\n }\n});","var _props, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED, EVENT_NAME_SORT_CHANGED, MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { stableSort } from '../../../utils/stable-sort';\nimport { trim } from '../../../utils/string';\nimport { defaultSortCompare } from './default-sort-compare'; // --- Constants ---\n\nvar MODEL_PROP_NAME_SORT_BY = 'sortBy';\nvar MODEL_EVENT_NAME_SORT_BY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_BY;\nvar MODEL_PROP_NAME_SORT_DESC = 'sortDesc';\nvar MODEL_EVENT_NAME_SORT_DESC = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_DESC;\nvar SORT_DIRECTION_ASC = 'asc';\nvar SORT_DIRECTION_DESC = 'desc';\nvar SORT_DIRECTION_LAST = 'last';\nvar SORT_DIRECTIONS = [SORT_DIRECTION_ASC, SORT_DIRECTION_DESC, SORT_DIRECTION_LAST]; // --- Props ---\n\nexport var props = (_props = {\n labelSortAsc: makeProp(PROP_TYPE_STRING, 'Click to sort Ascending'),\n labelSortClear: makeProp(PROP_TYPE_STRING, 'Click to clear sorting'),\n labelSortDesc: makeProp(PROP_TYPE_STRING, 'Click to sort Descending'),\n noFooterSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n noLocalSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n // Another prop that should have had a better name\n // It should be `noSortClear` (on non-sortable headers)\n // We will need to make sure the documentation is clear on what\n // this prop does (as well as in the code for future reference)\n noSortReset: makeProp(PROP_TYPE_BOOLEAN, false)\n}, _defineProperty(_props, MODEL_PROP_NAME_SORT_BY, makeProp(PROP_TYPE_STRING)), _defineProperty(_props, \"sortCompare\", makeProp(PROP_TYPE_FUNCTION)), _defineProperty(_props, \"sortCompareLocale\", makeProp(PROP_TYPE_ARRAY_STRING)), _defineProperty(_props, \"sortCompareOptions\", makeProp(PROP_TYPE_OBJECT, {\n numeric: true\n})), _defineProperty(_props, MODEL_PROP_NAME_SORT_DESC, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortDirection\", makeProp(PROP_TYPE_STRING, SORT_DIRECTION_ASC, function (value) {\n return arrayIncludes(SORT_DIRECTIONS, value);\n})), _defineProperty(_props, \"sortIconLeft\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortNullLast\", makeProp(PROP_TYPE_BOOLEAN, false)), _props); // --- Mixin ---\n// @vue/component\n\nexport var sortingMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localSortBy: this[MODEL_PROP_NAME_SORT_BY] || '',\n localSortDesc: this[MODEL_PROP_NAME_SORT_DESC] || false\n };\n },\n computed: {\n localSorting: function localSorting() {\n return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting;\n },\n isSortable: function isSortable() {\n return this.computedFields.some(function (f) {\n return f.sortable;\n });\n },\n // Sorts the filtered items and returns a new array of the sorted items\n // When not sorted, the original items array will be returned\n sortedItems: function sortedItems() {\n var sortBy = this.localSortBy,\n sortDesc = this.localSortDesc,\n locale = this.sortCompareLocale,\n nullLast = this.sortNullLast,\n sortCompare = this.sortCompare,\n localSorting = this.localSorting;\n var items = (this.filteredItems || this.localItems || []).slice();\n\n var localeOptions = _objectSpread(_objectSpread({}, this.sortCompareOptions), {}, {\n usage: 'sort'\n });\n\n if (sortBy && localSorting) {\n var field = this.computedFieldsObj[sortBy] || {};\n var sortByFormatted = field.sortByFormatted;\n var formatter = isFunction(sortByFormatted) ?\n /* istanbul ignore next */\n sortByFormatted : sortByFormatted ? this.getFieldFormatter(sortBy) : undefined; // `stableSort` returns a new array, and leaves the original array intact\n\n return stableSort(items, function (a, b) {\n var result = null; // Call user provided `sortCompare` routine first\n\n if (isFunction(sortCompare)) {\n // TODO:\n // Change the `sortCompare` signature to the one of `defaultSortCompare`\n // with the next major version bump\n result = sortCompare(a, b, sortBy, sortDesc, formatter, localeOptions, locale);\n } // Fallback to built-in `defaultSortCompare` if `sortCompare`\n // is not defined or returns `null`/`false`\n\n\n if (isUndefinedOrNull(result) || result === false) {\n result = defaultSortCompare(a, b, {\n sortBy: sortBy,\n formatter: formatter,\n locale: locale,\n localeOptions: localeOptions,\n nullLast: nullLast\n });\n } // Negate result if sorting in descending order\n\n\n return (result || 0) * (sortDesc ? -1 : 1);\n });\n }\n\n return items;\n }\n },\n watch: (_watch = {\n /* istanbul ignore next: pain in the butt to test */\n isSortable: function isSortable(newValue) {\n if (newValue) {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n } else {\n this.$off(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n }\n }, _defineProperty(_watch, MODEL_PROP_NAME_SORT_DESC, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortDesc) {\n return;\n }\n\n this.localSortDesc = newValue || false;\n }), _defineProperty(_watch, MODEL_PROP_NAME_SORT_BY, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortBy) {\n return;\n }\n\n this.localSortBy = newValue || '';\n }), _defineProperty(_watch, \"localSortDesc\", function localSortDesc(newValue, oldValue) {\n // Emit update to sort-desc.sync\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_DESC, newValue);\n }\n }), _defineProperty(_watch, \"localSortBy\", function localSortBy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_BY, newValue);\n }\n }), _watch),\n created: function created() {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n },\n methods: {\n // Handlers\n // Need to move from thead-mixin\n handleSort: function handleSort(key, field, event, isFoot) {\n var _this = this;\n\n if (!this.isSortable) {\n /* istanbul ignore next */\n return;\n }\n\n if (isFoot && this.noFooterSorting) {\n return;\n } // TODO: make this tri-state sorting\n // cycle desc => asc => none => desc => ...\n\n\n var sortChanged = false;\n\n var toggleLocalSortDesc = function toggleLocalSortDesc() {\n var sortDirection = field.sortDirection || _this.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n _this.localSortDesc = false;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n _this.localSortDesc = true;\n } else {// sortDirection === 'last'\n // Leave at last sort direction from previous column\n }\n };\n\n if (field.sortable) {\n var sortKey = !this.localSorting && field.sortKey ? field.sortKey : key;\n\n if (this.localSortBy === sortKey) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = sortKey; // this.localSortDesc = false\n\n toggleLocalSortDesc();\n }\n\n sortChanged = true;\n } else if (this.localSortBy && !this.noSortReset) {\n this.localSortBy = '';\n toggleLocalSortDesc();\n sortChanged = true;\n }\n\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit(EVENT_NAME_SORT_CHANGED, this.context);\n }\n },\n // methods to compute classes and attrs for thead>th cells\n sortTheadThClasses: function sortTheadThClasses(key, field, isFoot) {\n return {\n // If sortable and sortIconLeft are true, then place sort icon on the left\n 'b-table-sort-icon-left': field.sortable && this.sortIconLeft && !(isFoot && this.noFooterSorting)\n };\n },\n sortTheadThAttrs: function sortTheadThAttrs(key, field, isFoot) {\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No attributes if not a sortable table\n return {};\n }\n\n var sortable = field.sortable; // Assemble the aria-sort attribute value\n\n var ariaSort = sortable && this.localSortBy === key ? this.localSortDesc ? 'descending' : 'ascending' : sortable ? 'none' : null; // Return the attribute\n\n return {\n 'aria-sort': ariaSort\n };\n },\n sortTheadThLabel: function sortTheadThLabel(key, field, isFoot) {\n // A label to be placed in an `.sr-only` element in the header cell\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No label if not a sortable table\n return null;\n }\n\n var sortable = field.sortable; // The correctness of these labels is very important for screen-reader users.\n\n var labelSorting = '';\n\n if (sortable) {\n if (this.localSortBy === key) {\n // currently sorted sortable column.\n labelSorting = this.localSortDesc ? this.labelSortAsc : this.labelSortDesc;\n } else {\n // Not currently sorted sortable column.\n // Not using nested ternary's here for clarity/readability\n // Default for ariaLabel\n labelSorting = this.localSortDesc ? this.labelSortDesc : this.labelSortAsc; // Handle sortDirection setting\n\n var sortDirection = this.sortDirection || field.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n labelSorting = this.labelSortAsc;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n labelSorting = this.labelSortDesc;\n }\n }\n } else if (!this.noSortReset) {\n // Non sortable column\n labelSorting = this.localSortBy ? this.labelSortClear : '';\n } // Return the sr-only sort label or null if no label\n\n\n return trim(labelSorting) || null;\n }\n }\n});","import { get } from '../../../utils/get';\nimport { isDate, isFunction, isNumber, isNumeric, isUndefinedOrNull } from '../../../utils/inspect';\nimport { toFloat } from '../../../utils/number';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\n\nvar normalizeValue = function normalizeValue(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n }\n\n if (isNumeric(value)) {\n return toFloat(value, value);\n }\n\n return value;\n}; // Default sort compare routine\n//\n// TODO:\n// Add option to sort by multiple columns (tri-state per column,\n// plus order of columns in sort) where `sortBy` could be an array\n// of objects `[ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]`\n// or an array of arrays `[ ['foo','asc'], ['bar','desc'] ]`\n// Multisort will most likely be handled in `mixin-sort.js` by\n// calling this method for each sortBy\n\n\nexport var defaultSortCompare = function defaultSortCompare(a, b) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? null : _ref$sortBy,\n _ref$formatter = _ref.formatter,\n formatter = _ref$formatter === void 0 ? null : _ref$formatter,\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? undefined : _ref$locale,\n _ref$localeOptions = _ref.localeOptions,\n localeOptions = _ref$localeOptions === void 0 ? {} : _ref$localeOptions,\n _ref$nullLast = _ref.nullLast,\n nullLast = _ref$nullLast === void 0 ? false : _ref$nullLast;\n\n // Get the value by `sortBy`\n var aa = get(a, sortBy, null);\n var bb = get(b, sortBy, null); // Apply user-provided formatter\n\n if (isFunction(formatter)) {\n aa = formatter(aa, sortBy, a);\n bb = formatter(bb, sortBy, b);\n } // Internally normalize value\n // `null` / `undefined` => ''\n // `'0'` => `0`\n\n\n aa = normalizeValue(aa);\n bb = normalizeValue(bb);\n\n if (isDate(aa) && isDate(bb) || isNumber(aa) && isNumber(bb)) {\n // Special case for comparing dates and numbers\n // Internally dates are compared via their epoch number values\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n } else if (nullLast && aa === '' && bb !== '') {\n // Special case when sorting `null` / `undefined` / '' last\n return 1;\n } else if (nullLast && aa !== '' && bb === '') {\n // Special case when sorting `null` / `undefined` / '' last\n return -1;\n } // Do localized string comparison\n\n\n return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOptions);\n};","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TOP_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var topRowMixin = Vue.extend({\n methods: {\n renderTopRow: function renderTopRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_TOP_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-top-row',\n class: [isFunction(tbodyTrClass) ? tbodyTrClass(null, 'row-top') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? tbodyTrAttr(null, 'row-top') : tbodyTrAttr,\n key: 'b-top-row'\n }, [this.normalizeSlot(SLOT_NAME_TOP_ROW, {\n columns: fields.length,\n fields: fields\n })]);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TABLE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { bottomRowMixin, props as bottomRowProps } from './helpers/mixin-bottom-row';\nimport { busyMixin, props as busyProps } from './helpers/mixin-busy';\nimport { captionMixin, props as captionProps } from './helpers/mixin-caption';\nimport { colgroupMixin, props as colgroupProps } from './helpers/mixin-colgroup';\nimport { emptyMixin, props as emptyProps } from './helpers/mixin-empty';\nimport { filteringMixin, props as filteringProps } from './helpers/mixin-filtering';\nimport { itemsMixin, props as itemsProps } from './helpers/mixin-items';\nimport { paginationMixin, props as paginationProps } from './helpers/mixin-pagination';\nimport { providerMixin, props as providerProps } from './helpers/mixin-provider';\nimport { selectableMixin, props as selectableProps } from './helpers/mixin-selectable';\nimport { sortingMixin, props as sortingProps } from './helpers/mixin-sorting';\nimport { stackedMixin, props as stackedProps } from './helpers/mixin-stacked';\nimport { tableRendererMixin, props as tableRendererProps } from './helpers/mixin-table-renderer';\nimport { tbodyMixin, props as tbodyProps } from './helpers/mixin-tbody';\nimport { tfootMixin, props as tfootProps } from './helpers/mixin-tfoot';\nimport { theadMixin, props as theadProps } from './helpers/mixin-thead';\nimport { topRowMixin, props as topRowProps } from './helpers/mixin-top-row'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), bottomRowProps), busyProps), captionProps), colgroupProps), emptyProps), filteringProps), itemsProps), paginationProps), providerProps), selectableProps), sortingProps), stackedProps), tableRendererProps), tbodyProps), tfootProps), theadProps), topRowProps)), NAME_TABLE); // --- Main component ---\n// @vue/component\n\nexport var BTable = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [// General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin, // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin, // Table features mixins\n stackedMixin, filteringMixin, sortingMixin, paginationMixin, captionMixin, colgroupMixin, selectableMixin, emptyMixin, topRowMixin, bottomRowMixin, busyMixin, providerMixin],\n props: props // Render function is provided by `tableRendererMixin`\n\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots,\n children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\n }), $children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_PREPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_PREPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupPrepend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_PREPEND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: false\n })\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_HOVERED, EVENT_NAME_ROW_UNHOVERED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT_FUNCTION } from '../../../constants/props';\nimport { SLOT_NAME_ROW_DETAILS } from '../../../constants/slots';\nimport { get } from '../../../utils/get';\nimport { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nimport { BTh } from '../th';\nimport { FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS } from './constants'; // --- Props ---\n\nexport var props = {\n detailsTdClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tbodyTrAttr: makeProp(PROP_TYPE_OBJECT_FUNCTION),\n tbodyTrClass: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_FUNCTION]))\n}; // --- Mixin ---\n// @vue/component\n\nexport var tbodyRowMixin = Vue.extend({\n props: props,\n methods: {\n // Methods for computing classes, attributes and styles for table cells\n getTdValues: function getTdValues(item, key, tdValue, defaultValue) {\n var $parent = this.$parent;\n\n if (tdValue) {\n var value = get(item, key, '');\n\n if (isFunction(tdValue)) {\n return tdValue(value, key, item);\n } else if (isString(tdValue) && isFunction($parent[tdValue])) {\n return $parent[tdValue](value, key, item);\n }\n\n return tdValue;\n }\n\n return defaultValue;\n },\n getThValues: function getThValues(item, key, thValue, type, defaultValue) {\n var $parent = this.$parent;\n\n if (thValue) {\n var value = get(item, key, '');\n\n if (isFunction(thValue)) {\n return thValue(value, key, item, type);\n } else if (isString(thValue) && isFunction($parent[thValue])) {\n return $parent[thValue](value, key, item, type);\n }\n\n return thValue;\n }\n\n return defaultValue;\n },\n // Method to get the value for a field\n getFormattedValue: function getFormattedValue(item, field) {\n var key = field.key;\n var formatter = this.getFieldFormatter(key);\n var value = get(item, key, null);\n\n if (isFunction(formatter)) {\n value = formatter(value, key, item);\n }\n\n return isUndefinedOrNull(value) ? '' : value;\n },\n // Factory function methods\n toggleDetailsFactory: function toggleDetailsFactory(hasDetailsSlot, item) {\n var _this = this;\n\n // Returns a function to toggle a row's details slot\n return function () {\n if (hasDetailsSlot) {\n _this.$set(item, FIELD_KEY_SHOW_DETAILS, !item[FIELD_KEY_SHOW_DETAILS]);\n }\n };\n },\n // Row event handlers\n rowHovered: function rowHovered(event) {\n // `mouseenter` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_HOVERED, event);\n }\n },\n rowUnhovered: function rowUnhovered(event) {\n // `mouseleave` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_UNHOVERED, event);\n }\n },\n // Renders a TD or TH for a row's field\n renderTbodyRowCell: function renderTbodyRowCell(field, colIndex, item, rowIndex) {\n var _this2 = this;\n\n var isStacked = this.isStacked;\n var key = field.key,\n label = field.label,\n isRowHeader = field.isRowHeader;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var formatted = this.getFormattedValue(item, field);\n var stickyColumn = !isStacked && (this.isResponsive || this.stickyHeader) && field.stickyColumn; // We only uses the helper components for sticky columns to\n // improve performance of BTable/BTableLite by reducing the\n // total number of vue instances created during render\n\n var cellTag = stickyColumn ? isRowHeader ? BTh : BTd : isRowHeader ? 'th' : 'td';\n var cellVariant = item[FIELD_KEY_CELL_VARIANT] && item[FIELD_KEY_CELL_VARIANT][key] ? item[FIELD_KEY_CELL_VARIANT][key] : field.variant || null;\n var data = {\n // For the Vue key, we concatenate the column index and\n // field key (as field keys could be duplicated)\n // TODO: Although we do prevent duplicate field keys...\n // So we could change this to: `row-${rowIndex}-cell-${key}`\n class: [field.class ? field.class : '', this.getTdValues(item, key, field.tdClass, '')],\n props: {},\n attrs: _objectSpread({\n 'aria-colindex': String(colIndex + 1)\n }, isRowHeader ? this.getThValues(item, key, field.thAttr, 'row', {}) : this.getTdValues(item, key, field.tdAttr, {})),\n key: \"row-\".concat(rowIndex, \"-cell-\").concat(colIndex, \"-\").concat(key)\n };\n\n if (stickyColumn) {\n // We are using the helper BTd or BTh\n data.props = {\n stackedHeading: isStacked ? label : null,\n stickyColumn: true,\n variant: cellVariant\n };\n } else {\n // Using native TD or TH element, so we need to\n // add in the attributes and variant class\n data.attrs['data-label'] = isStacked && !isUndefinedOrNull(label) ? toString(label) : null;\n data.attrs.role = isRowHeader ? 'rowheader' : 'cell';\n data.attrs.scope = isRowHeader ? 'row' : null; // Add in the variant class\n\n if (cellVariant) {\n data.class.push(\"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(cellVariant));\n }\n }\n\n var slotScope = {\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, key, ''),\n value: formatted,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item),\n detailsShowing: Boolean(item[FIELD_KEY_SHOW_DETAILS])\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n slotScope.rowSelected = this.isRowSelected(rowIndex);\n\n slotScope.selectRow = function () {\n return _this2.selectRow(rowIndex);\n };\n\n slotScope.unselectRow = function () {\n return _this2.unselectRow(rowIndex);\n };\n } // The new `v-slot` syntax doesn't like a slot name starting with\n // a square bracket and if using in-document HTML templates, the\n // v-slot attributes are lower-cased by the browser.\n // Switched to round bracket syntax to prevent confusion with\n // dynamic slot name syntax.\n // We look for slots in this order: `cell(${key})`, `cell(${key.toLowerCase()})`, 'cell()'\n // Slot names are now cached by mixin tbody in `this.$_bodyFieldSlotNameCache`\n // Will be `null` if no slot (or fallback slot) exists\n\n\n var slotName = this.$_bodyFieldSlotNameCache[key];\n var $childNodes = slotName ? this.normalizeSlot(slotName, slotScope) : toString(formatted);\n\n if (this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n $childNodes = [h('div', [$childNodes])];\n } // Render either a td or th cell\n\n\n return h(cellTag, data, [$childNodes]);\n },\n // Renders an item's row (or rows if details supported)\n renderTbodyRow: function renderTbodyRow(item, rowIndex) {\n var _this3 = this;\n\n var fields = this.computedFields,\n striped = this.striped,\n primaryKey = this.primaryKey,\n currentPage = this.currentPage,\n perPage = this.perPage,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var rowShowDetails = item[FIELD_KEY_SHOW_DETAILS] && hasDetailsSlot;\n var hasRowClickHandler = this.$listeners[EVENT_NAME_ROW_CLICKED] || this.hasSelectableRowClick; // We can return more than one TR if rowDetails enabled\n\n var $rows = []; // Details ID needed for `aria-details` when details showing\n // We set it to `null` when not showing so that attribute\n // does not appear on the element\n\n var detailsId = rowShowDetails ? this.safeId(\"_details_\".concat(rowIndex, \"_\")) : null; // For each item data field in row\n\n var $tds = fields.map(function (field, colIndex) {\n return _this3.renderTbodyRowCell(field, colIndex, item, rowIndex);\n }); // Calculate the row number in the dataset (indexed from 1)\n\n var ariaRowIndex = null;\n\n if (currentPage && perPage && perPage > 0) {\n ariaRowIndex = String((currentPage - 1) * perPage + rowIndex + 1);\n } // Create a unique :key to help ensure that sub components are re-rendered rather than\n // re-used, which can cause issues. If a primary key is not provided we use the rendered\n // rows index within the tbody.\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n\n\n var primaryKeyValue = toString(get(item, primaryKey)) || null;\n var rowKey = primaryKeyValue || toString(rowIndex); // If primary key is provided, use it to generate a unique ID on each tbody > tr\n // In the format of '{tableId}__row_{primaryKeyValue}'\n\n var rowId = primaryKeyValue ? this.safeId(\"_row_\".concat(primaryKeyValue)) : null; // Selectable classes and attributes\n\n var selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {};\n var selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}; // Additional classes and attributes\n\n var userTrClasses = isFunction(tbodyTrClass) ? tbodyTrClass(item, 'row') : tbodyTrClass;\n var userTrAttrs = isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(item, 'row') : tbodyTrAttr; // Add the item row\n\n $rows.push(h(BTr, {\n class: [userTrClasses, selectableClasses, rowShowDetails ? 'b-table-has-details' : ''],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({\n id: rowId\n }, userTrAttrs), {}, {\n // Users cannot override the following attributes\n tabindex: hasRowClickHandler ? '0' : null,\n 'data-pk': primaryKeyValue || null,\n 'aria-details': detailsId,\n 'aria-owns': detailsId,\n 'aria-rowindex': ariaRowIndex\n }, selectableAttrs),\n on: {\n // Note: These events are not A11Y friendly!\n mouseenter: this.rowHovered,\n mouseleave: this.rowUnhovered\n },\n key: \"__b-table-row-\".concat(rowKey, \"__\"),\n ref: 'item-rows',\n refInFor: true\n }, $tds)); // Row Details slot\n\n if (rowShowDetails) {\n var detailsScope = {\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item)\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n detailsScope.rowSelected = this.isRowSelected(rowIndex);\n\n detailsScope.selectRow = function () {\n return _this3.selectRow(rowIndex);\n };\n\n detailsScope.unselectRow = function () {\n return _this3.unselectRow(rowIndex);\n };\n } // Render the details slot in a TD\n\n\n var $details = h(BTd, {\n props: {\n colspan: fields.length\n },\n class: this.detailsTdClass\n }, [this.normalizeSlot(SLOT_NAME_ROW_DETAILS, detailsScope)]); // Add a hidden row to keep table row striping consistent when details showing\n // Only added if the table is striped\n\n if (striped) {\n $rows.push( // We don't use `BTr` here as we don't need the extra functionality\n h('tr', {\n staticClass: 'd-none',\n attrs: {\n 'aria-hidden': 'true',\n role: 'presentation'\n },\n key: \"__b-table-details-stripe__\".concat(rowKey)\n }));\n } // Add the actual details row\n\n\n var userDetailsTrClasses = isFunction(this.tbodyTrClass) ?\n /* istanbul ignore next */\n this.tbodyTrClass(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrClass;\n var userDetailsTrAttrs = isFunction(this.tbodyTrAttr) ?\n /* istanbul ignore next */\n this.tbodyTrAttr(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrAttr;\n $rows.push(h(BTr, {\n staticClass: 'b-table-details',\n class: [userDetailsTrClasses],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({}, userDetailsTrAttrs), {}, {\n // Users cannot override the following attributes\n id: detailsId,\n tabindex: '-1'\n }),\n key: \"__b-table-details__\".concat(rowKey)\n }, [$details]));\n } else if (hasDetailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n $rows.push(h());\n\n if (striped) {\n // Add extra placeholder if table is striped\n $rows.push(h());\n }\n } // Return the row(s)\n\n\n return $rows;\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_CONTEXTMENU, EVENT_NAME_ROW_DBLCLICKED, EVENT_NAME_ROW_MIDDLE_CLICKED } from '../../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_SPACE, CODE_UP } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { arrayIncludes, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, isActiveElement, isElement } from '../../../utils/dom';\nimport { stopEvent } from '../../../utils/events';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, pluckProps } from '../../../utils/props';\nimport { BTbody, props as BTbodyProps } from '../tbody';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\nimport { tbodyRowMixin, props as tbodyRowProps } from './mixin-tbody-row'; // --- Helper methods ---\n\nvar getCellSlotName = function getCellSlotName(value) {\n return \"cell(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread({}, BTbodyProps), tbodyRowProps), {}, {\n tbodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})); // --- Mixin ---\n// @vue/component\n\nexport var tbodyMixin = Vue.extend({\n mixins: [tbodyRowMixin],\n props: props,\n beforeDestroy: function beforeDestroy() {\n this.$_bodyFieldSlotNameCache = null;\n },\n methods: {\n // Returns all the item TR elements (excludes detail and spacer rows)\n // `this.$refs['item-rows']` is an array of item TR components/elements\n // Rows should all be `` components, but we map to TR elements\n // Also note that `this.$refs['item-rows']` may not always be in document order\n getTbodyTrs: function getTbodyTrs() {\n var $refs = this.$refs;\n var tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n var trs = ($refs['item-rows'] || []).map(function (tr) {\n return tr.$el || tr;\n });\n return tbody && tbody.children && tbody.children.length > 0 && trs && trs.length > 0 ? arrayFrom(tbody.children).filter(function (tr) {\n return arrayIncludes(trs, tr);\n }) :\n /* istanbul ignore next */\n [];\n },\n // Returns index of a particular TBODY item TR\n // We set `true` on closest to include self in result\n getTbodyTrIndex: function getTbodyTrIndex(el) {\n /* istanbul ignore next: should not normally happen */\n if (!isElement(el)) {\n return -1;\n }\n\n var tr = el.tagName === 'TR' ? el : closest('tr', el, true);\n return tr ? this.getTbodyTrs().indexOf(tr) : -1;\n },\n // Emits a row event, with the item object, row index and original event\n emitTbodyRowEvent: function emitTbodyRowEvent(type, event) {\n if (type && this.hasListener(type) && event && event.target) {\n var rowIndex = this.getTbodyTrIndex(event.target);\n\n if (rowIndex > -1) {\n // The array of TRs correlate to the `computedItems` array\n var item = this.computedItems[rowIndex];\n this.$emit(type, item, rowIndex, event);\n }\n }\n },\n tbodyRowEvtStopped: function tbodyRowEvtStopped(event) {\n return this.stopIfBusy && this.stopIfBusy(event);\n },\n // Delegated row event handlers\n onTbodyRowKeydown: function onTbodyRowKeydown(event) {\n // Keyboard navigation and row click emulation\n var target = event.target,\n keyCode = event.keyCode;\n\n if (this.tbodyRowEvtStopped(event) || target.tagName !== 'TR' || !isActiveElement(target) || target.tabIndex !== 0) {\n // Early exit if not an item row TR\n return;\n }\n\n if (arrayIncludes([CODE_ENTER, CODE_SPACE], keyCode)) {\n // Emulated click for keyboard users, transfer to click handler\n stopEvent(event);\n this.onTBodyRowClicked(event);\n } else if (arrayIncludes([CODE_UP, CODE_DOWN, CODE_HOME, CODE_END], keyCode)) {\n // Keyboard navigation\n var rowIndex = this.getTbodyTrIndex(target);\n\n if (rowIndex > -1) {\n stopEvent(event);\n var trs = this.getTbodyTrs();\n var shift = event.shiftKey;\n\n if (keyCode === CODE_HOME || shift && keyCode === CODE_UP) {\n // Focus first row\n attemptFocus(trs[0]);\n } else if (keyCode === CODE_END || shift && keyCode === CODE_DOWN) {\n // Focus last row\n attemptFocus(trs[trs.length - 1]);\n } else if (keyCode === CODE_UP && rowIndex > 0) {\n // Focus previous row\n attemptFocus(trs[rowIndex - 1]);\n } else if (keyCode === CODE_DOWN && rowIndex < trs.length - 1) {\n // Focus next row\n attemptFocus(trs[rowIndex + 1]);\n }\n }\n }\n },\n onTBodyRowClicked: function onTBodyRowClicked(event) {\n // Don't emit event when the table is busy, the user clicked\n // on a non-disabled control or is selecting text\n if (this.tbodyRowEvtStopped(event) || filterEvent(event) || textSelectionActive(this.$el)) {\n return;\n }\n\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CLICKED, event);\n },\n onTbodyRowMiddleMouseRowClicked: function onTbodyRowMiddleMouseRowClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && event.which === 2) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_MIDDLE_CLICKED, event);\n }\n },\n onTbodyRowContextmenu: function onTbodyRowContextmenu(event) {\n if (!this.tbodyRowEvtStopped(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CONTEXTMENU, event);\n }\n },\n onTbodyRowDblClicked: function onTbodyRowDblClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && !filterEvent(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_DBLCLICKED, event);\n }\n },\n // Render the tbody element and children\n // Note:\n // Row hover handlers are handled by the tbody-row mixin\n // As mouseenter/mouseleave events do not bubble\n renderTbody: function renderTbody() {\n var _this = this;\n\n var items = this.computedItems,\n renderBusy = this.renderBusy,\n renderTopRow = this.renderTopRow,\n renderEmpty = this.renderEmpty,\n renderBottomRow = this.renderBottomRow;\n var h = this.$createElement;\n var hasRowClickHandler = this.hasListener(EVENT_NAME_ROW_CLICKED) || this.hasSelectableRowClick; // Prepare the tbody rows\n\n var $rows = []; // Add the item data rows or the busy slot\n\n var $busy = renderBusy ? renderBusy() : null;\n\n if ($busy) {\n // If table is busy and a busy slot, then return only the busy \"row\" indicator\n $rows.push($busy);\n } else {\n // Table isn't busy, or we don't have a busy slot\n // Create a slot cache for improved performance when looking up cell slot names\n // Values will be keyed by the field's `key` and will store the slot's name\n // Slots could be dynamic (i.e. `v-if`), so we must compute on each render\n // Used by tbody-row mixin render helper\n var cache = {};\n var defaultSlotName = getCellSlotName();\n defaultSlotName = this.hasNormalizedSlot(defaultSlotName) ? defaultSlotName : null;\n this.computedFields.forEach(function (field) {\n var key = field.key;\n var slotName = getCellSlotName(key);\n var lowercaseSlotName = getCellSlotName(key.toLowerCase());\n cache[key] = _this.hasNormalizedSlot(slotName) ? slotName : _this.hasNormalizedSlot(lowercaseSlotName) ?\n /* istanbul ignore next */\n lowercaseSlotName : defaultSlotName;\n }); // Created as a non-reactive property so to not trigger component updates\n // Must be a fresh object each render\n\n this.$_bodyFieldSlotNameCache = cache; // Add static top row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderTopRow ? renderTopRow() : h()); // Render the rows\n\n items.forEach(function (item, rowIndex) {\n // Render the individual item row (rows if details slot)\n $rows.push(_this.renderTbodyRow(item, rowIndex));\n }); // Empty items / empty filtered row slot (only shows if `items.length < 1`)\n\n $rows.push(renderEmpty ? renderEmpty() : h()); // Static bottom row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderBottomRow ? renderBottomRow() : h());\n } // Note: these events will only emit if a listener is registered\n\n\n var handlers = {\n auxclick: this.onTbodyRowMiddleMouseRowClicked,\n // TODO:\n // Perhaps we do want to automatically prevent the\n // default context menu from showing if there is a\n // `row-contextmenu` listener registered\n contextmenu: this.onTbodyRowContextmenu,\n // The following event(s) is not considered A11Y friendly\n dblclick: this.onTbodyRowDblClicked // Hover events (`mouseenter`/`mouseleave`) are handled by `tbody-row` mixin\n\n }; // Add in click/keydown listeners if needed\n\n if (hasRowClickHandler) {\n handlers.click = this.onTBodyRowClicked;\n handlers.keydown = this.onTbodyRowKeydown;\n } // Assemble rows into the tbody\n\n\n var $tbody = h(BTbody, {\n class: this.tbodyClass || null,\n props: pluckProps(BTbodyProps, this.$props),\n // BTbody transfers all native event listeners to the root element\n // TODO: Only set the handlers if the table is not busy\n on: handlers,\n ref: 'tbody'\n }, $rows); // Return the assembled tbody\n\n return $tbody;\n }\n }\n});","var _objectSpread2;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_CHECKBOX_GROUP } from '../../constants/components';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, formRadioCheckGroupMixin, props as formRadioCheckGroupProps } from '../../mixins/form-radio-check-group'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckGroupProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])), _defineProperty(_objectSpread2, \"switches\", makeProp(PROP_TYPE_BOOLEAN, false)), _objectSpread2))), NAME_FORM_CHECKBOX_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckboxGroup = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX_GROUP,\n // Includes render function\n mixins: [formRadioCheckGroupMixin],\n provide: function provide() {\n return {\n bvCheckGroup: this\n };\n },\n props: props,\n computed: {\n isRadioGroup: function isRadioGroup() {\n return false;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_CAPTION } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING) // `caption-top` is part of table-render mixin (styling)\n // captionTop: makeProp(PROP_TYPE_BOOLEAN, false)\n\n}; // --- Mixin ---\n// @vue/component\n\nexport var captionMixin = Vue.extend({\n props: props,\n computed: {\n captionId: function captionId() {\n // Even though `this.safeId` looks like a method, it is a computed prop\n // that returns a new function if the underlying ID changes\n return this.isStacked ? this.safeId('_caption_') : null;\n }\n },\n methods: {\n renderCaption: function renderCaption() {\n var caption = this.caption,\n captionHtml = this.captionHtml;\n var h = this.$createElement;\n var $caption = h();\n var hasCaptionSlot = this.hasNormalizedSlot(SLOT_NAME_TABLE_CAPTION);\n\n if (hasCaptionSlot || caption || captionHtml) {\n $caption = h('caption', {\n attrs: {\n id: this.captionId\n },\n domProps: hasCaptionSlot ? {} : htmlOrText(captionHtml, caption),\n key: 'caption'\n }, this.normalizeSlot(SLOT_NAME_TABLE_CAPTION));\n }\n\n return $caption;\n }\n }\n});","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_ADDON } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n isText: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_ADDON); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAddon = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_ADDON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var append = props.append;\n return h(props.tag, mergeData(data, {\n class: {\n 'input-group-append': append,\n 'input-group-prepend': !append\n },\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(BInputGroupText, children)] : children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/Vue.extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\n }\n});","import axios from '@axios'\n\nexport default {\n namespaced: true,\n state: {},\n getters: {},\n mutations: {},\n actions: {\n fetchUsers(ctx, queryParams) {\n return new Promise((resolve, reject) => {\n axios\n .get('/apps/user/users', { params: queryParams })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n fetchUser(ctx, { id }) {\n return new Promise((resolve, reject) => {\n axios\n .get(`/apps/user/users/${id}`)\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n addUser(ctx, userData) {\n return new Promise((resolve, reject) => {\n axios\n .post('/apps/user/users', { user: userData })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n },\n}\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAV } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n align = props.align,\n cardHeader = props.cardHeader;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': !vertical && cardHeader && tabs,\n 'card-header-pills': !vertical && cardHeader && pills && !tabs,\n 'flex-column': vertical,\n 'nav-fill': !vertical && props.fill,\n 'nav-justified': !vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(align), !vertical && align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","import { identity } from '../../../utils/identity';\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect';\nimport { clone, keys } from '../../../utils/object';\nimport { startCase } from '../../../utils/string';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Private function to massage field entry into common object format\n\nvar processField = function processField(key, value) {\n var field = null;\n\n if (isString(value)) {\n // Label shortcut\n field = {\n key: key,\n label: value\n };\n } else if (isFunction(value)) {\n // Formatter shortcut\n field = {\n key: key,\n formatter: value\n };\n } else if (isObject(value)) {\n field = clone(value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n\n /* istanbul ignore next */\n field = {\n key: key\n };\n }\n\n return field;\n}; // We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\n\n\nexport var normalizeFields = function normalizeFields(origFields, items) {\n var fields = [];\n\n if (isArray(origFields)) {\n // Normalize array Form\n origFields.filter(identity).forEach(function (f) {\n if (isString(f)) {\n fields.push({\n key: f,\n label: startCase(f)\n });\n } else if (isObject(f) && f.key && isString(f.key)) {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(clone(f));\n } else if (isObject(f) && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n var key = keys(f)[0];\n var field = processField(key, f[key]);\n\n if (field) {\n fields.push(field);\n }\n }\n });\n } // If no field provided, take a sample from first record (if exits)\n\n\n if (fields.length === 0 && isArray(items) && items.length > 0) {\n var sample = items[0];\n keys(sample).forEach(function (k) {\n if (!IGNORED_FIELD_KEYS[k]) {\n fields.push({\n key: k,\n label: startCase(k)\n });\n }\n });\n } // Ensure we have a unique array of fields and that they have String labels\n\n\n var memo = {};\n return fields.filter(function (f) {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = isString(f.label) ? f.label : startCase(f.key);\n return true;\n }\n\n return false;\n });\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isArray, isFunction, isString } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { makeModelMixin } from '../../../utils/model';\nimport { toInteger } from '../../../utils/number';\nimport { clone, sortKeys } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { normalizeFields } from './normalize-fields'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_ARRAY,\n defaultValue: []\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, _defineProperty({\n fields: makeProp(PROP_TYPE_ARRAY, null),\n // Provider mixin adds in `Function` type\n items: makeProp(PROP_TYPE_ARRAY, []),\n // Primary key for record\n // If provided the value in each row must be unique!\n primaryKey: makeProp(PROP_TYPE_STRING)\n}, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])))); // --- Mixin ---\n// @vue/component\n\nexport var itemsMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var items = this.items;\n return {\n // Our local copy of the items\n // Must be an array\n localItems: isArray(items) ? items.slice() : []\n };\n },\n computed: {\n computedFields: function computedFields() {\n // We normalize fields into an array of objects\n // `[ { key:..., label:..., ...}, {...}, ..., {..}]`\n return normalizeFields(this.fields, this.localItems);\n },\n computedFieldsObj: function computedFieldsObj() {\n // Fields as a simple lookup hash object\n // Mainly for formatter lookup and use in `scopedSlots` for convenience\n // If the field has a formatter, it normalizes formatter to a\n // function ref or `undefined` if no formatter\n var $parent = this.$parent;\n return this.computedFields.reduce(function (obj, f) {\n // We use object spread here so we don't mutate the original field object\n obj[f.key] = clone(f);\n\n if (f.formatter) {\n // Normalize formatter to a function ref or `undefined`\n var formatter = f.formatter;\n\n if (isString(formatter) && isFunction($parent[formatter])) {\n formatter = $parent[formatter];\n } else if (!isFunction(formatter)) {\n /* istanbul ignore next */\n formatter = undefined;\n } // Return formatter function or `undefined` if none\n\n\n obj[f.key].formatter = formatter;\n }\n\n return obj;\n }, {});\n },\n computedItems: function computedItems() {\n // Fallback if various mixins not provided\n return (this.paginatedItems || this.sortedItems || this.filteredItems || this.localItems ||\n /* istanbul ignore next */\n []).slice();\n },\n context: function context() {\n // Current state of sorting, filtering and pagination props/values\n return {\n filter: this.localFilter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n perPage: mathMax(toInteger(this.perPage, 0), 0),\n currentPage: mathMax(toInteger(this.currentPage, 0), 1),\n apiUrl: this.apiUrl\n };\n }\n },\n watch: {\n items: function items(newValue) {\n // Set `localItems`/`filteredItems` to a copy of the provided array\n this.localItems = isArray(newValue) ? newValue.slice() : [];\n },\n // Watch for changes on `computedItems` and update the `v-model`\n computedItems: function computedItems(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n },\n // Watch for context changes\n context: function context(newValue, oldValue) {\n // Emit context information for external paging/filtering/sorting handling\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT_CHANGED, newValue);\n }\n }\n },\n mounted: function mounted() {\n // Initially update the `v-model` of displayed items\n this.$emit(MODEL_EVENT_NAME, this.computedItems);\n },\n methods: {\n // Method to get the formatter method for a given field key\n getFieldFormatter: function getFieldFormatter(key) {\n var field = this.computedFieldsObj[key]; // `this.computedFieldsObj` has pre-normalized the formatter to a\n // function ref if present, otherwise `undefined`\n\n return field ? field.formatter : undefined;\n }\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_APPEND, SLOT_NAME_DEFAULT, SLOT_NAME_PREPEND } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_STRING),\n appendHtml: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n prepend: makeProp(PROP_TYPE_STRING),\n prependHtml: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BInputGroup = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var prepend = props.prepend,\n prependHtml = props.prependHtml,\n append = props.append,\n appendHtml = props.appendHtml,\n size = props.size;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $prepend = h();\n var hasPrependSlot = hasNormalizedSlot(SLOT_NAME_PREPEND, $scopedSlots, $slots);\n\n if (hasPrependSlot || prepend || prependHtml) {\n $prepend = h(BInputGroupPrepend, [hasPrependSlot ? normalizeSlot(SLOT_NAME_PREPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(prependHtml, prepend)\n })]);\n }\n\n var $append = h();\n var hasAppendSlot = hasNormalizedSlot(SLOT_NAME_APPEND, $scopedSlots, $slots);\n\n if (hasAppendSlot || append || appendHtml) {\n $append = h(BInputGroupAppend, [hasAppendSlot ? normalizeSlot(SLOT_NAME_APPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(appendHtml, append)\n })]);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, \"input-group-\".concat(size), size),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), [$prepend, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots), $append]);\n }\n});","export const HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport const defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: (err) => typeof console !== \"undefined\" && console.warn(err),\n getWeek: (givenDate) => {\n const date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export const english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: (nth) => {\n const s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export const pad = (number, length = 2) => `000${number}`.slice(length * -1);\nexport const int = (bool) => (bool === true ? 1 : 0);\nexport function debounce(fn, wait) {\n let t;\n return function () {\n clearTimeout(t);\n t = setTimeout(() => fn.apply(this, arguments), wait);\n };\n}\nexport const arrayify = (obj) => obj instanceof Array ? obj : [obj];\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n const e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n const wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (const key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n const path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nconst doNothing = () => undefined;\nexport const monthToStr = (monthNumber, shorthand, locale) => locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\nexport const revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n H: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n J: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n K: (dateObj, amPM, locale) => {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: (_, unixSeconds) => new Date(parseFloat(unixSeconds) * 1000),\n W: function (dateObj, weekNum, locale) {\n const weekNumber = parseInt(weekNum);\n const date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: (dateObj, year) => {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: (_, ISODate) => new Date(ISODate),\n d: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n h: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n i: (dateObj, minutes) => {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: (_, unixMillSeconds) => new Date(parseFloat(unixMillSeconds)),\n w: doNothing,\n y: (dateObj, year) => {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport const tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport const formats = {\n Z: (date) => date.toISOString(),\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: (date) => pad(date.getHours()),\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: (date, locale) => locale.amPM[int(date.getHours() > 11)],\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: (date) => pad(date.getSeconds()),\n U: (date) => date.getTime() / 1000,\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: (date) => pad(date.getFullYear(), 4),\n d: (date) => pad(date.getDate()),\n h: (date) => (date.getHours() % 12 ? date.getHours() % 12 : 12),\n i: (date) => pad(date.getMinutes()),\n j: (date) => date.getDate(),\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: (date) => pad(date.getMonth() + 1),\n n: (date) => date.getMonth() + 1,\n s: (date) => date.getSeconds(),\n u: (date) => date.getTime(),\n w: (date) => date.getDay(),\n y: (date) => String(date.getFullYear()).substring(2),\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport const createDateFormatter = ({ config = defaults, l10n = english, isMobile = false, }) => (dateObj, frmt, overrideLocale) => {\n const locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map((c, i, arr) => formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\")\n .join(\"\");\n};\nexport const createDateParser = ({ config = defaults, l10n = english }) => (date, givenFormat, timeless, customLocale) => {\n if (date !== 0 && !date)\n return undefined;\n const locale = customLocale || l10n;\n let parsedDate;\n const dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n const format = givenFormat || (config || defaults).dateFormat;\n const datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr))\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n let matched, ops = [];\n for (let i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n const token = format[i];\n const isBackSlash = token === \"\\\\\";\n const escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n const match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n ops.forEach(({ fn, val }) => (parsedDate = fn(parsedDate, val, locale) || parsedDate));\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(`Invalid date provided: ${dateOrig}`));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n};\nexport function compareDates(date1, date2, timeless = true) {\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport const isBetween = (ts, ts1, ts2) => {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport const duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n let hours = config.defaultHour;\n let minutes = config.defaultMinute;\n let seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n const minHour = config.minDate.getHours();\n const minMinutes = config.minDate.getMinutes();\n const minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n const maxHr = config.maxDate.getHours();\n const maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours, minutes, seconds };\n}\n","import { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nconst DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n const self = {\n config: Object.assign(Object.assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth(month = self.currentMonth, yr = self.currentYear) {\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n const config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n const daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n const defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n const defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n const prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n let hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n const limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n const limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (limitMaxHours) {\n const maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n const minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n const date = dateObj || self.latestSelectedDateObj;\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n const eventTarget = getEventTarget(event);\n const year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach((ev) => bind(element, ev, handler, options));\n if (element instanceof Array)\n return element.forEach((el) => bind(el, event, handler, options));\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: () => element.removeEventListener(event, handler),\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach((evt) => {\n Array.prototype.forEach.call(self.element.querySelectorAll(`[data-${evt}]`), (el) => bind(el, \"click\", self[evt]));\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n const debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", (e) => {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n const selText = (e) => getEventTarget(e).select();\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", () => self.secondElement && self.secondElement.select());\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", (e) => {\n updateTime(e);\n triggerChange();\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n const jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n const oldYear = self.currentYear;\n const oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n const eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n const target = e && getEventTarget(e);\n const input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n const event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n const fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n const { weekWrapper, weekNumbers } = buildWeeks();\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n const customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n const wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n const dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n const startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n for (let m = startMonth; m != endMonth; m += delta) {\n const month = self.daysContainer.children[m];\n const startIndex = delta > 0 ? 0 : month.children.length - 1;\n const endIndex = delta > 0 ? month.children.length : -1;\n for (let i = startIndex; i != endIndex; i += delta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n const givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n const loopDelta = delta > 0 ? 1 : -1;\n for (let m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n const month = self.daysContainer.children[m];\n const startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n const numMonthDays = month.children.length;\n for (let i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n const dayFocused = isInView(document.activeElement || document.body);\n const startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n const firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n const prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n const daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n let dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (let dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n const dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n const frag = document.createDocumentFragment();\n for (let i = 0; i < self.config.showMonths; i++) {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n const shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (let i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n const month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n const container = createElement(\"div\", \"flatpickr-month\");\n const monthNavFragment = window.document.createDocumentFragment();\n let monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", (e) => {\n const target = getEventTarget(e);\n const selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n const yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n const yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n const currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container,\n yearElement,\n monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (let m = self.config.showMonths; m--;) {\n const month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: () => self.__hidePrevMonthArrow,\n set(bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: () => self.__hideNextMonthArrow,\n set(bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n const defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n const separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n const hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n const minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n const secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (let i = self.config.showMonths; i--;) {\n const container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n const firstDayOfWeek = self.l10n.firstDayOfWeek;\n let weekdays = [...self.l10n.weekdays.shorthand];\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = [\n ...weekdays.splice(firstDayOfWeek, weekdays.length),\n ...weekdays.splice(0, firstDayOfWeek),\n ];\n }\n for (let i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = `\n \n ${weekdays.join(\"\")}\n \n `;\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n const weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n const weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper,\n weekNumbers,\n };\n }\n function changeMonth(value, isOffset = true) {\n const delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent = true, toInitial = true) {\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n const { hours, minutes, seconds } = getDefaultHours(self.config);\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (let i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n const wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach((k) => {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n const eventTarget = getEventTarget(e);\n const isCalendarElement = isCalendarElem(eventTarget);\n const isInput = eventTarget === self.input ||\n eventTarget === self.altInput ||\n self.element.contains(eventTarget) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n const lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n const isIgnored = !self.config.ignoredFocusElements.some((elem) => elem.contains(eventTarget));\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n const newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless = true) {\n var _a;\n const dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n const bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (let i = 0, d; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n const parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n const isInput = e.target === self._input;\n if (isInput &&\n (self.selectedDates.length > 0 || self._input.value.length > 0) &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n const eventTarget = getEventTarget(e);\n const isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n const allowInput = self.config.allowInput;\n const allowKeydown = self.isOpen && (!allowInput || !isInput);\n const allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n const isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n const delta = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta);\n else {\n e.stopPropagation();\n changeMonth(delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n const delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n const elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter((x) => x);\n const i = elems.indexOf(eventTarget);\n if (i !== -1) {\n const target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n const hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n let containsDisabled = false;\n let minRange = 0, maxRange = 0;\n for (let t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n for (let m = 0; m < self.config.showMonths; m++) {\n const month = self.daysContainer.children[m];\n for (let i = 0, l = month.children.length; i < l; i++) {\n const dayElem = month.children[i], date = dayElem.dateObj;\n const timestamp = date.getTime();\n const outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n continue;\n }\n else if (containsDisabled && !outOfRange)\n continue;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement = self._positionElement) {\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n const eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n const wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(() => self.hourElement.select(), 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return (date) => {\n const dateObj = (self.config[`_${type}Date`] = self.parseDate(date, self.config.dateFormat));\n const inverseDateObj = self.config[`_${type === \"min\" ? \"max\" : \"min\"}Date`];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter((d) => isEnabled(d));\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n const boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n const userConfig = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n const formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: () => self.config._enable,\n set: (dates) => {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: () => self.config._disable,\n set: (dates) => {\n self.config._disable = parseDateRules(dates);\n },\n });\n const timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n const defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n const defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + ` h:i${userConfig.enableSeconds ? \":S\" : \"\"} K`;\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: () => self.config._minDate,\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: () => self.config._maxDate,\n set: minMaxDateSetter(\"max\"),\n });\n const minMaxTimeSetter = (type) => (val) => {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n Object.defineProperty(self.config, \"minTime\", {\n get: () => self.config._minTime,\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: () => self.config._maxTime,\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (let i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter((hook) => self.config[hook] !== undefined).forEach((hook) => {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (let i = 0; i < self.config.plugins.length; i++) {\n const pluginConf = self.config.plugins[i](self) || {};\n for (const key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(`flatpickr: invalid locale ${self.config.locale}`));\n self.l10n = Object.assign(Object.assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = `(${self.l10n.amPM[0]}|${self.l10n.amPM[1]}|${self.l10n.amPM[0].toLowerCase()}|${self.l10n.amPM[1].toLowerCase()})`;\n const userConfig = Object.assign(Object.assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n const positionElement = customPositionElement || self._positionElement;\n const calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, ((acc, child) => acc + child.offsetHeight), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n const top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n let left = window.pageXOffset + inputBounds.left;\n let isCenter = false;\n let isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n const right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n const rightMost = left + calendarWidth > window.document.body.offsetWidth;\n const centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = `${top}px`;\n if (!rightMost) {\n self.calendarContainer.style.left = `${left}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = `${right}px`;\n }\n else {\n const doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n const bodyWidth = window.document.body.offsetWidth;\n const centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n const centerBefore = \".flatpickr-calendar.centerMost:before\";\n const centerAfter = \".flatpickr-calendar.centerMost:after\";\n const centerIndex = doc.cssRules.length;\n const centerStyle = `{left:${inputBounds.left}px;right:auto;}`;\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(`${centerBefore},${centerAfter}${centerStyle}`, centerIndex);\n self.calendarContainer.style.left = `${centerLeft}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n let editableSheet = null;\n for (let i = 0; i < document.styleSheets.length; i++) {\n const sheet = document.styleSheets[i];\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n const isSelectable = (day) => day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n const t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n const target = t;\n const selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n const shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n const selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n const isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n const single = self.config.mode === \"single\" && !self.config.enableTime;\n const range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n const CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n clickOpens: [\n () => {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (const key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach((x) => x());\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach((x) => x());\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n let dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map((d) => self.parseDate(d, format));\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map((date) => self.parseDate(date, format));\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map((date) => self.parseDate(date, format));\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(inputDate)}`));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter((d) => d instanceof Date && isEnabled(d, false)));\n if (self.config.mode === \"range\")\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n function setDate(date, triggerChange = false, format = self.config.dateFormat) {\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map((rule) => {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter((x) => x);\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n const preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n const inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", (e) => {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n const hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (let i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n const e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (let i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach((yearElement, i) => {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map((dObj) => self.formatDate(dObj, format))\n .filter((d, i, arr) => self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i)\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange = true) {\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n const eventTarget = getEventTarget(e);\n const isPrevMonth = self.prevMonthNav.contains(eventTarget);\n const isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n const isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n const min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n let newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n const isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n const nodes = Array.prototype.slice\n .call(nodeList)\n .filter((x) => x instanceof HTMLElement);\n const instances = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: Object.assign({}, English),\n default: Object.assign({}, English),\n};\nflatpickr.localize = (l10n) => {\n flatpickr.l10ns.default = Object.assign(Object.assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = (config) => {\n flatpickr.defaultConfig = Object.assign(Object.assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","var _objectSpread2, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ACTIVE = 'active';\nvar MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_ACTIVE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"buttonId\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"disabled\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"lazy\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"noBody\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"tag\", makeProp(PROP_TYPE_STRING, 'div')), _defineProperty(_objectSpread2, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"titleItemClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _defineProperty(_objectSpread2, \"titleLinkAttributes\", makeProp(PROP_TYPE_OBJECT)), _defineProperty(_objectSpread2, \"titleLinkClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _objectSpread2))), NAME_TAB); // --- Main component ---\n// @vue/component\n\nexport var BTab = /*#__PURE__*/Vue.extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default: function _default() {\n return {};\n }\n }\n },\n props: props,\n data: function data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n // For parent sniffing of child\n _isTab: function _isTab() {\n return true;\n },\n tabClasses: function tabClasses() {\n var active = this.localActive,\n disabled = this.disabled;\n return [{\n active: active,\n disabled: disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_ACTIVE, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n }), _defineProperty(_watch, \"disabled\", function disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n var firstTab = this.bvTabs.firstTab;\n\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n }), _defineProperty(_watch, \"localActive\", function localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }), _watch),\n mounted: function mounted() {\n // Inform `` of our presence\n this.registerTab();\n },\n updated: function updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n var updateButton = this.bvTabs.updateButton;\n\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Inform `` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `` of our presence\n var registerTab = this.bvTabs.registerTab;\n\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab: function unregisterTab() {\n // Inform `` of our departure\n var unregisterTab = this.bvTabs.unregisterTab;\n\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate: function activate() {\n // Not inside a `` component or tab is disabled\n var activateTab = this.bvTabs.activateTab;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate: function deactivate() {\n // Not inside a `` component or not active to begin with\n var deactivateTab = this.bvTabs.deactivateTab;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render: function render(h) {\n var localActive = this.localActive;\n var $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n }, // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\n }\n});","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target, ...args) {\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n for (const source of args) {\n if (source) {\n Object.keys(source).forEach((key) => (target[key] = source[key]));\n }\n }\n return target;\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// Constants used by table helpers\nexport var FIELD_KEY_CELL_VARIANT = '_cellVariants';\nexport var FIELD_KEY_ROW_VARIANT = '_rowVariant';\nexport var FIELD_KEY_SHOW_DETAILS = '_showDetails'; // Object of item keys that should be ignored for headers and\n// stringification and filter events\n\nexport var IGNORED_FIELD_KEYS = [FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS].reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, true));\n}, {}); // Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\n\nexport var EVENT_FILTER = ['a', 'a *', // Include content inside links\n'button', 'button *', // Include content inside buttons\n'input:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'textarea:not(.disabled):not([disabled])', '[role=\"link\"]', '[role=\"link\"] *', '[role=\"button\"]', '[role=\"button\"] *', '[tabindex]:not(.disabled):not([disabled])'].join(',');","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_ASIDE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA_ASIDE); // --- Main component ---\n// @vue/component\n\nexport var BMediaAside = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_ASIDE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var verticalAlign = props.verticalAlign;\n var align = verticalAlign === 'top' ? 'start' : verticalAlign === 'bottom' ? 'end' :\n /* istanbul ignore next */\n verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-aside',\n class: _defineProperty({\n 'media-aside-right': props.right\n }, \"align-self-\".concat(align), align)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_BODY } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_MEDIA_BODY); // --- Main component ---\n// @vue/component\n\nexport var BMediaBody = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-body'\n }), children);\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot'; // --- Props ---\n\nexport var props = {\n footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n // Any Bootstrap theme variant (or custom)\n // Falls back to `headRowVariant`\n footRowVariant: makeProp(PROP_TYPE_STRING),\n // 'dark', 'light', or `null` (or custom)\n footVariant: makeProp(PROP_TYPE_STRING),\n tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tfootMixin = Vue.extend({\n props: props,\n methods: {\n renderTFootCustom: function renderTFootCustom() {\n var h = this.$createElement;\n\n if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n return h(BTfoot, {\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n },\n key: 'bv-tfoot-custom'\n }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n }\n\n return h();\n },\n renderTfoot: function renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n }\n }\n});","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabAccount.vue?vue&type=style&index=0&lang=scss&\"","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=style&index=0&id=00bc57af&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabInformation.vue?vue&type=style&index=0&lang=scss&\"","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","import { ref, watch, computed } from '@vue/composition-api'\nimport store from '@/store'\nimport { title } from '@core/utils/filter'\n\n// Notification\nimport { useToast } from 'vue-toastification/composition'\nimport ToastificationContent from '@core/components/toastification/ToastificationContent.vue'\n\nexport default function useUsersList() {\n // Use toast\n const toast = useToast()\n\n const refUserListTable = ref(null)\n\n // Table Handlers\n const tableColumns = [\n { key: 'user', sortable: true },\n { key: 'email', sortable: true },\n { key: 'role', sortable: true },\n {\n key: 'currentPlan',\n label: 'Plan',\n formatter: title,\n sortable: true,\n },\n { key: 'status', sortable: true },\n { key: 'actions' },\n ]\n const perPage = ref(10)\n const totalUsers = ref(0)\n const currentPage = ref(1)\n const perPageOptions = [10, 25, 50, 100]\n const searchQuery = ref('')\n const sortBy = ref('id')\n const isSortDirDesc = ref(true)\n const roleFilter = ref(null)\n const planFilter = ref(null)\n const statusFilter = ref(null)\n\n const dataMeta = computed(() => {\n const localItemsCount = refUserListTable.value ? refUserListTable.value.localItems.length : 0\n return {\n from: perPage.value * (currentPage.value - 1) + (localItemsCount ? 1 : 0),\n to: perPage.value * (currentPage.value - 1) + localItemsCount,\n of: totalUsers.value,\n }\n })\n\n const refetchData = () => {\n refUserListTable.value.refresh()\n }\n\n watch([currentPage, perPage, searchQuery, roleFilter, planFilter, statusFilter], () => {\n refetchData()\n })\n\n const fetchUsers = (ctx, callback) => {\n store\n .dispatch('app-user/fetchUsers', {\n q: searchQuery.value,\n perPage: perPage.value,\n page: currentPage.value,\n sortBy: sortBy.value,\n sortDesc: isSortDirDesc.value,\n role: roleFilter.value,\n plan: planFilter.value,\n status: statusFilter.value,\n })\n .then(response => {\n const { users, total } = response.data\n\n callback(users)\n totalUsers.value = total\n })\n .catch(() => {\n toast({\n component: ToastificationContent,\n props: {\n title: 'Error fetching users list',\n icon: 'AlertTriangleIcon',\n variant: 'danger',\n },\n })\n })\n }\n\n // *===============================================---*\n // *--------- UI ---------------------------------------*\n // *===============================================---*\n\n const resolveUserRoleVariant = role => {\n if (role === 'subscriber') return 'primary'\n if (role === 'author') return 'warning'\n if (role === 'maintainer') return 'success'\n if (role === 'editor') return 'info'\n if (role === 'admin') return 'danger'\n return 'primary'\n }\n\n const resolveUserRoleIcon = role => {\n if (role === 'subscriber') return 'UserIcon'\n if (role === 'author') return 'SettingsIcon'\n if (role === 'maintainer') return 'DatabaseIcon'\n if (role === 'editor') return 'Edit2Icon'\n if (role === 'admin') return 'ServerIcon'\n return 'UserIcon'\n }\n\n const resolveUserStatusVariant = status => {\n if (status === 'pending') return 'warning'\n if (status === 'active') return 'success'\n if (status === 'inactive') return 'secondary'\n return 'primary'\n }\n\n return {\n fetchUsers,\n tableColumns,\n perPage,\n currentPage,\n totalUsers,\n dataMeta,\n perPageOptions,\n searchQuery,\n sortBy,\n isSortDirDesc,\n refUserListTable,\n\n resolveUserRoleVariant,\n resolveUserRoleIcon,\n resolveUserStatusVariant,\n refetchData,\n\n // Extra Filters\n roleFilter,\n planFilter,\n statusFilter,\n }\n}\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active'; // --- Helper methods ---\n\nvar getHeadSlotName = function getHeadSlotName(value) {\n return \"head(\".concat(value || '', \")\");\n};\n\nvar getFootSlotName = function getFootSlotName(value) {\n return \"foot(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = {\n // Any Bootstrap theme variant (or custom)\n headRowVariant: makeProp(PROP_TYPE_STRING),\n // 'light', 'dark' or `null` (or custom)\n headVariant: makeProp(PROP_TYPE_STRING),\n theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var theadMixin = Vue.extend({\n props: props,\n methods: {\n fieldClasses: function fieldClasses(field) {\n // Header field () classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked: function headClicked(event, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(event)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(event)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n stopEvent(event);\n this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n },\n renderThead: function renderThead() {\n var _this = this;\n\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var fields = this.computedFields,\n isSortable = this.isSortable,\n isSelectable = this.isSelectable,\n headVariant = this.headVariant,\n footVariant = this.footVariant,\n headRowVariant = this.headRowVariant,\n footRowVariant = this.footRowVariant;\n var h = this.$createElement; // In always stacked mode, we don't bother rendering the head/foot\n // Or if no field headings (empty table)\n\n if (this.isStackedAlways || fields.length === 0) {\n return h();\n }\n\n var hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED); // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n\n var selectAllRows = isSelectable ? this.selectAllRows : noop;\n var clearSelected = isSelectable ? this.clearSelected : noop; // Helper function to generate a field cell\n\n var makeCell = function makeCell(field, colIndex) {\n var label = field.label,\n labelHtml = field.labelHtml,\n variant = field.variant,\n stickyColumn = field.stickyColumn,\n key = field.key;\n var ariaLabel = null;\n\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n\n var on = {};\n\n if (hasHeadClickListener) {\n on.click = function (event) {\n _this.headClicked(event, field, isFoot);\n };\n\n on.keydown = function (event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n _this.headClicked(event, field, isFoot);\n }\n };\n }\n\n var sortAttrs = isSortable ? _this.sortTheadThAttrs(key, field, isFoot) : {};\n var sortClass = isSortable ? _this.sortTheadThClasses(key, field, isFoot) : null;\n var sortLabel = isSortable ? _this.sortTheadThLabel(key, field, isFoot) : null;\n var data = {\n class: [_this.fieldClasses(field), sortClass],\n props: {\n variant: variant,\n stickyColumn: stickyColumn\n },\n style: field.thStyle || {},\n attrs: _objectSpread(_objectSpread({\n // We only add a `tabindex` of `0` if there is a head-clicked listener\n // and the current field is sortable\n tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': colIndex + 1,\n 'aria-label': ariaLabel\n }, _this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {})), sortAttrs),\n on: on,\n key: key\n }; // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n\n var slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()]; // Footer will fallback to header slot names\n\n if (isFoot) {\n slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName()].concat(_toConsumableArray(slotNames));\n }\n\n var scope = {\n label: label,\n column: key,\n field: field,\n isFoot: isFoot,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n var $content = _this.normalizeSlot(slotNames, scope) || h('div', {\n domProps: htmlOrText(labelHtml, label)\n });\n var $srLabel = sortLabel ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(sortLabel, \")\")) : null; // Return the header cell\n\n return h(BTh, data, [$content, $srLabel].filter(identity));\n }; // Generate the array of cells\n\n\n var $cells = fields.map(makeCell).filter(identity); // Generate the row(s)\n\n var $trs = [];\n\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass,\n props: {\n variant: isUndefinedOrNull(footRowVariant) ? headRowVariant :\n /* istanbul ignore next */\n footRowVariant\n }\n }, $cells));\n } else {\n var scope = {\n columns: fields.length,\n fields: fields,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass,\n props: {\n variant: headRowVariant\n }\n }, $cells));\n }\n\n return h(isFoot ? BTfoot : BThead, {\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: footVariant || headVariant || null\n } : {\n headVariant: headVariant || null\n },\n key: isFoot ? 'bv-tfoot' : 'bv-thead'\n }, $trs);\n }\n }\n});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"flatpickr\")):\"function\"==typeof define&&define.amd?define(\"VueFlatpickr\",[\"flatpickr\"],e):\"object\"==typeof exports?exports.VueFlatpickr=e(require(\"flatpickr\")):t.VueFlatpickr=e(t.flatpickr)}(\"undefined\"!=typeof self?self:this,(function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";n.r(e),n.d(e,\"Component\",(function(){return c})),n.d(e,\"Plugin\",(function(){return p}));var r=n(0),o=n.n(r),i=[\"onChange\",\"onClose\",\"onDestroy\",\"onMonthChange\",\"onOpen\",\"onYearChange\"];function u(){return(u=Object.assign||function(t){for(var e=1;e {\n const inputImageRenderer = () => {\n const file = inputEl.value.files[0]\n const reader = new FileReader()\n\n reader.addEventListener(\n 'load',\n () => {\n callback(reader.result)\n },\n false,\n )\n\n if (file) {\n reader.readAsDataURL(file)\n }\n }\n return {\n inputImageRenderer,\n }\n}\n\nexport const _ = null\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import router from '@/router'\n// eslint-disable-next-line object-curly-newline\nimport { reactive, getCurrentInstance, watch, toRefs } from '@vue/composition-api'\n\nexport const isObject = obj => typeof obj === 'object' && obj !== null\n\nexport const isToday = date => {\n const today = new Date()\n return (\n /* eslint-disable operator-linebreak */\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n /* eslint-enable */\n )\n}\n\nconst getRandomFromArray = array => array[Math.floor(Math.random() * array.length)]\n\n// ? Light and Dark variant is not included\n// prettier-ignore\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])\n\nexport const isDynamicRouteActive = route => {\n const { route: resolvedRoute } = router.resolve(route)\n return resolvedRoute.path === router.currentRoute.path\n}\n\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\nexport const useRouter = () => {\n const vm = getCurrentInstance().proxy\n const state = reactive({\n route: vm.$route,\n })\n\n watch(\n () => vm.$route,\n r => {\n state.route = r\n },\n )\n\n return { ...toRefs(state), router: vm.$router }\n}\n\n/**\n * This is just enhancement over Object.extend [Gives deep extend]\n * @param {target} a Object which contains values to be overridden\n * @param {source} b Object which contains values to override\n */\n// export const objectExtend = (a, b) => {\n// // Don't touch 'null' or 'undefined' objects.\n// if (a == null || b == null) {\n// return a\n// }\n\n// Object.keys(b).forEach(key => {\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = objectExtend(a[key], b[key])\n// }\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// }\n// })\n\n// return a\n// }\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_APPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_APPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAppend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_APPEND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: true\n })\n }), children);\n }\n});","import { getSel, isElement } from '../../../utils/dom'; // Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\n\nexport var textSelectionActive = function textSelectionActive() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var sel = getSel();\n return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ?\n /* istanbul ignore next */\n sel.containsNode(el, true) : false;\n};","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupText = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group-text'\n }), children);\n }\n});","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var colgroupMixin = Vue.extend({\n methods: {\n renderColgroup: function renderColgroup() {\n var fields = this.computedFields;\n var h = this.$createElement;\n var $colgroup = h();\n\n if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n columns: fields.length,\n fields: fields\n })]);\n }\n\n return $colgroup;\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.userData === undefined ? 'div' : 'b-card',{tag:\"component\"},[_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.userData === undefined}},[_c('h4',{staticClass:\"alert-heading\"},[_vm._v(\" Error fetching user data \")]),_c('div',{staticClass:\"alert-body\"},[_vm._v(\" No user found with this user id. Check \"),_c('b-link',{staticClass:\"alert-link\",attrs:{\"to\":{ name: 'apps-users-list'}}},[_vm._v(\" User List \")]),_vm._v(\" for other users. \")],1)]),(_vm.userData)?_c('b-tabs',{attrs:{\"pills\":\"\"}},[_c('b-tab',{attrs:{\"active\":\"\"},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(\"Account\")])]},proxy:true}],null,false,819792000)},[_c('user-edit-tab-account',{staticClass:\"mt-2 pt-75\",attrs:{\"user-data\":_vm.userData}})],1),_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('feather-icon',{staticClass:\"mr-0 mr-sm-50\",attrs:{\"icon\":\"InfoIcon\",\"size\":\"16\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Information\")])]},proxy:true}],null,false,1675473746)},[_c('user-edit-tab-information',{staticClass:\"mt-2 pt-75\"})],1),_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('feather-icon',{staticClass:\"mr-0 mr-sm-50\",attrs:{\"icon\":\"Share2Icon\",\"size\":\"16\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Social\")])]},proxy:true}],null,false,1914541044)},[_c('user-edit-tab-social',{staticClass:\"mt-2 pt-75\"})],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-media',{staticClass:\"mb-2\",scopedSlots:_vm._u([{key:\"aside\",fn:function(){return [_c('b-avatar',{ref:\"previewEl\",attrs:{\"src\":_vm.userData.avatar,\"text\":_vm.avatarText(_vm.userData.fullName),\"variant\":(\"light-\" + (_vm.resolveUserRoleVariant(_vm.userData.role))),\"size\":\"90px\",\"rounded\":\"\"}})]},proxy:true}])},[_c('h4',{staticClass:\"mb-1\"},[_vm._v(\" \"+_vm._s(_vm.userData.fullName)+\" \")]),_c('div',{staticClass:\"d-flex flex-wrap\"},[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.$refs.refInputEl.click()}}},[_c('input',{ref:\"refInputEl\",staticClass:\"d-none\",attrs:{\"type\":\"file\"},on:{\"input\":_vm.inputImageRenderer}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Update\")]),_c('feather-icon',{staticClass:\"d-inline d-sm-none\",attrs:{\"icon\":\"EditIcon\"}})],1),_c('b-button',{staticClass:\"ml-1\",attrs:{\"variant\":\"outline-secondary\"}},[_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Remove\")]),_c('feather-icon',{staticClass:\"d-inline d-sm-none\",attrs:{\"icon\":\"TrashIcon\"}})],1)],1)]),_c('b-form',[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Username\",\"label-for\":\"username\"}},[_c('b-form-input',{attrs:{\"id\":\"username\"},model:{value:(_vm.userData.username),callback:function ($$v) {_vm.$set(_vm.userData, \"username\", $$v)},expression:\"userData.username\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Name\",\"label-for\":\"full-name\"}},[_c('b-form-input',{attrs:{\"id\":\"full-name\"},model:{value:(_vm.userData.fullName),callback:function ($$v) {_vm.$set(_vm.userData, \"fullName\", $$v)},expression:\"userData.fullName\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Email\",\"label-for\":\"email\"}},[_c('b-form-input',{attrs:{\"id\":\"email\",\"type\":\"email\"},model:{value:(_vm.userData.email),callback:function ($$v) {_vm.$set(_vm.userData, \"email\", $$v)},expression:\"userData.email\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Status\",\"label-for\":\"user-status\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.statusOptions,\"reduce\":function (val) { return val.value; },\"clearable\":false,\"input-id\":\"user-status\"},model:{value:(_vm.userData.status),callback:function ($$v) {_vm.$set(_vm.userData, \"status\", $$v)},expression:\"userData.status\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"User Role\",\"label-for\":\"user-role\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.roleOptions,\"reduce\":function (val) { return val.value; },\"clearable\":false,\"input-id\":\"user-role\"},model:{value:(_vm.userData.role),callback:function ($$v) {_vm.$set(_vm.userData, \"role\", $$v)},expression:\"userData.role\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Company\",\"label-for\":\"company\"}},[_c('b-form-input',{attrs:{\"id\":\"company\"},model:{value:(_vm.userData.company),callback:function ($$v) {_vm.$set(_vm.userData, \"company\", $$v)},expression:\"userData.company\"}})],1)],1)],1)],1),_c('b-card',{staticClass:\"border mt-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\"},[_c('b-card-title',{staticClass:\"font-medium-2\"},[_c('feather-icon',{attrs:{\"icon\":\"LockIcon\",\"size\":\"18\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Permission\")])],1)],1),_c('b-table',{staticClass:\"mb-0\",attrs:{\"striped\":\"\",\"responsive\":\"\",\"items\":_vm.permissionsData},scopedSlots:_vm._u([{key:\"cell(module)\",fn:function(data){return [_vm._v(\" \"+_vm._s(data.value)+\" \")]}},{key:\"cell()\",fn:function(data){return [_c('b-form-checkbox',{attrs:{\"checked\":data.value}})]}}])})],1),_c('b-button',{staticClass:\"mb-1 mb-sm-0 mr-0 mr-sm-1\",attrs:{\"variant\":\"primary\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Save Changes \")]),_c('b-button',{attrs:{\"variant\":\"outline-secondary\",\"type\":\"reset\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Reset \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabAccount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabAccount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserEditTabAccount.vue?vue&type=template&id=57670665&\"\nimport script from \"./UserEditTabAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./UserEditTabAccount.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserEditTabAccount.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"d-flex\"},[_c('feather-icon',{attrs:{\"icon\":\"UserIcon\",\"size\":\"19\"}}),_c('h4',{staticClass:\"mb-0 ml-50\"},[_vm._v(\" Personal Information \")])],1),_c('b-form',{staticClass:\"mt-1\"},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Birth Date\",\"label-for\":\"birth-date\"}},[_c('flat-pickr',{staticClass:\"form-control\",attrs:{\"config\":{ dateFormat: 'Y-m-d'},\"placeholder\":\"YYYY-MM-DD\"},model:{value:(_vm.userDataInfo.dob),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"dob\", $$v)},expression:\"userDataInfo.dob\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Mobile\",\"label-for\":\"mobile\"}},[_c('b-form-input',{attrs:{\"id\":\"mobile\"},model:{value:(_vm.userDataInfo.mobile),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"mobile\", $$v)},expression:\"userDataInfo.mobile\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Website\",\"label-for\":\"website\"}},[_c('b-form-input',{attrs:{\"id\":\"website\"},model:{value:(_vm.userDataInfo.website),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"website\", $$v)},expression:\"userDataInfo.website\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Language\",\"label-for\":\"language\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.languageOptions,\"clearable\":false,\"input-id\":\"language\"},model:{value:(_vm.userDataInfo.language),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"language\", $$v)},expression:\"userDataInfo.language\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Gender\",\"label-for\":\"gender\",\"label-class\":\"mb-1\"}},[_c('b-form-radio-group',{attrs:{\"id\":\"gender\",\"options\":_vm.genderOptions,\"value\":\"male\"},model:{value:(_vm.userDataInfo.gender),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"gender\", $$v)},expression:\"userDataInfo.gender\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Contact Options\",\"label-for\":\"contact-options\",\"label-class\":\"mb-1\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"contact-options\",\"options\":_vm.contactOptionsOptions},model:{value:(_vm.userDataInfo.contactOptions),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"contactOptions\", $$v)},expression:\"userDataInfo.contactOptions\"}})],1)],1)],1),_c('div',{staticClass:\"d-flex mt-2\"},[_c('feather-icon',{attrs:{\"icon\":\"MapPinIcon\",\"size\":\"19\"}}),_c('h4',{staticClass:\"mb-0 ml-50\"},[_vm._v(\" Address \")])],1),_c('b-row',{staticClass:\"mt-1\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Address Line 1\",\"label-for\":\"address-line-1\"}},[_c('b-form-input',{attrs:{\"id\":\"address-line-1\"},model:{value:(_vm.userDataInfo.addressLine1),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"addressLine1\", $$v)},expression:\"userDataInfo.addressLine1\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Address Line 2\",\"label-for\":\"address-line-2\"}},[_c('b-form-input',{attrs:{\"id\":\"address-line-2\",\"placeholder\":\"Los Santos\"},model:{value:(_vm.userDataInfo.addressLine2),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"addressLine2\", $$v)},expression:\"userDataInfo.addressLine2\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Postcode\",\"label-for\":\"postcode\"}},[_c('b-form-input',{attrs:{\"id\":\"postcode\",\"type\":\"number\",\"placeholder\":\"597626\"},model:{value:(_vm.userDataInfo.postcode),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"postcode\", $$v)},expression:\"userDataInfo.postcode\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"City\",\"label-for\":\"city\"}},[_c('b-form-input',{attrs:{\"id\":\"city\"},model:{value:(_vm.userDataInfo.city),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"city\", $$v)},expression:\"userDataInfo.city\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"State\",\"label-for\":\"state\"}},[_c('b-form-input',{attrs:{\"id\":\"state\",\"placeholder\":\"Manhattan\"},model:{value:(_vm.userDataInfo.state),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"state\", $$v)},expression:\"userDataInfo.state\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Country\",\"label-for\":\"country\"}},[_c('b-form-input',{attrs:{\"id\":\"country\",\"placeholder\":\"United States\"},model:{value:(_vm.userDataInfo.country),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"country\", $$v)},expression:\"userDataInfo.country\"}})],1)],1)],1),_c('b-row',{staticClass:\"mt-2\"},[_c('b-col',[_c('b-button',{staticClass:\"mb-1 mb-sm-0 mr-0 mr-sm-1\",attrs:{\"variant\":\"primary\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Save Changes \")]),_c('b-button',{attrs:{\"variant\":\"outline-secondary\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Reset \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabInformation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabInformation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserEditTabInformation.vue?vue&type=template&id=1413b28c&\"\nimport script from \"./UserEditTabInformation.vue?vue&type=script&lang=js&\"\nexport * from \"./UserEditTabInformation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserEditTabInformation.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form',[_c('b-row',[_vm._l((_vm.socialInputs),function(socialField){return _c('b-col',{key:socialField.dataField,attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":socialField.label,\"label-for\":socialField.dataField}},[_c('b-input-group',{staticClass:\"input-group-merge\"},[_c('b-input-group-prepend',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{attrs:{\"size\":\"16\",\"icon\":socialField.icon}})],1),_c('b-form-input',{attrs:{\"id\":socialField.dataField,\"type\":\"url\"},model:{value:(_vm.userDataSocial[socialField.dataField]),callback:function ($$v) {_vm.$set(_vm.userDataSocial, socialField.dataField, $$v)},expression:\"userDataSocial[socialField.dataField]\"}})],1)],1)],1)}),_c('b-col',{staticClass:\"mt-2\"},[_c('b-button',{staticClass:\"mb-1 mb-sm-0 mr-0 mr-sm-1\",attrs:{\"variant\":\"primary\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Save Changes \")]),_c('b-button',{attrs:{\"variant\":\"outline-secondary\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Reset \")])],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabSocial.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabSocial.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserEditTabSocial.vue?vue&type=template&id=7ecf2d12&\"\nimport script from \"./UserEditTabSocial.vue?vue&type=script&lang=js&\"\nexport * from \"./UserEditTabSocial.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersEdit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersEdit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UsersEdit.vue?vue&type=template&id=1abc03f6&\"\nimport script from \"./UsersEdit.vue?vue&type=script&lang=js&\"\nexport * from \"./UsersEdit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\n }\n});","export var noop = function noop() {};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CHANGED, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_PREV } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_TABS_END, SLOT_NAME_TABS_START, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Filter function to filter out disabled tabs\n\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVTabButton = /*#__PURE__*/Vue.extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n bvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvt: function handleEvt(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n\n var type = event.type,\n keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render: function render(h) {\n var id = this.id,\n tabIndex = this.tabIndex,\n setSize = this.setSize,\n posInSet = this.posInSet,\n controls = this.controls,\n handleEvt = this.handleEvt;\n var _this$tab = this.tab,\n title = _this$tab.title,\n localActive = _this$tab.localActive,\n disabled = _this$tab.disabled,\n titleItemClass = _this$tab.titleItemClass,\n titleLinkClass = _this$tab.titleLinkClass,\n titleLinkAttributes = _this$tab.titleLinkAttributes;\n var $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled: disabled\n }, titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: disabled\n },\n attrs: _objectSpread(_objectSpread({}, titleLinkAttributes), {}, {\n id: id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n }),\n on: {\n click: handleEvt,\n keydown: handleEvt\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n}); // --- Props ---\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), navProps), {}, {\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n card: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_TABS); // --- Main component ---\n// @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n props: props,\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n var $tab = this.tabs[newValue];\n\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n }), _defineProperty(_watch, \"currentTab\", function currentTab(newValue) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function ($tab, i) {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit(MODEL_EVENT_NAME, index);\n }), _defineProperty(_watch, \"tabs\", function tabs(newValue, oldValue) {\n var _this = this;\n\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }), oldValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n _this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n }), _defineProperty(_watch, \"registeredTabs\", function registeredTabs() {\n this.updateTabs();\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted: function mounted() {\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.setObserver(false); // Ensure no references to child instances exist\n\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab: function unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function ($t) {\n return $t !== $tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver() {\n var _this2 = this;\n\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n var handler = function handler() {\n _this2.$nextTick(function () {\n requestAF(function () {\n _this2.updateTabs();\n });\n });\n }; // Watch for changes to `` sub components\n\n\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n var $tabs = this.registeredTabs.filter(function ($tab) {\n return $tab.$children.filter(function ($t) {\n return $t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n /* istanbul ignore next: too difficult to test */\n\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n var selector = $tabs.map(function ($tab) {\n return \"#\".concat($tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function ($el) {\n return $el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n\n\n return stableSort($tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n updateTabs: function updateTabs() {\n var $tabs = this.getTabs(); // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n\n var tabIndex = $tabs.indexOf($tabs.slice().reverse().find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n })); // Else try setting to `currentTab`\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find first non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n } // Ensure only one tab is active at a time\n\n\n $tabs.forEach(function ($tab, index) {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab($tab) {\n return (this.$refs.buttons || []).find(function ($btn) {\n return $btn.tab === $tab;\n });\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton: function updateButton($tab) {\n var $button = this.getButtonForTab($tab);\n\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab: function activateTab($tab) {\n var currentTab = this.currentTab,\n $tabs = this.tabs;\n var result = false;\n\n if ($tab) {\n var index = $tabs.indexOf($tab);\n\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n var tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n } // Couldn't set tab, so ensure v-model is up to date\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab: function deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function ($t) {\n return $t !== $tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton: function focusButton($tab) {\n var _this3 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this3.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick: function emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab: function clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var $tab = this.tabs.find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var $tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var align = this.align,\n card = this.card,\n end = this.end,\n fill = this.fill,\n firstTab = this.firstTab,\n justified = this.justified,\n lastTab = this.lastTab,\n nextTab = this.nextTab,\n noKeyNav = this.noKeyNav,\n noNavStyle = this.noNavStyle,\n pills = this.pills,\n previousTab = this.previousTab,\n small = this.small,\n $tabs = this.tabs,\n vertical = this.vertical; // Currently active tab\n\n var $activeTab = $tabs.find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var $fallbackTab = $tabs.find(function ($tab) {\n return !$tab.disabled;\n }); // For each `` found create the tab buttons\n\n var $buttons = $tabs.map(function ($tab, index) {\n var _on;\n\n var safeId = $tab.safeId; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n var tabIndex = null;\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(\"_BV_tab_button_\") : null),\n noKeyNav: noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex: tabIndex\n },\n on: (_on = {}, _defineProperty(_on, EVENT_NAME_CLICK, function (event) {\n _this4.clickTab($tab, event);\n }), _defineProperty(_on, EVENT_NAME_FIRST, firstTab), _defineProperty(_on, EVENT_NAME_PREV, previousTab), _defineProperty(_on, EVENT_NAME_NEXT, nextTab), _defineProperty(_on, EVENT_NAME_LAST, lastTab), _on),\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true\n });\n });\n var $nav = h(BNav, {\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: fill,\n justified: justified,\n align: align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n vertical: vertical,\n small: small,\n cardHeader: card && !vertical\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: [{\n 'card-header': card && !vertical && !end,\n 'card-footer': card && !vertical && end,\n 'col-auto': vertical\n }, this.navWrapperClass],\n key: 'bv-tabs-nav'\n }, [$nav]);\n var $children = this.normalizeSlot() || [];\n var $empty = h();\n\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active', {\n 'card-body': card\n }],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n\n var $content = h('div', {\n staticClass: 'tab-content',\n class: [{\n col: vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: vertical,\n 'no-gutters': vertical && card\n },\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});"],"sourceRoot":""}