{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/td.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack:///./src/@core/utils/filter.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?25e9","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?d65c","webpack:///./src/@core/components/toastification/ToastificationContent.vue","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/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/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/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-stacked.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./src/views/apps/user/userStoreModule.js","webpack:///./node_modules/bootstrap-vue/esm/components/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/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.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?dc3a","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?a580","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?1b26","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./src/views/apps/user/users-list/useUsersList.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.min.js","webpack:///./src/@core/comp-functions/forms/form-utils.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/@core/utils/utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue?916b","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?e6c5","webpack:///src/views/apps/user/users-edit/UserEditTabAccount.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue?162e","webpack:///./src/views/apps/user/users-edit/UserEditTabAccount.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?d67f","webpack:///src/views/apps/user/users-edit/UserEditTabInformation.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue?d7f1","webpack:///./src/views/apps/user/users-edit/UserEditTabInformation.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue?0fcd","webpack:///src/views/apps/user/users-edit/UserEditTabSocial.vue","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue?5e8a","webpack:///./src/views/apps/user/users-edit/UserEditTabSocial.vue","webpack:///src/views/apps/user/users-edit/UsersEdit.vue","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue?83ef","webpack:///./src/views/apps/user/users-edit/UsersEdit.vue","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js"],"names":["formSelectionMixin","extend","computed","selectionStart","cache","get","this","$refs","input","set","val","selectionEnd","selectionDirection","methods","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","props","icon","stacked","BIcon","name","functional","render","h","_ref","data","parent","replace","concat","parseSpan","spanValidator","colspan","rowspan","stackedHeading","stickyColumn","variant","BTd","mixins","inject","bvTableTr","default","inheritAttrs","tag","inTbody","inThead","inTfoot","isDark","isStacked","isStackedCell","isResponsive","isStickyHeader","hasStickyHeader","isStickyColumn","rowVariant","headVariant","footVariant","tableVariant","computedColspan","computedRowspan","cellClasses","cellAttrs","headOrFoot","role","scope","bvAttrs","$content","normalizeSlot","class","attrs","on","bvListeners","BThead","provide","bvTableRowGroup","bvTable","isThead","dark","stickyHeader","theadClasses","theadAttrs","kFormatter","num","toFixed","title","replacer","str","toString","arr","split","capitalizedArray","word","capitalized","charAt","toUpperCase","slice","join","avatarText","nameArray","map","formatDate","formatting","month","day","year","Intl","DateTimeFormat","format","Date","formatDateToMonthShort","toTimeForCurrentDay","date","isToday","hour","minute","filterTags","id","inline","novalidate","validated","BForm","children","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","cardImgProps","bind","imgSrc","required","card","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","footer","footerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","domProps","html","overlay","staticClass","$footer","hasFooterSlot","_vm","_h","$createElement","_c","_self","_s","_e","text","$event","$emit","hideClose","staticRenderFns","BAvatar","type","String","Boolean","component","BTfoot","isTfoot","tfootClasses","tfootAttrs","BFormRadioGroup","bvRadioGroup","isRadioGroup","bottomRowMixin","renderBottomRow","fields","computedFields","tbodyTrClass","tbodyTrAttr","hasNormalizedSlot","columns","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","watch","newValue","oldValue","stopIfBusy","event","renderBusy","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","stringifyObjectValues","sort","k","v","row","ignoreFields","includeFields","fieldsObj","undefined","formattedRow","reduce","result","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","prototype","call","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","arr2","DEBOUNCE_DEPRECATED_MSG","filterDebounce","filterFunction","filterIgnoredFields","filterIncludedFields","filteringMixin","localFilter","filterSanitize","computedFilterIgnored","identity","computedFilterIncluded","computedFilterDebounce","ms","warn","localFiltering","hasProvider","noProviderFiltering","filteredCheck","filteredItems","localItems","localFilterFn","criteria","filterFn","filterFnFactory","defaultFilterFnFactory","$_filterTimer","clearFilterTimer","deep","handler","newCriteria","_this","timeout","setTimeout","created","_this2","$nextTick","beforeDestroy","clearTimeout","fn","item","_this3","regExp","pattern","RegExp","lastIndex","computedFieldsObj","currentPage","perPage","paginationMixin","localPaging","noProviderPaging","paginatedItems","sortedItems","math","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","apiUrl","noProviderSorting","providerMixin","providerTriggerContext","sortBy","sortDesc","localSortBy","localSortDesc","_providerUpdate","mounted","listenOnRoot","refresh","$off","$on","clearSelected","_providerSetLocal","emitOnRoot","context","then","e","message","_props","_watch","SELECT_MODES","noSelectOnClick","selectMode","selectable","selectedVariant","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","some","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","equal","setSelectionHandlers","_selectedRows","idx","beforeMount","selectRow","index","isRowSelected","selectedLastClicked","unselectRow","selectAllRows","selectableRowClasses","selectableRowAttrs","method","selectionHandler","selected","shiftKey","ctrlKey","metaKey","a","b","_ref$sortBy","_ref$formatter","_ref$locale","locale","_ref$localeOptions","localeOptions","_ref$nullLast","nullLast","aa","bb","localeCompare","MODEL_PROP_NAME_SORT_BY","MODEL_EVENT_NAME_SORT_BY","MODEL_PROP_NAME_SORT_DESC","MODEL_EVENT_NAME_SORT_DESC","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","SORT_DIRECTION_LAST","SORT_DIRECTIONS","labelSortAsc","labelSortClear","labelSortDesc","noFooterSorting","noLocalSorting","noSortReset","numeric","sortingMixin","localSorting","isSortable","f","sortable","sortCompareLocale","sortNullLast","sortCompare","sortCompareOptions","usage","sortByFormatted","getFieldFormatter","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortDirection","sortKey","sortTheadThClasses","sortIconLeft","sortTheadThAttrs","ariaSort","sortTheadThLabel","labelSorting","topRowMixin","renderTopRow","BTable","LIGHT","DARK","BTr","isTbody","isRowDark","trClasses","trAttrs","hasListenerMixin","hasListener","$listeners","$events","_events","rightAlign","verticalAlign","BMedia","$children","$aside","BInputGroupPrepend","append","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","defaultValue","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","tbody","$el","trs","tr","getTbodyTrIndex","el","tagName","indexOf","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTbody","$busy","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","click","keydown","$tbody","$props","_objectSpread2","BFormCheckboxGroup","bvCheckGroup","caption","captionHtml","captionMixin","captionId","renderCaption","$caption","hasCaptionSlot","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ariaInvalid","autocomplete","debounce","lazy","lazyFormatter","number","placeholder","plaintext","readonly","trim","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","formatValue","force","updateValue","doUpdate","$input","onInput","composing","formattedValue","defaultPrevented","propagation","onChange","onBlur","focus","disabled","blur","isText","BInputGroupAddon","TYPES","list","max","min","noWheel","step","BFormInput","localType","computedAttrs","form","computedAriaInvalid","computedListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","stackedMixin","isStackedAlways","stackedTableClasses","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","blank","blankColor","block","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","titleTag","BCardTitle","namespaced","state","getters","mutations","actions","fetchUsers","queryParams","Promise","resolve","reject","axios","params","response","catch","error","fetchUser","addUser","userData","post","user","origFields","sample","memo","itemsMixin","appendHtml","prepend","prependHtml","size","BInputGroup","$prepend","hasPrependSlot","$append","hasAppendSlot","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","getWeek","givenDate","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","bool","wait","t","arrayify","toggleClass","elem","className","classList","add","remove","createElement","content","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","setAttribute","appendChild","getEventTarget","composedPath","path","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","parseFloat","H","J","K","getHours","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","setFullYear","Z","ISODate","d","minutes","setMinutes","j","l","m","u","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","c","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","datestr","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","duration","DAY","getDefaultHours","hours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","assign","flatpickr","defaultConfig","setupHelperFunctions","utils","currentMonth","yr","currentYear","init","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","setCalendarWidth","isSafari","positionCalendar","triggerEvent","bindToInstance","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","weekWrapper","removeProperty","updateTime","defaultDate","defaults","getMilliseconds","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","onYearInput","eventTarget","delta","changeYear","ev","addEventListener","_handlers","removeEventListener","triggerChange","evt","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","capture","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","timeIncrement","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","buildMonthSwitch","redraw","incrementNumInput","contains","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","abs","changeMonth","focusOnDay","offset","dayFocused","isInView","activeElement","startElem","buildMonthDays","firstOfMonth","prevMonthDays","getDaysInMonth","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","yearElement","getElementsByTagName","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","getAttribute","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","destroy","lastChild","_type","removeAttribute","isCalendarElem","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","newYear","newYearNum","isNewYear","_a","dateToCheck","enable","parsed","to","allowKeydown","allowInlineKeydown","isTimeObj","preventDefault","focusAndClose","stopPropagation","elems","pluginElements","x","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","JSON","parse","stringify","dataset","formats","_enable","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","querySelector","l10ns","customPositionElement","calendarHeight","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","showOnTop","pageYOffset","pageXOffset","isCenter","isRight","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","editableSheet","styleSheets","sheet","createStyleSheet","head","msMaxTouchPoints","selectedDate","shouldChangeMonth","selectedIndex","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","option","setSelectedDate","inputDate","rule","preloadedDate","nodeName","inputType","mobileFormatStr","hooks","initEvent","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","parseCountDown","show","parseShow","dismissLabel","dismissible","fade","BAlert","countDown","localShow","clearCountDownInterval","$_countDownTimeout","dismiss","$alert","$dismissButton","noFade","bodyClass","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","footerClass","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","BTh","extends","bordered","borderless","captionTop","fixed","hover","noBorderCollapse","outlined","responsive","small","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","$","IndexedObject","toIndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","proto","forced","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","TABLE_TAG_NAMES","filterEvent","labelFor","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","useUsersList","toast","useToast","refUserListTable","tableColumns","totalUsers","perPageOptions","searchQuery","isSortDirDesc","roleFilter","planFilter","statusFilter","dataMeta","localItemsCount","of","refetchData","callback","store","dispatch","q","page","plan","status","users","total","ToastificationContent","resolveUserRoleVariant","resolveUserRoleIcon","resolveUserStatusVariant","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","makeCell","labelHtml","ariaLabel","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","module","exports","r","toStringTag","__esModule","create","hasOwnProperty","p","validator","events","fp","getElem","fpInput","$watch","watchDisabled","immediate","install","useInputImageRenderer","inputEl","inputImageRenderer","file","files","reader","FileReader","readAsDataURL","_typeof","isObject","today","isDynamicRouteActive","route","router","resolvedRoute","currentRoute","useRouter","vm","getCurrentInstance","proxy","reactive","$route","toRefs","$router","BInputGroupAppend","textSelectionActive","sel","containsNode","BInputGroupText","colgroupMixin","$colgroup","_v","_u","avatar","fullName","refInputEl","$t","model","$$v","expression","$store","appConfig","isRTL","statusOptions","roleOptions","permissionsData","BButton","BRow","BCol","BFormGroup","BFormCheckbox","vSelect","setup","base64","previewEl","userDataInfo","languageOptions","genderOptions","contactOptionsOptions","dob","mobile","website","language","gender","contactOptions","addressLine1","addressLine2","postcode","city","country","_l","socialField","dataField","userDataSocial","twitter","facebook","instagram","github","codepen","slack","socialInputs","BTab","BTabs","BLink","UserEditTabAccount","UserEditTabInformation","UserEditTabSocial","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","linkProps","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","button","buttonType","square","bvAvatarGroup","localSrc","computedSize","computedVariant","computedRounded","fontStyle","fontSize","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","onImgError","onClick","_class2","link","$badge","hasBadgeSlot","badgeText","componentData","noop"],"mappings":"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","file":"js/chunk-76909bb5.8a58a1d6.js","sourcesContent":["import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../vue';\nimport { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return null;\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n icon: makeProp(PROP_TYPE_STRING),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n icon: null\n })\n }));\n }\n});","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});","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});","import { isToday } from './utils'\n\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\n\nexport const title = (value, replacer = ' ') => {\n if (!value) return ''\n const str = value.toString()\n\n const arr = str.split(replacer)\n const capitalizedArray = []\n arr.forEach(word => {\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\n capitalizedArray.push(capitalized)\n })\n return capitalizedArray.join(' ')\n}\n\nexport const avatarText = value => {\n if (!value) return ''\n const nameArray = value.split(' ')\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\n}\n\n/**\n * Format and return date in Humanize format\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\n * @param {String} value date to format\n * @param {Object} formatting Intl object to format with\n */\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\n if (!value) return value\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n/**\n * Return short human friendly month representation of date\n * Can also convert date to only time if date is of today (Better UX)\n * @param {String} value date to format\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\n */\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\n const date = new Date(value)\n let formatting = { month: 'short', day: 'numeric' }\n\n if (toTimeForCurrentDay && isToday(date)) {\n formatting = { hour: 'numeric', minute: 'numeric' }\n }\n\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n// Strip all the tags from markup and return plain text\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\n }));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","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\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});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_ADDON } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n isText: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_ADDON); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAddon = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_ADDON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var append = props.append;\n return h(props.tag, mergeData(data, {\n class: {\n 'input-group-append': append,\n 'input-group-prepend': !append\n },\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(BInputGroupText, children)] : children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } 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});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/Vue.extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\n }\n});","import axios from '@axios'\n\nexport default {\n namespaced: true,\n state: {},\n getters: {},\n mutations: {},\n actions: {\n fetchUsers(ctx, queryParams) {\n return new Promise((resolve, reject) => {\n axios\n .get('/apps/user/users', { params: queryParams })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n fetchUser(ctx, { id }) {\n return new Promise((resolve, reject) => {\n axios\n .get(`/apps/user/users/${id}`)\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n addUser(ctx, userData) {\n return new Promise((resolve, reject) => {\n axios\n .post('/apps/user/users', { user: userData })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n },\n}\n","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});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\n }\n});","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&\"","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\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_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});","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabInformation.vue?vue&type=style&index=0&lang=scss&\"","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","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&\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","import { ref, watch, computed } from '@vue/composition-api'\nimport store from '@/store'\nimport { title } from '@core/utils/filter'\n\n// Notification\nimport { useToast } from 'vue-toastification/composition'\nimport ToastificationContent from '@core/components/toastification/ToastificationContent.vue'\n\nexport default function useUsersList() {\n // Use toast\n const toast = useToast()\n\n const refUserListTable = ref(null)\n\n // Table Handlers\n const tableColumns = [\n { key: 'user', sortable: true },\n { key: 'email', sortable: true },\n { key: 'role', sortable: true },\n {\n key: 'currentPlan',\n label: 'Plan',\n formatter: title,\n sortable: true,\n },\n { key: 'status', sortable: true },\n { key: 'actions' },\n ]\n const perPage = ref(10)\n const totalUsers = ref(0)\n const currentPage = ref(1)\n const perPageOptions = [10, 25, 50, 100]\n const searchQuery = ref('')\n const sortBy = ref('id')\n const isSortDirDesc = ref(true)\n const roleFilter = ref(null)\n const planFilter = ref(null)\n const statusFilter = ref(null)\n\n const dataMeta = computed(() => {\n const localItemsCount = refUserListTable.value ? refUserListTable.value.localItems.length : 0\n return {\n from: perPage.value * (currentPage.value - 1) + (localItemsCount ? 1 : 0),\n to: perPage.value * (currentPage.value - 1) + localItemsCount,\n of: totalUsers.value,\n }\n })\n\n const refetchData = () => {\n refUserListTable.value.refresh()\n }\n\n watch([currentPage, perPage, searchQuery, roleFilter, planFilter, statusFilter], () => {\n refetchData()\n })\n\n const fetchUsers = (ctx, callback) => {\n store\n .dispatch('app-user/fetchUsers', {\n q: searchQuery.value,\n perPage: perPage.value,\n page: currentPage.value,\n sortBy: sortBy.value,\n sortDesc: isSortDirDesc.value,\n role: roleFilter.value,\n plan: planFilter.value,\n status: statusFilter.value,\n })\n .then(response => {\n const { users, total } = response.data\n\n callback(users)\n totalUsers.value = total\n })\n .catch(() => {\n toast({\n component: ToastificationContent,\n props: {\n title: 'Error fetching users list',\n icon: 'AlertTriangleIcon',\n variant: 'danger',\n },\n })\n })\n }\n\n // *===============================================---*\n // *--------- UI ---------------------------------------*\n // *===============================================---*\n\n const resolveUserRoleVariant = role => {\n if (role === 'subscriber') return 'primary'\n if (role === 'author') return 'warning'\n if (role === 'maintainer') return 'success'\n if (role === 'editor') return 'info'\n if (role === 'admin') return 'danger'\n return 'primary'\n }\n\n const resolveUserRoleIcon = role => {\n if (role === 'subscriber') return 'UserIcon'\n if (role === 'author') return 'SettingsIcon'\n if (role === 'maintainer') return 'DatabaseIcon'\n if (role === 'editor') return 'Edit2Icon'\n if (role === 'admin') return 'ServerIcon'\n return 'UserIcon'\n }\n\n const resolveUserStatusVariant = status => {\n if (status === 'pending') return 'warning'\n if (status === 'active') return 'success'\n if (status === 'inactive') return 'secondary'\n return 'primary'\n }\n\n return {\n fetchUsers,\n tableColumns,\n perPage,\n currentPage,\n totalUsers,\n dataMeta,\n perPageOptions,\n searchQuery,\n sortBy,\n isSortDirDesc,\n refUserListTable,\n\n resolveUserRoleVariant,\n resolveUserRoleIcon,\n resolveUserStatusVariant,\n refetchData,\n\n // Extra Filters\n roleFilter,\n planFilter,\n statusFilter,\n }\n}\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active'; // --- Helper methods ---\n\nvar getHeadSlotName = function getHeadSlotName(value) {\n return \"head(\".concat(value || '', \")\");\n};\n\nvar getFootSlotName = function getFootSlotName(value) {\n return \"foot(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = {\n // Any Bootstrap theme variant (or custom)\n headRowVariant: makeProp(PROP_TYPE_STRING),\n // 'light', 'dark' or `null` (or custom)\n headVariant: makeProp(PROP_TYPE_STRING),\n theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var theadMixin = Vue.extend({\n props: props,\n methods: {\n fieldClasses: function fieldClasses(field) {\n // Header field (
) classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked: function headClicked(event, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(event)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(event)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n stopEvent(event);\n this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n },\n renderThead: function renderThead() {\n var _this = this;\n\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var fields = this.computedFields,\n isSortable = this.isSortable,\n isSelectable = this.isSelectable,\n headVariant = this.headVariant,\n footVariant = this.footVariant,\n headRowVariant = this.headRowVariant,\n footRowVariant = this.footRowVariant;\n var h = this.$createElement; // In always stacked mode, we don't bother rendering the head/foot\n // Or if no field headings (empty table)\n\n if (this.isStackedAlways || fields.length === 0) {\n return h();\n }\n\n var hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED); // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n\n var selectAllRows = isSelectable ? this.selectAllRows : noop;\n var clearSelected = isSelectable ? this.clearSelected : noop; // Helper function to generate a field cell\n\n var makeCell = function makeCell(field, colIndex) {\n var label = field.label,\n labelHtml = field.labelHtml,\n variant = field.variant,\n stickyColumn = field.stickyColumn,\n key = field.key;\n var ariaLabel = null;\n\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n\n var on = {};\n\n if (hasHeadClickListener) {\n on.click = function (event) {\n _this.headClicked(event, field, isFoot);\n };\n\n on.keydown = function (event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n _this.headClicked(event, field, isFoot);\n }\n };\n }\n\n var sortAttrs = isSortable ? _this.sortTheadThAttrs(key, field, isFoot) : {};\n var sortClass = isSortable ? _this.sortTheadThClasses(key, field, isFoot) : null;\n var sortLabel = isSortable ? _this.sortTheadThLabel(key, field, isFoot) : null;\n var data = {\n class: [_this.fieldClasses(field), sortClass],\n props: {\n variant: variant,\n stickyColumn: stickyColumn\n },\n style: field.thStyle || {},\n attrs: _objectSpread(_objectSpread({\n // We only add a `tabindex` of `0` if there is a head-clicked listener\n // and the current field is sortable\n tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': colIndex + 1,\n 'aria-label': ariaLabel\n }, _this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {})), sortAttrs),\n on: on,\n key: key\n }; // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n\n var slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()]; // Footer will fallback to header slot names\n\n if (isFoot) {\n slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName()].concat(_toConsumableArray(slotNames));\n }\n\n var scope = {\n label: label,\n column: key,\n field: field,\n isFoot: isFoot,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n var $content = _this.normalizeSlot(slotNames, scope) || h('div', {\n domProps: htmlOrText(labelHtml, label)\n });\n var $srLabel = sortLabel ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(sortLabel, \")\")) : null; // Return the header cell\n\n return h(BTh, data, [$content, $srLabel].filter(identity));\n }; // Generate the array of cells\n\n\n var $cells = fields.map(makeCell).filter(identity); // Generate the row(s)\n\n var $trs = [];\n\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass,\n props: {\n variant: isUndefinedOrNull(footRowVariant) ? headRowVariant :\n /* istanbul ignore next */\n footRowVariant\n }\n }, $cells));\n } else {\n var scope = {\n columns: fields.length,\n fields: fields,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass,\n props: {\n variant: headRowVariant\n }\n }, $cells));\n }\n\n return h(isFoot ? BTfoot : BThead, {\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: footVariant || headVariant || null\n } : {\n headVariant: headVariant || null\n },\n key: isFoot ? 'bv-tfoot' : 'bv-thead'\n }, $trs);\n }\n }\n});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"flatpickr\")):\"function\"==typeof define&&define.amd?define(\"VueFlatpickr\",[\"flatpickr\"],e):\"object\"==typeof exports?exports.VueFlatpickr=e(require(\"flatpickr\")):t.VueFlatpickr=e(t.flatpickr)}(\"undefined\"!=typeof self?self:this,(function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";n.r(e),n.d(e,\"Component\",(function(){return c})),n.d(e,\"Plugin\",(function(){return p}));var r=n(0),o=n.n(r),i=[\"onChange\",\"onClose\",\"onDestroy\",\"onMonthChange\",\"onOpen\",\"onYearChange\"];function u(){return(u=Object.assign||function(t){for(var e=1;e {\n const inputImageRenderer = () => {\n const file = inputEl.value.files[0]\n const reader = new FileReader()\n\n reader.addEventListener(\n 'load',\n () => {\n callback(reader.result)\n },\n false,\n )\n\n if (file) {\n reader.readAsDataURL(file)\n }\n }\n return {\n inputImageRenderer,\n }\n}\n\nexport const _ = null\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import router from '@/router'\n// eslint-disable-next-line object-curly-newline\nimport { reactive, getCurrentInstance, watch, toRefs } from '@vue/composition-api'\n\nexport const isObject = obj => typeof obj === 'object' && obj !== null\n\nexport const isToday = date => {\n const today = new Date()\n return (\n /* eslint-disable operator-linebreak */\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n /* eslint-enable */\n )\n}\n\nconst getRandomFromArray = array => array[Math.floor(Math.random() * array.length)]\n\n// ? Light and Dark variant is not included\n// prettier-ignore\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])\n\nexport const isDynamicRouteActive = route => {\n const { route: resolvedRoute } = router.resolve(route)\n return resolvedRoute.path === router.currentRoute.path\n}\n\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\nexport const useRouter = () => {\n const vm = getCurrentInstance().proxy\n const state = reactive({\n route: vm.$route,\n })\n\n watch(\n () => vm.$route,\n r => {\n state.route = r\n },\n )\n\n return { ...toRefs(state), router: vm.$router }\n}\n\n/**\n * This is just enhancement over Object.extend [Gives deep extend]\n * @param {target} a Object which contains values to be overridden\n * @param {source} b Object which contains values to override\n */\n// export const objectExtend = (a, b) => {\n// // Don't touch 'null' or 'undefined' objects.\n// if (a == null || b == null) {\n// return a\n// }\n\n// Object.keys(b).forEach(key => {\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = objectExtend(a[key], b[key])\n// }\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// }\n// })\n\n// return a\n// }\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_APPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_APPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAppend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_APPEND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: true\n })\n }), children);\n }\n});","import { getSel, isElement } from '../../../utils/dom'; // Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\n\nexport var textSelectionActive = function textSelectionActive() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var sel = getSel();\n return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ?\n /* istanbul ignore next */\n sel.containsNode(el, true) : false;\n};","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupText = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group-text'\n }), children);\n }\n});","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var colgroupMixin = Vue.extend({\n methods: {\n renderColgroup: function renderColgroup() {\n var fields = this.computedFields;\n var h = this.$createElement;\n var $colgroup = h();\n\n if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n columns: fields.length,\n fields: fields\n })]);\n }\n\n return $colgroup;\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.userData === undefined ? 'div' : 'b-card',{tag:\"component\"},[_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.userData === undefined}},[_c('h4',{staticClass:\"alert-heading\"},[_vm._v(\" Error fetching user data \")]),_c('div',{staticClass:\"alert-body\"},[_vm._v(\" No user found with this user id. Check \"),_c('b-link',{staticClass:\"alert-link\",attrs:{\"to\":{ name: 'apps-users-list'}}},[_vm._v(\" User List \")]),_vm._v(\" for other users. \")],1)]),(_vm.userData)?_c('b-tabs',{attrs:{\"pills\":\"\"}},[_c('b-tab',{attrs:{\"active\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('feather-icon',{staticClass:\"mr-0 mr-sm-50\",attrs:{\"icon\":\"UserIcon\",\"size\":\"16\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Account\")])]},proxy:true}],null,false,819792000)},[_c('user-edit-tab-account',{staticClass:\"mt-2 pt-75\",attrs:{\"user-data\":_vm.userData}})],1),_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('feather-icon',{staticClass:\"mr-0 mr-sm-50\",attrs:{\"icon\":\"InfoIcon\",\"size\":\"16\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Information\")])]},proxy:true}],null,false,1675473746)},[_c('user-edit-tab-information',{staticClass:\"mt-2 pt-75\"})],1),_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('feather-icon',{staticClass:\"mr-0 mr-sm-50\",attrs:{\"icon\":\"Share2Icon\",\"size\":\"16\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Social\")])]},proxy:true}],null,false,1914541044)},[_c('user-edit-tab-social',{staticClass:\"mt-2 pt-75\"})],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-media',{staticClass:\"mb-2\",scopedSlots:_vm._u([{key:\"aside\",fn:function(){return [_c('b-avatar',{ref:\"previewEl\",attrs:{\"src\":_vm.userData.avatar,\"text\":_vm.avatarText(_vm.userData.fullName),\"variant\":(\"light-\" + (_vm.resolveUserRoleVariant(_vm.userData.role))),\"size\":\"90px\",\"rounded\":\"\"}})]},proxy:true}])},[_c('h4',{staticClass:\"mb-1\"},[_vm._v(\" \"+_vm._s(_vm.userData.fullName)+\" \")]),_c('div',{staticClass:\"d-flex flex-wrap\"},[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.$refs.refInputEl.click()}}},[_c('input',{ref:\"refInputEl\",staticClass:\"d-none\",attrs:{\"type\":\"file\"},on:{\"input\":_vm.inputImageRenderer}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Update\")]),_c('feather-icon',{staticClass:\"d-inline d-sm-none\",attrs:{\"icon\":\"EditIcon\"}})],1),_c('b-button',{staticClass:\"ml-1\",attrs:{\"variant\":\"outline-secondary\"}},[_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(_vm._s(_vm.$t('kaldir')))]),_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=621ade61&\"\nimport script from \"./UserEditTabAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./UserEditTabAccount.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserEditTabAccount.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"d-flex\"},[_c('feather-icon',{attrs:{\"icon\":\"UserIcon\",\"size\":\"19\"}}),_c('h4',{staticClass:\"mb-0 ml-50\"},[_vm._v(\" Personal Information \")])],1),_c('b-form',{staticClass:\"mt-1\"},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Birth Date\",\"label-for\":\"birth-date\"}},[_c('flat-pickr',{staticClass:\"form-control\",attrs:{\"config\":{ dateFormat: 'Y-m-d'},\"placeholder\":\"YYYY-MM-DD\"},model:{value:(_vm.userDataInfo.dob),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"dob\", $$v)},expression:\"userDataInfo.dob\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Mobile\",\"label-for\":\"mobile\"}},[_c('b-form-input',{attrs:{\"id\":\"mobile\"},model:{value:(_vm.userDataInfo.mobile),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"mobile\", $$v)},expression:\"userDataInfo.mobile\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Website\",\"label-for\":\"website\"}},[_c('b-form-input',{attrs:{\"id\":\"website\"},model:{value:(_vm.userDataInfo.website),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"website\", $$v)},expression:\"userDataInfo.website\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Language\",\"label-for\":\"language\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.languageOptions,\"clearable\":false,\"input-id\":\"language\"},model:{value:(_vm.userDataInfo.language),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"language\", $$v)},expression:\"userDataInfo.language\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Gender\",\"label-for\":\"gender\",\"label-class\":\"mb-1\"}},[_c('b-form-radio-group',{attrs:{\"id\":\"gender\",\"options\":_vm.genderOptions,\"value\":\"male\"},model:{value:(_vm.userDataInfo.gender),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"gender\", $$v)},expression:\"userDataInfo.gender\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Contact Options\",\"label-for\":\"contact-options\",\"label-class\":\"mb-1\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"contact-options\",\"options\":_vm.contactOptionsOptions},model:{value:(_vm.userDataInfo.contactOptions),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"contactOptions\", $$v)},expression:\"userDataInfo.contactOptions\"}})],1)],1)],1),_c('div',{staticClass:\"d-flex mt-2\"},[_c('feather-icon',{attrs:{\"icon\":\"MapPinIcon\",\"size\":\"19\"}}),_c('h4',{staticClass:\"mb-0 ml-50\"},[_vm._v(\" Address \")])],1),_c('b-row',{staticClass:\"mt-1\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Address Line 1\",\"label-for\":\"address-line-1\"}},[_c('b-form-input',{attrs:{\"id\":\"address-line-1\"},model:{value:(_vm.userDataInfo.addressLine1),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"addressLine1\", $$v)},expression:\"userDataInfo.addressLine1\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Address Line 2\",\"label-for\":\"address-line-2\"}},[_c('b-form-input',{attrs:{\"id\":\"address-line-2\",\"placeholder\":\"Los Santos\"},model:{value:(_vm.userDataInfo.addressLine2),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"addressLine2\", $$v)},expression:\"userDataInfo.addressLine2\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Postcode\",\"label-for\":\"postcode\"}},[_c('b-form-input',{attrs:{\"id\":\"postcode\",\"type\":\"number\",\"placeholder\":\"597626\"},model:{value:(_vm.userDataInfo.postcode),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"postcode\", $$v)},expression:\"userDataInfo.postcode\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"City\",\"label-for\":\"city\"}},[_c('b-form-input',{attrs:{\"id\":\"city\"},model:{value:(_vm.userDataInfo.city),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"city\", $$v)},expression:\"userDataInfo.city\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"State\",\"label-for\":\"state\"}},[_c('b-form-input',{attrs:{\"id\":\"state\",\"placeholder\":\"Manhattan\"},model:{value:(_vm.userDataInfo.state),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"state\", $$v)},expression:\"userDataInfo.state\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Country\",\"label-for\":\"country\"}},[_c('b-form-input',{attrs:{\"id\":\"country\",\"placeholder\":\"United States\"},model:{value:(_vm.userDataInfo.country),callback:function ($$v) {_vm.$set(_vm.userDataInfo, \"country\", $$v)},expression:\"userDataInfo.country\"}})],1)],1)],1),_c('b-row',{staticClass:\"mt-2\"},[_c('b-col',[_c('b-button',{staticClass:\"mb-1 mb-sm-0 mr-0 mr-sm-1\",attrs:{\"variant\":\"primary\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Save Changes \")]),_c('b-button',{attrs:{\"variant\":\"outline-secondary\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Reset \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabInformation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabInformation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserEditTabInformation.vue?vue&type=template&id=1413b28c&\"\nimport script from \"./UserEditTabInformation.vue?vue&type=script&lang=js&\"\nexport * from \"./UserEditTabInformation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserEditTabInformation.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form',[_c('b-row',[_vm._l((_vm.socialInputs),function(socialField){return _c('b-col',{key:socialField.dataField,attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":socialField.label,\"label-for\":socialField.dataField}},[_c('b-input-group',{staticClass:\"input-group-merge\"},[_c('b-input-group-prepend',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{attrs:{\"size\":\"16\",\"icon\":socialField.icon}})],1),_c('b-form-input',{attrs:{\"id\":socialField.dataField,\"type\":\"url\"},model:{value:(_vm.userDataSocial[socialField.dataField]),callback:function ($$v) {_vm.$set(_vm.userDataSocial, socialField.dataField, $$v)},expression:\"userDataSocial[socialField.dataField]\"}})],1)],1)],1)}),_c('b-col',{staticClass:\"mt-2\"},[_c('b-button',{staticClass:\"mb-1 mb-sm-0 mr-0 mr-sm-1\",attrs:{\"variant\":\"primary\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Save Changes \")]),_c('b-button',{attrs:{\"variant\":\"outline-secondary\",\"block\":_vm.$store.getters['app/currentBreakPoint'] === 'xs'}},[_vm._v(\" Reset \")])],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabSocial.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserEditTabSocial.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserEditTabSocial.vue?vue&type=template&id=7ecf2d12&\"\nimport script from \"./UserEditTabSocial.vue?vue&type=script&lang=js&\"\nexport * from \"./UserEditTabSocial.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersEdit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersEdit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UsersEdit.vue?vue&type=template&id=1abc03f6&\"\nimport script from \"./UsersEdit.vue?vue&type=script&lang=js&\"\nexport * from \"./UsersEdit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\n }\n});","export var noop = function noop() {};"],"sourceRoot":""}