{"version":3,"sources":["webpack:///./src/@core/mixins/permission.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./src/@core/mixins/table.js","webpack:///./src/views/components/table/TableEntries.vue?bdbd","webpack:///src/views/components/table/TableEntries.vue","webpack:///./src/views/components/table/TableEntries.vue?c4f3","webpack:///./src/views/components/table/TableEntries.vue?e232","webpack:///./node_modules/core-js/internals/string-pad.js","webpack:///./src/helpers/getStatusColor.js","webpack:///./src/@core/directives/animations.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./src/views/forms/InputField.vue?b743","webpack:///src/views/forms/InputField.vue","webpack:///./src/views/forms/InputField.vue?501b","webpack:///./src/views/forms/InputField.vue?d085","webpack:///./node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/pagination.js","webpack:///./src/views/components/spinner/FullScreenSpinner.vue?e011","webpack:///src/views/components/spinner/FullScreenSpinner.vue","webpack:///./src/views/components/spinner/FullScreenSpinner.vue?53e6","webpack:///./src/views/components/spinner/FullScreenSpinner.vue","webpack:///./src/helpers/formatDate.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./src/helpers/handleSpecialCharacter.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./node_modules/core-js/modules/es.string.pad-start.js","webpack:///./src/views/pages/e-channels/cards/ManageCards/ManageCards.vue?6b29","webpack:///src/views/pages/e-channels/cards/ManageCards/ManageCards.vue","webpack:///./src/views/pages/e-channels/cards/ManageCards/ManageCards.vue?679b","webpack:///./src/views/pages/e-channels/cards/ManageCards/ManageCards.vue","webpack:///./src/assets/images/gif/loader.gif","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-sub-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./src/views/forms/InputField.vue?8193","webpack:///./src/views/components/table/TableEntries.vue?3cd4","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./node_modules/bootstrap-vue/esm/utils/css-escape.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/form-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack:///./src/helpers/capitalizeFirstLetter.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./src/views/forms/DatePickerField.vue?433b","webpack:///./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack:///./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack:///./src/helpers/addSpaceToString.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./src/views/components/button/Button.vue?5dc3","webpack:///src/views/components/button/Button.vue","webpack:///./src/views/components/button/Button.vue?2fad","webpack:///./src/views/components/button/Button.vue","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./src/views/components/table/TablePagination.vue?0506","webpack:///./src/views/components/pagination/Pagination.vue?4307","webpack:///src/views/components/pagination/Pagination.vue","webpack:///./src/views/components/pagination/Pagination.vue?4a4f","webpack:///./src/views/components/pagination/Pagination.vue","webpack:///src/views/components/table/TablePagination.vue","webpack:///./src/views/components/table/TablePagination.vue?75ec","webpack:///./src/views/components/table/TablePagination.vue","webpack:///./src/views/forms/SelectField.vue?e97f","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.min.js","webpack:///./src/views/components/table/TableEntries.vue?1fad","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./src/views/forms/SelectField.vue?1739","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./src/views/forms/DatePickerField.vue?9a96","webpack:///src/views/forms/DatePickerField.vue","webpack:///./src/views/forms/DatePickerField.vue?b37e","webpack:///./src/views/forms/DatePickerField.vue","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack:///./src/views/forms/SelectField.vue?806e","webpack:///src/views/forms/SelectField.vue","webpack:///./src/views/forms/SelectField.vue?5a8d","webpack:///./src/views/forms/SelectField.vue?09cc","webpack:///./node_modules/popper.js/dist/esm/popper.js"],"names":["permissionMixin","computed","mapGetters","userData","methods","getUserPermission","value","this","permissions","includes","formSelectionMixin","extend","selectionStart","cache","get","$refs","input","set","val","selectionEnd","selectionDirection","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","tableMixins","data","isBusy","showSpinner","sortDesc","searchQuery","statusFilter","perPage","pageSize","currentPage","perPageOptions","totalCount","statusOptions","approvalTotalCount","approvalPerPage","approvalPageSize","approvalCurrentPage","totalEntries","numberOfPages","Math","floor","from","to","min","approvalTotalEntries","approvalNumberOfPages","approvalFom","approvalTo","variantColor","status","getOverallIndex","index","render","_vm","_h","$createElement","_c","_self","_v","staticClass","attrs","$store","state","appConfig","isRTL","options","model","callback","$$v","expression","staticRenderFns","name","components","vSelect","props","type","Array","required","Object","String","Number","Boolean","default","hasValue","watch","$emit","created","component","uncurryThis","toLength","toString","$repeat","requireObjectCoercible","repeat","stringSlice","slice","ceil","createMethod","IS_END","$this","maxLength","fillString","fillLen","stringFiller","S","intMaxLength","stringLength","length","fillStr","undefined","module","exports","start","end","getStatusColor","statusColor","Open","AwaitingOpen","Processing","EODComplete","AutomaticallyOpen","loanStatus","Yes","Active","Paid","Completed","InActive","Closed","Close","AwaitingEOD","AutomaticallyClosed","Inactive","No","Pending","Enabled","Disabled","Expired","Approved","Declined","AwaitingNextReviewer","Canceled","ReworkRequired","Defaulting","FullyPaid","PartiallyPaid","NotYetDue","DueAndUnpaid","EarlyTermination","AutoCleared","ManuallyCleared","Returned","Uncleared","Reversed","Failed","Processed","PendingTSQ","Successful","Issued","NotIssued","Linked","Unlinked","Generated","Blocked","Hotlisted","NEW","PENDING_PROCESSING","CONFIRMED","AWAITING_SERVICE_PROVIDER","EXPIRED","FAILED","REVERSED","STAGED_FOR_REVERSAL","Submitted","Uploaded","Draft","NoFileFound","heightFade","inserted","el","binding","height","offsetHeight","modifiers","appear","style","overflow","maxHeight","opacity","setTimeout","unbind","global","toIntegerOrInfinity","RangeError","count","str","result","n","Infinity","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","bind","footer","footerClass","footerHtml","BCardFooter","functional","h","_ref","_ref2","children","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","class","concat","domProps","html","bottom","top","BCardImg","src","alt","width","baseClass","right","left","cardImgProps","imgSrc","card","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","$content","overlay","$footer","hasFooterSlot","tag","id","_s","label","errorName","rules","vid","_u","fn","ref","errors","placeholder","readonly","step","onpaste","formatter","disableCopyPaste","on","onChange","onInput","onBlur","nativeOn","$event","handleKeyPress","innerValue","text","_e","directives","rawName","icon","iconSize","onClick","BFormInput","BFormGroup","ValidationProvider","mixins","sweetAlert","Function","validator","showIcon","isAllowSpecialCharacters","isAllowOnlySpecialCharacters","isAllowCopyAndPaste","isAllowNegativeNumbers","validateInputLength","event","preventDefault","alertInfo","_watch","_makeModelMixin","defaultValue","warn","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","startNumber","_","number","classes","limit","page","keyCode","immediatePropagation","currentTarget","click","ariaLabel","disabled","ellipsisClass","ellipsisText","firstClass","firstNumber","firstText","hideEllipsis","hideGotoEndButtons","labelFirstPage","labelLastPage","labelNextPage","labelPage","labelPrevPage","lastClass","lastNumber","lastText","nextClass","nextText","pageClass","pills","prevClass","prevText","size","paginationMixin","localNumberOfPages","localLimit","btnSize","alignment","styleClass","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","math","lastPageNumber","pageList","_this$paginationParam","pages","idx","_i","_i2","_i3","newValue","oldValue","_this","$nextTick","handleKeyNav","shiftKey","isNav","propagation","focusFirst","focusPrev","focusLast","focusNext","getButtons","$el","btn","focusCurrent","_this2","find","_this3","_this4","reverse","_this5","buttons","indexOf","_this6","_this7","pageNumbers","map","p","_this$paginationParam2","fill","$buttons","isActivePage","pageNumber","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","isDisabled","scope","$btnContent","normalizeSlot","$inner","linkProps","role","tabindex","ariaControls","keydown","makeEllipsis","isLast","makePageButton","active","tabIndex","btnContent","makePage","content","$firstPageBtn","offset","$lastPageBtn","$pagination","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","totalRows","BPagination","pageSizeNumberOfPages","clickEvt","cancelable","vueTarget","defaultPrevented","contains","pageNum","show","staticStyle","proxy","BOverlay","toDateWithYear","moment","format","toDateWithYearFirst","toDateWithUnderscore","customDate","tocustomDate","toDateTimeFormat","toDateWithTime","selectedDate","toDateWithTimes","toDateWithCustomTime","toDateWithDateTime","toCustomDateTime","dateValue","toCustomDate","toDayMonthYear","toMonthYear","check","month","year","toDateWithMinute","toYearWithDate","splittedDate","split","commencementDate","Date","toDateWithMonth","checkDateFormat","splitDate","dateSpecial","dateParts","date","dateDifference","startDate","endDate","diff","dateTimeDifference","diffTime","abs","valueOf","days","hours","minutes","secs","hour","minute","sec","toMonthWithTime","toMonthWithYear","toMonthWithYearTime","getDate","numOfDays","setDate","getMinusOneDayDate","getDaysInMonth","frequency","today","getFullYear","getMonth","daysInMonth","getDaysInYear","formatSingleDates","day","inputDateStr","padStart","inputDate","setHours","convertDateString","dateString","dateObj","convertDate","operationYear","operationMonth","operationDay","ariaLive","forceShow","tooltip","BFormInvalidFeedback","ariaInvalid","autocomplete","debounce","lazy","lazyFormatter","plaintext","trim","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","mounted","$on","beforeDestroy","clearTimeout","formatValue","force","updateValue","doUpdate","$input","composing","formattedValue","focus","blur","TYPES","list","max","noWheel","localType","computedAttrs","form","safeId","computedAriaInvalid","computedListeners","bvListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","removeSpecialChar","regex","test","removeNegativeNumber","removeCharAndSpace","persistPhoneNumber","persistAccountNumber","title","titleTag","BCardTitle","$","$padStart","WEBKIT_BUG","proto","forced","showModal","resetFilter","manageCardAccountList","tableHeaders","addSpaceToString","item","onWithdrawCard","onHotListCard","cardAccountStatus","fetchCardAccounts","resetFilters","$set","cardStatusOptions","option","datePickerConfig","BRow","BCol","BTable","BDropdown","BDropdownItem","BBadge","TablePagination","BModal","BSpinner","TableEntries","SelectField","InputField","Button","DatePickerField","FullScreenSpinner","Ripple","isReadonly","isEditable","isFullName","sortBy","minPhoneVal","maxPhoneVal","modalTitle","genderOptions","buttonLabel","accountNumber","maskedPan","batchNo","cardExpiry","dateFormat","defaultDate","confirm","performHotListAction","updateCardStatus","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","getWeek","givenDate","getTime","getDay","week1","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","bool","wait","t","arrayify","toggleClass","elem","className","classList","add","remove","createElement","e","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","setAttribute","appendChild","getEventTarget","composedPath","path","error","doNothing","monthToStr","monthNumber","revFormat","D","F","monthName","setMonth","G","parseFloat","H","J","K","getHours","RegExp","M","shortMonth","seconds","setSeconds","U","unixSeconds","W","weekNum","weekNumber","parseInt","Y","setFullYear","Z","ISODate","d","setMinutes","j","l","m","u","unixMillSeconds","w","y","tokenRegex","toISOString","getSeconds","getMinutes","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","formatDate","c","arr","join","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","datestr","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","assign","flatpickr","defaultConfig","setupHelperFunctions","utils","currentMonth","yr","currentYear","init","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","setCalendarWidth","isSafari","positionCalendar","triggerEvent","bindToInstance","requestAnimationFrame","calendarContainer","visibility","display","daysContainer","daysWidth","offsetWidth","weekWrapper","removeProperty","updateTime","defaults","getMilliseconds","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","onYearInput","eventTarget","delta","changeYear","handler","ev","addEventListener","_handlers","removeEventListener","triggerChange","evt","prototype","call","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","capture","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","timeIncrement","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","message","buildMonthSwitch","redraw","incrementNumInput","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","changeMonth","focusOnDay","dayFocused","isInView","activeElement","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","yearElement","getElementsByTagName","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","getAttribute","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","destroy","lastChild","_type","removeAttribute","k","isCalendarElem","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","some","newYear","newYearNum","isNewYear","_a","dateToCheck","enable","array","parsed","allowKeydown","allowInlineKeydown","isTimeObj","focusAndClose","ctrlKey","stopPropagation","elems","pluginElements","x","charAt","toLowerCase","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","JSON","parse","stringify","dataset","formats","_enable","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","querySelector","l10ns","customPositionElement","calendarHeight","reduce","acc","child","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","isSelectable","shouldChangeMonth","selectedIndex","sort","a","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","setSelectedDate","rule","preloadedDate","nodeName","inputType","mobileFormatStr","hooks","initEvent","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","which","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","subTitle","subTitleTag","subTitleTextVariant","BCardSubTitle","bodyClass","BCardBody","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","bodyTag","args","TypeError","escapeChar","firstCharCode","charCodeAt","char","charCode","BFormRow","BFormValidFeedback","INPUTS","INPUT_SELECTOR","v","LEGEND_INTERACTIVE_ELEMENTS","breakpoint","description","feedbackAriaLive","invalidFeedback","labelClass","labelFor","labelSize","labelSrOnly","validFeedback","validated","ariaDescribedby","contentColProps","getColProps","$props","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","updateAriaDescribedby","prefix","propValue","identity","attr","newIds","oldIds","ids","onLegendClick","tagName","inputs","computedState","isFieldset","$label","labelContent","labelId","labelTag","for","$invalidFeedback","invalidFeedbackContent","invalidFeedbackId","$validFeedback","validFeedbackContent","validFeedbackId","$description","descriptionContent","descriptionId","capitalizeFirstLetter","toUpperCase","BFormText","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","clickOutMixin","listenForClickOut","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","isClickOut","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","els","boundary","dropleft","dropright","dropup","noFlip","popperOpts","dropdownMixin","provide","bvDropdown","inject","bvNavbar","visible","visibleChangePrevented","inNavbar","toggler","directionClass","boundaryClass","eventName","bvEvent","menu","componentId","emitEvent","$off","focusToggler","showMenu","hideMenu","$_popper","$_hideTimeout","whileOpenListen","destroyPopper","clearHideTimeout","emitOnRoot","createPopper","focusMenu","getPopperConfig","updatePopper","scheduleUpdate","_unused","placement","popperConfig","flip","enabled","boundariesElement","preventOverflow","method","$root","rootCloseListener","vm","hide","refocus","$once","_event","onMousedown","onKeydown","onEsc","onSplitClick","hideHandler","up","items","getItems","focusItem","POSITION_COVER","bgColor","fixed","noCenter","noFade","noWrap","overlayTag","rounded","spinnerSmall","spinnerType","spinnerVariant","variant","wrapTag","zIndex","computedRounded","computedVariant","defaultOverlayFn","small","$overlay","$background","backgroundColor","backdropFilter","transform","linkClass","inheritAttrs","bvAttrs","closeDropdown","replace","formSizeMixin","block","BButton","loading","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","$t","Pagination","r","o","Symbol","toStringTag","__esModule","create","hasOwnProperty","f","events","fp","getElem","fpInput","$watch","watchDisabled","immediate","deep","install","formStateMixin","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleTag","toggleText","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","hasNormalizedSlot","$split","btnProps","href","$toggle","mousedown","$menu","SELECTOR","autofocus","formControlMixin","handleAutofocus","flatPickr","pill","link","clearable","multiple","setSelected","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","getStyleComputedProperty","property","ownerDocument","defaultView","css","getComputedStyle","getParentNode","host","getScrollParent","_getStyleComputedProp","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","instance","Constructor","createClass","descriptor","protoProps","staticProps","_extends","getClientRect","offsets","sizes","clientWidth","clientHeight","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","padding","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","hash","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","findIndex","cur","runModifiers","ends","modifiersToRun","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","cancelAnimationFrame","isNumeric","isFinite","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","len","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","divider","search","splitRegex","op","mergeWithPrevious","index2","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","shift","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","jquery","Utils","PopperUtils"],"mappings":"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","file":"js/chunk-24a157a6.bd38501c.js","sourcesContent":["import { mapGetters } from 'vuex'\n\nexport const permissionMixin = {\n computed: {\n ...mapGetters({\n userData: 'auth/getCurrentUser',\n }),\n },\n methods: {\n getUserPermission(value) {\n return this.userData.permissions.includes(value)\n },\n },\n}\n\nexport const _ = null\n","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});","export const tableMixins = {\n data() {\n return {\n isBusy: false,\n showSpinner: false,\n sortDesc: false,\n searchQuery: '',\n statusFilter: '',\n perPage: 10,\n pageSize: 0,\n currentPage: 1,\n perPageOptions: [10, 25, 50, 100],\n totalCount: 0,\n statusOptions: [\n 'Active',\n 'Inactive',\n ],\n approvalTotalCount: 0,\n approvalPerPage: 10,\n approvalPageSize: 0,\n approvalCurrentPage: 1,\n }\n },\n computed: {\n totalEntries() {\n return this.totalCount\n },\n numberOfPages() {\n return Math.floor((this.totalEntries + this.perPage - 1) / this.perPage)\n },\n from() {\n if (this.totalCount === 0) {\n return 0\n }\n return (this.currentPage * this.perPage) - (this.perPage - 1)\n },\n to() {\n return Math.min(this.from + this.perPage - 1, this.totalEntries)\n },\n approvalTotalEntries() {\n return this.approvalTotalCount\n },\n approvalNumberOfPages() {\n return Math.floor((this.approvalTotalCount + this.approvalPerPage - 1) / this.approvalPerPage)\n },\n approvalFom() {\n if (this.approvalTotalCount === 0) {\n return 0\n }\n return (this.approvalCurrentPage * this.approvalPerPage) - (this.approvalPerPage - 1)\n },\n approvalTo() {\n return Math.min(this.approvalFom + this.approvalPerPage - 1, this.approvalTotalCount)\n },\n },\n methods: {\n variantColor(status) {\n return status === 'Active' ? 'light-success' : 'light-secondary'\n },\n getOverallIndex(index) {\n return (this.currentPage * this.perPage) - this.perPage + index + 1\n },\n },\n}\n\nexport const _ = null\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',[_vm._v(\"Show\")]),_c('v-select',{staticClass:\"per-page-selector d-inline-block ml-50 mr-1\",attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.options,\"value\":_vm.value,\"clearable\":false},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n Show\n \n \n\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableEntries.vue?vue&type=template&id=bcfccc92&scoped=true&\"\nimport script from \"./TableEntries.vue?vue&type=script&lang=js&\"\nexport * from \"./TableEntries.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableEntries.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./TableEntries.vue?vue&type=style&index=1&id=bcfccc92&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bcfccc92\",\n null\n \n)\n\nexport default component.exports","// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","const getStatusColor = status => {\n const statusColor = {\n Open: 'light-success',\n AwaitingOpen: 'light-info',\n Processing: 'light-info',\n EODComplete: 'light-success',\n AutomaticallyOpen: 'light-success',\n loanStatus: 'light-success',\n Yes: 'light-success',\n Active: 'light-success',\n Paid: 'light-success',\n Completed: 'light-success',\n InActive: 'light-secondary',\n Closed: 'light-secondary',\n Close: 'light-secondary',\n AwaitingEOD: 'light-secondary',\n AutomaticallyClosed: 'light-secondary',\n Inactive: 'light-secondary',\n No: 'light-secondary',\n Pending: 'light-pending',\n Enabled: 'light-success',\n Disabled: 'light-secondary',\n Expired: 'light-danger',\n Approved: 'light-success',\n Declined: 'light-danger',\n AwaitingNextReviewer: 'light-info',\n Canceled: 'light-secondary',\n ReworkRequired: 'light-secondary',\n Defaulting: 'light-pending',\n\n FullyPaid: 'light-success',\n PartiallyPaid: 'light-pending',\n NotYetDue: 'light-secondary',\n DueAndUnpaid: 'light-danger',\n EarlyTermination: 'light-success',\n\n AutoCleared: 'light-success',\n ManuallyCleared: 'light-success',\n Returned: 'light-danger',\n Uncleared: 'light-pending',\n\n Reversed: 'light-secondary',\n Failed: 'light-danger',\n Processed: 'light-success',\n PendingTSQ: 'light-pending',\n Successful: 'light-success',\n Issued: 'light-success',\n NotIssued: 'light-secondary',\n Linked: 'light-success',\n Unlinked: 'light-secondary',\n Generated: 'light-pending',\n Blocked: 'light-danger',\n Hotlisted: 'light-secondary',\n NEW: 'light-success',\n PENDING_PROCESSING: 'light-pending',\n CONFIRMED: 'light-success',\n AWAITING_SERVICE_PROVIDER: 'light-info',\n EXPIRED: 'light-danger',\n FAILED: 'light-danger',\n REVERSED: 'light-secondary',\n STAGED_FOR_REVERSAL: 'light-secondary',\n Submitted: 'light-success',\n Uploaded: 'light-success',\n Draft: 'light-pending',\n NoFileFound: 'light-pending',\n }\n return statusColor[status]\n}\n\nexport default getStatusColor\n","export const heightFade = {\n /* eslint-disable no-param-reassign */\n inserted(el, binding) {\n const height = `${el.offsetHeight}px`\n\n if (binding.modifiers.appear) {\n el.style.overflow = 'hidden'\n el.style.maxHeight = '0px'\n el.style.opacity = 0\n\n // Focus the element\n setTimeout(() => {\n el.style.maxHeight = height\n el.style.opacity = 1\n setTimeout(() => {\n el.style.overflow = 'unset'\n }, 300)\n }, 100)\n } else {\n el.style.maxHeight = height\n }\n },\n unbind(el) {\n if (el.style === undefined) return\n el.style.overflow = 'hidden'\n el.style.maxHeight = '0px'\n el.style.opacity = 0\n },\n /* eslint-enable no-param-reassign */\n}\n\nexport const temp = 2\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","import { Vue } 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_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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\n }));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-group',[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label)+\" \")]),_c('validation-provider',{attrs:{\"name\":_vm.errorName,\"rules\":_vm.rules,\"vid\":_vm.vid},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-form-input',{attrs:{\"id\":_vm.id,\"for\":_vm.id,\"type\":_vm.type,\"placeholder\":_vm.placeholder,\"readonly\":_vm.readonly,\"value\":_vm.value,\"state\":errors.length > 0 ? false : null,\"step\":_vm.step,\"onpaste\":_vm.onpaste,\"formatter\":_vm.formatter,\"autocomplete\":\"off\",\"on-mousedown\":_vm.disableCopyPaste},on:{\"change\":_vm.onChange,\"input\":_vm.onInput,\"blur\":_vm.onBlur},nativeOn:{\"keypress\":function($event){return _vm.handleKeyPress.apply(null, arguments)},\"keydown\":function($event){return _vm.disableCopyPaste.apply(null, arguments)}},model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),(_vm.text)?_c('p',{staticClass:\"ml-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.text)+\"\\n \")]):_vm._e(),_c('feather-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showIcon),expression:\"showIcon\"}],staticClass:\"cursor-pointer ml-1\",attrs:{\"icon\":_vm.icon,\"size\":_vm.iconSize},on:{\"click\":_vm.onClick}})],1),_c('small',{staticClass:\"text-danger error-text\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n {{ label }} \n \n \n 0 ? false : null\"\n :step=\"step\"\n :onpaste=\"onpaste\"\n :formatter=\"formatter\"\n autocomplete=\"off\"\n :on-mousedown=\"disableCopyPaste\"\n @change=\"onChange\"\n @input=\"onInput\"\n @blur=\"onBlur\"\n @keypress.native=\"handleKeyPress\"\n @keydown.native=\"disableCopyPaste\"\n />\n \n {{ text }}\n \n \n \n\n {{ errors[0] }}\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputField.vue?vue&type=template&id=c26398c2&scoped=true&\"\nimport script from \"./InputField.vue?vue&type=script&lang=js&\"\nexport * from \"./InputField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputField.vue?vue&type=style&index=0&id=c26398c2&scoped=true&lang=css&\"\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 \"c26398c2\",\n null\n \n)\n\nexport default component.exports","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 `` wrapper\n\n if (isNav) {\n return h('nav', {\n attrs: {\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-hidden': disabled ? 'true' : 'false',\n 'aria-label': isNav ? ariaLabel || null : null\n }\n }, [$pagination]);\n }\n\n return $pagination;\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});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-overlay',{attrs:{\"id\":\"overlay-background\",\"show\":_vm.show,\"variant\":\"transparent\",\"opacity\":\"0.85\",\"blur\":\"2px\",\"rounded\":\"sm\",\"no-wrap\":\"\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center\",staticStyle:{\"height\":\"120px\",\"width\":\"70px\"}},[_c('img',{attrs:{\"src\":require(\"../../../assets/images/gif/loader.gif\"),\"alt\":\"udara360-logo\",\"width\":\"100%\",\"height\":\"100%\"}})])]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullScreenSpinner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullScreenSpinner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FullScreenSpinner.vue?vue&type=template&id=2d1b72aa&\"\nimport script from \"./FullScreenSpinner.vue?vue&type=script&lang=js&\"\nexport * from \"./FullScreenSpinner.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import moment from 'moment'\n\nexport const toDateWithYear = value => (\n moment(value).format('DD/MM/YYYY')\n)\nexport const toDateWithYearFirst = value => (\n moment(value).format('YYYY-MM-DD')\n)\nexport const toDateWithUnderscore = value => (\n moment(value).format('YYYY_MM_DD')\n)\nexport const customDate = value => (\n moment(value).format('DD/MMM/YYYY')\n)\nexport const tocustomDate = value => (\n moment(value).format('DD-MMM-YYYY')\n)\nexport const toDateYear = value => (\n moment(value).format('DD-MM-YYYY')\n)\nexport const toDateTime = value => (\n moment(value).format('DD/MMM/YYYY h:mm:ss')\n)\n\nexport const toDateTimeFormat = value => (\n moment(value).format('DD MMM, YYYY h:mm:ss a')\n)\n\nexport const toDateWithTime = selectedDate => (\n moment(selectedDate).format('DD/MM/YYYY h:mm:ss a')\n)\nexport const toDateWithTimes = selectedDate => (\n moment(selectedDate).format('DD/MM/YYYY h:mm')\n)\nexport const toDateWithCustomTime = selectedDate => (\n moment(selectedDate).format('DD/MM/YYYY h:mm:ss')\n)\nexport const toYearWithDateTime = selectedDate => (\n moment(selectedDate).format('YYYY-MM-DD h:mm:ss a')\n)\nexport const toDateWithDateTime = selectedDate => (\n moment(selectedDate).format('YYYY-MM-DD h:mm:ss')\n)\n\nexport const toCustomDateTime = dateValue => (\n moment(dateValue).format('Do MMM YYYY h:mm:ss')\n)\nexport const toCustomDate = dateValue => (\n moment(dateValue).format('Do MMM YYYY')\n)\nexport const toDayMonthYear = dateValue => (\n moment(dateValue).format('DD MMM, YYYY')\n)\nexport const toMonthYear = dateValue => {\n const check = moment(dateValue, 'DD/MM/YYYY')\n const month = check.format('MMM')\n const year = check.format('YYYY')\n return month + year\n}\nexport const toDateWithMinute = selectedDate => (\n moment(selectedDate).format('DD/MM/YYYY h:mm a')\n)\n\nexport const toYearWithDate = selectedDate => {\n if (selectedDate !== null) {\n const splittedDate = selectedDate.split('/')\n const commencementDate = new Date(+splittedDate[2], splittedDate[1] - 1, +splittedDate[0])\n return moment(commencementDate).format('YYYY-MM-DD')\n }\n return ''\n}\n\nexport const toDateWithMonth = selectedDate => {\n if (selectedDate !== null) {\n const splittedDate = selectedDate.split('-')\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`\n }\n return ''\n}\nexport const checkDateFormat = dateValue => {\n // eslint-disable-next-line eqeqeq\n if (new Date(dateValue) == 'Invalid Date') {\n const splitDate = dateValue.split(' ')[0]\n const splittedDate = splitDate.split('-')\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`\n }\n return dateValue\n}\nexport const dateSpecial = dateValue => {\n const dateParts = dateValue.split(' ')\n const date = dateParts[0].split('-')\n return `${date[0]}/${date[1]}/${date[2]}`\n}\n\nexport const dateDifference = (startDate, endDate) => {\n const start = moment(startDate)\n const end = moment(endDate)\n return end.diff(start, 'days')\n}\n\nexport const dateTimeDifference = (startDate, endDate) => {\n const diffTime = Math.abs(new Date(endDate).valueOf() - new Date(startDate).valueOf())\n const days = diffTime / (24 * 60 * 60 * 1000)\n const hours = (days % 1) * 24\n const minutes = (hours % 1) * 60\n const secs = ((minutes % 1) * 60) < 1 ? 1 : ((minutes % 1) * 60)\n const [hour, minute, sec] = [Math.floor(hours), Math.floor(minutes), Math.floor(secs)]\n return `${hour}h : ${minute}m : ${sec}s`\n}\n\nexport const toMonthWithTime = selectedDate => (\n moment(selectedDate).format('MMM Do YYYY, h:mm:ss a')\n)\nexport const toMonthWithYear = selectedDate => (\n moment(selectedDate).format('MMM Do, YYYY')\n)\n\nexport const toMonthWithYearTime = selectedDate => {\n if (selectedDate !== null) {\n const splittedDate = selectedDate.split('/')\n const commencementDate = new Date(+splittedDate[2], splittedDate[1] - 1, +splittedDate[0])\n return moment(commencementDate).format('MMM DD YYYY, h:mm:ss')\n }\n return ''\n}\n\nexport const getDate = (date, numOfDays = 1) => {\n const endDate = new Date(date)\n endDate.setDate(endDate.getDate() - Number(numOfDays))\n return moment(endDate).format('DD/MM/YYYY')\n}\nexport const getMinusOneDayDate = (date, numOfDays = 1) => {\n const endDate = new Date(date)\n endDate.setDate(endDate.getDate() - Number(numOfDays))\n return moment(endDate).format('YYYY-MM-DD')\n}\nexport const getDaysInMonth = frequency => {\n if (frequency === 'Month') {\n const today = new Date()\n const year = today.getFullYear()\n const month = today.getMonth() + 1\n const daysInMonth = [31, (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n return daysInMonth[month - 1]\n }\n return ''\n}\nexport const getDaysInYear = frequency => {\n if (frequency === 'Year') {\n const today = new Date()\n const year = today.getFullYear()\n return (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)) ? 366 : 365\n }\n return ''\n}\n\nexport const formatSingleDates = (day, month, year) => {\n const inputDateStr = `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`\n const inputDate = new Date(inputDateStr)\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n if (inputDate > today) {\n return 'Invalid Date, The selected Date cannot be in the future.'\n }\n return inputDateStr\n}\n\nexport const convertDateString = dateString => {\n const dateObj = new Date(dateString)\n const year = dateObj.getFullYear()\n const month = dateObj.getMonth() + 1\n const day = dateObj.getDate()\n\n return { year, month, day }\n}\nexport const convertDate = dateString => {\n const dateObj = new Date(dateString)\n const operationYear = dateObj.getFullYear()\n const operationMonth = dateObj.getMonth() + 1\n const operationDay = dateObj.getDate()\n\n return { operationYear, operationMonth, operationDay }\n}\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_INVALID_FEEDBACK } 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 ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_INVALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormInvalidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INVALID_FEEDBACK,\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 tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === false;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'invalid-feedback': !tooltip,\n 'invalid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { 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});","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});","export const removeSpecialChar = event => {\n const regex = /^[A-Za-z0-9 %-]$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const removeNegativeNumber = event => {\n const regex = /^\\d*\\.?\\d*$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const removeCharAndSpace = event => {\n const regex = /^[A-Za-z0-9]$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const persistPhoneNumber = event => {\n const regex = /^[\\d,+]*$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const persistAccountNumber = event => {\n const regex = /^[\\d,]*$/\n if (!regex.test(event.key)) {\n event.preventDefault()\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});","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"m-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center justify-content-start mb-1 mb-md-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('TableEntries',{attrs:{\"options\":_vm.perPageOptions},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('div',{staticClass:\"d-flex align-items-center justify-content-lg-end\"},[_c('Button',{staticClass:\"mr-1\",attrs:{\"label\":\"Filter\",\"size\":\"md\",\"icon\":\"FilterIcon\",\"show-icon\":\"\"},on:{\"click\":function($event){return _vm.showModal('modal-filter')}}}),_c('Button',{attrs:{\"label\":\"Reset Filter\",\"size\":\"md\",\"icon\":\"RotateCwIcon\",\"show-icon\":\"\"},on:{\"click\":_vm.resetFilter}})],1)])],1)],1),_c('b-table',{ref:\"cardProfiles\",staticClass:\"position-relative\",attrs:{\"busy\":_vm.isBusy,\"per-page\":_vm.pageSize,\"current-page\":_vm.currentPage,\"items\":_vm.manageCardAccountList,\"responsive\":\"\",\"fields\":_vm.tableHeaders,\"primary-key\":\"id\",\"show-empty\":\"\",\"empty-text\":\"No records available\"},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-danger my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\"}})],1)]},proxy:true},{key:\"cell(SN)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.getOverallIndex(data.index))+\"\\n \")]}},{key:\"cell(requestDate)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value ? _vm.toDateWithYear(data.value) : '')+\"\\n \")]}},{key:\"cell(issuedDate)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value ? _vm.toDateWithYear(data.value) : '')+\"\\n \")]}},{key:\"cell(isATMEnabled)\",fn:function(data){return [_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":_vm.getStatusColor(data.value ? 'Yes' : 'No')}},[_vm._v(\"\\n \"+_vm._s(data.value ? 'Yes' : 'No')+\"\\n \")])]}},{key:\"cell(isPOSEnabled)\",fn:function(data){return [_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":_vm.getStatusColor(data.value ? 'Yes' : 'No')}},[_vm._v(\"\\n \"+_vm._s(data.value ? 'Yes' : 'No')+\"\\n \")])]}},{key:\"cell(isWebEnabled)\",fn:function(data){return [_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":_vm.getStatusColor(data.value ? 'Yes' : 'No')}},[_vm._v(\"\\n \"+_vm._s(data.value ? 'Yes' : 'No')+\"\\n \")])]}},{key:\"cell(status)\",fn:function(data){return [_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":_vm.getStatusColor(data.value)}},[_vm._v(\"\\n \"+_vm._s(data.value)+\"\\n \")])]}},{key:\"cell(issuanceStatus)\",fn:function(data){return [_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":_vm.getStatusColor(data.value)}},[_vm._v(\"\\n \"+_vm._s(_vm.addSpaceToString(data.value))+\"\\n \")])]}},{key:\"cell(actions)\",fn:function(data){return [(data.item.status !== 'Hotlisted')?_c('div',{staticClass:\"text-nowrap\"},[_c('b-dropdown',{attrs:{\"variant\":\"link\",\"toggle-class\":\"p-0\",\"no-caret\":\"\",\"right\":_vm.$store.state.appConfig.isRTL},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('feather-icon',{staticClass:\"align-middle text-body\",attrs:{\"icon\":\"MoreVerticalIcon\",\"size\":\"16\"}})]},proxy:true}],null,true)},[(_vm.getUserPermission('WITHDRAW_CARD'))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.onWithdrawCard(data.item)}}},[_c('feather-icon',{attrs:{\"icon\":\"MinusSquareIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Withdraw Card\")])],1):_vm._e(),(_vm.getUserPermission('HOTLIST_CARD'))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.onHotListCard(data.item)}}},[_c('feather-icon',{attrs:{\"icon\":\"ListIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Hotlist Card\")])],1):_vm._e(),(_vm.getUserPermission(data.item.status === 'Active' ? 'BLOCK_CARD' : ''))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.cardAccountStatus(data.item, $event.target)}}},[_c('feather-icon',{attrs:{\"icon\":\"CheckSquareIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(_vm._s(data.item.status === 'Active' ? 'Block Card' : ''))])],1):_vm._e(),(_vm.getUserPermission(data.item.status === 'Blocked' ? 'UNBLOCK_CARD' : ''))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.cardAccountStatus(data.item, $event.target)}}},[_c('feather-icon',{attrs:{\"icon\":\"CheckSquareIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(_vm._s(data.item.status === 'Blocked' ? 'Activate Card' : ''))])],1):_vm._e()],1)],1):_vm._e()]}}])}),_c('TablePagination',{attrs:{\"from\":_vm.from,\"to\":_vm.to,\"total-rows\":_vm.totalEntries,\"per-page\":_vm.perPage},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}}),_c('b-modal',{ref:\"my-modal\",attrs:{\"id\":\"modal-filter\",\"ok-title\":\"Apply\",\"no-close-on-backdrop\":\"\",\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"centered\":\"\",\"size\":\"lg\",\"title\":\"Filters\",\"modal-footer\":\"\"},on:{\"ok\":_vm.fetchCardAccounts,\"cancel\":_vm.resetFilters}},[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"account-number\",\"label\":\"Account Number\",\"placeholder\":\"Enter Account Number\",\"type\":\"text\"},model:{value:(_vm.filter.accountNumber),callback:function ($$v) {_vm.$set(_vm.filter, \"accountNumber\", $$v)},expression:\"filter.accountNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"masked-pan\",\"label\":\"Masked PAN\",\"placeholder\":\"Enter Masked PAN\",\"type\":\"text\"},model:{value:(_vm.filter.maskedPan),callback:function ($$v) {_vm.$set(_vm.filter, \"maskedPan\", $$v)},expression:\"filter.maskedPan\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"batch-no\",\"label\":\"Batch Number\",\"placeholder\":\"Enter Batch Number\",\"type\":\"text\"},model:{value:(_vm.filter.batchNo),callback:function ($$v) {_vm.$set(_vm.filter, \"batchNo\", $$v)},expression:\"filter.batchNo\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"status\",\"label\":\"Card Status\",\"placeholder\":\"Select\",\"options\":_vm.cardStatusOptions,\"item\":\"label\",\"reduce\":function (option) { return option.value; }},model:{value:(_vm.filter.status),callback:function ($$v) {_vm.$set(_vm.filter, \"status\", $$v)},expression:\"filter.status\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('DatePickerField',{attrs:{\"id\":\"card-expiry\",\"min-date\":new Date(),\"label\":\"Card Expiry\",\"config\":_vm.datePickerConfig,\"placeholder\":\"Card Expiry\"},model:{value:(_vm.filter.cardExpiry),callback:function ($$v) {_vm.$set(_vm.filter, \"cardExpiry\", $$v)},expression:\"filter.cardExpiry\"}})],1)],1)],1),_c('FullScreenSpinner',{attrs:{\"show\":_vm.showSpinner}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n {{ getOverallIndex(data.index) }}\n \n\n \n {{ data.value ? toDateWithYear(data.value) : '' }}\n \n \n {{ data.value ? toDateWithYear(data.value) : '' }}\n \n \n \n {{ data.value ? 'Yes' : 'No' }}\n \n \n \n \n {{ data.value ? 'Yes' : 'No' }}\n \n \n \n \n {{ data.value ? 'Yes' : 'No' }}\n \n \n\n \n \n {{ data.value }}\n \n \n \n \n {{ addSpaceToString(data.value) }}\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n Withdraw Card\n \n \n \n Hotlist Card\n \n \n \n {{ data.item.status === 'Active' ? 'Block Card' : '' }}\n \n \n \n {{ data.item.status === 'Blocked' ? 'Activate Card' : '' }}\n \n \n \n \n\n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n option.value\"\n />\n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageCards.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageCards.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ManageCards.vue?vue&type=template&id=357d089e&\"\nimport script from \"./ManageCards.vue?vue&type=script&lang=js&\"\nexport * from \"./ManageCards.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/loader.eb08adcf.gif\";","export const HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport const defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: (err) => typeof console !== \"undefined\" && console.warn(err),\n getWeek: (givenDate) => {\n const date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export const english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: (nth) => {\n const s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export const pad = (number, length = 2) => `000${number}`.slice(length * -1);\nexport const int = (bool) => (bool === true ? 1 : 0);\nexport function debounce(fn, wait) {\n let t;\n return function () {\n clearTimeout(t);\n t = setTimeout(() => fn.apply(this, arguments), wait);\n };\n}\nexport const arrayify = (obj) => obj instanceof Array ? obj : [obj];\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n const e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n const wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (const key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n const path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nconst doNothing = () => undefined;\nexport const monthToStr = (monthNumber, shorthand, locale) => locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\nexport const revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n H: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n J: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n K: (dateObj, amPM, locale) => {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: (_, unixSeconds) => new Date(parseFloat(unixSeconds) * 1000),\n W: function (dateObj, weekNum, locale) {\n const weekNumber = parseInt(weekNum);\n const date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: (dateObj, year) => {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: (_, ISODate) => new Date(ISODate),\n d: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n h: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n i: (dateObj, minutes) => {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: (_, unixMillSeconds) => new Date(parseFloat(unixMillSeconds)),\n w: doNothing,\n y: (dateObj, year) => {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport const tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport const formats = {\n Z: (date) => date.toISOString(),\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: (date) => pad(date.getHours()),\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: (date, locale) => locale.amPM[int(date.getHours() > 11)],\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: (date) => pad(date.getSeconds()),\n U: (date) => date.getTime() / 1000,\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: (date) => pad(date.getFullYear(), 4),\n d: (date) => pad(date.getDate()),\n h: (date) => (date.getHours() % 12 ? date.getHours() % 12 : 12),\n i: (date) => pad(date.getMinutes()),\n j: (date) => date.getDate(),\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: (date) => pad(date.getMonth() + 1),\n n: (date) => date.getMonth() + 1,\n s: (date) => date.getSeconds(),\n u: (date) => date.getTime(),\n w: (date) => date.getDay(),\n y: (date) => String(date.getFullYear()).substring(2),\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport const createDateFormatter = ({ config = defaults, l10n = english, isMobile = false, }) => (dateObj, frmt, overrideLocale) => {\n const locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map((c, i, arr) => formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\")\n .join(\"\");\n};\nexport const createDateParser = ({ config = defaults, l10n = english }) => (date, givenFormat, timeless, customLocale) => {\n if (date !== 0 && !date)\n return undefined;\n const locale = customLocale || l10n;\n let parsedDate;\n const dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n const format = givenFormat || (config || defaults).dateFormat;\n const datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr))\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n let matched, ops = [];\n for (let i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n const token = format[i];\n const isBackSlash = token === \"\\\\\";\n const escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n const match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n ops.forEach(({ fn, val }) => (parsedDate = fn(parsedDate, val, locale) || parsedDate));\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(`Invalid date provided: ${dateOrig}`));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n};\nexport function compareDates(date1, date2, timeless = true) {\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport const isBetween = (ts, ts1, ts2) => {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport const duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n let hours = config.defaultHour;\n let minutes = config.defaultMinute;\n let seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n const minHour = config.minDate.getHours();\n const minMinutes = config.minDate.getMinutes();\n const minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n const maxHr = config.maxDate.getHours();\n const maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours, minutes, seconds };\n}\n","import { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nconst DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n const self = {\n config: Object.assign(Object.assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth(month = self.currentMonth, yr = self.currentYear) {\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n const config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n const daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n const defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n const defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n const prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n let hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n const limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n const limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (limitMaxHours) {\n const maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n const minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n const date = dateObj || self.latestSelectedDateObj;\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n const eventTarget = getEventTarget(event);\n const year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach((ev) => bind(element, ev, handler, options));\n if (element instanceof Array)\n return element.forEach((el) => bind(el, event, handler, options));\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: () => element.removeEventListener(event, handler),\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach((evt) => {\n Array.prototype.forEach.call(self.element.querySelectorAll(`[data-${evt}]`), (el) => bind(el, \"click\", self[evt]));\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n const debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", (e) => {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n const selText = (e) => getEventTarget(e).select();\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", () => self.secondElement && self.secondElement.select());\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", (e) => {\n updateTime(e);\n triggerChange();\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n const jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n const oldYear = self.currentYear;\n const oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n const eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n const target = e && getEventTarget(e);\n const input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n const event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n const fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n const { weekWrapper, weekNumbers } = buildWeeks();\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n const customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n const wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n const dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n const startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n for (let m = startMonth; m != endMonth; m += delta) {\n const month = self.daysContainer.children[m];\n const startIndex = delta > 0 ? 0 : month.children.length - 1;\n const endIndex = delta > 0 ? month.children.length : -1;\n for (let i = startIndex; i != endIndex; i += delta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n const givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n const loopDelta = delta > 0 ? 1 : -1;\n for (let m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n const month = self.daysContainer.children[m];\n const startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n const numMonthDays = month.children.length;\n for (let i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n const dayFocused = isInView(document.activeElement || document.body);\n const startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n const firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n const prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n const daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n let dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (let dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n const dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n const frag = document.createDocumentFragment();\n for (let i = 0; i < self.config.showMonths; i++) {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n const shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (let i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n const month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n const container = createElement(\"div\", \"flatpickr-month\");\n const monthNavFragment = window.document.createDocumentFragment();\n let monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", (e) => {\n const target = getEventTarget(e);\n const selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n const yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n const yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n const currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container,\n yearElement,\n monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (let m = self.config.showMonths; m--;) {\n const month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: () => self.__hidePrevMonthArrow,\n set(bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: () => self.__hideNextMonthArrow,\n set(bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n const defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n const separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n const hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n const minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n const secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (let i = self.config.showMonths; i--;) {\n const container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n const firstDayOfWeek = self.l10n.firstDayOfWeek;\n let weekdays = [...self.l10n.weekdays.shorthand];\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = [\n ...weekdays.splice(firstDayOfWeek, weekdays.length),\n ...weekdays.splice(0, firstDayOfWeek),\n ];\n }\n for (let i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = `\n \n ${weekdays.join(\"\")}\n \n `;\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n const weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n const weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper,\n weekNumbers,\n };\n }\n function changeMonth(value, isOffset = true) {\n const delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent = true, toInitial = true) {\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n const { hours, minutes, seconds } = getDefaultHours(self.config);\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (let i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n const wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach((k) => {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n const eventTarget = getEventTarget(e);\n const isCalendarElement = isCalendarElem(eventTarget);\n const isInput = eventTarget === self.input ||\n eventTarget === self.altInput ||\n self.element.contains(eventTarget) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n const lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n const isIgnored = !self.config.ignoredFocusElements.some((elem) => elem.contains(eventTarget));\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n const newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless = true) {\n var _a;\n const dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n const bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (let i = 0, d; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n const parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n const isInput = e.target === self._input;\n if (isInput &&\n (self.selectedDates.length > 0 || self._input.value.length > 0) &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n const eventTarget = getEventTarget(e);\n const isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n const allowInput = self.config.allowInput;\n const allowKeydown = self.isOpen && (!allowInput || !isInput);\n const allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n const isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n const delta = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta);\n else {\n e.stopPropagation();\n changeMonth(delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n const delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n const elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter((x) => x);\n const i = elems.indexOf(eventTarget);\n if (i !== -1) {\n const target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n const hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n let containsDisabled = false;\n let minRange = 0, maxRange = 0;\n for (let t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n for (let m = 0; m < self.config.showMonths; m++) {\n const month = self.daysContainer.children[m];\n for (let i = 0, l = month.children.length; i < l; i++) {\n const dayElem = month.children[i], date = dayElem.dateObj;\n const timestamp = date.getTime();\n const outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n continue;\n }\n else if (containsDisabled && !outOfRange)\n continue;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement = self._positionElement) {\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n const eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n const wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(() => self.hourElement.select(), 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return (date) => {\n const dateObj = (self.config[`_${type}Date`] = self.parseDate(date, self.config.dateFormat));\n const inverseDateObj = self.config[`_${type === \"min\" ? \"max\" : \"min\"}Date`];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter((d) => isEnabled(d));\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n const boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n const userConfig = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n const formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: () => self.config._enable,\n set: (dates) => {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: () => self.config._disable,\n set: (dates) => {\n self.config._disable = parseDateRules(dates);\n },\n });\n const timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n const defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n const defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + ` h:i${userConfig.enableSeconds ? \":S\" : \"\"} K`;\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: () => self.config._minDate,\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: () => self.config._maxDate,\n set: minMaxDateSetter(\"max\"),\n });\n const minMaxTimeSetter = (type) => (val) => {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n Object.defineProperty(self.config, \"minTime\", {\n get: () => self.config._minTime,\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: () => self.config._maxTime,\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (let i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter((hook) => self.config[hook] !== undefined).forEach((hook) => {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (let i = 0; i < self.config.plugins.length; i++) {\n const pluginConf = self.config.plugins[i](self) || {};\n for (const key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(`flatpickr: invalid locale ${self.config.locale}`));\n self.l10n = Object.assign(Object.assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = `(${self.l10n.amPM[0]}|${self.l10n.amPM[1]}|${self.l10n.amPM[0].toLowerCase()}|${self.l10n.amPM[1].toLowerCase()})`;\n const userConfig = Object.assign(Object.assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n const positionElement = customPositionElement || self._positionElement;\n const calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, ((acc, child) => acc + child.offsetHeight), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n const top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n let left = window.pageXOffset + inputBounds.left;\n let isCenter = false;\n let isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n const right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n const rightMost = left + calendarWidth > window.document.body.offsetWidth;\n const centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = `${top}px`;\n if (!rightMost) {\n self.calendarContainer.style.left = `${left}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = `${right}px`;\n }\n else {\n const doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n const bodyWidth = window.document.body.offsetWidth;\n const centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n const centerBefore = \".flatpickr-calendar.centerMost:before\";\n const centerAfter = \".flatpickr-calendar.centerMost:after\";\n const centerIndex = doc.cssRules.length;\n const centerStyle = `{left:${inputBounds.left}px;right:auto;}`;\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(`${centerBefore},${centerAfter}${centerStyle}`, centerIndex);\n self.calendarContainer.style.left = `${centerLeft}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n let editableSheet = null;\n for (let i = 0; i < document.styleSheets.length; i++) {\n const sheet = document.styleSheets[i];\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n const isSelectable = (day) => day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n const t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n const target = t;\n const selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n const shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n const selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n const isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n const single = self.config.mode === \"single\" && !self.config.enableTime;\n const range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n const CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n clickOpens: [\n () => {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (const key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach((x) => x());\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach((x) => x());\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n let dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map((d) => self.parseDate(d, format));\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map((date) => self.parseDate(date, format));\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map((date) => self.parseDate(date, format));\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(inputDate)}`));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter((d) => d instanceof Date && isEnabled(d, false)));\n if (self.config.mode === \"range\")\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n function setDate(date, triggerChange = false, format = self.config.dateFormat) {\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map((rule) => {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter((x) => x);\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n const preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n const inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", (e) => {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n const hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (let i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n const e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (let i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach((yearElement, i) => {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map((dObj) => self.formatDate(dObj, format))\n .filter((d, i, arr) => self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i)\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange = true) {\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n const eventTarget = getEventTarget(e);\n const isPrevMonth = self.prevMonthNav.contains(eventTarget);\n const isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n const isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n const min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n let newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n const isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n const nodes = Array.prototype.slice\n .call(nodeList)\n .filter((x) => x instanceof HTMLElement);\n const instances = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: Object.assign({}, English),\n default: Object.assign({}, English),\n};\nflatpickr.localize = (l10n) => {\n flatpickr.l10ns.default = Object.assign(Object.assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = (config) => {\n flatpickr.defaultConfig = Object.assign(Object.assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","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});","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=style&index=0&id=c26398c2&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=style&index=0&lang=scss&\"","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target, ...args) {\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n for (const source of args) {\n if (source) {\n Object.keys(source).forEach((key) => (target[key] = source[key]));\n }\n }\n return target;\n };\n}\n","import { toString } from './string';\n\nvar escapeChar = function escapeChar(value) {\n return '\\\\' + value;\n}; // The `cssEscape()` util is based on this `CSS.escape()` polyfill:\n// https://github.com/mathiasbynens/CSS.escape\n\n\nexport var cssEscape = function cssEscape(value) {\n value = toString(value);\n var length = value.length;\n var firstCharCode = value.charCodeAt(0);\n return value.split('').reduce(function (result, char, index) {\n var charCode = value.charCodeAt(index); // If the character is NULL (U+0000), use (U+FFFD) as replacement\n\n if (charCode === 0x0000) {\n return result + \"\\uFFFD\";\n } // If the character ...\n\n\n if ( // ... is U+007F OR\n charCode === 0x007f || // ... is in the range [\\1-\\1F] (U+0001 to U+001F) OR ...\n charCode >= 0x0001 && charCode <= 0x001f || // ... is the first character and is in the range [0-9] (U+0030 to U+0039) OR ...\n index === 0 && charCode >= 0x0030 && charCode <= 0x0039 || // ... is the second character and is in the range [0-9] (U+0030 to U+0039)\n // and the first character is a `-` (U+002D) ...\n index === 1 && charCode >= 0x0030 && charCode <= 0x0039 && firstCharCode === 0x002d) {\n // ... https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n return result + escapeChar(\"\".concat(charCode.toString(16), \" \"));\n } // If the character ...\n\n\n if ( // ... is the first character AND ...\n index === 0 && // ... is a `-` (U+002D) AND ...\n charCode === 0x002d && // ... there is no second character ...\n length === 1) {\n // ... use the escaped character\n return result + escapeChar(char);\n } // If the character ...\n\n\n if ( // ... is greater than or equal to U+0080 OR ...\n charCode >= 0x0080 || // ... is `-` (U+002D) OR ...\n charCode === 0x002d || // ... is `_` (U+005F) OR ...\n charCode === 0x005f || // ... is in the range [0-9] (U+0030 to U+0039) OR ...\n charCode >= 0x0030 && charCode <= 0x0039 || // ... is in the range [A-Z] (U+0041 to U+005A) OR ...\n charCode >= 0x0041 && charCode <= 0x005a || // ... is in the range [a-z] (U+0061 to U+007A) ...\n charCode >= 0x0061 && charCode <= 0x007a) {\n // ... use the character itself\n return result + char;\n } // Otherwise use the escaped character\n // See: https://drafts.csswg.org/cssom/#escape-a-character\n\n\n return result + escapeChar(char);\n }, '');\n};","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_ROW } 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_FORM_ROW); // --- Main component ---\n// @vue/component\n\nexport var BFormRow = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_ROW,\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: 'form-row'\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_VALID_FEEDBACK } 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 ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_VALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormValidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_VALID_FEEDBACK,\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 tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === true;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'valid-feedback': !tooltip,\n 'valid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NAME_FORM_GROUP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_SPACE_SPLIT } from '../../constants/regex';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_DESCRIPTION, SLOT_NAME_INVALID_FEEDBACK, SLOT_NAME_LABEL, SLOT_NAME_VALID_FEEDBACK } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { cssEscape } from '../../utils/css-escape';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr, attemptFocus } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isBoolean } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BCol } from '../layout/col';\nimport { BFormRow } from '../layout/form-row';\nimport { BFormText } from '../form/form-text';\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback';\nimport { BFormValidFeedback } from '../form/form-valid-feedback'; // --- Constants ---\n\nvar INPUTS = ['input', 'select', 'textarea']; // Selector for finding first input in the form group\n\nvar INPUT_SELECTOR = INPUTS.map(function (v) {\n return \"\".concat(v, \":not([disabled])\");\n}).join(); // A list of interactive elements (tag names) inside ``'s legend\n\nvar LEGEND_INTERACTIVE_ELEMENTS = [].concat(INPUTS, ['a', 'button', 'label']); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formStateProps), getBreakpointsUpCached().reduce(function (props, breakpoint) {\n // i.e. 'content-cols', 'content-cols-sm', 'content-cols-md', ...\n props[suffixPropName(breakpoint, 'contentCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING); // i.e. 'label-align', 'label-align-sm', 'label-align-md', ...\n\n props[suffixPropName(breakpoint, 'labelAlign')] = makeProp(PROP_TYPE_STRING); // i.e. 'label-cols', 'label-cols-sm', 'label-cols-md', ...\n\n props[suffixPropName(breakpoint, 'labelCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null))), {}, {\n description: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),\n invalidFeedback: makeProp(PROP_TYPE_STRING),\n label: makeProp(PROP_TYPE_STRING),\n labelClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n labelFor: makeProp(PROP_TYPE_STRING),\n labelSize: makeProp(PROP_TYPE_STRING),\n labelSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false),\n validFeedback: makeProp(PROP_TYPE_STRING),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n })), NAME_FORM_GROUP);\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 BFormGroup = {\n name: NAME_FORM_GROUP,\n mixins: [idMixin, formStateMixin, normalizeSlotMixin],\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; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n data: function data() {\n return {\n ariaDescribedby: null\n };\n },\n computed: {\n contentColProps: function contentColProps() {\n return this.getColProps(this.$props, 'content');\n },\n labelAlignClasses: function labelAlignClasses() {\n return this.getAlignClasses(this.$props, 'label');\n },\n labelColProps: function labelColProps() {\n return this.getColProps(this.$props, 'label');\n },\n isHorizontal: function isHorizontal() {\n // Determine if the form group will be rendered horizontal\n // based on the existence of 'content-col' or 'label-col' props\n return keys(this.contentColProps).length > 0 || keys(this.labelColProps).length > 0;\n }\n },\n watch: {\n ariaDescribedby: function ariaDescribedby(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.updateAriaDescribedby(newValue, oldValue);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Set `aria-describedby` on the input specified by `labelFor`\n // We do this in a `$nextTick()` to ensure the children have finished rendering\n _this.updateAriaDescribedby(_this.ariaDescribedby);\n });\n },\n methods: {\n getAlignClasses: function getAlignClasses(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Align\"))] || null;\n\n if (propValue) {\n result.push(['text', breakpoint, propValue].filter(identity).join('-'));\n }\n\n return result;\n }, []);\n },\n getColProps: function getColProps(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Cols\"))]; // Handle case where the prop's value is an empty string,\n // which represents `true`\n\n propValue = propValue === '' ? true : propValue || false;\n\n if (!isBoolean(propValue) && propValue !== 'auto') {\n // Convert to column size to number\n propValue = toInteger(propValue, 0); // Ensure column size is greater than `0`\n\n propValue = propValue > 0 ? propValue : false;\n } // Add the prop to the list of props to give to ``\n // If breakpoint is '' (`${prefix}Cols` is `true`), then we use\n // the 'col' prop to make equal width at 'xs'\n\n\n if (propValue) {\n result[breakpoint || (isBoolean(propValue) ? 'col' : 'cols')] = propValue;\n }\n\n return result;\n }, {});\n },\n // Sets the `aria-describedby` attribute on the input if `labelFor` is set\n // Optionally accepts a string of IDs to remove as the second parameter\n // Preserves any `aria-describedby` value(s) user may have on input\n updateAriaDescribedby: function updateAriaDescribedby(newValue, oldValue) {\n var labelFor = this.labelFor;\n\n if (IS_BROWSER && labelFor) {\n // We need to escape `labelFor` since it can be user-provided\n var $input = select(\"#\".concat(cssEscape(labelFor)), this.$refs.content);\n\n if ($input) {\n var attr = 'aria-describedby';\n var newIds = (newValue || '').split(RX_SPACE_SPLIT);\n var oldIds = (oldValue || '').split(RX_SPACE_SPLIT); // Update ID list, preserving any original IDs\n // and ensuring the ID's are unique\n\n var ids = (getAttr($input, attr) || '').split(RX_SPACE_SPLIT).filter(function (id) {\n return !arrayIncludes(oldIds, id);\n }).concat(newIds).filter(function (id, index, ids) {\n return ids.indexOf(id) === index;\n }).filter(identity).join(' ').trim();\n\n if (ids) {\n setAttr($input, attr, ids);\n } else {\n removeAttr($input, attr);\n }\n }\n }\n },\n onLegendClick: function onLegendClick(event) {\n // Don't do anything if `labelFor` is set\n\n /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n if (this.labelFor) {\n return;\n }\n\n var target = event.target;\n var tagName = target ? target.tagName : ''; // If clicked an interactive element inside legend,\n // we just let the default happen\n\n /* istanbul ignore next */\n\n if (LEGEND_INTERACTIVE_ELEMENTS.indexOf(tagName) !== -1) {\n return;\n } // If only a single input, focus it, emulating label behaviour\n\n\n var inputs = selectAll(INPUT_SELECTOR, this.$refs.content).filter(isVisible);\n\n if (inputs.length === 1) {\n attemptFocus(inputs[0]);\n }\n }\n },\n render: function render(h) {\n var state = this.computedState,\n feedbackAriaLive = this.feedbackAriaLive,\n isHorizontal = this.isHorizontal,\n labelFor = this.labelFor,\n normalizeSlot = this.normalizeSlot,\n safeId = this.safeId,\n tooltip = this.tooltip;\n var id = safeId();\n var isFieldset = !labelFor;\n var $label = h();\n var labelContent = normalizeSlot(SLOT_NAME_LABEL) || this.label;\n var labelId = labelContent ? safeId('_BV_label_') : null;\n\n if (labelContent || isHorizontal) {\n var labelSize = this.labelSize,\n labelColProps = this.labelColProps;\n var labelTag = isFieldset ? 'legend' : 'label';\n\n if (this.labelSrOnly) {\n if (labelContent) {\n $label = h(labelTag, {\n class: 'sr-only',\n attrs: {\n id: labelId,\n for: labelFor || null\n }\n }, [labelContent]);\n }\n\n $label = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? labelColProps : {}\n }, [$label]);\n } else {\n $label = h(isHorizontal ? BCol : labelTag, {\n on: isFieldset ? {\n click: this.onLegendClick\n } : {},\n props: isHorizontal ? _objectSpread(_objectSpread({}, labelColProps), {}, {\n tag: labelTag\n }) : {},\n attrs: {\n id: labelId,\n for: labelFor || null,\n // We add a `tabindex` to legend so that screen readers\n // will properly read the `aria-labelledby` in IE\n tabindex: isFieldset ? '-1' : null\n },\n class: [// Hide the focus ring on the legend\n isFieldset ? 'bv-no-focus-ring' : '', // When horizontal or if a legend is rendered, add 'col-form-label' class\n // for correct sizing as Bootstrap has inconsistent font styling for\n // legend in non-horizontal form groups\n // See: https://github.com/twbs/bootstrap/issues/27805\n isHorizontal || isFieldset ? 'col-form-label' : '', // Emulate label padding top of `0` on legend when not horizontal\n !isHorizontal && isFieldset ? 'pt-0' : '', // If not horizontal and not a legend, we add 'd-block' class to label\n // so that label-align works\n !isHorizontal && !isFieldset ? 'd-block' : '', labelSize ? \"col-form-label-\".concat(labelSize) : '', this.labelAlignClasses, this.labelClass]\n }, [labelContent]);\n }\n }\n\n var $invalidFeedback = h();\n var invalidFeedbackContent = normalizeSlot(SLOT_NAME_INVALID_FEEDBACK) || this.invalidFeedback;\n var invalidFeedbackId = invalidFeedbackContent ? safeId('_BV_feedback_invalid_') : null;\n\n if (invalidFeedbackContent) {\n $invalidFeedback = h(BFormInvalidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: invalidFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `false`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: invalidFeedbackContent ? '-1' : null\n }\n }, [invalidFeedbackContent]);\n }\n\n var $validFeedback = h();\n var validFeedbackContent = normalizeSlot(SLOT_NAME_VALID_FEEDBACK) || this.validFeedback;\n var validFeedbackId = validFeedbackContent ? safeId('_BV_feedback_valid_') : null;\n\n if (validFeedbackContent) {\n $validFeedback = h(BFormValidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: validFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `true`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: validFeedbackContent ? '-1' : null\n }\n }, [validFeedbackContent]);\n }\n\n var $description = h();\n var descriptionContent = normalizeSlot(SLOT_NAME_DESCRIPTION) || this.description;\n var descriptionId = descriptionContent ? safeId('_BV_description_') : null;\n\n if (descriptionContent) {\n $description = h(BFormText, {\n attrs: {\n id: descriptionId,\n tabindex: '-1'\n }\n }, [descriptionContent]);\n } // Update `ariaDescribedby`\n // Screen readers will read out any content linked to by `aria-describedby`\n // even if the content is hidden with `display: none;`, hence we only include\n // feedback IDs if the form group's state is explicitly valid or invalid\n\n\n var ariaDescribedby = this.ariaDescribedby = [descriptionId, state === false ? invalidFeedbackId : null, state === true ? validFeedbackId : null].filter(identity).join(' ') || null;\n var $content = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? this.contentColProps : {},\n ref: 'content'\n }, [normalizeSlot(SLOT_NAME_DEFAULT, {\n ariaDescribedby: ariaDescribedby,\n descriptionId: descriptionId,\n id: id,\n labelId: labelId\n }) || h(), $invalidFeedback, $validFeedback, $description]); // Return it wrapped in a form group\n // Note: Fieldsets do not support adding `row` or `form-row` directly\n // to them due to browser specific render issues, so we move the `form-row`\n // to an inner wrapper div when horizontal and using a fieldset\n\n return h(isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div', {\n staticClass: 'form-group',\n class: [{\n 'was-validated': this.validated\n }, this.stateClass],\n attrs: {\n id: id,\n disabled: isFieldset ? this.disabled : null,\n role: isFieldset ? null : 'group',\n 'aria-invalid': this.computedAriaInvalid,\n // Only apply `aria-labelledby` if we are a horizontal fieldset\n // as the legend is no longer a direct child of fieldset\n 'aria-labelledby': isFieldset && isHorizontal ? labelId : null\n }\n }, isHorizontal && isFieldset ? [h(BFormRow, [$label, $content])] : [$label, $content]);\n }\n};","const capitalizeFirstLetter = value => value.charAt(0).toUpperCase() + value.slice(1)\n\nexport default capitalizeFirstLetter\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_FORM_TEXT } 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 tag: makeProp(PROP_TYPE_STRING, 'small'),\n textVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_FORM_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BFormText = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_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 class: _defineProperty({\n 'form-text': !props.inline\n }, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n id: props.id\n }\n }), children);\n }\n});","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\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 Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePickerField.vue?vue&type=style&index=0&id=7557663e&lang=scss&scoped=true&\"","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\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_OVERLAY } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_OVERLAY } from '../../constants/slots';\nimport { toFloat } from '../../utils/number';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BSpinner } from '../spinner/spinner';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar POSITION_COVER = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n}; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Alternative to variant, allowing a specific\n // CSS color to be applied to the overlay\n bgColor: makeProp(PROP_TYPE_STRING),\n blur: makeProp(PROP_TYPE_STRING, '2px'),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n noCenter: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // If `true, does not render the default slot\n // and switches to absolute positioning\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false),\n opacity: makeProp(PROP_TYPE_NUMBER_STRING, 0.85, function (value) {\n var number = toFloat(value, 0);\n return number >= 0 && number <= 1;\n }),\n overlayTag: makeProp(PROP_TYPE_STRING, 'div'),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n show: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerSmall: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerType: makeProp(PROP_TYPE_STRING, 'border'),\n spinnerVariant: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'light'),\n wrapTag: makeProp(PROP_TYPE_STRING, 'div'),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING, 10)\n}, NAME_OVERLAY); // --- Main component ---\n// @vue/component\n\nexport var BOverlay = /*#__PURE__*/Vue.extend({\n name: NAME_OVERLAY,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n computedRounded: function computedRounded() {\n var rounded = this.rounded;\n return rounded === true || rounded === '' ? 'rounded' : !rounded ? '' : \"rounded-\".concat(rounded);\n },\n computedVariant: function computedVariant() {\n var variant = this.variant;\n return variant && !this.bgColor ? \"bg-\".concat(variant) : '';\n },\n slotScope: function slotScope() {\n return {\n spinnerType: this.spinnerType || null,\n spinnerVariant: this.spinnerVariant || null,\n spinnerSmall: this.spinnerSmall\n };\n }\n },\n methods: {\n defaultOverlayFn: function defaultOverlayFn(_ref) {\n var spinnerType = _ref.spinnerType,\n spinnerVariant = _ref.spinnerVariant,\n spinnerSmall = _ref.spinnerSmall;\n return this.$createElement(BSpinner, {\n props: {\n type: spinnerType,\n variant: spinnerVariant,\n small: spinnerSmall\n }\n });\n }\n },\n render: function render(h) {\n var _this = this;\n\n var show = this.show,\n fixed = this.fixed,\n noFade = this.noFade,\n noWrap = this.noWrap,\n slotScope = this.slotScope;\n var $overlay = h();\n\n if (show) {\n var $background = h('div', {\n staticClass: 'position-absolute',\n class: [this.computedVariant, this.computedRounded],\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n opacity: this.opacity,\n backgroundColor: this.bgColor || null,\n backdropFilter: this.blur ? \"blur(\".concat(this.blur, \")\") : null\n })\n });\n var $content = h('div', {\n staticClass: 'position-absolute',\n style: this.noCenter ?\n /* istanbul ignore next */\n _objectSpread({}, POSITION_COVER) : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)'\n }\n }, [this.normalizeSlot(SLOT_NAME_OVERLAY, slotScope) || this.defaultOverlayFn(slotScope)]);\n $overlay = h(this.overlayTag, {\n staticClass: 'b-overlay',\n class: {\n 'position-absolute': !noWrap || noWrap && !fixed,\n 'position-fixed': noWrap && fixed\n },\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n zIndex: this.zIndex || 10\n }),\n on: {\n click: function click(event) {\n return _this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n key: 'overlay'\n }, [$background, $content]);\n } // Wrap in a fade transition\n\n\n $overlay = h(BVTransition, {\n props: {\n noFade: noFade,\n appear: true\n },\n on: {\n 'after-enter': function afterEnter() {\n return _this.$emit(EVENT_NAME_SHOWN);\n },\n 'after-leave': function afterLeave() {\n return _this.$emit(EVENT_NAME_HIDDEN);\n }\n }\n }, [$overlay]);\n\n if (noWrap) {\n return $overlay;\n }\n\n return h(this.wrapTag, {\n staticClass: 'b-overlay-wrap position-relative',\n attrs: {\n 'aria-busy': show ? 'true' : null\n }\n }, noWrap ? [$overlay] : [this.normalizeSlot(), $overlay]);\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_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: this.$props,\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","import capitalizeFirstLetter from './capitalizeFirstLetter'\n\nconst addSpaceToString = value => (\n capitalizeFirstLetter(value.replace(/([A-Z])/g, ' $1').trim())\n)\n\nexport default addSpaceToString\n","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":_vm.variant,\"disabled\":_vm.disabled,\"size\":_vm.size,\"block\":_vm.block},on:{\"click\":_vm.onClick}},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":_vm.icon,\"show-icon\":_vm.showIcon}}),(_vm.loading)?_c('b-spinner',{attrs:{\"small\":\"\"}}):_vm._e(),_c('span',{staticClass:\"align-middle\"},[_vm._v(\" \"+_vm._s(_vm.label))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ label }}\n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Button.vue?vue&type=template&id=501d0161&\"\nimport script from \"./Button.vue?vue&type=script&lang=js&\"\nexport * from \"./Button.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mx-2 mb-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-start\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$t('Showing'))+\" \"+_vm._s(_vm.from)+\" \"+_vm._s(_vm.$t('to'))+\" \"+_vm._s(_vm.to)+\" \"+_vm._s(_vm.$t('of'))+\" \"+_vm._s(_vm.totalRows)+\" \"+_vm._s(_vm.$t('entries'))+\" \")])]),_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-end\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('Pagination',{attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-pagination',{staticClass:\"mb-0 mt-1 mt-sm-0\",attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"first-number\":\"\",\"last-number\":\"\",\"prev-class\":\"prev-item\",\"next-class\":\"next-item\"},scopedSlots:_vm._u([{key:\"prev-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronLeftIcon\",\"size\":\"18\"}})]},proxy:true},{key:\"next-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronRightIcon\",\"size\":\"18\"}})]},proxy:true}]),model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=24a69b3b&\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js&\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n \n\n \n {{ $t('Showing') }} {{ from }} {{ $t('to') }} {{ to }} {{ $t('of') }} {{ totalRows }} {{ $t('entries') }} \n \n\n \n \n \n \n\n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TablePagination.vue?vue&type=template&id=77d3811a&\"\nimport script from \"./TablePagination.vue?vue&type=script&lang=js&\"\nexport * from \"./TablePagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=style&index=0&lang=scss&\"","!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 issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': toString(visible)\n },\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","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});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-group',[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))]),_c('validation-provider',{attrs:{\"name\":_vm.errorName,\"rules\":_vm.rules,\"vid\":_vm.vid},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('flat-pickr',{staticClass:\"form-control\",class:_vm.disabled ? 'disabled' : '',attrs:{\"id\":_vm.id,\"value\":_vm.value,\"mode\":_vm.mode,\"click-opens\":true,\"placeholder\":_vm.placeholder,\"config\":_vm.config,\"readonly\":_vm.readonly,\"state\":errors.length > 0 ? false:null,\"disabled\":_vm.disabled},on:{\"on-change\":_vm.onChange},model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n \n {{ label }}\n \n 0 ? false:null\"\n :disabled=\"disabled\"\n @on-change=\"onChange\"\n />\n {{ errors[0] }}\n \n \n\n \n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePickerField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePickerField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DatePickerField.vue?vue&type=template&id=7557663e&scoped=true&\"\nimport script from \"./DatePickerField.vue?vue&type=script&lang=js&\"\nexport * from \"./DatePickerField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DatePickerField.vue?vue&type=style&index=0&id=7557663e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7557663e\",\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_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});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('validation-provider',{attrs:{\"name\":_vm.errorName,\"rules\":_vm.rules},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-group',{attrs:{\"state\":errors.length > 0 ? false:null}},[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))]),_c('v-select',{attrs:{\"id\":_vm.id,\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.options,\"placeholder\":_vm.placeholder,\"label\":_vm.item,\"clearable\":_vm.clearable,\"value\":_vm.value,\"disabled\":_vm.readonly,\"reduce\":_vm.reduce,\"multiple\":_vm.multiple},on:{\"input\":_vm.setSelected},scopedSlots:_vm._u([{key:\"spinner\",fn:function(ref){return [(_vm.loading)?_c('b-spinner',{attrs:{\"variant\":\"primary\",\"small\":\"\"}}):_vm._e()]}}],null,true),model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"state\":errors.length > 0 ? false:null}},[_vm._v(\"\\n \"+_vm._s(errors[0])+\"\\n \")])],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n \n 0 ? false:null\"\n >\n {{ label }}\n \n \n \n \n \n\n 0 ? false:null\">\n {{ errors[0] }}\n \n \n \n\n \n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectField.vue?vue&type=template&id=4d9d6277&scoped=true&\"\nimport script from \"./SelectField.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelectField.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./SelectField.vue?vue&type=style&index=1&id=4d9d6277&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d9d6277\",\n null\n \n)\n\nexport default component.exports","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.\n * It will read the variation of the `placement` property.\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.\n * These can be overridden using the `options` argument of Popper.js.\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n"],"sourceRoot":""}
\n {{ text }}\n