{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/table/td.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?3be0","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?3fc5","webpack:///./src/@core/components/toastification/ToastificationContent.vue","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.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/table/tr.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/has-listener.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tbody.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/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-stacked.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/table/th.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-table-renderer.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?4f7a","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/form-radio.js","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?b053","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?6534","webpack:///./src/views/apps/user/users-list/useUsersList.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/thead.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/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue?fd23","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?b0c2","webpack:///src/views/apps/user/users-edit/UserEditTabAccount.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?a140","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?e375","webpack:///src/views/apps/user/users-edit/UserEditTabInformation.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?1fb4","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue?041b","webpack:///src/views/apps/user/users-edit/UserEditTabSocial.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue?ad69","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?f876","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue","webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","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/mixins/form-radio-check-group.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-options.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","parseSpan","spanValidator","props","colspan","rowspan","stackedHeading","stickyColumn","variant","BTd","extend","name","mixins","inject","bvTableTr","default","inheritAttrs","computed","tag","inTbody","this","inThead","inTfoot","isDark","isStacked","isStackedCell","isResponsive","isStickyHeader","hasStickyHeader","isStickyColumn","rowVariant","headVariant","footVariant","tableVariant","computedColspan","computedRowspan","cellClasses","concat","cellAttrs","headOrFoot","role","scope","bvAttrs","render","h","$content","normalizeSlot","class","attrs","on","bvListeners","_vm","_h","$createElement","_c","_self","staticClass","icon","domProps","_s","title","_e","text","$event","$emit","hideClose","staticRenderFns","components","BAvatar","type","String","Boolean","component","BTfoot","provide","bvTableRowGroup","bvTable","isTfoot","dark","stickyHeader","tfootClasses","tfootAttrs","BFormRadioGroup","bvRadioGroup","isRadioGroup","bottomRowMixin","methods","renderBottomRow","fields","computedFields","stacked","tbodyTrClass","tbodyTrAttr","hasNormalizedSlot","columns","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","data","localBusy","computedBusy","watch","newValue","oldValue","stopIfBusy","event","renderBusy","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","html","stringifyObjectValues","sort","map","k","v","join","row","ignoreFields","includeFields","fieldsObj","undefined","formattedRow","reduce","result","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","prototype","toString","call","slice","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","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","_ref","created","_this2","$nextTick","beforeDestroy","clearTimeout","fn","item","_this3","regExp","pattern","replace","RegExp","lastIndex","computedFieldsObj","currentPage","perPage","paginationMixin","localPaging","noProviderPaging","paginatedItems","sortedItems","math","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","apiUrl","noProviderSorting","providerMixin","providerTriggerContext","ctx","sortBy","sortDesc","localSortBy","localSortDesc","_providerUpdate","mounted","listenOnRoot","id","refresh","$off","$on","clearSelected","_providerSetLocal","emitOnRoot","context","then","e","message","_props","_watch","SELECT_MODES","noSelectOnClick","selectMode","selectable","selectedVariant","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","some","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","equal","setSelectionHandlers","_selectedRows","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","get","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","LIGHT","DARK","BTr","isTbody","isThead","isRowDark","trClasses","trAttrs","hasListenerMixin","hasListener","$listeners","$events","_events","noBody","rightAlign","verticalAlign","BMedia","functional","slots","scopedSlots","children","$children","slotScope","$slots","$scopedSlots","$aside","right","BInputGroupPrepend","append","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","listeners","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","defaultValue","$parent","getThValues","thValue","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","label","isRowHeader","formatted","cellTag","cellVariant","tdClass","thAttr","tdAttr","unformatted","toggleDetails","detailsShowing","rowSelected","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","striped","primaryKey","rowShowDetails","hasRowClickHandler","$rows","detailsId","safeId","$tds","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableAttrs","userTrClasses","userTrAttrs","tabindex","mouseenter","mouseleave","ref","refInFor","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","getTbodyTrs","$refs","tbody","$el","trs","tr","getTbodyTrIndex","el","tagName","indexOf","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTbody","$busy","cache","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","click","keydown","$tbody","$props","_objectSpread2","BFormCheckboxGroup","bvCheckGroup","caption","captionHtml","captionMixin","captionId","renderCaption","$caption","hasCaptionSlot","isText","BInputGroupAddon","stackedMixin","isStackedAlways","stackedTableClasses","namespaced","state","getters","mutations","actions","fetchUsers","queryParams","Promise","resolve","reject","axios","params","response","catch","error","fetchUser","addUser","userData","post","user","computeJustifyContent","align","cardHeader","fill","justified","pills","small","tabs","vertical","BNav","_class","origFields","sample","memo","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","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","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","inline","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onChange","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","number","bool","debounce","wait","t","arrayify","toggleClass","elem","className","classList","add","remove","createElement","content","document","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","hour","parseFloat","H","J","day","K","getHours","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","d","minutes","setMinutes","j","l","m","month","u","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","formatDate","split","c","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","val","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","min","max","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","input","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","updateValue","setCalendarWidth","isSafari","positionCalendar","triggerEvent","bindToInstance","bind","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","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","select","timeIncrement","onBlur","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","focus","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","disabled","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","blur","isTimeObj","preventDefault","focusAndClose","stopPropagation","elems","pluginElements","x","charAt","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","JSON","parse","stringify","dataset","formats","_enable","set","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","bottom","showOnTop","top","pageYOffset","left","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","placeholder","required","inputType","mobileFormatStr","step","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","lazy","activate","deactivate","firstTab","registerTab","updated","updateButton","unregisterTab","activateTab","deactivateTab","directives","BTh","extends","bordered","borderless","captionTop","fixed","hover","noBorderCollapse","outlined","responsive","tableClass","tableRendererMixin","wrapperClasses","wrapperStyles","maxHeight","tableClasses","isTableSimple","border","tableAttrs","adb","ariaAttrs","rowCount","renderColgroup","renderThead","renderTfoot","$table","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","BFormRadio","bvGroup","computedLocalChecked","plain","formCustomMixin","custom","TABLE_TAG_NAMES","filterEvent","labelFor","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","BThead","theadClasses","theadAttrs","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","noop","makeCell","labelHtml","ariaLabel","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","module","exports","r","toStringTag","__esModule","create","hasOwnProperty","p","onInput","validator","events","fp","getElem","fpInput","$watch","watchDisabled","immediate","install","useInputImageRenderer","inputEl","inputImageRenderer","file","files","reader","FileReader","readAsDataURL","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","BFormCheckbox","isChecked","checked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","BInputGroupAppend","textSelectionActive","sel","containsNode","BInputGroupText","_methods","ariaLabelledby","button","buttonVariant","formRadioCheckMixin","hasFocus","isBtnMode","buttons","isPlain","isCustom","isSwitch","switches","switch","isInline","isDisabled","isRequired","computedName","groupName","computedForm","form","computedSize","computedState","computedButtonVariant","buttonClasses","computedAttrs","_ref2","stateClass","change","handleFocus","$button","$label","for","colgroupMixin","$colgroup","_v","_u","proxy","avatar","avatarText","fullName","refInputEl","model","$$v","expression","$store","appConfig","isRTL","statusOptions","roleOptions","permissionsData","BButton","BRow","BCol","BFormGroup","BFormInput","BForm","BCard","BCardHeader","BCardTitle","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","findIconComponent","iconName","$options","iconComponent","BIcon","parent","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","linkProps","alt","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","buttonType","rounded","square","src","bvAvatarGroup","localSrc","computedVariant","computedRounded","fontStyle","fontSize","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","onImgError","onClick","_class2","link","height","$badge","hasBadgeSlot","badgeText","componentData","OPTIONS_OBJECT_DEPRECATED_MSG","disabledField","htmlField","textField","valueField","formOptionsMixin","formOptions","normalizeOptions","normalizeOption","PASS_DOWN_ATTRS","ariaInvalid","validated","formRadioCheckGroupMixin","groupClasses","classes","$attrs","optionComponent","$inputs","computedAriaInvalid","notDisabled","tab","BVTabButton","controls","noKeyNav","posInSet","setSize","handleEvt","_this$tab","titleItemClass","titleLinkClass","titleLinkAttributes","$link","activeNavItemClass","navProps","contentClass","end","navClass","navWrapperClass","noNavStyle","currentTab","registeredTabs","localNavClass","$tab","previousTab","nextTab","updateTabs","$_observer","setObserver","$t","disconnect","childList","subtree","attributes","attributeFilter","getTabs","$tabs","order","reverse","find","getButtonForTab","$btn","$forceUpdate","tabEvent","cancelable","vueTarget","componentId","defaultPrevented","focusButton","emitTabClick","clickTab","currentIndex","lastTab","_this4","$activeTab","$fallbackTab","$buttons","_on","$nav","col"],"mappings":"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","file":"js/chunk-183d73d9.6f04623a.js","sourcesContent":["function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TABLE_CELL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Helper methods ---\n// Parse a rowspan or colspan into a digit (or `null` if < `1` )\n\nvar parseSpan = function parseSpan(value) {\n value = toInteger(value, 0);\n return value > 0 ? value : null;\n};\n/* istanbul ignore next */\n\n\nvar spanValidator = function spanValidator(value) {\n return isUndefinedOrNull(value) || parseSpan(value) > 0;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n colspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n rowspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n stackedHeading: makeProp(PROP_TYPE_STRING),\n stickyColumn: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TABLE_CELL); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTd = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_CELL,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n inject: {\n bvTableTr: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Overridden by ``\n tag: function tag() {\n return 'td';\n },\n inTbody: function inTbody() {\n return this.bvTableTr.inTbody;\n },\n inThead: function inThead() {\n return this.bvTableTr.inThead;\n },\n inTfoot: function inTfoot() {\n return this.bvTableTr.inTfoot;\n },\n isDark: function isDark() {\n return this.bvTableTr.isDark;\n },\n isStacked: function isStacked() {\n return this.bvTableTr.isStacked;\n },\n // We only support stacked-heading in tbody in stacked mode\n isStackedCell: function isStackedCell() {\n return this.inTbody && this.isStacked;\n },\n isResponsive: function isResponsive() {\n return this.bvTableTr.isResponsive;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return this.bvTableTr.isStickyHeader;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return this.bvTableTr.hasStickyHeader;\n },\n // Needed to handle background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky column cells are only available in responsive\n // mode (horizontal scrolling) or when sticky header mode\n // Applies to cells in `thead`, `tbody` and `tfoot`\n isStickyColumn: function isStickyColumn() {\n return !this.isStacked && (this.isResponsive || this.hasStickyHeader) && this.stickyColumn;\n },\n rowVariant: function rowVariant() {\n return this.bvTableTr.variant;\n },\n headVariant: function headVariant() {\n return this.bvTableTr.headVariant;\n },\n footVariant: function footVariant() {\n return this.bvTableTr.footVariant;\n },\n tableVariant: function tableVariant() {\n return this.bvTableTr.tableVariant;\n },\n computedColspan: function computedColspan() {\n return parseSpan(this.colspan);\n },\n computedRowspan: function computedRowspan() {\n return parseSpan(this.rowspan);\n },\n // We use computed props here for improved performance by caching\n // the results of the string interpolation\n cellClasses: function cellClasses() {\n var variant = this.variant,\n headVariant = this.headVariant,\n isStickyColumn = this.isStickyColumn;\n\n if (!variant && this.isStickyHeader && !headVariant || !variant && isStickyColumn && this.inTfoot && !this.footVariant || !variant && isStickyColumn && this.inThead && !headVariant || !variant && isStickyColumn && this.inTbody) {\n // Needed for sticky-header mode as Bootstrap v4 table cells do\n // not inherit parent's `background-color`\n variant = this.rowVariant || this.tableVariant || 'b-table-default';\n }\n\n return [variant ? \"\".concat(this.isDark ? 'bg' : 'table', \"-\").concat(variant) : null, isStickyColumn ? 'b-table-sticky-column' : null];\n },\n cellAttrs: function cellAttrs() {\n var stackedHeading = this.stackedHeading; // We use computed props here for improved performance by caching\n // the results of the object spread (Object.assign)\n\n var headOrFoot = this.inThead || this.inTfoot; // Make sure col/rowspan's are > 0 or null\n\n var colspan = this.computedColspan;\n var rowspan = this.computedRowspan; // Default role and scope\n\n var role = 'cell';\n var scope = null; // Compute role and scope\n // We only add scopes with an explicit span of 1 or greater\n\n if (headOrFoot) {\n // Header or footer cells\n role = 'columnheader';\n scope = colspan > 0 ? 'colspan' : 'col';\n } else if (isTag(this.tag, 'th')) {\n // th's in tbody\n role = 'rowheader';\n scope = rowspan > 0 ? 'rowgroup' : 'row';\n }\n\n return _objectSpread(_objectSpread({\n colspan: colspan,\n rowspan: rowspan,\n role: role,\n scope: scope\n }, this.bvAttrs), {}, {\n // Add in the stacked cell label data-attribute if in\n // stacked mode (if a stacked heading label is provided)\n 'data-label': this.isStackedCell && !isUndefinedOrNull(stackedHeading) ?\n /* istanbul ignore next */\n toString(stackedHeading) : null\n });\n }\n },\n render: function render(h) {\n var $content = [this.normalizeSlot()];\n return h(this.tag, {\n class: this.cellClasses,\n attrs: this.cellAttrs,\n // Transfer any native listeners\n on: this.bvListeners\n }, [this.isStackedCell ? h('div', [$content]) : $content]);\n }\n});","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=55dd3057&scoped=true&\"\nimport script from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nexport * from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55dd3057\",\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Supported values: 'lite', 'dark', or null\n footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTfoot = /*#__PURE__*/Vue.extend({\n name: NAME_TFOOT,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTfoot: function isTfoot() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n tfootClasses: function tfootClasses() {\n return [this.footVariant ? \"thead-\".concat(this.footVariant) : null];\n },\n tfootAttrs: function tfootAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'rowgroup'\n });\n }\n },\n render: function render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../vue';\nimport { 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});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TR } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar LIGHT = 'light';\nvar DARK = 'dark'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TR); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTr = /*#__PURE__*/Vue.extend({\n name: NAME_TR,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableTr: this\n };\n },\n inject: {\n bvTableRowGroup: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / ``\n inTbody: function inTbody() {\n return this.bvTableRowGroup.isTbody;\n },\n // Sniffed by `` / ``\n inThead: function inThead() {\n return this.bvTableRowGroup.isThead;\n },\n // Sniffed by `` / ``\n inTfoot: function inTfoot() {\n return this.bvTableRowGroup.isTfoot;\n },\n // Sniffed by `` / ``\n isDark: function isDark() {\n return this.bvTableRowGroup.isDark;\n },\n // Sniffed by `` / ``\n isStacked: function isStacked() {\n return this.bvTableRowGroup.isStacked;\n },\n // Sniffed by `` / ``\n isResponsive: function isResponsive() {\n return this.bvTableRowGroup.isResponsive;\n },\n // Sniffed by `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return this.bvTableRowGroup.isStickyHeader;\n },\n // Sniffed by / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTableRowGroup.hasStickyHeader;\n },\n // Sniffed by `` / ``\n tableVariant: function tableVariant() {\n return this.bvTableRowGroup.tableVariant;\n },\n // Sniffed by `` / ``\n headVariant: function headVariant() {\n return this.inThead ? this.bvTableRowGroup.headVariant : null;\n },\n // Sniffed by `` / ``\n footVariant: function footVariant() {\n return this.inTfoot ? this.bvTableRowGroup.footVariant : null;\n },\n isRowDark: function isRowDark() {\n return this.headVariant === LIGHT || this.footVariant === LIGHT ?\n /* istanbul ignore next */\n false : this.headVariant === DARK || this.footVariant === DARK ?\n /* istanbul ignore next */\n true : this.isDark;\n },\n trClasses: function trClasses() {\n var variant = this.variant;\n return [variant ? \"\".concat(this.isRowDark ? 'bg' : 'table', \"-\").concat(variant) : null];\n },\n trAttrs: function trAttrs() {\n return _objectSpread({\n role: 'row'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('tr', {\n class: this.trClasses,\n attrs: this.trAttrs,\n // Pass native listeners to child\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","// Mixin to determine if an event listener has been registered\n// either via `v-on:name` (in the parent) or programmatically\n// via `vm.$on('name', ...)`\n// See: https://github.com/vuejs/vue/issues/10825\nimport { Vue } from '../vue';\nimport { isArray, isUndefined } from '../utils/inspect'; // @vue/component\n\nexport var hasListenerMixin = Vue.extend({\n methods: {\n hasListener: function hasListener(name) {\n // Only includes listeners registered via `v-on:name`\n var $listeners = this.$listeners || {}; // Includes `v-on:name` and `this.$on('name')` registered listeners\n // Note this property is not part of the public Vue API, but it is\n // the only way to determine if a listener was added via `vm.$on`\n\n var $events = this._events || {}; // Registered listeners in `this._events` are always an array,\n // but might be zero length\n\n return !isUndefined($listeners[name]) || isArray($events[name]) && $events[name].length > 0;\n }\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots,\n children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\n }), $children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_PREPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_PREPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupPrepend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_PREPEND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: false\n })\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTbody = /*#__PURE__*/Vue.extend({\n name: NAME_TBODY,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTbody: function isTbody() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n isTransitionGroup: function isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs: function tbodyAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n },\n tbodyProps: function tbodyProps() {\n var tbodyTransitionProps = this.tbodyTransitionProps;\n return tbodyTransitionProps ? _objectSpread(_objectSpread({}, tbodyTransitionProps), {}, {\n tag: 'tbody'\n }) : {};\n }\n },\n render: function render(h) {\n var data = {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs\n };\n\n if (this.isTransitionGroup) {\n // We use native listeners if a transition group for any delegated events\n data.on = this.tbodyTransitionHandlers || {};\n data.nativeOn = this.bvListeners;\n } else {\n // Otherwise we place any listeners on the tbody element\n data.on = this.bvListeners;\n }\n\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\n }\n});","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});","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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN_STRING } from '../../../constants/props';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n stacked: makeProp(PROP_TYPE_BOOLEAN_STRING, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var stackedMixin = Vue.extend({\n props: props,\n computed: {\n isStacked: function isStacked() {\n var stacked = this.stacked; // `true` when always stacked, or returns breakpoint specified\n\n return stacked === '' ? true : stacked;\n },\n isStackedAlways: function isStackedAlways() {\n return this.isStacked === true;\n },\n stackedTableClasses: function stackedTableClasses() {\n var isStackedAlways = this.isStackedAlways;\n return _defineProperty({\n 'b-table-stacked': isStackedAlways\n }, \"b-table-stacked-\".concat(this.stacked), !isStackedAlways && this.isStacked);\n }\n }\n});","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});","import { Vue } from '../../vue';\nimport { NAME_TH } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BTd, props as BTdProps } from './td'; // --- Props ---\n\nexport var props = makePropsConfigurable(BTdProps, NAME_TH); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTh = /*#__PURE__*/Vue.extend({\n name: NAME_TH,\n extends: BTd,\n props: props,\n computed: {\n tag: function tag() {\n return 'th';\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { identity } from '../../../utils/identity';\nimport { isBoolean } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { attrsMixin } from '../../../mixins/attrs'; // Main `` render mixin\n// Includes all main table styling options\n// --- Props ---\n\nexport var props = {\n bordered: makeProp(PROP_TYPE_BOOLEAN, false),\n borderless: makeProp(PROP_TYPE_BOOLEAN, false),\n captionTop: makeProp(PROP_TYPE_BOOLEAN, false),\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n hover: makeProp(PROP_TYPE_BOOLEAN, false),\n noBorderCollapse: makeProp(PROP_TYPE_BOOLEAN, false),\n outlined: makeProp(PROP_TYPE_BOOLEAN, false),\n responsive: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n // If a string, it is assumed to be the table `max-height` value\n stickyHeader: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false),\n tableClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tableVariant: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tableRendererMixin = Vue.extend({\n mixins: [attrsMixin],\n provide: function provide() {\n return {\n bvTable: this\n };\n },\n // Don't place attributes on root element automatically,\n // as table could be wrapped in responsive `
`\n inheritAttrs: false,\n props: props,\n computed: {\n // Layout related computed props\n isResponsive: function isResponsive() {\n var responsive = this.responsive;\n responsive = responsive === '' ? true : responsive;\n return this.isStacked ? false : responsive;\n },\n isStickyHeader: function isStickyHeader() {\n var stickyHeader = this.stickyHeader;\n stickyHeader = stickyHeader === '' ? true : stickyHeader;\n return this.isStacked ? false : stickyHeader;\n },\n wrapperClasses: function wrapperClasses() {\n var isResponsive = this.isResponsive;\n return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? \"table-responsive-\".concat(this.responsive) : ''].filter(identity);\n },\n wrapperStyles: function wrapperStyles() {\n var isStickyHeader = this.isStickyHeader;\n return isStickyHeader && !isBoolean(isStickyHeader) ? {\n maxHeight: isStickyHeader\n } : {};\n },\n tableClasses: function tableClasses() {\n var hover = this.hover,\n tableVariant = this.tableVariant;\n hover = this.isTableSimple ? hover : hover && this.computedItems.length > 0 && !this.computedBusy;\n return [// User supplied classes\n this.tableClass, // Styling classes\n {\n 'table-striped': this.striped,\n 'table-hover': hover,\n 'table-dark': this.dark,\n 'table-bordered': this.bordered,\n 'table-borderless': this.borderless,\n 'table-sm': this.small,\n // The following are b-table custom styles\n border: this.outlined,\n 'b-table-fixed': this.fixed,\n 'b-table-caption-top': this.captionTop,\n 'b-table-no-border-collapse': this.noBorderCollapse\n }, tableVariant ? \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(tableVariant) : '', // Stacked table classes\n this.stackedTableClasses, // Selectable classes\n this.selectableTableClasses];\n },\n tableAttrs: function tableAttrs() {\n var items = this.computedItems,\n filteredItems = this.filteredItems,\n fields = this.computedFields,\n selectableTableAttrs = this.selectableTableAttrs; // Preserve user supplied aria-describedby, if provided in `$attrs`\n\n var adb = [(this.bvAttrs || {})['aria-describedby'], this.captionId].filter(identity).join(' ') || null;\n var ariaAttrs = this.isTableSimple ? {} : {\n 'aria-busy': this.computedBusy ? 'true' : 'false',\n 'aria-colcount': toString(fields.length),\n 'aria-describedby': adb\n };\n var rowCount = items && filteredItems && filteredItems.length > items.length ? toString(filteredItems.length) : null;\n return _objectSpread(_objectSpread(_objectSpread({\n // We set `aria-rowcount` before merging in `$attrs`,\n // in case user has supplied their own\n 'aria-rowcount': rowCount\n }, this.bvAttrs), {}, {\n // Now we can override any `$attrs` here\n id: this.safeId(),\n role: 'table'\n }, ariaAttrs), selectableTableAttrs);\n }\n },\n render: function render(h) {\n var wrapperClasses = this.wrapperClasses,\n renderCaption = this.renderCaption,\n renderColgroup = this.renderColgroup,\n renderThead = this.renderThead,\n renderTbody = this.renderTbody,\n renderTfoot = this.renderTfoot;\n var $content = [];\n\n if (this.isTableSimple) {\n $content.push(this.normalizeSlot());\n } else {\n // Build the `
`\n\n $content.push(renderColgroup ? renderColgroup() : null); // Build the ``\n\n $content.push(renderThead ? renderThead() : null); // Build the ``\n\n $content.push(renderTbody ? renderTbody() : null); // Build the ``\n\n $content.push(renderTfoot ? renderTfoot() : null);\n } // Assemble `
` (from caption mixin)\n $content.push(renderCaption ? renderCaption() : null); // Build the `
`\n\n\n var $table = h('table', {\n staticClass: 'table b-table',\n class: this.tableClasses,\n attrs: this.tableAttrs,\n key: 'b-table'\n }, $content.filter(identity)); // Add responsive/sticky wrapper if needed and return table\n\n return wrapperClasses.length > 0 ? h('div', {\n class: wrapperClasses,\n style: this.wrapperStyles,\n key: 'wrap'\n }, [$table]) : $table;\n }\n});","\"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&\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_RADIO } from '../../constants/components';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formRadioCheckProps), formSizeProps), formStateProps)), NAME_FORM_RADIO); // --- Main component ---\n// @vue/component\n\nexport var BFormRadio = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO,\n mixins: [idMixin, formRadioCheckMixin, // Includes shared render function\n formControlMixin, formSizeMixin, formStateMixin],\n inject: {\n bvGroup: {\n from: 'bvRadioGroup',\n default: false\n }\n },\n props: props,\n watch: {\n computedLocalChecked: function computedLocalChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }\n }\n});","export * 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 { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","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=55dd3057&lang=scss&scoped=true&\"","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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_THEAD } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Also sniffed by `` / `` / ``\n // Supported values: 'lite', 'dark', or `null`\n headVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_THEAD); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BThead = /*#__PURE__*/Vue.extend({\n name: NAME_THEAD,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isThead: function isThead() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n theadClasses: function theadClasses() {\n return [this.headVariant ? \"thead-\".concat(this.headVariant) : null];\n },\n theadAttrs: function theadAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('thead', {\n class: this.theadClasses,\n attrs: this.theadAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","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","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 } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Constants ---\n\nvar MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nvar MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_INDETERMINATE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"switch\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"uncheckedValue\", makeProp(PROP_TYPE_ANY, false)), _defineProperty(_objectSpread2, \"value\", makeProp(PROP_TYPE_ANY, true)), _objectSpread2))), NAME_FORM_CHECKBOX); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckbox = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: null\n }\n },\n props: props,\n computed: {\n isChecked: function isChecked() {\n var value = this.value,\n checked = this.computedLocalChecked;\n return isArray(checked) ? looseIndexOf(checked, value) > -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\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});","var _watch, _methods;\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 { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\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(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\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 ? _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=002b3aa1&\"\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, mergeData } from '../vue';\nimport { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return null;\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n icon: makeProp(PROP_TYPE_STRING),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n icon: null\n })\n }));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_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 { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_FIRST } from '../constants/slots';\nimport { htmlOrText } from '../utils/html';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { omit, pick, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { BFormCheckbox } from '../components/form-checkbox/form-checkbox';\nimport { BFormRadio } from '../components/form-radio/form-radio';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formOptionsMixin, props as formOptionsProps } from './form-options';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n// Attributes to pass down to checks/radios instead of applying them to the group\n\nvar PASS_DOWN_ATTRS = ['aria-describedby', 'aria-labelledby'];\n\nvar _makeModelMixin = makeModelMixin('checked'),\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(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formOptionsProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n // Render as button style\n buttons: makeProp(PROP_TYPE_BOOLEAN, false),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formRadioCheckGroups'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckGroupMixin = Vue.extend({\n mixins: [idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formOptionsMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this[MODEL_PROP_NAME]\n };\n },\n computed: {\n inline: function inline() {\n return !this.stacked;\n },\n groupName: function groupName() {\n // Checks/Radios tied to the same model must have the same name,\n // especially for ARIA accessibility\n return this.name || this.safeId();\n },\n groupClasses: function groupClasses() {\n var inline = this.inline,\n size = this.size,\n validated = this.validated;\n var classes = {\n 'was-validated': validated\n };\n\n if (this.buttons) {\n classes = [classes, 'btn-group-toggle', _defineProperty({\n 'btn-group': inline,\n 'btn-group-vertical': !inline\n }, \"btn-group-\".concat(size), size)];\n }\n\n return classes;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!looseEqual(newValue, this.localChecked)) {\n this.localChecked = newValue;\n }\n }), _defineProperty(_watch, \"localChecked\", function localChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n render: function render(h) {\n var _this = this;\n\n var isRadioGroup = this.isRadioGroup;\n var attrs = pick(this.$attrs, PASS_DOWN_ATTRS);\n var optionComponent = isRadioGroup ? BFormRadio : BFormCheckbox;\n var $inputs = this.formOptions.map(function (option, index) {\n var key = \"BV_option_\".concat(index);\n return h(optionComponent, {\n props: {\n // Individual radios or checks can be disabled in a group\n disabled: option.disabled || false,\n id: _this.safeId(key),\n value: option.value // We don't need to include these, since the input's will know they are inside here\n // form: this.form || null,\n // name: this.groupName,\n // required: Boolean(this.name && this.required)\n\n },\n attrs: attrs,\n key: key\n }, [h('span', {\n domProps: htmlOrText(option.html, option.text)\n })]);\n });\n return h('div', {\n class: [this.groupClasses, 'bv-no-focus-ring'],\n attrs: _objectSpread(_objectSpread({}, omit(this.$attrs, PASS_DOWN_ATTRS)), {}, {\n 'aria-invalid': this.computedAriaInvalid,\n 'aria-required': this.required ? 'true' : null,\n id: this.safeId(),\n role: isRadioGroup ? 'radiogroup' : 'group',\n // Add `tabindex=\"-1\"` to allow group to be focused if needed by screen readers\n tabindex: '-1'\n })\n }, [this.normalizeSlot(SLOT_NAME_FIRST), $inputs, this.normalizeSlot()]);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_ARRAY_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { get } from '../utils/get';\nimport { stripTags } from '../utils/html';\nimport { isArray, isPlainObject, isUndefined } from '../utils/inspect';\nimport { keys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn'; // --- Constants ---\n\nvar OPTIONS_OBJECT_DEPRECATED_MSG = 'Setting prop \"options\" to an object is deprecated. Use the array format instead.'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabledField: makeProp(PROP_TYPE_STRING, 'disabled'),\n htmlField: makeProp(PROP_TYPE_STRING, 'html'),\n options: makeProp(PROP_TYPE_ARRAY_OBJECT, []),\n textField: makeProp(PROP_TYPE_STRING, 'text'),\n valueField: makeProp(PROP_TYPE_STRING, 'value')\n}, 'formOptionControls'); // --- Mixin ---\n// @vue/component\n\nexport var formOptionsMixin = Vue.extend({\n props: props,\n computed: {\n formOptions: function formOptions() {\n return this.normalizeOptions(this.options);\n }\n },\n methods: {\n normalizeOption: function normalizeOption(option) {\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When the option is an object, normalize it\n if (isPlainObject(option)) {\n var value = get(option, this.valueField);\n var text = get(option, this.textField);\n return {\n value: isUndefined(value) ? key || text : value,\n text: stripTags(String(isUndefined(text) ? key : text)),\n html: get(option, this.htmlField),\n disabled: Boolean(get(option, this.disabledField))\n };\n } // Otherwise create an `