{"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:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.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:///./node_modules/flatpickr/dist/l10n/pt.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/pagination.js","webpack:///./src/services/spinService.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.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/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:///./src/views/componentes/instituicoes/EscolasLista.vue?c28e","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:///./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/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/directives/visible/visible.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:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./src/services/schoolService.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.min.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/componentes/instituicoes/EscolasLista.vue?4aa2","webpack:///src/views/componentes/instituicoes/EscolasLista.vue","webpack:///./src/views/componentes/instituicoes/EscolasLista.vue?f4c9","webpack:///./src/views/componentes/instituicoes/EscolasLista.vue","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.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","id","inline","novalidate","validated","BForm","children","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","undefined","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","global","factory","exports","fp","window","flatpickr","l10ns","Portuguese","weekdays","shorthand","longhand","months","rangeSeparator","time_24hr","pt","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","sanitizePerPage","sanitizeTotalRows","ariaControls","perPage","totalRows","BPagination","numberOfPages","result","pageSizeNumberOfPages","watch","newValue","oldValue","currentPage","localNumberOfPages","created","_this","$nextTick","onClick","event","pageNumber","_this2","clickEvt","cancelable","vueTarget","$emit","type","defaultPrevented","$el","contains","focusCurrent","makePage","pageNum","linkProps","showSpinner","document","getElementById","style","display","hideSpinner","BTfoot","isTfoot","tfootClasses","tfootAttrs","bottomRowMixin","renderBottomRow","fields","computedFields","tbodyTrClass","tbodyTrAttr","$createElement","hasNormalizedSlot","columns","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","stopIfBusy","renderBusy","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","stringifyObjectValues","sort","map","k","v","join","row","ignoreFields","includeFields","fieldsObj","formattedRow","reduce","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","prototype","toString","call","slice","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","arr2","DEBOUNCE_DEPRECATED_MSG","filterDebounce","String","filterFunction","filterIgnoredFields","filterIncludedFields","filteringMixin","localFilter","filterSanitize","computedFilterIgnored","identity","computedFilterIncluded","computedFilterDebounce","ms","warn","localFiltering","hasProvider","noProviderFiltering","filteredCheck","filteredItems","localItems","localFilterFn","criteria","filterFn","filterFnFactory","defaultFilterFnFactory","$_filterTimer","clearFilterTimer","deep","handler","newCriteria","timeout","setTimeout","Boolean","beforeDestroy","clearTimeout","item","_this3","regExp","pattern","RegExp","lastIndex","computedFieldsObj","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","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","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","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","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","stopWheel","stackedMixin","isStackedAlways","stackedTableClasses","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","blank","blankColor","block","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","title","titleTag","BCardTitle","origFields","sample","memo","itemsMixin","appendHtml","prepend","prependHtml","size","BInputGroup","$prepend","hasPrependSlot","$append","hasAppendSlot","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","console","getWeek","givenDate","date","Date","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","weekNumbers","wrap","english","daysInMonth","firstDayOfWeek","ordinal","nth","s","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","hour","getHours","parseFloat","H","J","day","K","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","d","minutes","setMinutes","j","l","m","month","u","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","substring","createDateFormatter","_a","_b","config","_c","l10n","_d","isMobile","frmt","overrideLocale","formatDate","split","c","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","calculateSecondsSinceMidnight","hours","parseSeconds","secondsSinceMidnight","floor","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","__assign","assign","p","hasOwnProperty","__spreadArrays","il","r","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","defaultConfig","setupHelperFunctions","utils","getDaysInMonth","yr","currentMonth","currentYear","init","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","setCalendarWidth","isSafari","positionCalendar","triggerEvent","getClosestActiveElement","calendarContainer","getRootNode","activeElement","bindToInstance","requestAnimationFrame","visibility","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","minBound","maxBound","currentTime","onYearInput","eventTarget","delta","changeYear","ev","addEventListener","_handlers","removeEventListener","triggerChange","evt","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","ontouchstart","documentClick","capture","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","timeIncrement","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","buildMonthSwitch","redraw","incrementNumInput","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","body","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","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","buildMonth","monthElement","container","monthNavFragment","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","eventTarget_1","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","newYear","newYearNum","isNewYear","dateToCheck","enable","parsed","to","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","isTimeObj","preventDefault","focusAndClose","delta_1","stopPropagation","elems","pluginElements","x","charAt","cellClass","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","hoverableCells","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","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","updatePositionElement","option","setSelectedDate","inputDate","rule","preloadedDate","nodeName","inputType","mobileFormatStr","hooks","initEvent","specificFormat","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","bodyClass","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","footerClass","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","OBSERVER_PROP_NAME","VisibilityObserver","vnode","callback","margin","once","observer","visible","doneOnce","createObserver","stop","IntersectionObserver","root","rootMargin","threshold","_unused","observe","entries","entry","isIntersecting","intersectionRatio","disconnect","modifiers","mod","_prevModifiers","componentUpdated","unbind","VBVisible","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","_i","_loop_1","args_1","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","stableSort","compareFn","controller","getAll","axiosIns","utilsService","getQueryParams","res","getById","update","put","create","req","post","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","skipTempReset","prev","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","maxRows","noAutoShrink","noResize","rows","BFormTextarea","directives","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","computedMaxRows","setHeight","visibleCallback","computeHeight","$isServer","lineHeight","borderTopWidth","borderBottomWidth","padding","paddingTop","paddingBottom","minHeight","oldHeight","scrollHeight","contentRows","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","alignContent","alignH","alignV","noGutters","BRow","_classList$push","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","validator","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","makePageArray","startNumber","classes","sanitizeLimit","limit","sanitizeCurrentPage","page","onSpaceKey","immediatePropagation","currentTarget","ariaLabel","ellipsisClass","ellipsisText","firstClass","firstNumber","firstText","hideEllipsis","hideGotoEndButtons","labelFirstPage","labelLastPage","labelNextPage","labelPage","labelPrevPage","lastClass","lastNumber","lastText","nextClass","nextText","pageClass","pills","prevClass","prevText","localLimit","btnSize","alignment","styleClass","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","lastPageNumber","pageList","_this$paginationParam","pages","_i2","_i3","handleKeyNav","isNav","focusFirst","focusPrev","focusLast","focusNext","getButtons","btn","find","_this4","_this5","buttons","_this6","_this7","pageNumbers","_this$paginationParam2","fill","$buttons","isActivePage","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","isDisabled","$btnContent","$inner","makeEllipsis","isLast","makePageButton","active","btnContent","$firstPageBtn","$lastPageBtn","$pagination","formSizeMixin","TABLE_TAG_NAMES","filterEvent","labelFor","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","makeCell","labelHtml","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","__esModule","events","getElem","fpInput","$watch","watchDisabled","immediate","component","install","BInputGroupAppend","textSelectionActive","sel","containsNode","BInputGroupText","colgroupMixin","$colgroup","_vm","_h","_self","_v","$event","fetchSchools","model","filtro","$$v","expression","fetchedSchools","totalItems","onChangePage","tableColumns","isSortDirDesc","_u","resolveUserStatusVariant","_s","resolveUserStatusText","$store","appConfig","isRTL","proxy","params","staticRenderFns","BDropdown","BDropdownItem","BBadge","BLink","BAvatar","BFormGroup","BCol","BButton","flatPickr","prepareRequest","itemsPerPage","status","SELECTOR","autofocus","formControlMixin","handleAutofocus","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","button","buttonType","square","text","bvAvatarGroup","localSrc","computedSize","computedVariant","computedRounded","fontStyle","fontSize","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","onImgError","_class2","link","$badge","hasBadgeSlot","badgeText","componentData","href","pill","noop"],"mappings":"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","file":"js/chunk-07ed8153.fd6359cf.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 { 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});","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\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});","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.pt = {}));\n}(this, (function (exports) { 'use strict';\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Portuguese = {\n weekdays: {\n shorthand: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Segunda-feira\",\n \"Terça-feira\",\n \"Quarta-feira\",\n \"Quinta-feira\",\n \"Sexta-feira\",\n \"Sábado\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Fev\",\n \"Mar\",\n \"Abr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Set\",\n \"Out\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ],\n },\n rangeSeparator: \" até \",\n time_24hr: true,\n };\n fp.l10ns.pt = Portuguese;\n var pt = fp.l10ns;\n\n exports.Portuguese = Portuguese;\n exports.default = pt;\n\n Object.defineProperty(exports, '__esModule', { value: true });\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_PAGINATION } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_PAGE_CLICK } from '../../constants/events';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, isVisible } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { mathCeil, mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, paginationMixin, props as paginationProps } from '../../mixins/pagination'; // --- Constants ---\n\nvar DEFAULT_PER_PAGE = 20;\nvar DEFAULT_TOTAL_ROWS = 0; // --- Helper methods ---\n// Sanitize the provided per page number (converting to a number)\n\nvar sanitizePerPage = function sanitizePerPage(value) {\n return mathMax(toInteger(value) || DEFAULT_PER_PAGE, 1);\n}; // Sanitize the provided total rows number (converting to a number)\n\n\nvar sanitizeTotalRows = function sanitizeTotalRows(value) {\n return mathMax(toInteger(value) || DEFAULT_TOTAL_ROWS, 0);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, paginationProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_PER_PAGE),\n totalRows: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_TOTAL_ROWS)\n})), NAME_PAGINATION); // --- Main component ---\n// @vue/component\n\nexport var BPagination = /*#__PURE__*/Vue.extend({\n name: NAME_PAGINATION,\n // The render function is brought in via the `paginationMixin`\n mixins: [paginationMixin],\n props: props,\n computed: {\n numberOfPages: function numberOfPages() {\n var result = mathCeil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage));\n return result < 1 ? 1 : result;\n },\n // Used for watching changes to `perPage` and `numberOfPages`\n pageSizeNumberOfPages: function pageSizeNumberOfPages() {\n return {\n perPage: sanitizePerPage(this.perPage),\n totalRows: sanitizeTotalRows(this.totalRows),\n numberOfPages: this.numberOfPages\n };\n }\n },\n watch: {\n pageSizeNumberOfPages: function pageSizeNumberOfPages(newValue, oldValue) {\n if (!isUndefinedOrNull(oldValue)) {\n if (newValue.perPage !== oldValue.perPage && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n this.currentPage = 1;\n } else if (newValue.numberOfPages !== oldValue.numberOfPages && this.currentPage > newValue.numberOfPages) {\n // If `numberOfPages` changes and is less than\n // the `currentPage` number, reset to page 1\n this.currentPage = 1;\n }\n }\n\n this.localNumberOfPages = newValue.numberOfPages;\n }\n },\n created: function created() {\n var _this = this;\n\n // Set the initial page count\n this.localNumberOfPages = this.numberOfPages; // Set the initial page value\n\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n\n if (currentPage > 0) {\n this.currentPage = currentPage;\n } else {\n this.$nextTick(function () {\n // If this value parses to `NaN` or a value less than `1`\n // trigger an initial emit of `null` if no page specified\n _this.currentPage = 0;\n });\n }\n },\n methods: {\n // These methods are used by the render function\n onClick: function onClick(event, pageNumber) {\n var _this2 = this;\n\n // Dont do anything if clicking the current active page\n if (pageNumber === this.currentPage) {\n return;\n }\n\n var target = event.target; // Emit a user-cancelable `page-click` event\n\n var clickEvt = new BvEvent(EVENT_NAME_PAGE_CLICK, {\n cancelable: true,\n vueTarget: this,\n target: target\n });\n this.$emit(clickEvt.type, clickEvt, pageNumber);\n\n if (clickEvt.defaultPrevented) {\n return;\n } // Update the `v-model`\n\n\n this.currentPage = pageNumber; // Emit event triggered by user interaction\n\n this.$emit(EVENT_NAME_CHANGE, this.currentPage); // Keep the current button focused if possible\n\n this.$nextTick(function () {\n if (isVisible(target) && _this2.$el.contains(target)) {\n attemptFocus(target);\n } else {\n _this2.focusCurrent();\n }\n });\n },\n makePage: function makePage(pageNum) {\n return pageNum;\n },\n\n /* istanbul ignore next */\n linkProps: function linkProps() {\n // No props, since we render a plain button\n return {};\n }\n }\n});","export function showSpinner() {\r\n document.getElementById('loading-bg').style.display = 'block'\r\n}\r\n\r\nexport function hideSpinner() {\r\n document.getElementById('loading-bg').style.display = 'none'\r\n}\r\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_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 { 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});","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});","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EscolasLista.vue?vue&type=style&index=0&lang=scss&\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_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 { 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 var 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 var 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: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var 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 var 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: function (nth) {\n var 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 var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\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 var 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 var 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 (var 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 var 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\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (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: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var 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: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\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: \"\",\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 var formats = {\n Z: function (date) { return 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: function (date) { return 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: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var 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 var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var 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 }\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 ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (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 };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { 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 var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var 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 var maxHr = config.maxDate.getHours();\n var 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: hours, minutes: minutes, seconds: seconds };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { 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, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__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.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\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: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { 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 var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var 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 var 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 var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var 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 var 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 var 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 var 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 var 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 (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var 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 var 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 }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof 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 var eventTarget = getEventTarget(event);\n var 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(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var 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\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\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 var selText = function (e) {\n return getEventTarget(e).select();\n };\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\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var 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 var oldYear = self.currentYear;\n var 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 var 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 var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var 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 var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\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 var 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 var 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 var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", 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 i % 7 === 6) {\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 var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var 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 var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var 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 var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? 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 var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var 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 var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var 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 var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var 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 var 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 (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var 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 var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var 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\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var 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 var 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: container,\n yearElement: yearElement,\n monthElement: 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 (var m = self.config.showMonths; m--;) {\n var 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: function () { return self.__hidePrevMonthArrow; },\n set: function (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: function () { return self.__hideNextMonthArrow; },\n set: function (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 var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var 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 var 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 (var i = self.config.showMonths; i--;) {\n var 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 var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var 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 var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var 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, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { 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 var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\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 (var 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 var 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(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\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 }\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 var 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) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var 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 var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; 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 var 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 var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\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 var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var 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 self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var 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 var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\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 var 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 var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var 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, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var 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 var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var 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 var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (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 function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var 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 var 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(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var 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(function (d) { return 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 var 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 var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var 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 var 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: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return 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 (var 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(function (hook) { return self.config[hook] !== undefined; }).forEach(function (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 (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var 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 = __assign(__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.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__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 var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return 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 var 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 var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var 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 var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var 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 var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var 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 var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\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 var 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 var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var 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 var 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(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var 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 var single = self.config.mode === \"single\" && !self.config.enableTime;\n var 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 var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\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 (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return 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 var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return 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(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return 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(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { 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(function (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(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var 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 updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var 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\", function (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 var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var 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 var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, 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(function (yearElement, i) {\n var 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(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { 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 var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var 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 var 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 var 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 var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var 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 var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var 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: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__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","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});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\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) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\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});","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","import axiosIns from '@/libs/axios'\r\nimport utilsService from './utilsService'\r\n\r\nconst controller = 'school'\r\n\r\nexport default {\r\n async getAll(filter) {\r\n return axiosIns\r\n .get(`${controller}?${utilsService.getQueryParams(filter)}`)\r\n .then(res => res.data)\r\n },\r\n async getById(id) {\r\n return axiosIns.get(`${controller}/${id}`).then(res => res.data)\r\n },\r\n async update(obj) {\r\n return axiosIns.put(controller, obj).then(res => res.data)\r\n },\r\n async create(req) {\r\n return axiosIns.post(controller, req).then(res => res.data)\r\n },\r\n}\r\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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_FORM_TEXTAREA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect';\nimport { mathCeil, mathMax, mathMin } from '../../utils/math';\nimport { toInteger, toFloat } from '../../utils/number';\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 { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { VBVisible } from '../../directives/visible/visible'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n maxRows: makeProp(PROP_TYPE_NUMBER_STRING),\n // When in auto resize mode, disable shrinking to content height\n noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the resize handle of textarea\n noResize: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),\n // 'soft', 'hard' or 'off'\n // Browser default is 'soft'\n wrap: makeProp(PROP_TYPE_STRING, 'soft')\n})), NAME_FORM_TEXTAREA); // --- Main component ---\n// @vue/component\n\nexport var BFormTextarea = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXTAREA,\n directives: {\n 'b-visible': VBVisible\n },\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return mathMax(toInteger(this.rows, 2), 2);\n },\n computedMaxRows: function computedMaxRows() {\n return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.disabled,\n required = this.required;\n return {\n id: this.safeId(),\n name: this.name || null,\n form: this.form || null,\n disabled: disabled,\n placeholder: this.placeholder || null,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.computedRows,\n wrap: this.wrap || null,\n 'aria-required': this.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 localValue: function localValue() {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n\n /* istanbul ignore next */\n visibleCallback: function visibleCallback(visible) {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n computeHeight: function computeHeight() {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = toFloat(computedStyle.lineHeight, 1); // Calculate height of border and padding\n\n var border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);\n var padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = getStyle(el, 'height') || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n setStyle(el, 'height', 'auto');\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n setStyle(el, 'height', oldHeight); // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = mathMax((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = mathMax(mathCeil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n return h('textarea', {\n class: this.computedClass,\n style: this.computedStyle,\n directives: [{\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\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 { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTbody = /*#__PURE__*/Vue.extend({\n name: NAME_TBODY,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTbody: function isTbody() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n isTransitionGroup: function isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs: function tbodyAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n },\n tbodyProps: function tbodyProps() {\n var tbodyTransitionProps = this.tbodyTransitionProps;\n return tbodyTransitionProps ? _objectSpread(_objectSpread({}, tbodyTransitionProps), {}, {\n tag: 'tbody'\n }) : {};\n }\n },\n render: function render(h) {\n var data = {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs\n };\n\n if (this.isTransitionGroup) {\n // We use native listeners if a transition group for any delegated events\n data.on = this.tbodyTransitionHandlers || {};\n data.nativeOn = this.bvListeners;\n } else {\n // Otherwise we place any listeners on the tbody element\n data.on = this.bvListeners;\n }\n\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { NAME_PAGINATION } from '../constants/components';\nimport { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_FUNCTION_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_ELLIPSIS_TEXT, SLOT_NAME_FIRST_TEXT, SLOT_NAME_LAST_TEXT, SLOT_NAME_NEXT_TEXT, SLOT_NAME_PAGE, SLOT_NAME_PREV_TEXT } from '../constants/slots';\nimport { createArray } from '../utils/array';\nimport { attemptFocus, getActiveElement, getAttr, isDisabled, isVisible, selectAll } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { isFunction, isNull } from '../utils/inspect';\nimport { mathFloor, mathMax, mathMin } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string';\nimport { warn } from '../utils/warn';\nimport { normalizeSlotMixin } from '../mixins/normalize-slot';\nimport { BLink } from '../components/link/link'; // Common props, computed, data, render function, and methods\n// for `` and ``\n// --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: null,\n\n /* istanbul ignore next */\n validator: function validator(value) {\n if (!isNull(value) && toInteger(value, 0) < 1) {\n warn('\"v-model\" value must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }\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 }; // Threshold of limit size when we start/stop showing ellipsis\n\nvar ELLIPSIS_THRESHOLD = 3; // Default # of buttons limit\n\nvar DEFAULT_LIMIT = 5; // --- Helper methods ---\n// Make an array of N to N+X\n\nvar makePageArray = function makePageArray(startNumber, numberOfPages) {\n return createArray(numberOfPages, function (_, i) {\n return {\n number: startNumber + i,\n classes: null\n };\n });\n}; // Sanitize the provided limit value (converting to a number)\n\n\nvar sanitizeLimit = function sanitizeLimit(value) {\n var limit = toInteger(value) || 1;\n return limit < 1 ? DEFAULT_LIMIT : limit;\n}; // Sanitize the provided current page number (converting to a number)\n\n\nvar sanitizeCurrentPage = function sanitizeCurrentPage(val, numberOfPages) {\n var page = toInteger(val) || 1;\n return page > numberOfPages ? numberOfPages : page < 1 ? 1 : page;\n}; // Links don't normally respond to SPACE, so we add that\n// functionality via this handler\n\n\nvar onSpaceKey = function onSpaceKey(event) {\n if (event.keyCode === CODE_SPACE) {\n // Stop page from scrolling\n stopEvent(event, {\n immediatePropagation: true\n }); // Trigger the click event on the link\n\n event.currentTarget.click();\n return false;\n }\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n align: makeProp(PROP_TYPE_STRING, 'left'),\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Pagination'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n ellipsisClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n ellipsisText: makeProp(PROP_TYPE_STRING, \"\\u2026\"),\n // '…'\n firstClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n firstNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n firstText: makeProp(PROP_TYPE_STRING, \"\\xAB\"),\n // '«'\n hideEllipsis: makeProp(PROP_TYPE_BOOLEAN, false),\n hideGotoEndButtons: makeProp(PROP_TYPE_BOOLEAN, false),\n labelFirstPage: makeProp(PROP_TYPE_STRING, 'Go to first page'),\n labelLastPage: makeProp(PROP_TYPE_STRING, 'Go to last page'),\n labelNextPage: makeProp(PROP_TYPE_STRING, 'Go to next page'),\n labelPage: makeProp(PROP_TYPE_FUNCTION_STRING, 'Go to page'),\n labelPrevPage: makeProp(PROP_TYPE_STRING, 'Go to previous page'),\n lastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n lastNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n lastText: makeProp(PROP_TYPE_STRING, \"\\xBB\"),\n // '»'\n limit: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_LIMIT,\n /* istanbul ignore next */\n function (value) {\n if (toInteger(value, 0) < 1) {\n warn('Prop \"limit\" must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }),\n nextClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n nextText: makeProp(PROP_TYPE_STRING, \"\\u203A\"),\n // '›'\n pageClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n prevClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n prevText: makeProp(PROP_TYPE_STRING, \"\\u2039\"),\n // '‹'\n size: makeProp(PROP_TYPE_STRING)\n})), 'pagination'); // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n // `-1` signifies no page initially selected\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n currentPage = currentPage > 0 ? currentPage : -1;\n return {\n currentPage: currentPage,\n localNumberOfPages: 1,\n localLimit: DEFAULT_LIMIT\n };\n },\n computed: {\n btnSize: function btnSize() {\n var size = this.size;\n return size ? \"pagination-\".concat(size) : '';\n },\n alignment: function alignment() {\n var align = this.align;\n\n if (align === 'center') {\n return 'justify-content-center';\n } else if (align === 'end' || align === 'right') {\n return 'justify-content-end';\n } else if (align === 'fill') {\n // The page-items will also have 'flex-fill' added\n // We add text centering to make the button appearance better in fill mode\n return 'text-center';\n }\n\n return '';\n },\n styleClass: function styleClass() {\n return this.pills ? 'b-pagination-pills' : '';\n },\n computedCurrentPage: function computedCurrentPage() {\n return sanitizeCurrentPage(this.currentPage, this.localNumberOfPages);\n },\n paginationParams: function paginationParams() {\n // Determine if we should show the the ellipsis\n var limit = this.localLimit,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage,\n hideEllipsis = this.hideEllipsis,\n firstNumber = this.firstNumber,\n lastNumber = this.lastNumber;\n var showFirstDots = false;\n var showLastDots = false;\n var numberOfLinks = limit;\n var startNumber = 1;\n\n if (numberOfPages <= limit) {\n // Special case: Less pages available than the limit of displayed pages\n numberOfLinks = numberOfPages;\n } else if (currentPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || lastNumber) {\n showLastDots = true;\n numberOfLinks = limit - (firstNumber ? 0 : 1);\n }\n\n numberOfLinks = mathMin(numberOfLinks, limit);\n } else if (numberOfPages - currentPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || firstNumber) {\n showFirstDots = true;\n numberOfLinks = limit - (lastNumber ? 0 : 1);\n }\n\n startNumber = numberOfPages - numberOfLinks + 1;\n } else {\n // We are somewhere in the middle of the page list\n if (limit > ELLIPSIS_THRESHOLD) {\n numberOfLinks = limit - (hideEllipsis ? 0 : 2);\n showFirstDots = !!(!hideEllipsis || firstNumber);\n showLastDots = !!(!hideEllipsis || lastNumber);\n }\n\n startNumber = currentPage - mathFloor(numberOfLinks / 2);\n } // Sanity checks\n\n /* istanbul ignore if */\n\n\n if (startNumber < 1) {\n startNumber = 1;\n showFirstDots = false;\n } else if (startNumber > numberOfPages - numberOfLinks) {\n startNumber = numberOfPages - numberOfLinks + 1;\n showLastDots = false;\n }\n\n if (showFirstDots && firstNumber && startNumber < 4) {\n numberOfLinks = numberOfLinks + 2;\n startNumber = 1;\n showFirstDots = false;\n }\n\n var lastPageNumber = startNumber + numberOfLinks - 1;\n\n if (showLastDots && lastNumber && lastPageNumber > numberOfPages - 3) {\n numberOfLinks = numberOfLinks + (lastPageNumber === numberOfPages - 2 ? 2 : 3);\n showLastDots = false;\n } // Special handling for lower limits (where ellipsis are never shown)\n\n\n if (limit <= ELLIPSIS_THRESHOLD) {\n if (firstNumber && startNumber === 1) {\n numberOfLinks = mathMin(numberOfLinks + 1, numberOfPages, limit + 1);\n } else if (lastNumber && numberOfPages === startNumber + numberOfLinks - 1) {\n startNumber = mathMax(startNumber - 1, 1);\n numberOfLinks = mathMin(numberOfPages - startNumber + 1, numberOfPages, limit + 1);\n }\n }\n\n numberOfLinks = mathMin(numberOfLinks, numberOfPages - startNumber + 1);\n return {\n showFirstDots: showFirstDots,\n showLastDots: showLastDots,\n numberOfLinks: numberOfLinks,\n startNumber: startNumber\n };\n },\n pageList: function pageList() {\n // Generates the pageList array\n var _this$paginationParam = this.paginationParams,\n numberOfLinks = _this$paginationParam.numberOfLinks,\n startNumber = _this$paginationParam.startNumber;\n var currentPage = this.computedCurrentPage; // Generate list of page numbers\n\n var pages = makePageArray(startNumber, numberOfLinks); // We limit to a total of 3 page buttons on XS screens\n // So add classes to page links to hide them for XS breakpoint\n // Note: Ellipsis will also be hidden on XS screens\n // TODO: Make this visual limit configurable based on breakpoint(s)\n\n if (pages.length > 3) {\n var idx = currentPage - startNumber; // THe following is a bootstrap-vue custom utility class\n\n var classes = 'bv-d-xs-down-none';\n\n if (idx === 0) {\n // Keep leftmost 3 buttons visible when current page is first page\n for (var i = 3; i < pages.length; i++) {\n pages[i].classes = classes;\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible when current page is last page\n for (var _i = 0; _i < pages.length - 3; _i++) {\n pages[_i].classes = classes;\n }\n } else {\n // Hide all except current page, current page - 1 and current page + 1\n for (var _i2 = 0; _i2 < idx - 1; _i2++) {\n // hide some left button(s)\n pages[_i2].classes = classes;\n }\n\n for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {\n // hide some right button(s)\n pages[_i3].classes = classes;\n }\n }\n }\n\n return pages;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = sanitizeCurrentPage(newValue, this.localNumberOfPages);\n }\n }), _defineProperty(_watch, \"currentPage\", function currentPage(newValue, oldValue) {\n if (newValue !== oldValue) {\n // Emit `null` if no page selected\n this.$emit(MODEL_EVENT_NAME, newValue > 0 ? newValue : null);\n }\n }), _defineProperty(_watch, \"limit\", function limit(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localLimit = sanitizeLimit(newValue);\n }\n }), _watch),\n created: function created() {\n var _this = this;\n\n // Set our default values in data\n this.localLimit = sanitizeLimit(this.limit);\n this.$nextTick(function () {\n // Sanity check\n _this.currentPage = _this.currentPage > _this.localNumberOfPages ? _this.localNumberOfPages : _this.currentPage;\n });\n },\n methods: {\n handleKeyNav: function handleKeyNav(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n /* istanbul ignore if */\n\n if (this.isNav) {\n // We disable left/right keyboard navigation in ``\n return;\n }\n\n if (keyCode === CODE_LEFT || keyCode === CODE_UP) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusFirst() : this.focusPrev();\n } else if (keyCode === CODE_RIGHT || keyCode === CODE_DOWN) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusLast() : this.focusNext();\n }\n },\n getButtons: function getButtons() {\n // Return only buttons that are visible\n return selectAll('button.page-link, a.page-link', this.$el).filter(function (btn) {\n return isVisible(btn);\n });\n },\n focusCurrent: function focusCurrent() {\n var _this2 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this2.getButtons().find(function (el) {\n return toInteger(getAttr(el, 'aria-posinset'), 0) === _this2.computedCurrentPage;\n });\n\n if (!attemptFocus(btn)) {\n // Fallback if current page is not in button list\n _this2.focusFirst();\n }\n });\n },\n focusFirst: function focusFirst() {\n var _this3 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this3.getButtons().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusLast: function focusLast() {\n var _this4 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this4.getButtons().reverse().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusPrev: function focusPrev() {\n var _this5 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this5.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index > 0 && !isDisabled(buttons[index - 1])) {\n attemptFocus(buttons[index - 1]);\n }\n });\n },\n focusNext: function focusNext() {\n var _this6 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this6.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index < buttons.length - 1 && !isDisabled(buttons[index + 1])) {\n attemptFocus(buttons[index + 1]);\n }\n });\n }\n },\n render: function render(h) {\n var _this7 = this;\n\n var disabled = this.disabled,\n labelPage = this.labelPage,\n ariaLabel = this.ariaLabel,\n isNav = this.isNav,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage;\n var pageNumbers = this.pageList.map(function (p) {\n return p.number;\n });\n var _this$paginationParam2 = this.paginationParams,\n showFirstDots = _this$paginationParam2.showFirstDots,\n showLastDots = _this$paginationParam2.showLastDots;\n var fill = this.align === 'fill';\n var $buttons = []; // Helper function and flag\n\n var isActivePage = function isActivePage(pageNumber) {\n return pageNumber === currentPage;\n };\n\n var noCurrentPage = this.currentPage < 1; // Factory function for prev/next/first/last buttons\n\n var makeEndBtn = function makeEndBtn(linkTo, ariaLabel, btnSlot, btnText, btnClass, pageTest, key) {\n var isDisabled = disabled || isActivePage(pageTest) || noCurrentPage || linkTo < 1 || linkTo > numberOfPages;\n var pageNumber = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo;\n var scope = {\n disabled: isDisabled,\n page: pageNumber,\n index: pageNumber - 1\n };\n var $btnContent = _this7.normalizeSlot(btnSlot, scope) || toString(btnText) || h();\n var $inner = h(isDisabled ? 'span' : isNav ? BLink : 'button', {\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !isDisabled && fill\n },\n props: isDisabled || !isNav ? {} : _this7.linkProps(linkTo),\n attrs: {\n role: isNav ? null : 'menuitem',\n type: isNav || isDisabled ? null : 'button',\n tabindex: isDisabled || isNav ? null : '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-disabled': isDisabled ? 'true' : null\n },\n on: isDisabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, linkTo);\n },\n keydown: onSpaceKey\n }\n }, [$btnContent]);\n return h('li', {\n key: key,\n staticClass: 'page-item',\n class: [{\n disabled: isDisabled,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !isDisabled\n }, btnClass],\n attrs: {\n role: isNav ? null : 'presentation',\n 'aria-hidden': isDisabled ? 'true' : null\n }\n }, [$inner]);\n }; // Ellipsis factory\n\n\n var makeEllipsis = function makeEllipsis(isLast) {\n return h('li', {\n staticClass: 'page-item',\n class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : '', _this7.ellipsisClass],\n attrs: {\n role: 'separator'\n },\n key: \"ellipsis-\".concat(isLast ? 'last' : 'first')\n }, [h('span', {\n staticClass: 'page-link'\n }, [_this7.normalizeSlot(SLOT_NAME_ELLIPSIS_TEXT) || toString(_this7.ellipsisText) || h()])]);\n }; // Page button factory\n\n\n var makePageButton = function makePageButton(page, idx) {\n var pageNumber = page.number;\n var active = isActivePage(pageNumber) && !noCurrentPage; // Active page will have tabindex of 0, or if no current page and first page button\n\n var tabIndex = disabled ? null : active || noCurrentPage && idx === 0 ? '0' : '-1';\n var attrs = {\n role: isNav ? null : 'menuitemradio',\n type: isNav || disabled ? null : 'button',\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-label': hasPropFunction(labelPage) ?\n /* istanbul ignore next */\n labelPage(pageNumber) : \"\".concat(isFunction(labelPage) ? labelPage() : labelPage, \" \").concat(pageNumber),\n 'aria-checked': isNav ? null : active ? 'true' : 'false',\n 'aria-current': isNav && active ? 'page' : null,\n 'aria-posinset': isNav ? null : pageNumber,\n 'aria-setsize': isNav ? null : numberOfPages,\n // ARIA \"roving tabindex\" method (except in `isNav` mode)\n tabindex: isNav ? null : tabIndex\n };\n var btnContent = toString(_this7.makePage(pageNumber));\n var scope = {\n page: pageNumber,\n index: pageNumber - 1,\n content: btnContent,\n active: active,\n disabled: disabled\n };\n var $inner = h(disabled ? 'span' : isNav ? BLink : 'button', {\n props: disabled || !isNav ? {} : _this7.linkProps(pageNumber),\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !disabled && fill\n },\n attrs: attrs,\n on: disabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, pageNumber);\n },\n keydown: onSpaceKey\n }\n }, [_this7.normalizeSlot(SLOT_NAME_PAGE, scope) || btnContent]);\n return h('li', {\n staticClass: 'page-item',\n class: [{\n disabled: disabled,\n active: active,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !disabled\n }, page.classes, _this7.pageClass],\n attrs: {\n role: isNav ? null : 'presentation'\n },\n key: \"page-\".concat(pageNumber)\n }, [$inner]);\n }; // Goto first page button\n // Don't render button when `hideGotoEndButtons` or `firstNumber` is set\n\n\n var $firstPageBtn = h();\n\n if (!this.firstNumber && !this.hideGotoEndButtons) {\n $firstPageBtn = makeEndBtn(1, this.labelFirstPage, SLOT_NAME_FIRST_TEXT, this.firstText, this.firstClass, 1, 'pagination-goto-first');\n }\n\n $buttons.push($firstPageBtn); // Goto previous page button\n\n $buttons.push(makeEndBtn(currentPage - 1, this.labelPrevPage, SLOT_NAME_PREV_TEXT, this.prevText, this.prevClass, 1, 'pagination-goto-prev')); // Show first (1) button?\n\n $buttons.push(this.firstNumber && pageNumbers[0] !== 1 ? makePageButton({\n number: 1\n }, 0) : h()); // First ellipsis\n\n $buttons.push(showFirstDots ? makeEllipsis(false) : h()); // Individual page links\n\n this.pageList.forEach(function (page, idx) {\n var offset = showFirstDots && _this7.firstNumber && pageNumbers[0] !== 1 ? 1 : 0;\n $buttons.push(makePageButton(page, idx + offset));\n }); // Last ellipsis\n\n $buttons.push(showLastDots ? makeEllipsis(true) : h()); // Show last page button?\n\n $buttons.push(this.lastNumber && pageNumbers[pageNumbers.length - 1] !== numberOfPages ? makePageButton({\n number: numberOfPages\n }, -1) : h()); // Goto next page button\n\n $buttons.push(makeEndBtn(currentPage + 1, this.labelNextPage, SLOT_NAME_NEXT_TEXT, this.nextText, this.nextClass, numberOfPages, 'pagination-goto-next')); // Goto last page button\n // Don't render button when `hideGotoEndButtons` or `lastNumber` is set\n\n var $lastPageBtn = h();\n\n if (!this.lastNumber && !this.hideGotoEndButtons) {\n $lastPageBtn = makeEndBtn(numberOfPages, this.labelLastPage, SLOT_NAME_LAST_TEXT, this.lastText, this.lastClass, numberOfPages, 'pagination-goto-last');\n }\n\n $buttons.push($lastPageBtn); // Assemble the pagination buttons\n\n var $pagination = h('ul', {\n staticClass: 'pagination',\n class: ['b-pagination', this.btnSize, this.alignment, this.styleClass],\n attrs: {\n role: isNav ? null : 'menubar',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-label': isNav ? null : ariaLabel || null\n },\n // We disable keyboard left/right nav when ``\n on: isNav ? {} : {\n keydown: this.handleKeyNav\n },\n ref: 'ul'\n }, $buttons); // If we are ``, wrap in `
) 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 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 () {\n var _vm=this;\n var _h=_vm.$createElement;\n var _c=_vm._self._c||_h;\n\n return _c('div', [_c('b-row', [_c('b-col', [_c('b-card', {\n staticClass: \"header-marcar_consulta bg-gradient-primary\"\n }, [_c('b-row', {\n attrs: {\n \"align-v\": \"center\"\n }\n }, [_c('b-col', {\n attrs: {\n \"lg\": \"3\"\n }\n }, [_c('h1', [_c('feather-icon', {\n staticClass: \"mr-50\",\n attrs: {\n \"icon\": \"BookOpenIcon\",\n \"size\": \"30\"\n }\n }), _vm._v(\" Escolas \")], 1)]), _c('b-col', {\n attrs: {\n \"lg\": \"6\"\n }\n }, [_c('b-form', {\n on: {\n \"submit\": function submit($event) {\n $event.preventDefault();\n return _vm.fetchSchools.apply(null, arguments);\n }\n }\n }, [_c('b-input-group', {\n staticClass: \"input-group-merge\"\n }, [_c('b-input-group-prepend', {\n attrs: {\n \"is-text\": \"\"\n }\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": \"SearchIcon\"\n }\n })], 1), _c('b-form-input', {\n attrs: {\n \"placeholder\": \"Buscar Escola\"\n },\n model: {\n value: _vm.filtro.name,\n callback: function callback($$v) {\n _vm.$set(_vm.filtro, \"name\", $$v);\n },\n expression: \"filtro.name\"\n }\n })], 1)], 1)], 1), _c('b-col', {\n attrs: {\n \"lg\": \"3\"\n }\n }, [_c('b-button', {\n attrs: {\n \"variant\": \"primary button-right\",\n \"onclick\": \"location.href='/NovaEscola'\"\n }\n }, [_vm._v(\" Adicionar Escola\")])], 1)], 1)], 1)], 1)], 1), _c('div', {\n staticClass: \"d-flex\"\n }, [_c('b-pagination', {\n staticClass: \"ml-auto\",\n attrs: {\n \"total-rows\": _vm.fetchedSchools.totalItems,\n \"per-page\": _vm.perPage\n },\n on: {\n \"input\": _vm.onChangePage\n },\n model: {\n value: _vm.currentPage,\n callback: function callback($$v) {\n _vm.currentPage = $$v;\n },\n expression: \"currentPage\"\n }\n })], 1), _c('b-card', {\n attrs: {\n \"no-body\": \"\"\n }\n }, [_c('b-table', {\n ref: \"refUserListTable\",\n staticClass: \"position-relative\",\n attrs: {\n \"items\": _vm.fetchedSchools.content,\n \"responsive\": \"\",\n \"fields\": _vm.tableColumns,\n \"primary-key\": \"id\",\n \"sort-by\": _vm.sortBy,\n \"show-empty\": \"\",\n \"empty-text\": \"No matching records found\",\n \"sort-desc\": _vm.isSortDirDesc\n },\n on: {\n \"update:sortBy\": function updateSortBy($event) {\n _vm.sortBy = $event;\n },\n \"update:sort-by\": function updateSortBy($event) {\n _vm.sortBy = $event;\n },\n \"update:sortDesc\": function updateSortDesc($event) {\n _vm.isSortDirDesc = $event;\n },\n \"update:sort-desc\": function updateSortDesc($event) {\n _vm.isSortDirDesc = $event;\n }\n },\n scopedSlots: _vm._u([{\n key: \"cell(active)\",\n fn: function fn(data) {\n return [_c('b-badge', {\n staticClass: \"text-capitalize\",\n attrs: {\n \"pill\": \"\",\n \"variant\": \"light-\".concat(_vm.resolveUserStatusVariant(data.item.active))\n }\n }, [_vm._v(\" \" + _vm._s(_vm.resolveUserStatusText(data.item.active)) + \" \")])];\n }\n }, {\n key: \"cell(actions)\",\n fn: function fn(data) {\n return [_c('b-dropdown', {\n attrs: {\n \"variant\": \"link\",\n \"no-caret\": \"\",\n \"right\": _vm.$store.state.appConfig.isRTL\n },\n scopedSlots: _vm._u([{\n key: \"button-content\",\n fn: function fn() {\n return [_c('feather-icon', {\n staticClass: \"align-middle text-body\",\n attrs: {\n \"icon\": \"MoreVerticalIcon\",\n \"size\": \"16\"\n }\n })];\n },\n proxy: true\n }], null, true)\n }, [_c('b-dropdown-item', {\n attrs: {\n \"to\": {\n name: 'listaTurmas',\n params: {\n id: data.item.id\n }\n }\n }\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": \"EditIcon\"\n }\n }), _c('span', {\n staticClass: \"align-middle ml-50\"\n }, [_vm._v(\"Listar Turmas\")])], 1), _c('b-dropdown-item', {\n attrs: {\n \"to\": {\n name: 'escolasEdit',\n params: {\n id: data.item.id\n }\n }\n }\n }, [_c('feather-icon', {\n attrs: {\n \"icon\": \"EditIcon\"\n }\n }), _c('span', {\n staticClass: \"align-middle ml-50\"\n }, [_vm._v(\"Editar Escola\")])], 1)], 1)];\n }\n }])\n })], 1), _c('div', {\n staticClass: \"d-flex\"\n }, [_c('b-pagination', {\n staticClass: \"ml-auto\",\n attrs: {\n \"total-rows\": _vm.fetchedSchools.totalItems,\n \"per-page\": _vm.fetchedSchools.perPage\n },\n model: {\n value: _vm.fetchedSchools.currentPage,\n callback: function callback($$v) {\n _vm.$set(_vm.fetchedSchools, \"currentPage\", $$v);\n },\n expression: \"fetchedSchools.currentPage\"\n }\n })], 1)], 1);\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EscolasLista.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EscolasLista.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EscolasLista.vue?vue&type=template&id=04474a7c&\"\nimport script from \"./EscolasLista.vue?vue&type=script&lang=js&\"\nexport * from \"./EscolasLista.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EscolasLista.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","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\n }\n});","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_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\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 active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","export var noop = function noop() {};"],"sourceRoot":""}