{"version":3,"sources":["webpack:///./src/@core/mixins/permission.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./src/helpers/formatAmount.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/components/form/form.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:///./node_modules/vue-cleave-component/dist/vue-cleave.min.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:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check-group.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-options.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/form-radio-group.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/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/alert/alert.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/cleave.js/dist/cleave-esm.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/core-js/modules/es.number.is-integer.js","webpack:///./node_modules/core-js/modules/es.number.is-nan.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/form-radio/form-radio.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-custom.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/core-js/modules/es.number.to-fixed.js","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:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./src/views/components/alert/Alert.vue?c4ae","webpack:///src/views/components/alert/Alert.vue","webpack:///./src/views/components/alert/Alert.vue?be6a","webpack:///./src/views/components/alert/Alert.vue","webpack:///./src/views/components/table/TableEntries.vue?1fad","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./src/views/forms/InputNumberField.vue?f4fa","webpack:///src/views/forms/InputNumberField.vue","webpack:///./src/views/forms/InputNumberField.vue?5d14","webpack:///./src/views/forms/InputNumberField.vue","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:///./src/views/pages/account-management/StandingOrder.vue?2b89","webpack:///src/views/pages/account-management/StandingOrder.vue","webpack:///./src/views/pages/account-management/StandingOrder.vue?3291","webpack:///./src/views/pages/account-management/StandingOrder.vue","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack:///./node_modules/core-js/internals/is-integral-number.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","toAmount","amount","Intl","NumberFormat","maximumFractionDigits","minimumFractionDigits","style","currency","format","Number","toKobo","toFixed","toBalance","isInteger","formatAmount","toFormatAmount","replace","toFormatBalance","removeMoneyFormat","newText","isNaN","substring","length","containsFormattedNumber","str","regex","test","removeCommas","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","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","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","overflow","maxHeight","opacity","setTimeout","unbind","global","toIntegerOrInfinity","RangeError","count","result","n","Infinity","id","inline","novalidate","validated","BForm","functional","h","_ref","children","class","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","_ref2","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","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","e","t","self","r","o","l","call","m","c","d","Symbol","toStringTag","__esModule","create","prototype","hasOwnProperty","p","s","u","assign","a","on","blur","onBlur","validator","raw","cleave","onValueChangedFn","mounted","$el","getOptions","onValueChanged","rawValue","deep","handler","destroy","setRawValue","getRawValue","beforeDestroy","install","_s","label","errorName","rules","vid","_u","fn","ref","errors","placeholder","readonly","step","onpaste","formatter","disableCopyPaste","onChange","onInput","nativeOn","$event","handleKeyPress","innerValue","text","_e","directives","rawName","icon","iconSize","onClick","BFormInput","BFormGroup","ValidationProvider","mixins","sweetAlert","Function","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","btn","focusCurrent","_this2","find","_this3","_this4","reverse","_this5","buttons","indexOf","_this6","_this7","pageNumbers","map","_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","OPTIONS_OBJECT_DEPRECATED_MSG","disabledField","htmlField","textField","valueField","formOptionsMixin","formOptions","normalizeOptions","normalizeOption","option","$options","PASS_DOWN_ATTRS","ariaInvalid","buttonVariant","stacked","formRadioCheckGroupMixin","inheritAttrs","localChecked","groupName","safeId","groupClasses","isRadioGroup","$attrs","optionComponent","$inputs","computedAriaInvalid","BFormRadioGroup","provide","bvRadioGroup","show","staticStyle","proxy","BOverlay","toDateWithYear","moment","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","autocomplete","debounce","lazy","lazyFormatter","plaintext","trim","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","$on","clearTimeout","formatValue","force","updateValue","doUpdate","$input","composing","formattedValue","focus","TYPES","list","max","noWheel","localType","computedAttrs","form","computedListeners","bvListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","removeSpecialChar","removeNegativeNumber","removeCharAndSpace","persistPhoneNumber","persistAccountNumber","title","titleTag","BCardTitle","$","$padStart","WEBKIT_BUG","proto","forced","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","getWeek","givenDate","getTime","getDay","week1","round","hourIncrement","ignoredFocusElements","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","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","bool","wait","arrayify","toggleClass","elem","className","classList","add","remove","createElement","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","setMinutes","j","unixMillSeconds","w","y","tokenRegex","toISOString","getSeconds","getMinutes","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","formatDate","arr","join","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","datestr","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","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","defaultDate","defaults","getMilliseconds","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","onYearInput","eventTarget","delta","changeYear","ev","addEventListener","_handlers","removeEventListener","triggerChange","evt","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","capture","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","timeIncrement","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","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","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","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","parseCountDown","parseShow","dismissLabel","dismissible","fade","variant","BAlert","countDown","localShow","clearCountDownInterval","$_countDownTimeout","$_filterTimer","dismiss","$alert","$dismissButton","noFade","subTitle","subTitleTag","subTitleTextVariant","BCardSubTitle","bodyClass","BCardBody","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","bodyTag","args","TypeError","NumeralFormatter","numeralDecimalMark","numeralIntegerScale","numeralDecimalScale","numeralThousandsGroupStyle","numeralPositiveOnly","stripLeadingZeroes","prefix","signBeforePrefix","tailPrefix","delimiter","owner","groupStyle","thousand","delimiterRE","lakh","wan","none","parts","partSign","partSignAndPrefix","partInteger","partDecimal","NumeralFormatter_1","DateFormatter","datePattern","dateMin","dateMax","blocks","unshift","initBlocks","getISOFormatDate","addLeadingZero","getBlocks","getValidatedDate","sub","sub0","rest","getFixedDateString","monthIndex","yearIndex","dayStartIndex","monthStartIndex","yearStartIndex","fullYearDone","getFixedDate","getRangeFixedDate","previous","addLeadingZeroForYear","isLeapYear","fullYearMode","DateFormatter_1","TimeFormatter","timePattern","timeFormat","time","getISOFormatTime","getTimeFormatOptions","maxHourFirstDigit","maxHours","maxMinutesFirstDigit","getValidatedTime","timeFormatOptions","getFixedTimeString","second","secondIndex","minuteIndex","hourIndex","secondStartIndex","minuteStartIndex","hourStartIndex","getFixedTime","TimeFormatter_1","PhoneFormatter","setFormatter","phoneNumber","iMax","inputDigit","PhoneFormatter_1","CreditCardDetector","uatp","amex","diners","discover","mastercard","dankort","instapayment","jcb15","jcb","maestro","visa","mir","unionPay","general","re","getStrictBlocks","block","total","prev","getInfo","strictMode","matchedBlocks","CreditCardDetector_1","Util","noop","strip","getPostDelimiter","delimiters","matchedDelimiter","getDelimiterREByDelimiter","getNextCursorPosition","prevPos","getPositionOffset","oldRawValue","newRawValue","lengthOffset","stripDelimiters","letter","headStr","getMaxLength","getPrefixStrippedValue","prefixLength","prevResult","noImmediatePrefix","getFirstDiffIndex","getFormattedValue","blocksLength","delimiterLazyShow","multipleDelimiters","currentDelimiter","fixPrefixCursor","appendix","len","checkFullSelection","selection","getSelection","ex","setSelection","getActiveElement","createTextRange","move","parent","shadowRoot","isAndroid","isAndroidBackspaceKeydown","lastInputValue","currentInputValue","Util_1","DefaultProperties","creditCard","creditCardStrictMode","creditCardType","onCreditCardTypeChanged","phone","phoneRegionCode","phoneFormatter","timeFormatter","dateFormatter","numeral","swapHiddenInput","numericOnly","uppercase","lowercase","rawValueTrimPrefix","copyDelimiter","initValue","delimiterLength","root","commonjsGlobal","backspace","DefaultProperties_1","Cleave","hasMultipleElements","properties","pps","isBackward","onChangeListener","onKeyDownListener","onFocusListener","onFocus","onCutListener","onCut","onCopyListener","onCopy","initSwapHiddenInput","initPhoneFormatter","initDateFormatter","initTimeFormatter","initNumeralFormatter","inputFormatter","cloneNode","elementSwapHidden","numeralFormatter","AsYouTypeFormatter","charCode","postDelimiter","postDelimiterBackspace","copyClipboardData","inputValue","textToCopy","clipboardData","setData","postDelimiterAfter","updateValueState","toUpperCase","updateCreditCardPropsByValue","creditCardInfo","endPos","callOnValueChanged","setPhoneRegionCode","Cleave_1","escapeChar","firstCharCode","charCodeAt","char","BFormRow","BFormValidFeedback","INPUTS","INPUT_SELECTOR","v","LEGEND_INTERACTIVE_ELEMENTS","breakpoint","description","feedbackAriaLive","invalidFeedback","labelClass","labelFor","labelSize","labelSrOnly","validFeedback","ariaDescribedby","contentColProps","getColProps","$props","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","updateAriaDescribedby","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","isIntegralNumber","stat","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","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","noWrap","overlayTag","rounded","spinnerSmall","spinnerType","spinnerVariant","wrapTag","zIndex","computedRounded","computedVariant","defaultOverlayFn","small","$overlay","$background","backgroundColor","backdropFilter","transform","BFormRadio","bvGroup","computedLocalChecked","linkClass","BDropdownItem","bvAttrs","closeDropdown","addSpaceToString","plain","formCustomMixin","custom","formSizeMixin","BButton","BSpinner","Ripple","loading","thisNumberValue","fails","un$ToFixed","pow","log","x2","multiply","c2","divide","dataToString","FORCED","fractionDigits","z","fractDigits","sign","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","$t","BRow","BCol","Pagination","f","events","fp","getElem","fpInput","$watch","watchDisabled","immediate","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","BFormCheckbox","isChecked","checked","isRadio","setIndeterminate","computedLocalCheckedWatcher","indeterminate","handleChange","_ref$target","uncheckedValue","isGroup","dismissCountDown","countDownChanged","dismissSecs","showDismissibleAlert","showAlert","_methods","ariaLabelledby","button","formRadioCheckMixin","hasFocus","isBtnMode","isPlain","isCustom","isSwitch","switches","switch","isInline","isRequired","computedName","computedForm","computedSize","computedButtonVariant","buttonClasses","handleFocus","$button","formStateMixin","_n","kCode","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleTag","toggleText","BDropdown","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","hasNormalizedSlot","$split","btnProps","href","$toggle","mousedown","$menu","SELECTOR","autofocus","formControlMixin","handleAutofocus","flatPickr","showModal","resetFilter","standingOrderList","tableHeaders","onSelectStandingOrderItem","item","standingOrderStatus","buttonLabel","modalTitle","isLoading","handleSubmit","resetModal","isReadonly","standingOrderFormData","$set","orderTypeOptions","setOrderType","transactionTypeOptions","setTransactionType","standingOrderAmount","transactionType","standingOrderPecentage","howLongOptions","setForHowLong","getComputedTenure","orderFrequencyOptions","setOrderFrequency","datePickerConfig","standingOrderEndDate","forHowLongStatus","accountOrderType","onViewCustomerDebitSearchModal","onViewCustomerCreditSearchModal","accountTypeListOptions","accountTypeCasaGl","glAccountOptions","isLoadingGlAccount","accountTypeGlCasa","branchOptions","isDebitCasaBranch","isCreditCasaBranch","getNarration","fetchStandingOrder","resetFilters","handleDebitSearch","showFormErrorAlert","searchParams","handleCreditSearch","customerList","tableSearchHeaders","sortBy","onSelectDebitCustomer","onSelectCreditCustomer","BTable","BModal","BBadge","SelectField","TablePagination","TableEntries","ValidationObserver","InputField","InputNumberField","FullScreenSpinner","Button","DatePickerField","Alert","isViewOnly","isEditable","debitAccount","creditAccount","computationType","percentageValue","forHowLong","sweepEvery","overHowManyCycles","tenure","debitNarration","creditNarration","debitBranchCode","creditBranchCode","debitAccountName","creditAccountName","orderFrequency","customerID","accountNumber","accountName","referenceNumber","customerSearchPagination","customerSearchFrom","customerSearchTo","customer","fetchGLAccount","statusValue","CasaAndCasa","CasaAndGL","GLANDGL","orderTypeMap","Day","Week","Month","Year","frequencyMap","searchRules","validate","then","alertError","pill","link","isObject","it","isFinite","clearable","multiple","setSelected","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","Promise","resolve","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","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","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","_requesting","requested","_data$offsets$arrow","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-5b50d508.3111d859.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 toAmount = amount => (\n new Intl.NumberFormat('en-NG', {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n style: 'currency',\n currency: 'NGN',\n }).format(Number(amount))\n)\n\nexport const toKobo = value => (\n Number(((value) * 100).toFixed())\n)\n\nexport const toBalance = value => (\n Number.isInteger(Number(value)) ? toAmount(Number(value) / 100) : value\n)\n\nexport const toLedgerBalance = value => (\n toAmount(Number(value) * 100)\n)\n\nexport const formatAmount = value => (\n Number(value) / 100\n)\nexport const toFormatAmount = value => (\n (Number(value) / 100).toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,')\n // (Number(value) / 100).toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,').replace('.00', '')\n)\nexport const toFormatBalance = value => (\n (Number(value) / 100).toFixed(2)\n)\n\nexport const removeMoneyFormat = value => {\n let newText = value?.replace(/\\s/g, '').replace(/,/g, '')\n if (Number.isNaN(Number(value[0]))) {\n newText = newText.substring(1, newText.length)\n }\n return newText\n}\n\nexport const containsFormattedNumber = str => {\n if (str) {\n const regex = /\\b\\d{1,3}(,\\d{3})*\\.\\d{2}\\b/\n return regex.test(str)\n }\n return null\n}\nexport const removeCommas = str => {\n if (str) {\n return str.replace(/,/g, '')\n }\n return null\n}\n\nexport const datass = [\n {\n id: '7beeb1c6-12e7-eb11-82dc-0abb463f1216',\n name: 'DISBURSE_LOAN',\n description: 'Disburse Loan',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_USER',\n description: 'Create User',\n groupName: 'User Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_USER',\n description: 'Modify User',\n groupName: 'User Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_USER',\n description: 'Activate User',\n groupName: 'User Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_USER',\n description: 'Deactivate User',\n groupName: 'User Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '50eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_USER',\n description: 'View User',\n groupName: 'User Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '51eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_USER_ROLE',\n description: 'Create User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '52eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_USER_ROLE',\n description: 'Modify User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '53eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_USER_ROLE',\n description: 'Activate User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '54eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_USER_ROLE',\n description: 'Deactivate User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '55eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_USER_ROLE',\n description: 'View User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '56eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_BRANCH',\n description: 'Create Branch',\n groupName: 'Branch Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '57eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_BRANCH',\n description: 'Modify Branch',\n groupName: 'Branch Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '58eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_BRANCH',\n description: 'Activate Branch ',\n groupName: 'Branch Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: true,\n },\n {\n id: '59eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_BRANCH',\n description: 'Deactivate Branch',\n groupName: 'Branch Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BRANCH',\n description: 'View Branch',\n groupName: 'Branch Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_REGION',\n description: 'Create Region',\n groupName: 'Region Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_REGION',\n description: 'Modify Region',\n groupName: 'Region Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_REGION',\n description: 'Activate Region',\n groupName: 'Region Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_REGION',\n description: 'Deactivate Region',\n groupName: 'Region Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_REGION',\n description: 'View Region',\n groupName: 'Region Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '60eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_SYSTEM_SETUP',\n description: 'Modify System Setup',\n groupName: 'System Setup',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '61eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SYSTEM_SETUP',\n description: 'View System Setup',\n groupName: 'System Setup',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '62eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_LIEN',\n description: 'Create Lien',\n groupName: 'Lien Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '63eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_LIEN',\n description: 'Modify Lien',\n groupName: 'Lien Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '64eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_LIEN',\n description: 'Activate Lien',\n groupName: 'Lien Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '65eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_LIEN',\n description: 'Deactivate Lien',\n groupName: 'Lien Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '66eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LIEN',\n description: 'View Lien',\n groupName: 'Lien Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '67eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'OPEN_CLOSE_BRANCH',\n description: 'Open/Close Branch',\n groupName: 'Business Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '68eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'OPEN_CLOSE_BUSINESS',\n description: 'Open/Close Business',\n groupName: 'Business Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '69eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'OPEN_CLOSE_BUSINESS_HISTORY',\n description: 'Open/Close Business History',\n groupName: 'Business Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'AUDIT_TRAIL',\n description: 'Audit Trail',\n groupName: 'Audit Trail Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_APPROVAL_SETUP',\n description: 'Create Approval Setup',\n groupName: 'Approval Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_APPROVAL_SETUP',\n description: 'Modify Approval Setup',\n groupName: 'Approval Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_APPROVAL_SETUP',\n description: 'View Approval Setups',\n groupName: 'Approval Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_BUSINESS_AUTOMATION',\n description: 'Create Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_BUSINESS_AUTOMATION',\n description: 'Modify Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '70eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_BUSINESS_AUTOMATION',\n description: 'Activate Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '71eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_BUSINESS_AUTOMATION',\n description: 'Deactivate Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '72eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BUSINESS_AUTOMATION',\n description: 'View Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '73eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_SAVING_CURRENT_ACCOUNT',\n description: 'Create Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '74eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_SAVING_CURRENT_ACCOUNT',\n description: 'Modify Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '75eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_SAVING_CURRENT_ACCOUNT',\n description: 'Activate Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '76eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_SAVING_CURRENT_ACCOUNT',\n description: 'Deactivate Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '77eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SAVING_CURRENT_ACCOUNT',\n description: 'View Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '78eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CUSTOMER_ACCOUNT_BALANCE',\n description: 'View Customer Account Balance',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '79eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CLOSE_CUSTOMER_ACCOUNT',\n description: 'Customer Account Closure',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CLOSED_ACCOUNTS',\n description: 'View Closed Accounts',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_LOAN_ACCOUNT',\n description: 'Create Loan Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_LOAN_ACCOUNT',\n description: 'Modify Loan Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOAN_ACCOUNT',\n description: 'View Loan Account',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_FIXED_DEPOSIT_ACCOUNT',\n description: 'Create Fixed Deposit Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_FIXED_DEPOSIT_ACCOUNT',\n description: 'Modify Fixed Deposit Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '80eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'LIQUIDATE_FIXED_DEPOSIT_ACCOUNT',\n description: 'Liquidate Fixed Deposit Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '81eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_FIXED_DEPOSIT_ACCOUNT',\n description: 'View Fixed Deposit Account',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '82eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_OVERDRAFT',\n description: 'Create Overdraft',\n groupName: 'Overdraft',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '83eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_OVERDRAFT',\n description: 'Modify Overdraft',\n groupName: 'Overdraft',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '84eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_OVERDRAFT',\n description: 'View Overdraft Accounts',\n groupName: 'Overdraft',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '85eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_OVERDRAFT',\n description: 'Activate Overdraft',\n groupName: 'Overdraft',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '86eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_OVERDRAFT',\n description: 'Deactivate Overdraft',\n groupName: 'Overdraft',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '87eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_GENERAL_LEDGER',\n description: 'Create General Ledger',\n groupName: 'General Ledger Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '88eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_GENERAL_LEDGER',\n description: 'Modify General Ledger',\n groupName: 'General Ledger Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '89eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_GENERAL_LEDGER',\n description: 'View General Ledger',\n groupName: 'General Ledger Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_GENERAL_LEDGER',\n description: 'Activate General Ledger',\n groupName: 'General Ledger Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_GENERAL_LEDGER',\n description: 'Deactivate General Ledger ',\n groupName: 'General Ledger Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_COT_FEE',\n description: 'Create COT Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_COT_FEE',\n description: 'Modify COT Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_COT_FEE',\n description: 'View COT Fee',\n groupName: 'Fee Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_COT_FEE',\n description: 'Activate COT Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '90eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_COT_FEE',\n description: 'Deactivate COT Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '91eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_OVERDRAFT_FEE',\n description: 'Create Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '92eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_OVERDRAFT_FEE',\n description: 'Modify Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '93eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_OVERDRAFT_FEE',\n description: 'View Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '94eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_OVERDRAFT_FEE',\n description: 'Activate Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '95eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_OVERDRAFT_FEE',\n description: 'Deactivate Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '96eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_LOAN_FEE',\n description: 'Create Loan Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '97eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_LOAN_FEE',\n description: 'Modify Loan Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '98eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOAN_FEE',\n description: 'View Loan Fee',\n groupName: 'Fee Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '99eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_LOAN_FEE',\n description: 'Activate Loan Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_LOAN_FEE',\n description: 'Deactivate Loan Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_INTEREST',\n description: 'Create Interest',\n groupName: 'Interest Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_INTEREST',\n description: 'Modify Interest',\n groupName: 'Interest Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_INTEREST',\n description: 'View Interest',\n groupName: 'Interest Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_INTEREST',\n description: 'Activate Interest',\n groupName: 'Interest Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_INTEREST',\n description: 'Deactivate Interest',\n groupName: 'Interest Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_CHARGE',\n description: 'Create Charge',\n groupName: 'Charge Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_CHARGE',\n description: 'Modify Charge',\n groupName: 'Charge Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CHARGE',\n description: 'View Charge',\n groupName: 'Charge Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_CHARGE',\n description: 'Activate Charge',\n groupName: 'Charge Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_CHARGE',\n description: 'Deactivate Charge',\n groupName: 'Charge Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_INDIVIDUAL_CUSTOMER',\n description: 'Create Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_INDIVIDUAL_CUSTOMER',\n description: 'Modify Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_INDIVIDUAL_CUSTOMER',\n description: 'View Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_INDIVIDUAL_CUSTOMER',\n description: 'Activate Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_INDIVIDUAL_CUSTOMER',\n description: 'Deactivate Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'aaeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_GROUP_CUSTOMER',\n description: 'Create Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'abeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_GROUP_CUSTOMER',\n description: 'Modify Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'aceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_GROUP_CUSTOMER',\n description: 'View Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'adeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_GROUP_CUSTOMER',\n description: 'Activate Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'aeeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_GROUP_CUSTOMER',\n description: 'Deactivate Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'afeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_CORPORATE_CUSTOMER',\n description: 'Create Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_CORPORATE_CUSTOMER',\n description: 'Modify Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CORPORATE_CUSTOMER',\n description: 'View Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_CORPORATE_CUSTOMER',\n description: 'Activate Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_CORPORATE_CUSTOMER',\n description: 'Deactivate Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_SAVING_CURRENT_PRODUCT',\n description: 'Create Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_SAVING_CURRENT_PRODUCT',\n description: 'Modify Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SAVING_CURRENT_PRODUCT',\n description: 'View Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_SAVING_CURRENT_PRODUCT',\n description: 'Activate Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_SAVING_CURRENT_PRODUCT',\n description: 'Deactivate Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_LOAN_PRODUCT',\n description: 'Create Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'baeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_LOAN_PRODUCT',\n description: 'Modify Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bbeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOAN_PRODUCT',\n description: 'View Loan Product',\n groupName: 'Product Manangement',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_LOAN_PRODUCT',\n description: 'Activate Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bdeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_LOAN_PRODUCT',\n description: 'Deactivate Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'beeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_FIXED_DEPOSIT_PRODUCT',\n description: 'Create Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bfeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_FIXED_DEPOSIT_PRODUCT',\n description: 'Modify Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_FIXED_DEPOSIT_PRODUCT',\n description: 'View Loan Product',\n groupName: 'Product Manangement',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_FIXED_DEPOSIT_PRODUCT',\n description: 'Activate Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_FIXED_DEPOSIT_PRODUCT',\n description: 'Deactivate Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_ACCOUNT_OFFICER',\n description: 'Create Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_ACCOUNT_OFFICER',\n description: 'Modify Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_ACCOUNT_OFFICER',\n description: 'View Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_ACCOUNT_OFFICER',\n description: 'Activate Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_ACCOUNT_OFFICER',\n description: 'Deactivate Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CASH_DEPOSIT_POSTING',\n description: 'Cash Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CASH_DEPOSIT_POSTING_LIST',\n description: 'View Cash Deposits Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'caeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CASH_WITHDRAWAL_POSTING',\n description: 'Cash Withdrawal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cbeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CASH_WITHDRAWAL_POSTING_LIST',\n description: 'View Cash Withdrawal Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'LOCAL_FUNDS_TRANSFER_POSTING',\n description: 'Local Funds Transfer Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cdeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOCAL_FUNDS_TRANSFER_POSTING',\n description: 'View Local Funds Transfer Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ceeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'SINGLE_JOURNAL_POSTING',\n description: 'Single Journal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cfeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SINGLE_JOURNAL_POSTING',\n description: 'View Single Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'BATCH_JOURNAL_POSTING',\n description: 'Batch Journal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BATCH_JOURNAL_POSTING',\n description: 'View Batch Journal Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'SINGLE_JOURNAL_TO_CUSTOMER_POSTING',\n description: 'Single Journal to Customer Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SINGLE_JOURNAL_TO_CUSTOMER_POSTING',\n description: 'View Single Journal to Customer Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'BATCH_JOURNAL_TO_CUSTOMER_POSTING',\n description: 'Batch Journal to Customer Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BATCH_JOURNAL_TO_CUSTOMER_POSTING',\n description: 'View Batch Journal to Customer Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'BATCH_JOURNAL_UPLOAD_POSTING',\n description: 'Batch Journal Upload Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BATCH_JOURNAL_UPLOAD_POSTING',\n description: 'View Batch Journal Upload Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'BUY_CASH_POSTING',\n description: 'Buy Cash Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BUY_CASH_POSTING',\n description: 'View Buy Cash Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'daeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'SELL_CASH_POSTING',\n description: 'Sell Cash Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'dbeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SELL_CASH_POSTING',\n description: 'View Sell Cash Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'dceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'REVERSAL_POSTING',\n description: 'Reversal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ddeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_REVERSAL_POSTING',\n description: 'View Reversal Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'deeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CHEQUE_WITHDRAWAL_POSTING',\n description: 'Cheque Withdrawal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'dfeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CHEQUE_WITHDRAWAL_POSTING',\n description: 'View Cheque Withdrawal Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'LOCAL_CHEQUE_DEPOSIT_POSTING',\n description: 'Local Cheque Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOCAL_CHEQUE_DEPOSIT_POSTING',\n description: 'View Local Cheque Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'OUTWARD_CHEQUE_DEPOSIT_POSTING',\n description: 'Outward Cheque Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_OUTWARD_CHEQUE_DEPOSIT_POSTING',\n description: 'View Outward Cheque Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TELLER_TO_TELLER_POSTING',\n description: 'Teller to Teller Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_TELLER_TO_TELLER_POSTING',\n description: 'View Teller to Teller Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_ACCOUNT_CATEGORY',\n description: 'Create Account Category',\n groupName: 'Account Category Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_ACCOUNT_CATEGORY',\n description: 'Modify Account Category',\n groupName: 'Account Category Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_ACCOUNT_CATEGORY',\n description: 'View Account Category',\n groupName: 'Account Category Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_ACCOUNT_CATEGORY',\n description: 'Activate Account Category',\n groupName: 'Account Category Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'eaeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_ACCOUNT_CATEGORY',\n description: 'Deactivate Account Category',\n groupName: 'Account Category Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ebeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CHART_OF_ACCOUNT_REPORT',\n description: 'View Chart of Account',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'eceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_CHART_OF_ACCOUNT_REPORT',\n description: 'Export Chart of Account',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'edeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_TRIAL_BALANCE_REPORT',\n description: 'View Trial Balance Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'eeeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TRIAL_BALANCE_REPORT',\n description: 'Export Trial Balance Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'efeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_PROFIT_OR_LOSS_REPORT',\n description: 'View Profit or Loss Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_PROFIT_OR_LOSS_REPORT',\n description: 'Export Profit or Loss Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BALANCE_SHEET_REPORT',\n description: 'View Balance Sheet Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_BALANCE_SHEET_REPORT',\n description: 'Export Balance Sheet Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'GL_CLOSING_BALANCE_HISTORY_REPORT',\n description: 'GL Closing Balance History ',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CUSTOMER_CLOSING_BALANCE_HISTORY_REPORT',\n description: 'Customer Closing Balance History',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TOTAL_DEPOSIT_LIABILITY_REPORT',\n description: 'Total Deposit Liability Report',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TOTAL_DEPOSIT_LIABILITY_REPORT',\n description: 'Export Total Deposit Liability Report',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TOTAL_OVERDRAWN_ACCOUNT_REPORT',\n description: 'Total Overdrawn Account Report',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_OVERDRAWN_ACCOUNT_REPORT',\n description: 'Export Overdrawn Account Report',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MANAGE_CLEARING_CHEQUES',\n description: 'Manage Clearing Cheques',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'faeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TRANSACTION_CALLOVER_REPORT',\n description: 'View Transaction Callover Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'fbeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TRANSACTION_CALLOVER_REPORT',\n description: 'Export Transaction Callover Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'fceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'END_OF_DAY_TRANSACTION_REPORT',\n description: 'View End of Day Transaction Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'fdeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_END_OF_DAY_TRANSACTION_REPORT',\n description: 'Export End of Day Transaction Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'feeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TOTAL_DEPOSIT_TRANSACTION_REPORT',\n description: 'Veiw Total Deposit Transaction Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ffeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TOTAL_DEPOSIT_TRANSACTION_REPORT',\n description: 'Export Total Deposit Transaction Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '00efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TOTAL_CASH_WITHDRAWAL_REPORT',\n description: 'View Total Cash Withdrawal Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '01efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TOTAL_CASH_WITHDRAWAL_REPORT',\n description: 'Export Total Cash Withdrawal Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '02efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TELLER_TILL_REPORT',\n description: \"View Teller's Till Report\",\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '03efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TELLER_TILL_REPORT',\n description: \"Export Teller's Till Report\",\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '04efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CHECK_MY_TILL_SUMMARY',\n description: 'Check My Till Summary',\n groupName: 'Transaction Reporting',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '87bcf41f-b034-ec11-82dc-0abb469f1216',\n name: 'VIEW_PENALTY',\n description: 'View Penalties',\n groupName: 'Penalty Management',\n isApprovable: false,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'fe460738-b034-ec11-82dc-0abb469f1216',\n name: 'CREATE_PENALTY',\n description: 'Create Penalties',\n groupName: 'Penalty Management',\n isApprovable: true,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9f21aa4c-b034-ec11-82dc-0abb469f1216',\n name: 'MODIFY_PENALTY',\n description: 'Modify Penalties',\n groupName: 'Penalty Management',\n isApprovable: true,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '243b6160-b034-ec11-82dc-0abb469f1216',\n name: 'ACTIVATE_PENALTY',\n description: 'Activate Penalties',\n groupName: 'Penalty Management',\n isApprovable: true,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '0316ce6e-b034-ec11-82dc-0abb469f1216',\n name: 'DEACTIVATE_PENALTY',\n description: 'Deactivate Penalties',\n groupName: 'Penalty Management',\n isApprovable: true,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '1173b523-5458-ec11-82dc-0abb469f1216',\n name: 'BATCH_ACCOUNT_UPLOAD',\n description: 'Batch Account Upload',\n groupName: 'Data Upload',\n isApprovable: true,\n dateCreated: '2021-12-08T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7e29c63b-5458-ec11-82dc-0abb469f1216',\n name: 'BATCH_LOAN_UPLOAD',\n description: 'Batch Loan Upload',\n groupName: 'Data Upload',\n isApprovable: true,\n dateCreated: '2021-12-08T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd31b2ed1-bd4b-4110-bbdf-17e5b46adceb',\n name: 'OVERDRAFT_REPORT',\n description: 'View Overdraft Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c365cb95-c7cb-47d0-b603-1b051a65fede',\n name: 'VIEW_EXECUTIVE_DASHBOARD',\n description: 'Executive Dashboard',\n groupName: 'Dashboard Reports',\n isApprovable: false,\n dateCreated: '2022-04-10T10:38:52.5366667',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '05f505cc-edd5-4f37-b128-2878ec5e9f73',\n name: 'EXPORT_OVERDRAFT_REPORT',\n description: 'Export Overdraft Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cd6028ef-8433-4106-8037-29e1e6178fd1',\n name: 'EXPORT_DEPOSITS_BALANCE_REPORT',\n description: 'Export Deposits Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9a7770a9-4b00-48c1-bd7f-2b415f38fdc9',\n name: 'EXPORT_LOAN_REPAYMENT_REPORT',\n description: 'Export Loan Repayment Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b4a0471f-f31c-4157-bf9a-319bd2ec47b5',\n name: 'ACCOUNT_BALANCE_MOVEMENT_REPORT',\n description: 'View Account Balance Movement Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'be5987a6-f271-4be9-a97b-32c63475b0aa',\n name: 'EXPORT_DAILY_TILL_BALANCE_REPORT',\n description: 'Export Daily Till Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '12befcd4-0442-43c9-aede-354c27bb11d4',\n name: 'VIEW_BASIC_DASHBOARD',\n description: 'General Dashboard',\n groupName: 'Dashboard Reports',\n isApprovable: false,\n dateCreated: '2022-04-10T10:39:45.64',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ac2655e9-dbe8-4ea3-970c-4d4e0fd6c4cf',\n name: 'GL_HISTORY_REPORT',\n description: 'View GL History Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '25baf72b-994a-43c4-9cec-4f295ca58c8f',\n name: 'FIXED_DEPOSITS_REPORT',\n description: 'View Fixed Deposits Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5b638862-bed2-4213-9916-5706bb967197',\n name: 'EXPORT_GL_HISTORY_REPORT',\n description: 'Export GL History Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6de7eaee-673a-437c-9482-6b5eb9bc37e7',\n name: 'EXPORT_LOANS_AND_ADVANCES_REPORT',\n description: 'Export Loan & Advances Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8efc1e0e-3840-4b9f-b0f8-6dafca2c2bfd',\n name: 'DAILY_TILL_BALANCE_REPORT',\n description: 'View Daily Till Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e6f4c79d-4a41-44f2-a4fb-75acc1d93242',\n name: 'EXPORT_LOAN_TRACKING_REPORT',\n description: 'Export Loan Tracking Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '49c8b404-88aa-416f-a288-7b5ba7f34aa7',\n name: 'LOAN_AND_ADVANCES_REPORT',\n description: 'View Loan & Advances Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '689d8a0f-b498-455f-898b-98ac40f7fb1d',\n name: 'ACCOUNT_BALANCE_REPORT',\n description: 'View Account Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ff99b473-f376-4341-ae20-9f124410e8ea',\n name: 'EXPORT_ACCOUNT_BALANCE_REPORT',\n description: 'Export Account Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '76dcd111-5de5-44ef-8935-b543f9260ed1',\n name: 'LOAN_TRACKING_REPORT',\n description: 'View Loan Tracking Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '389250d3-32b1-48ee-8c6a-bc477131a44f',\n name: 'EXPORT_ACCOUNT_HISTORY_REPORT',\n description: 'Export Account History Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '510f6c04-8189-4978-99f3-d80a065085a8',\n name: 'DEPOSITS_BALANCE_REPORT',\n description: 'View Deposits Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b7792915-d6e2-4bc0-b9c2-d84161d594c8',\n name: 'EXPORT_ACCOUNT_BALANCE_MOVEMENT_REPORT',\n description: 'Export Account Balance Movement Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '67b3677e-e6ea-46d1-ae78-d8dea0608345',\n name: 'EXPORT_FIXED_DEPOSITS_REPORT',\n description: 'Export Fixed Deposit Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f93f68d8-84d2-4f80-88d0-ea5480fb8395',\n name: 'RESET_PASSWORD',\n description: 'Reset Password',\n groupName: 'User Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bffc0306-167d-49d8-9932-f3b482759f04',\n name: 'LOAN_REPAYMENT_REPORT',\n description: 'View Loan Repayment Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4446315f-9ac3-422d-8527-f589fad1342d',\n name: 'ACCOUNT_HISTORY_REPORT',\n description: 'View Account History Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\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, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_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});","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"cleave.js\")):\"function\"==typeof define&&define.amd?define(\"VueCleave\",[\"cleave.js\"],t):\"object\"==typeof exports?exports.VueCleave=t(require(\"cleave.js\")):e.VueCleave=t(e.Cleave)}(\"undefined\"!=typeof self?self:this,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){\"use strict\";n.r(t);var r=n(0),o=n.n(r);function u(){return(u=Object.assign||function(e){for(var t=1;t 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 _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_FIRST } from '../constants/slots';\nimport { htmlOrText } from '../utils/html';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { omit, pick, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { BFormCheckbox } from '../components/form-checkbox/form-checkbox';\nimport { BFormRadio } from '../components/form-radio/form-radio';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formOptionsMixin, props as formOptionsProps } from './form-options';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n// Attributes to pass down to checks/radios instead of applying them to the group\n\nvar PASS_DOWN_ATTRS = ['aria-describedby', 'aria-labelledby'];\n\nvar _makeModelMixin = makeModelMixin('checked'),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formOptionsProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n // Render as button style\n buttons: makeProp(PROP_TYPE_BOOLEAN, false),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formRadioCheckGroups'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckGroupMixin = Vue.extend({\n mixins: [idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formOptionsMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this[MODEL_PROP_NAME]\n };\n },\n computed: {\n inline: function inline() {\n return !this.stacked;\n },\n groupName: function groupName() {\n // Checks/Radios tied to the same model must have the same name,\n // especially for ARIA accessibility\n return this.name || this.safeId();\n },\n groupClasses: function groupClasses() {\n var inline = this.inline,\n size = this.size,\n validated = this.validated;\n var classes = {\n 'was-validated': validated\n };\n\n if (this.buttons) {\n classes = [classes, 'btn-group-toggle', _defineProperty({\n 'btn-group': inline,\n 'btn-group-vertical': !inline\n }, \"btn-group-\".concat(size), size)];\n }\n\n return classes;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!looseEqual(newValue, this.localChecked)) {\n this.localChecked = newValue;\n }\n }), _defineProperty(_watch, \"localChecked\", function localChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n render: function render(h) {\n var _this = this;\n\n var isRadioGroup = this.isRadioGroup;\n var attrs = pick(this.$attrs, PASS_DOWN_ATTRS);\n var optionComponent = isRadioGroup ? BFormRadio : BFormCheckbox;\n var $inputs = this.formOptions.map(function (option, index) {\n var key = \"BV_option_\".concat(index);\n return h(optionComponent, {\n props: {\n // Individual radios or checks can be disabled in a group\n disabled: option.disabled || false,\n id: _this.safeId(key),\n value: option.value // We don't need to include these, since the input's will know they are inside here\n // form: this.form || null,\n // name: this.groupName,\n // required: Boolean(this.name && this.required)\n\n },\n attrs: attrs,\n key: key\n }, [h('span', {\n domProps: htmlOrText(option.html, option.text)\n })]);\n });\n return h('div', {\n class: [this.groupClasses, 'bv-no-focus-ring'],\n attrs: _objectSpread(_objectSpread({}, omit(this.$attrs, PASS_DOWN_ATTRS)), {}, {\n 'aria-invalid': this.computedAriaInvalid,\n 'aria-required': this.required ? 'true' : null,\n id: this.safeId(),\n role: isRadioGroup ? 'radiogroup' : 'group',\n // Add `tabindex=\"-1\"` to allow group to be focused if needed by screen readers\n tabindex: '-1'\n })\n }, [this.normalizeSlot(SLOT_NAME_FIRST), $inputs, this.normalizeSlot()]);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_ARRAY_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { get } from '../utils/get';\nimport { stripTags } from '../utils/html';\nimport { isArray, isPlainObject, isUndefined } from '../utils/inspect';\nimport { keys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn'; // --- Constants ---\n\nvar OPTIONS_OBJECT_DEPRECATED_MSG = 'Setting prop \"options\" to an object is deprecated. Use the array format instead.'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabledField: makeProp(PROP_TYPE_STRING, 'disabled'),\n htmlField: makeProp(PROP_TYPE_STRING, 'html'),\n options: makeProp(PROP_TYPE_ARRAY_OBJECT, []),\n textField: makeProp(PROP_TYPE_STRING, 'text'),\n valueField: makeProp(PROP_TYPE_STRING, 'value')\n}, 'formOptionControls'); // --- Mixin ---\n// @vue/component\n\nexport var formOptionsMixin = Vue.extend({\n props: props,\n computed: {\n formOptions: function formOptions() {\n return this.normalizeOptions(this.options);\n }\n },\n methods: {\n normalizeOption: function normalizeOption(option) {\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When the option is an object, normalize it\n if (isPlainObject(option)) {\n var value = get(option, this.valueField);\n var text = get(option, this.textField);\n return {\n value: isUndefined(value) ? key || text : value,\n text: stripTags(String(isUndefined(text) ? key : text)),\n html: get(option, this.htmlField),\n disabled: Boolean(get(option, this.disabledField))\n };\n } // Otherwise create an `` object from the given value\n\n\n return {\n value: key || option,\n text: stripTags(String(option)),\n disabled: false\n };\n },\n normalizeOptions: function normalizeOptions(options) {\n var _this = this;\n\n // Normalize the given options array\n if (isArray(options)) {\n return options.map(function (option) {\n return _this.normalizeOption(option);\n });\n } else if (isPlainObject(options)) {\n // Deprecate the object options format\n warn(OPTIONS_OBJECT_DEPRECATED_MSG, this.$options.name); // Normalize a `options` object to an array of options\n\n return keys(options).map(function (key) {\n return _this.normalizeOption(options[key] || {}, key);\n });\n } // If not an array or object, return an empty array\n\n /* istanbul ignore next */\n\n\n return [];\n }\n }\n});","import { Vue } from '../../vue';\nimport { NAME_FORM_RADIO_GROUP } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { formRadioCheckGroupMixin, props as formRadioCheckGroupProps } from '../../mixins/form-radio-check-group'; // --- Props ---\n\nexport var props = makePropsConfigurable(formRadioCheckGroupProps, NAME_FORM_RADIO_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BFormRadioGroup = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO_GROUP,\n mixins: [formRadioCheckGroupMixin],\n provide: function provide() {\n return {\n bvRadioGroup: this\n };\n },\n props: props,\n computed: {\n isRadioGroup: function isRadioGroup() {\n return true;\n }\n }\n});","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","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","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","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","var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar NumeralFormatter = function (numeralDecimalMark,\n numeralIntegerScale,\n numeralDecimalScale,\n numeralThousandsGroupStyle,\n numeralPositiveOnly,\n stripLeadingZeroes,\n prefix,\n signBeforePrefix,\n tailPrefix,\n delimiter) {\n var owner = this;\n\n owner.numeralDecimalMark = numeralDecimalMark || '.';\n owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;\n owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\n owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\n owner.numeralPositiveOnly = !!numeralPositiveOnly;\n owner.stripLeadingZeroes = stripLeadingZeroes !== false;\n owner.prefix = (prefix || prefix === '') ? prefix : '';\n owner.signBeforePrefix = !!signBeforePrefix;\n owner.tailPrefix = !!tailPrefix;\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n};\n\nNumeralFormatter.groupStyle = {\n thousand: 'thousand',\n lakh: 'lakh',\n wan: 'wan',\n none: 'none' \n};\n\nNumeralFormatter.prototype = {\n getRawValue: function (value) {\n return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\n },\n\n format: function (value) {\n var owner = this, parts, partSign, partSignAndPrefix, partInteger, partDecimal = '';\n\n // strip alphabet letters\n value = value.replace(/[A-Za-z]/g, '')\n // replace the first decimal mark with reserved placeholder\n .replace(owner.numeralDecimalMark, 'M')\n\n // strip non numeric letters except minus and \"M\"\n // this is to ensure prefix has been stripped\n .replace(/[^\\dM-]/g, '')\n\n // replace the leading minus with reserved placeholder\n .replace(/^\\-/, 'N')\n\n // strip the other minus sign (if present)\n .replace(/\\-/g, '')\n\n // replace the minus sign (if present)\n .replace('N', owner.numeralPositiveOnly ? '' : '-')\n\n // replace decimal mark\n .replace('M', owner.numeralDecimalMark);\n\n // strip any leading zeros\n if (owner.stripLeadingZeroes) {\n value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n }\n\n partSign = value.slice(0, 1) === '-' ? '-' : '';\n if (typeof owner.prefix != 'undefined') {\n if (owner.signBeforePrefix) {\n partSignAndPrefix = partSign + owner.prefix;\n } else {\n partSignAndPrefix = owner.prefix + partSign;\n }\n } else {\n partSignAndPrefix = partSign;\n }\n \n partInteger = value;\n\n if (value.indexOf(owner.numeralDecimalMark) >= 0) {\n parts = value.split(owner.numeralDecimalMark);\n partInteger = parts[0];\n partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\n }\n\n if(partSign === '-') {\n partInteger = partInteger.slice(1);\n }\n\n if (owner.numeralIntegerScale > 0) {\n partInteger = partInteger.slice(0, owner.numeralIntegerScale);\n }\n\n switch (owner.numeralThousandsGroupStyle) {\n case NumeralFormatter.groupStyle.lakh:\n partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.wan:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.thousand:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\n\n break;\n }\n\n if (owner.tailPrefix) {\n return partSign + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '') + owner.prefix;\n }\n\n return partSignAndPrefix + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\n }\n};\n\nvar NumeralFormatter_1 = NumeralFormatter;\n\nvar DateFormatter = function (datePattern, dateMin, dateMax) {\n var owner = this;\n\n owner.date = [];\n owner.blocks = [];\n owner.datePattern = datePattern;\n owner.dateMin = dateMin\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMin.length === 2) owner.dateMin.unshift(0);\n\n owner.dateMax = dateMax\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMax.length === 2) owner.dateMax.unshift(0);\n \n owner.initBlocks();\n};\n\nDateFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.datePattern.forEach(function (value) {\n if (value === 'Y') {\n owner.blocks.push(4);\n } else {\n owner.blocks.push(2);\n }\n });\n },\n\n getISOFormatDate: function () {\n var owner = this,\n date = owner.date;\n\n return date[2] ? (\n date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getValidatedDate: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.datePattern[index]) {\n case 'd':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 3) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 31) {\n sub = '31';\n }\n\n break;\n\n case 'm':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 1) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 12) {\n sub = '12';\n }\n\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedDateString(result);\n },\n\n getFixedDateString: function (value) {\n var owner = this, datePattern = owner.datePattern, date = [],\n dayIndex = 0, monthIndex = 0, yearIndex = 0,\n dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\n day, month, year, fullYearDone = false;\n\n // mm-dd || dd-mm\n if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\n dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\n monthStartIndex = 2 - dayStartIndex;\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\n date = this.getFixedDate(day, month, 0);\n }\n\n // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\n if (value.length === 8) {\n datePattern.forEach(function (type, index) {\n switch (type) {\n case 'd':\n dayIndex = index;\n break;\n case 'm':\n monthIndex = index;\n break;\n default:\n yearIndex = index;\n break;\n }\n });\n\n yearStartIndex = yearIndex * 2;\n dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\n monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\n\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = this.getFixedDate(day, month, year);\n }\n\n // mm-yy || yy-mm\n if (value.length === 4 && (datePattern[0] === 'y' || datePattern[1] === 'y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 2;\n yearStartIndex = 2 - monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 2), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 2).length === 2;\n\n date = [0, month, year];\n }\n\n // mm-yyyy || yyyy-mm\n if (value.length === 6 && (datePattern[0] === 'Y' || datePattern[1] === 'Y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 4;\n yearStartIndex = 2 - 0.5 * monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = [0, month, year];\n }\n\n date = owner.getRangeFixedDate(date);\n owner.date = date;\n\n var result = date.length === 0 ? value : datePattern.reduce(function (previous, current) {\n switch (current) {\n case 'd':\n return previous + (date[0] === 0 ? '' : owner.addLeadingZero(date[0]));\n case 'm':\n return previous + (date[1] === 0 ? '' : owner.addLeadingZero(date[1]));\n case 'y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], false) : '');\n case 'Y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], true) : '');\n }\n }, '');\n\n return result;\n },\n\n getRangeFixedDate: function (date) {\n var owner = this,\n datePattern = owner.datePattern,\n dateMin = owner.dateMin || [],\n dateMax = owner.dateMax || [];\n\n if (!date.length || (dateMin.length < 3 && dateMax.length < 3)) return date;\n\n if (\n datePattern.find(function(x) {\n return x.toLowerCase() === 'y';\n }) &&\n date[2] === 0\n ) return date;\n\n if (dateMax.length && (dateMax[2] < date[2] || (\n dateMax[2] === date[2] && (dateMax[1] < date[1] || (\n dateMax[1] === date[1] && dateMax[0] < date[0]\n ))\n ))) return dateMax;\n\n if (dateMin.length && (dateMin[2] > date[2] || (\n dateMin[2] === date[2] && (dateMin[1] > date[1] || (\n dateMin[1] === date[1] && dateMin[0] > date[0]\n ))\n ))) return dateMin;\n\n return date;\n },\n\n getFixedDate: function (day, month, year) {\n day = Math.min(day, 31);\n month = Math.min(month, 12);\n year = parseInt((year || 0), 10);\n\n if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\n day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\n }\n\n return [day, month, year];\n },\n\n isLeapYear: function (year) {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n },\n\n addLeadingZeroForYear: function (number, fullYearMode) {\n if (fullYearMode) {\n return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number;\n }\n\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar DateFormatter_1 = DateFormatter;\n\nvar TimeFormatter = function (timePattern, timeFormat) {\n var owner = this;\n\n owner.time = [];\n owner.blocks = [];\n owner.timePattern = timePattern;\n owner.timeFormat = timeFormat;\n owner.initBlocks();\n};\n\nTimeFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.timePattern.forEach(function () {\n owner.blocks.push(2);\n });\n },\n\n getISOFormatTime: function () {\n var owner = this,\n time = owner.time;\n\n return time[2] ? (\n owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getTimeFormatOptions: function () {\n var owner = this;\n if (String(owner.timeFormat) === '12') {\n return {\n maxHourFirstDigit: 1,\n maxHours: 12,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n }\n\n return {\n maxHourFirstDigit: 2,\n maxHours: 23,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n },\n\n getValidatedTime: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n var timeFormatOptions = owner.getTimeFormatOptions();\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.timePattern[index]) {\n\n case 'h':\n if (parseInt(sub0, 10) > timeFormatOptions.maxHourFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxHours) {\n sub = timeFormatOptions.maxHours + '';\n }\n\n break;\n\n case 'm':\n case 's':\n if (parseInt(sub0, 10) > timeFormatOptions.maxMinutesFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxMinutes) {\n sub = timeFormatOptions.maxMinutes + '';\n }\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedTimeString(result);\n },\n\n getFixedTimeString: function (value) {\n var owner = this, timePattern = owner.timePattern, time = [],\n secondIndex = 0, minuteIndex = 0, hourIndex = 0,\n secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0,\n second, minute, hour;\n\n if (value.length === 6) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 's':\n secondIndex = index * 2;\n break;\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n secondStartIndex = secondIndex;\n\n second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10);\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n if (value.length === 4 && owner.timePattern.indexOf('s') < 0) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n\n second = 0;\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n owner.time = time;\n\n return time.length === 0 ? value : timePattern.reduce(function (previous, current) {\n switch (current) {\n case 's':\n return previous + owner.addLeadingZero(time[2]);\n case 'm':\n return previous + owner.addLeadingZero(time[1]);\n case 'h':\n return previous + owner.addLeadingZero(time[0]);\n }\n }, '');\n },\n\n getFixedTime: function (hour, minute, second) {\n second = Math.min(parseInt(second || 0, 10), 60);\n minute = Math.min(minute, 60);\n hour = Math.min(hour, 60);\n\n return [hour, minute, second];\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar TimeFormatter_1 = TimeFormatter;\n\nvar PhoneFormatter = function (formatter, delimiter) {\n var owner = this;\n\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\n owner.formatter = formatter;\n};\n\nPhoneFormatter.prototype = {\n setFormatter: function (formatter) {\n this.formatter = formatter;\n },\n\n format: function (phoneNumber) {\n var owner = this;\n\n owner.formatter.clear();\n\n // only keep number and +\n phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\n\n // strip non-leading +\n phoneNumber = phoneNumber.replace(/^\\+/, 'B').replace(/\\+/g, '').replace('B', '+');\n\n // strip delimiter\n phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\n\n var result = '', current, validated = false;\n\n for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\n current = owner.formatter.inputDigit(phoneNumber.charAt(i));\n\n // has ()- or space inside\n if (/[\\s()-]/g.test(current)) {\n result = current;\n\n validated = true;\n } else {\n if (!validated) {\n result = current;\n }\n // else: over length input\n // it turns to invalid number again\n }\n }\n\n // strip ()\n // e.g. US: 7161234567 returns (716) 123-4567\n result = result.replace(/[()]/g, '');\n // replace library delimiter with user customized delimiter\n result = result.replace(/[\\s-]/g, owner.delimiter);\n\n return result;\n }\n};\n\nvar PhoneFormatter_1 = PhoneFormatter;\n\nvar CreditCardDetector = {\n blocks: {\n uatp: [4, 5, 6],\n amex: [4, 6, 5],\n diners: [4, 6, 4],\n discover: [4, 4, 4, 4],\n mastercard: [4, 4, 4, 4],\n dankort: [4, 4, 4, 4],\n instapayment: [4, 4, 4, 4],\n jcb15: [4, 6, 5],\n jcb: [4, 4, 4, 4],\n maestro: [4, 4, 4, 4],\n visa: [4, 4, 4, 4],\n mir: [4, 4, 4, 4],\n unionPay: [4, 4, 4, 4],\n general: [4, 4, 4, 4]\n },\n\n re: {\n // starts with 1; 15 digits, not starts with 1800 (jcb card)\n uatp: /^(?!1800)1\\d{0,14}/,\n\n // starts with 34/37; 15 digits\n amex: /^3[47]\\d{0,13}/,\n\n // starts with 6011/65/644-649; 16 digits\n discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\n\n // starts with 300-305/309 or 36/38/39; 14 digits\n diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\n\n // starts with 51-55/2221–2720; 16 digits\n mastercard: /^(5[1-5]\\d{0,2}|22[2-9]\\d{0,1}|2[3-7]\\d{0,2})\\d{0,12}/,\n\n // starts with 5019/4175/4571; 16 digits\n dankort: /^(5019|4175|4571)\\d{0,12}/,\n\n // starts with 637-639; 16 digits\n instapayment: /^63[7-9]\\d{0,13}/,\n\n // starts with 2131/1800; 15 digits\n jcb15: /^(?:2131|1800)\\d{0,11}/,\n\n // starts with 2131/1800/35; 16 digits\n jcb: /^(?:35\\d{0,2})\\d{0,12}/,\n\n // starts with 50/56-58/6304/67; 16 digits\n maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\n\n // starts with 22; 16 digits\n mir: /^220[0-4]\\d{0,12}/,\n\n // starts with 4; 16 digits\n visa: /^4\\d{0,15}/,\n\n // starts with 62/81; 16 digits\n unionPay: /^(62|81)\\d{0,14}/\n },\n\n getStrictBlocks: function (block) {\n var total = block.reduce(function (prev, current) {\n return prev + current;\n }, 0);\n\n return block.concat(19 - total);\n },\n\n getInfo: function (value, strictMode) {\n var blocks = CreditCardDetector.blocks,\n re = CreditCardDetector.re;\n\n // Some credit card can have up to 19 digits number.\n // Set strictMode to true will remove the 16 max-length restrain,\n // however, I never found any website validate card number like\n // this, hence probably you don't want to enable this option.\n strictMode = !!strictMode;\n\n for (var key in re) {\n if (re[key].test(value)) {\n var matchedBlocks = blocks[key];\n return {\n type: key,\n blocks: strictMode ? this.getStrictBlocks(matchedBlocks) : matchedBlocks\n };\n }\n }\n\n return {\n type: 'unknown',\n blocks: strictMode ? this.getStrictBlocks(blocks.general) : blocks.general\n };\n }\n};\n\nvar CreditCardDetector_1 = CreditCardDetector;\n\nvar Util = {\n noop: function () {\n },\n\n strip: function (value, re) {\n return value.replace(re, '');\n },\n\n getPostDelimiter: function (value, delimiter, delimiters) {\n // single delimiter\n if (delimiters.length === 0) {\n return value.slice(-delimiter.length) === delimiter ? delimiter : '';\n }\n\n // multiple delimiters\n var matchedDelimiter = '';\n delimiters.forEach(function (current) {\n if (value.slice(-current.length) === current) {\n matchedDelimiter = current;\n }\n });\n\n return matchedDelimiter;\n },\n\n getDelimiterREByDelimiter: function (delimiter) {\n return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\n },\n\n getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n // If cursor was at the end of value, just place it back.\n // Because new value could contain additional chars.\n if (oldValue.length === prevPos) {\n return newValue.length;\n }\n\n return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter ,delimiters);\n },\n\n getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n var oldRawValue, newRawValue, lengthOffset;\n\n oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters);\n newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters);\n lengthOffset = oldRawValue.length - newRawValue.length;\n\n return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0;\n },\n\n stripDelimiters: function (value, delimiter, delimiters) {\n var owner = this;\n\n // single delimiter\n if (delimiters.length === 0) {\n var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\n\n return value.replace(delimiterRE, '');\n }\n\n // multiple delimiters\n delimiters.forEach(function (current) {\n current.split('').forEach(function (letter) {\n value = value.replace(owner.getDelimiterREByDelimiter(letter), '');\n });\n });\n\n return value;\n },\n\n headStr: function (str, length) {\n return str.slice(0, length);\n },\n\n getMaxLength: function (blocks) {\n return blocks.reduce(function (previous, current) {\n return previous + current;\n }, 0);\n },\n\n // strip prefix\n // Before type | After type | Return value\n // PEFIX-... | PEFIX-... | ''\n // PREFIX-123 | PEFIX-123 | 123\n // PREFIX-123 | PREFIX-23 | 23\n // PREFIX-123 | PREFIX-1234 | 1234\n getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix) {\n // No prefix\n if (prefixLength === 0) {\n return value;\n }\n\n // Value is prefix\n if (value === prefix && value !== '') {\n return '';\n }\n\n if (signBeforePrefix && (value.slice(0, 1) == '-')) {\n var prev = (prevResult.slice(0, 1) == '-') ? prevResult.slice(1) : prevResult;\n return '-' + this.getPrefixStrippedValue(value.slice(1), prefix, prefixLength, prev, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix);\n }\n\n // Pre result prefix string does not match pre-defined prefix\n if (prevResult.slice(0, prefixLength) !== prefix && !tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n } else if (prevResult.slice(-prefixLength) !== prefix && tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n }\n\n var prevValue = this.stripDelimiters(prevResult, delimiter, delimiters);\n\n // New value has issue, someone typed in between prefix letters\n // Revert to pre value\n if (value.slice(0, prefixLength) !== prefix && !tailPrefix) {\n return prevValue.slice(prefixLength);\n } else if (value.slice(-prefixLength) !== prefix && tailPrefix) {\n return prevValue.slice(0, -prefixLength - 1);\n }\n\n // No issue, strip prefix for new value\n return tailPrefix ? value.slice(0, -prefixLength) : value.slice(prefixLength);\n },\n\n getFirstDiffIndex: function (prev, current) {\n var index = 0;\n\n while (prev.charAt(index) === current.charAt(index)) {\n if (prev.charAt(index++) === '') {\n return -1;\n }\n }\n\n return index;\n },\n\n getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) {\n var result = '',\n multipleDelimiters = delimiters.length > 0,\n currentDelimiter = '';\n\n // no options, normal input\n if (blocksLength === 0) {\n return value;\n }\n\n blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n rest = value.slice(length);\n\n if (multipleDelimiters) {\n currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter;\n } else {\n currentDelimiter = delimiter;\n }\n\n if (delimiterLazyShow) {\n if (index > 0) {\n result += currentDelimiter;\n }\n\n result += sub;\n } else {\n result += sub;\n\n if (sub.length === length && index < blocksLength - 1) {\n result += currentDelimiter;\n }\n }\n\n // update remaining string\n value = rest;\n }\n });\n\n return result;\n },\n\n // move cursor to the end\n // the first time user focuses on an input with prefix\n fixPrefixCursor: function (el, prefix, delimiter, delimiters) {\n if (!el) {\n return;\n }\n\n var val = el.value,\n appendix = delimiter || (delimiters[0] || ' ');\n\n if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) <= val.length) {\n return;\n }\n\n var len = val.length * 2;\n\n // set timeout to avoid blink\n setTimeout(function () {\n el.setSelectionRange(len, len);\n }, 1);\n },\n\n // Check if input field is fully selected\n checkFullSelection: function(value) {\n try {\n var selection = window.getSelection() || document.getSelection() || {};\n return selection.toString().length === value.length;\n } catch (ex) {\n // Ignore\n }\n\n return false;\n },\n\n setSelection: function (element, position, doc) {\n if (element !== this.getActiveElement(doc)) {\n return;\n }\n\n // cursor is already in the end\n if (element && element.value.length <= position) {\n return;\n }\n\n if (element.createTextRange) {\n var range = element.createTextRange();\n\n range.move('character', position);\n range.select();\n } else {\n try {\n element.setSelectionRange(position, position);\n } catch (e) {\n // eslint-disable-next-line\n console.warn('The input element type does not support selection');\n }\n }\n },\n\n getActiveElement: function(parent) {\n var activeElement = parent.activeElement;\n if (activeElement && activeElement.shadowRoot) {\n return this.getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n },\n\n isAndroid: function () {\n return navigator && /android/i.test(navigator.userAgent);\n },\n\n // On Android chrome, the keyup and keydown events\n // always return key code 229 as a composition that\n // buffers the user’s keystrokes\n // see https://github.com/nosir/cleave.js/issues/147\n isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\n if (!this.isAndroid() || !lastInputValue || !currentInputValue) {\n return false;\n }\n\n return currentInputValue === lastInputValue.slice(0, -1);\n }\n};\n\nvar Util_1 = Util;\n\n/**\n * Props Assignment\n *\n * Separate this, so react module can share the usage\n */\nvar DefaultProperties = {\n // Maybe change to object-assign\n // for now just keep it as simple\n assign: function (target, opts) {\n target = target || {};\n opts = opts || {};\n\n // credit card\n target.creditCard = !!opts.creditCard;\n target.creditCardStrictMode = !!opts.creditCardStrictMode;\n target.creditCardType = '';\n target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});\n\n // phone\n target.phone = !!opts.phone;\n target.phoneRegionCode = opts.phoneRegionCode || 'AU';\n target.phoneFormatter = {};\n\n // time\n target.time = !!opts.time;\n target.timePattern = opts.timePattern || ['h', 'm', 's'];\n target.timeFormat = opts.timeFormat || '24';\n target.timeFormatter = {};\n\n // date\n target.date = !!opts.date;\n target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\n target.dateMin = opts.dateMin || '';\n target.dateMax = opts.dateMax || '';\n target.dateFormatter = {};\n\n // numeral\n target.numeral = !!opts.numeral;\n target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\n target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\n target.numeralDecimalMark = opts.numeralDecimalMark || '.';\n target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\n target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\n target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;\n target.signBeforePrefix = !!opts.signBeforePrefix;\n target.tailPrefix = !!opts.tailPrefix;\n\n // others\n target.swapHiddenInput = !!opts.swapHiddenInput;\n \n target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\n\n target.uppercase = !!opts.uppercase;\n target.lowercase = !!opts.lowercase;\n\n target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || '');\n target.noImmediatePrefix = !!opts.noImmediatePrefix;\n target.prefixLength = target.prefix.length;\n target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\n target.copyDelimiter = !!opts.copyDelimiter;\n\n target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\n\n target.delimiter =\n (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\n (opts.date ? '/' :\n (opts.time ? ':' :\n (opts.numeral ? ',' :\n (opts.phone ? ' ' :\n ' '))));\n target.delimiterLength = target.delimiter.length;\n target.delimiterLazyShow = !!opts.delimiterLazyShow;\n target.delimiters = opts.delimiters || [];\n\n target.blocks = opts.blocks || [];\n target.blocksLength = target.blocks.length;\n\n target.root = (typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window;\n target.document = opts.document || target.root.document;\n\n target.maxLength = 0;\n\n target.backspace = false;\n target.result = '';\n\n target.onValueChanged = opts.onValueChanged || (function () {});\n\n return target;\n }\n};\n\nvar DefaultProperties_1 = DefaultProperties;\n\n/**\n * Construct a new Cleave instance by passing the configuration object\n *\n * @param {String | HTMLElement} element\n * @param {Object} opts\n */\nvar Cleave = function (element, opts) {\n var owner = this;\n var hasMultipleElements = false;\n\n if (typeof element === 'string') {\n owner.element = document.querySelector(element);\n hasMultipleElements = document.querySelectorAll(element).length > 1;\n } else {\n if (typeof element.length !== 'undefined' && element.length > 0) {\n owner.element = element[0];\n hasMultipleElements = element.length > 1;\n } else {\n owner.element = element;\n }\n }\n\n if (!owner.element) {\n throw new Error('[cleave.js] Please check the element');\n }\n\n if (hasMultipleElements) {\n try {\n // eslint-disable-next-line\n console.warn('[cleave.js] Multiple input fields matched, cleave.js will only take the first one.');\n } catch (e) {\n // Old IE\n }\n }\n\n opts.initValue = owner.element.value;\n\n owner.properties = Cleave.DefaultProperties.assign({}, opts);\n\n owner.init();\n};\n\nCleave.prototype = {\n init: function () {\n var owner = this, pps = owner.properties;\n\n // no need to use this lib\n if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\n owner.onInput(pps.initValue);\n\n return;\n }\n\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\n owner.isAndroid = Cleave.Util.isAndroid();\n owner.lastInputValue = '';\n owner.isBackward = '';\n\n owner.onChangeListener = owner.onChange.bind(owner);\n owner.onKeyDownListener = owner.onKeyDown.bind(owner);\n owner.onFocusListener = owner.onFocus.bind(owner);\n owner.onCutListener = owner.onCut.bind(owner);\n owner.onCopyListener = owner.onCopy.bind(owner);\n\n owner.initSwapHiddenInput();\n\n owner.element.addEventListener('input', owner.onChangeListener);\n owner.element.addEventListener('keydown', owner.onKeyDownListener);\n owner.element.addEventListener('focus', owner.onFocusListener);\n owner.element.addEventListener('cut', owner.onCutListener);\n owner.element.addEventListener('copy', owner.onCopyListener);\n\n\n owner.initPhoneFormatter();\n owner.initDateFormatter();\n owner.initTimeFormatter();\n owner.initNumeralFormatter();\n\n // avoid touch input field if value is null\n // otherwise Firefox will add red box-shadow for \n if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) {\n owner.onInput(pps.initValue);\n }\n },\n\n initSwapHiddenInput: function () {\n var owner = this, pps = owner.properties;\n if (!pps.swapHiddenInput) return;\n\n var inputFormatter = owner.element.cloneNode(true);\n owner.element.parentNode.insertBefore(inputFormatter, owner.element);\n\n owner.elementSwapHidden = owner.element;\n owner.elementSwapHidden.type = 'hidden';\n\n owner.element = inputFormatter;\n owner.element.id = '';\n },\n\n initNumeralFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.numeral) {\n return;\n }\n\n pps.numeralFormatter = new Cleave.NumeralFormatter(\n pps.numeralDecimalMark,\n pps.numeralIntegerScale,\n pps.numeralDecimalScale,\n pps.numeralThousandsGroupStyle,\n pps.numeralPositiveOnly,\n pps.stripLeadingZeroes,\n pps.prefix,\n pps.signBeforePrefix,\n pps.tailPrefix,\n pps.delimiter\n );\n },\n\n initTimeFormatter: function() {\n var owner = this, pps = owner.properties;\n\n if (!pps.time) {\n return;\n }\n\n pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern, pps.timeFormat);\n pps.blocks = pps.timeFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initDateFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.date) {\n return;\n }\n\n pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern, pps.dateMin, pps.dateMax);\n pps.blocks = pps.dateFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initPhoneFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.phone) {\n return;\n }\n\n // Cleave.AsYouTypeFormatter should be provided by\n // external google closure lib\n try {\n pps.phoneFormatter = new Cleave.PhoneFormatter(\n new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\n pps.delimiter\n );\n } catch (ex) {\n throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\n }\n },\n\n onKeyDown: function (event) {\n var owner = this,\n charCode = event.which || event.keyCode;\n\n owner.lastInputValue = owner.element.value;\n owner.isBackward = charCode === 8;\n },\n\n onChange: function (event) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n owner.isBackward = owner.isBackward || event.inputType === 'deleteContentBackward';\n\n var postDelimiter = Util.getPostDelimiter(owner.lastInputValue, pps.delimiter, pps.delimiters);\n\n if (owner.isBackward && postDelimiter) {\n pps.postDelimiterBackspace = postDelimiter;\n } else {\n pps.postDelimiterBackspace = false;\n }\n\n this.onInput(this.element.value);\n },\n\n onFocus: function () {\n var owner = this,\n pps = owner.properties;\n owner.lastInputValue = owner.element.value;\n\n if (pps.prefix && pps.noImmediatePrefix && !owner.element.value) {\n this.onInput(pps.prefix);\n }\n\n Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters);\n },\n\n onCut: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n this.onInput('');\n },\n\n onCopy: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n },\n\n copyClipboardData: function (e) {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n inputValue = owner.element.value,\n textToCopy = '';\n\n if (!pps.copyDelimiter) {\n textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\n } else {\n textToCopy = inputValue;\n }\n\n try {\n if (e.clipboardData) {\n e.clipboardData.setData('Text', textToCopy);\n } else {\n window.clipboardData.setData('Text', textToCopy);\n }\n\n e.preventDefault();\n } catch (ex) {\n // empty\n }\n },\n\n onInput: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n // case 1: delete one more character \"4\"\n // 1234*| -> hit backspace -> 123|\n // case 2: last character is not delimiter which is:\n // 12|34* -> hit backspace -> 1|34*\n // note: no need to apply this for numeral mode\n var postDelimiterAfter = Util.getPostDelimiter(value, pps.delimiter, pps.delimiters);\n if (!pps.numeral && pps.postDelimiterBackspace && !postDelimiterAfter) {\n value = Util.headStr(value, value.length - pps.postDelimiterBackspace.length);\n }\n\n // phone formatter\n if (pps.phone) {\n if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\n pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length);\n } else {\n pps.result = pps.phoneFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // numeral formatter\n if (pps.numeral) {\n // Do not show prefix when noImmediatePrefix is specified\n // This mostly because we need to show user the native input placeholder\n if (pps.prefix && pps.noImmediatePrefix && value.length === 0) {\n pps.result = '';\n } else {\n pps.result = pps.numeralFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // date\n if (pps.date) {\n value = pps.dateFormatter.getValidatedDate(value);\n }\n\n // time\n if (pps.time) {\n value = pps.timeFormatter.getValidatedTime(value);\n }\n\n // strip delimiters\n value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\n\n // strip prefix\n value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n\n // strip non-numeric characters\n value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\n\n // convert case\n value = pps.uppercase ? value.toUpperCase() : value;\n value = pps.lowercase ? value.toLowerCase() : value;\n\n // prevent from showing prefix when no immediate option enabled with empty input value\n if (pps.prefix) {\n if (pps.tailPrefix) {\n value = value + pps.prefix;\n } else {\n value = pps.prefix + value;\n }\n\n\n // no blocks specified, no need to do formatting\n if (pps.blocksLength === 0) {\n pps.result = value;\n owner.updateValueState();\n\n return;\n }\n }\n\n // update credit card props\n if (pps.creditCard) {\n owner.updateCreditCardPropsByValue(value);\n }\n\n // strip over length characters\n value = Util.headStr(value, pps.maxLength);\n\n // apply blocks\n pps.result = Util.getFormattedValue(\n value,\n pps.blocks, pps.blocksLength,\n pps.delimiter, pps.delimiters, pps.delimiterLazyShow\n );\n\n owner.updateValueState();\n },\n\n updateCreditCardPropsByValue: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util,\n creditCardInfo;\n\n // At least one of the first 4 characters has changed\n if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\n return;\n }\n\n creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\n\n pps.blocks = creditCardInfo.blocks;\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Util.getMaxLength(pps.blocks);\n\n // credit card type changed\n if (pps.creditCardType !== creditCardInfo.type) {\n pps.creditCardType = creditCardInfo.type;\n\n pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\n }\n },\n\n updateValueState: function () {\n var owner = this,\n Util = Cleave.Util,\n pps = owner.properties;\n\n if (!owner.element) {\n return;\n }\n\n var endPos = owner.element.selectionEnd;\n var oldValue = owner.element.value;\n var newValue = pps.result;\n\n endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters);\n\n // fix Android browser type=\"text\" input field\n // cursor not jumping issue\n if (owner.isAndroid) {\n window.setTimeout(function () {\n owner.element.value = newValue;\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n }, 1);\n\n return;\n }\n\n owner.element.value = newValue;\n if (pps.swapHiddenInput) owner.elementSwapHidden.value = owner.getRawValue();\n\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n },\n\n callOnValueChanged: function () {\n var owner = this,\n pps = owner.properties;\n\n pps.onValueChanged.call(owner, {\n target: {\n name: owner.element.name,\n value: pps.result,\n rawValue: owner.getRawValue()\n }\n });\n },\n\n setPhoneRegionCode: function (phoneRegionCode) {\n var owner = this, pps = owner.properties;\n\n pps.phoneRegionCode = phoneRegionCode;\n owner.initPhoneFormatter();\n owner.onChange();\n },\n\n setRawValue: function (value) {\n var owner = this, pps = owner.properties;\n\n value = value !== undefined && value !== null ? value.toString() : '';\n\n if (pps.numeral) {\n value = value.replace('.', pps.numeralDecimalMark);\n }\n\n pps.postDelimiterBackspace = false;\n\n owner.element.value = value;\n owner.onInput(value);\n },\n\n getRawValue: function () {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n rawValue = owner.element.value;\n\n if (pps.rawValueTrimPrefix) {\n rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n }\n\n if (pps.numeral) {\n rawValue = pps.numeralFormatter.getRawValue(rawValue);\n } else {\n rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\n }\n\n return rawValue;\n },\n\n getISOFormatDate: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.date ? pps.dateFormatter.getISOFormatDate() : '';\n },\n\n getISOFormatTime: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.time ? pps.timeFormatter.getISOFormatTime() : '';\n },\n\n getFormattedValue: function () {\n return this.element.value;\n },\n\n destroy: function () {\n var owner = this;\n\n owner.element.removeEventListener('input', owner.onChangeListener);\n owner.element.removeEventListener('keydown', owner.onKeyDownListener);\n owner.element.removeEventListener('focus', owner.onFocusListener);\n owner.element.removeEventListener('cut', owner.onCutListener);\n owner.element.removeEventListener('copy', owner.onCopyListener);\n },\n\n toString: function () {\n return '[Cleave Object]';\n }\n};\n\nCleave.NumeralFormatter = NumeralFormatter_1;\nCleave.DateFormatter = DateFormatter_1;\nCleave.TimeFormatter = TimeFormatter_1;\nCleave.PhoneFormatter = PhoneFormatter_1;\nCleave.CreditCardDetector = CreditCardDetector_1;\nCleave.Util = Util_1;\nCleave.DefaultProperties = DefaultProperties_1;\n\n// for angular directive\n((typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window)['Cleave'] = Cleave;\n\n// CommonJS\nvar Cleave_1 = Cleave;\n\nexport default Cleave_1;\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","var $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isIntegralNumber\n});\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number != number;\n }\n});\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_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_FORM_RADIO } from '../../constants/components';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formRadioCheckProps), formSizeProps), formStateProps)), NAME_FORM_RADIO); // --- Main component ---\n// @vue/component\n\nexport var BFormRadio = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO,\n mixins: [idMixin, formRadioCheckMixin, // Includes shared render function\n formControlMixin, formSizeMixin, formStateMixin],\n inject: {\n bvGroup: {\n from: 'bvRadioGroup',\n default: false\n }\n },\n props: props,\n watch: {\n computedLocalChecked: function computedLocalChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }\n }\n});","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_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","import { 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","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","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 -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.dismissible)?_c('b-alert',{directives:[{name:\"height-fade\",rawName:\"v-height-fade.appear\",modifiers:{\"appear\":true}}],staticClass:\"mb-2\",attrs:{\"variant\":_vm.variant,\"dismissible\":_vm.dismissible,\"show\":_vm.show}},[_c('div',{staticClass:\"alert-body\"},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":_vm.icon}}),_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")],1)]):_c('b-alert',{directives:[{name:\"height-fade\",rawName:\"v-height-fade.appear\",modifiers:{\"appear\":true}}],staticClass:\"mb-2\",attrs:{\"variant\":_vm.variant,\"show\":_vm.dismissCountDown,\"fade\":\"\",\"dismissible\":_vm.dismissible},on:{\"dismiss-count-down\":_vm.countDownChanged}},[_c('div',{staticClass:\"alert-body\"},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":_vm.icon}}),_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ message }}\n \n \n\n \n \n \n {{ message }}\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!./Alert.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!./Alert.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Alert.vue?vue&type=template&id=fc51b1d2&\"\nimport script from \"./Alert.vue?vue&type=script&lang=js&\"\nexport * from \"./Alert.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!./TableEntries.vue?vue&type=style&index=1&id=bcfccc92&lang=scss&scoped=true&\"","var _watch, _methods;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\n});","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true for is-valid\n * - false for is-invalid\n * - null for no contextual state\n */\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { isBoolean } from '../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Tri-state prop: true, false, null (or undefined)\n state: makeProp(PROP_TYPE_BOOLEAN, null)\n}, 'formState'); // --- Mixin ---\n// @vue/component\n\nexport var formStateMixin = Vue.extend({\n props: props,\n computed: {\n computedState: function computedState() {\n // If not a boolean, ensure that value is null\n return isBoolean(this.state) ? this.state : null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n return state === true ? 'is-valid' : state === false ? 'is-invalid' : null;\n },\n computedAriaInvalid: function computedAriaInvalid() {\n var ariaInvalid = this.ariaInvalid;\n\n if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n return 'true';\n }\n\n return this.computedState === false ? 'true' : ariaInvalid;\n }\n }\n});","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","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('cleave',{staticClass:\"form-control\",attrs:{\"id\":_vm.id,\"raw\":true,\"options\":_vm.options,\"placeholder\":_vm.placeholder,\"disabled\":_vm.readonly,\"autocomplete\":\"off\"},on:{\"input\":_vm.onInput},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=_vm._n($$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 {{ label }}\n \n \n {{ errors[0] }}\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!./InputNumberField.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!./InputNumberField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputNumberField.vue?vue&type=template&id=1d087349&\"\nimport script from \"./InputNumberField.vue?vue&type=script&lang=js&\"\nexport * from \"./InputNumberField.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=1&id=4d9d6277&lang=scss&scoped=true&\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to 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","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\"}}),(_vm.getUserPermission('CREATE_STANDING_ORDERS'))?_c('Button',{attrs:{\"label\":\"Add\",\"size\":\"md\"},on:{\"click\":function($event){return _vm.showModal('modal-lg')}}}):_vm._e()],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:\"standingOrderRef\",staticClass:\"position-relative\",attrs:{\"busy\":_vm.isBusy,\"per-page\":_vm.pageSize,\"current-page\":_vm.currentPage,\"items\":_vm.standingOrderList,\"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(amount)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.toBalance(data.value))+\"\\n \")]}},{key:\"cell(startDate)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value ? _vm.toDateWithYear(data.value) : '')+\"\\n \")]}},{key:\"cell(endDate)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value ? _vm.toDateWithYear(data.value) : '')+\"\\n \")]}},{key:\"cell(dateCreatedFinancial)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value ? _vm.toDateWithYear(data.value) : '')+\"\\n \")]}},{key:\"cell(lastTriggerDate)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value ? _vm.toDateWithYear(data.value) : '')+\"\\n \")]}},{key:\"cell(nextTriggerDate)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value ? _vm.toDateWithYear(data.value) : '')+\"\\n \")]}},{key:\"cell(computationType)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value ? _vm.addSpaceToString(data.value) : '')+\"\\n \")]}},{key:\"cell(type)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value ? _vm.addSpaceToString(data.value) : '')+\"\\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(actions)\",fn:function(data){return [_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('MODIFY_STANDING_ORDERS'))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.onSelectStandingOrderItem(data.item, $event.target, 'edit')}}},[_c('feather-icon',{attrs:{\"icon\":\"EditIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Modify\")])],1):_vm._e(),_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.onSelectStandingOrderItem(data.item, $event.target, 'view')}}},[_c('feather-icon',{attrs:{\"icon\":\"EyeIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"View\")])],1),(_vm.getUserPermission(data.item.status === 'Active' ? 'DEACTIVATE_STANDING_ORDERS' : 'ACTIVATE_STANDING_ORDERS'))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.standingOrderStatus(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' ? 'Deactivate' : 'Activate'))])],1):_vm._e()],1)],1)]}}])}),_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-lg\",\"ok-title\":_vm.buttonLabel,\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"size\":\"lg\",\"title\":_vm.modalTitle,\"ok-disabled\":_vm.isLoading},on:{\"ok\":_vm.handleSubmit,\"hidden\":_vm.resetModal},scopedSlots:_vm._u([(_vm.isReadonly)?{key:\"modal-footer\",fn:function(ref){return [_c('div')]}}:null],null,true)},[_c('validation-observer',{ref:\"standingOrderRules\"},[_c('b-form',[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"name\",\"label\":\"Order Name\",\"placeholder\":\"Enter order name\",\"type\":\"text\",\"error-name\":\"Order Name\",\"rules\":\"required\",\"for\":\"name\",\"readonly\":_vm.isReadonly},model:{value:(_vm.standingOrderFormData.description),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"description\", $$v)},expression:\"standingOrderFormData.description\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"order-type\",\"label\":\"Order Type\",\"placeholder\":\"Select\",\"options\":_vm.orderTypeOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"Order Type\",\"rules\":\"required\",\"item\":\"label\",\"readonly\":_vm.isReadonly,\"set-selected\":_vm.setOrderType},model:{value:(_vm.standingOrderFormData.type),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"type\", $$v)},expression:\"standingOrderFormData.type\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"transaction-type\",\"label\":\"Transaction Type\",\"placeholder\":\"Select\",\"options\":_vm.transactionTypeOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"Transaction Type\",\"rules\":\"required\",\"item\":\"label\",\"readonly\":_vm.isReadonly,\"set-selected\":_vm.setTransactionType},model:{value:(_vm.standingOrderFormData.computationType),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"computationType\", $$v)},expression:\"standingOrderFormData.computationType\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputNumberField',{attrs:{\"id\":\"amount\",\"label\":\"Amount\",\"placeholder\":\"Enter amount\",\"type\":\"number\",\"error-name\":\"Amount\",\"rules\":_vm.standingOrderAmount,\"readonly\":_vm.transactionType ? _vm.transactionType === 'Percentage' : _vm.isReadonly},model:{value:(_vm.standingOrderFormData.amount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"amount\", $$v)},expression:\"standingOrderFormData.amount\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"percentage-value\",\"label\":\"Percentage Value\",\"placeholder\":\"Enter percentage value\",\"type\":\"number\",\"error-name\":\"Percentage Value\",\"rules\":(_vm.standingOrderPecentage + \"|positive|upTo4Decimal|max-value:100\"),\"for\":\"percentage-value\",\"readonly\":_vm.transactionType ? _vm.transactionType === 'Flat' : _vm.isReadonly},model:{value:(_vm.standingOrderFormData.percentageValue),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"percentageValue\", $$v)},expression:\"standingOrderFormData.percentageValue\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"how-long\",\"label\":\"For How Long?\",\"placeholder\":\"Select\",\"options\":_vm.howLongOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"For How Long\",\"rules\":\"required\",\"item\":\"label\",\"readonly\":_vm.isReadonly,\"set-selected\":_vm.setForHowLong},model:{value:(_vm.standingOrderFormData.forHowLong),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"forHowLong\", $$v)},expression:\"standingOrderFormData.forHowLong\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"order-triggered-every\",\"label\":\"Order To Be Triggered Every\",\"placeholder\":\"Enter order to be triggered every\",\"type\":\"number\",\"error-name\":\"Order To Be Triggered Every\",\"rules\":\"required|integer\",\"for\":\"order-triggered-every\",\"readonly\":_vm.isReadonly},on:{\"input\":_vm.getComputedTenure},model:{value:(_vm.standingOrderFormData.sweepEvery),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"sweepEvery\", $$v)},expression:\"standingOrderFormData.sweepEvery\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"order-frequency\",\"label\":\"Order Frequency\",\"placeholder\":\"Select\",\"options\":_vm.orderFrequencyOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"Order Frequency\",\"rules\":\"required\",\"item\":\"label\",\"readonly\":_vm.isReadonly,\"set-selected\":_vm.setOrderFrequency},model:{value:(_vm.standingOrderFormData.frequency),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"frequency\", $$v)},expression:\"standingOrderFormData.frequency\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"over-many-cycles\",\"label\":\"Over How Many Cycles\",\"placeholder\":\"Enter over how many cycles\",\"type\":\"number\",\"error-name\":\"Over How Many Cycles\",\"rules\":\"required|integer\",\"for\":\"over-many-cycles\",\"readonly\":_vm.isReadonly},on:{\"input\":_vm.getComputedTenure},model:{value:(_vm.standingOrderFormData.overHowManyCycles),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"overHowManyCycles\", $$v)},expression:\"standingOrderFormData.overHowManyCycles\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"tenure\",\"label\":\"Tenure\",\"placeholder\":\"Enter tenure\",\"type\":\"number\",\"error-name\":\"Tenure\",\"rules\":\"required\",\"readonly\":\"\"},model:{value:(_vm.standingOrderFormData.tenure),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"tenure\", $$v)},expression:\"standingOrderFormData.tenure\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('DatePickerField',{attrs:{\"id\":\"start-date\",\"rules\":\"required\",\"label\":\"Start Date\",\"format\":\"Y-m-d\",\"error-name\":\"Start Date\",\"config\":_vm.datePickerConfig,\"disabled\":_vm.isReadonly},model:{value:(_vm.standingOrderFormData.startDate),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"startDate\", $$v)},expression:\"standingOrderFormData.startDate\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('DatePickerField',{attrs:{\"id\":\"end-date\",\"label\":\"End Date\",\"format\":\"Y-m-d\",\"rules\":_vm.standingOrderEndDate,\"error-name\":\"End Date\",\"config\":_vm.datePickerConfig,\"disabled\":_vm.forHowLongStatus ? _vm.forHowLongStatus === 'Continuous' : _vm.isReadonly},model:{value:(_vm.standingOrderFormData.endDate),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"endDate\", $$v)},expression:\"standingOrderFormData.endDate\"}})],1)],1),(_vm.accountOrderType === 'CASA-CASA')?_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"debit-account\",\"label\":\"Debit Account\",\"placeholder\":\"Search CASA\",\"type\":\"text\",\"error-name\":\"Debit Account\",\"rules\":\"required\",\"readonly\":_vm.isReadonly,\"on-input\":_vm.onViewCustomerDebitSearchModal},model:{value:(_vm.standingOrderFormData.debitAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"debitAccount\", $$v)},expression:\"standingOrderFormData.debitAccount\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"credit-account\",\"label\":\"Credit Account\",\"placeholder\":\"Search CASA\",\"type\":\"text\",\"error-name\":\"Credit Account\",\"rules\":\"required\",\"readonly\":_vm.isReadonly,\"on-input\":_vm.onViewCustomerCreditSearchModal},model:{value:(_vm.standingOrderFormData.creditAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"creditAccount\", $$v)},expression:\"standingOrderFormData.creditAccount\"}})],1)],1):_vm._e(),(_vm.accountOrderType === 'CASA-GL')?_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{staticClass:\"mt-0 mb-1\",attrs:{\"md\":\"6\"}},[_c('b-form-radio-group',{staticClass:\"demo-inline-spacing\",attrs:{\"options\":_vm.accountTypeListOptions,\"name\":\"radios-stacked-casa-gl\",\"stacked\":\"\",\"value-field\":\"value\",\"text-field\":\"text\",\"disabled-field\":\"disabled\"},model:{value:(_vm.accountTypeCasaGl),callback:function ($$v) {_vm.accountTypeCasaGl=$$v},expression:\"accountTypeCasaGl\"}}),(_vm.accountTypeCasaGl === 'SavingsAndCurrent')?_c('b-col',{staticClass:\"mt-2\",attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"debit-account\",\"label\":\"Debit Account\",\"placeholder\":\"Search CASA\",\"type\":\"text\",\"error-name\":\"Debit Account\",\"rules\":\"required\",\"readonly\":_vm.isReadonly,\"on-input\":_vm.onViewCustomerDebitSearchModal},model:{value:(_vm.standingOrderFormData.debitAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"debitAccount\", $$v)},expression:\"standingOrderFormData.debitAccount\"}})],1):_c('b-col',{staticClass:\"mt-2\",attrs:{\"md\":\"12\"}},[_c('SelectField',{attrs:{\"id\":\"debit-account\",\"label\":\"Debit Account\",\"placeholder\":\"Select GL\",\"options\":_vm.glAccountOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"Debit Account\",\"rules\":\"required\",\"item\":\"label\",\"loading\":_vm.isLoadingGlAccount,\"readonly\":_vm.isReadonly},model:{value:(_vm.standingOrderFormData.debitAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"debitAccount\", $$v)},expression:\"standingOrderFormData.debitAccount\"}})],1)],1),_c('b-col',{staticClass:\"mt-0 mb-1\",attrs:{\"md\":\"6\"}},[_c('b-form-radio-group',{staticClass:\"demo-inline-spacing\",attrs:{\"options\":_vm.accountTypeListOptions,\"name\":\"radios-stacked-gl-casa\",\"stacked\":\"\",\"value-field\":\"value\",\"text-field\":\"text\",\"disabled-field\":\"disabled\"},model:{value:(_vm.accountTypeGlCasa),callback:function ($$v) {_vm.accountTypeGlCasa=$$v},expression:\"accountTypeGlCasa\"}}),(_vm.accountTypeGlCasa === 'GeneralLedgerAccount')?_c('b-col',{staticClass:\"mt-2\",attrs:{\"md\":\"12\"}},[_c('SelectField',{attrs:{\"id\":\"credit-account\",\"label\":\"Credit Account\",\"placeholder\":\"Select GL\",\"options\":_vm.glAccountOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"Credit Account\",\"rules\":\"required\",\"item\":\"label\",\"loading\":_vm.isLoadingGlAccount,\"readonly\":_vm.isReadonly},model:{value:(_vm.standingOrderFormData.creditAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"creditAccount\", $$v)},expression:\"standingOrderFormData.creditAccount\"}})],1):_c('b-col',{staticClass:\"mt-2\",attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"credit-account\",\"label\":\"Credit Account\",\"placeholder\":\"Search CASA\",\"type\":\"text\",\"error-name\":\"Credit Account\",\"rules\":\"required\",\"readonly\":_vm.isReadonly,\"on-input\":_vm.onViewCustomerCreditSearchModal},model:{value:(_vm.standingOrderFormData.creditAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"creditAccount\", $$v)},expression:\"standingOrderFormData.creditAccount\"}})],1)],1)],1):_vm._e(),(_vm.accountOrderType === 'GL-GL')?_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"debit-account\",\"label\":\"Debit Account\",\"placeholder\":\"Select GL\",\"options\":_vm.glAccountOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"Debit Account\",\"rules\":\"required\",\"item\":\"label\",\"loading\":_vm.isLoadingGlAccount,\"readonly\":_vm.isReadonly},model:{value:(_vm.standingOrderFormData.debitAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"debitAccount\", $$v)},expression:\"standingOrderFormData.debitAccount\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"credit-account\",\"label\":\"Credit Account\",\"placeholder\":\"Select GL\",\"options\":_vm.glAccountOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"Credit Account\",\"rules\":\"required\",\"item\":\"label\",\"loading\":_vm.isLoadingGlAccount,\"readonly\":_vm.isReadonly},model:{value:(_vm.standingOrderFormData.creditAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"creditAccount\", $$v)},expression:\"standingOrderFormData.creditAccount\"}})],1)],1):_vm._e(),(_vm.accountOrderType === 'Default')?_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"debit-account\",\"label\":\"Debit Account\",\"placeholder\":\"Search CASA\",\"type\":\"text\",\"error-name\":\"Debit Account\",\"rules\":\"required\",\"readonly\":_vm.isReadonly,\"on-input\":_vm.onViewCustomerDebitSearchModal},model:{value:(_vm.standingOrderFormData.debitAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"debitAccount\", $$v)},expression:\"standingOrderFormData.debitAccount\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"credit-account\",\"label\":\"Credit Account\",\"placeholder\":\"Search CASA\",\"type\":\"text\",\"error-name\":\"Credit Account\",\"rules\":\"required\",\"readonly\":_vm.isReadonly,\"on-input\":_vm.onViewCustomerCreditSearchModal},model:{value:(_vm.standingOrderFormData.creditAccount),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"creditAccount\", $$v)},expression:\"standingOrderFormData.creditAccount\"}})],1)],1):_vm._e(),_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"debit-branch\",\"label\":\"Debit Branch\",\"placeholder\":\"Select\",\"options\":_vm.branchOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"Debit Branch\",\"rules\":\"required\",\"item\":\"label\",\"readonly\":_vm.isDebitCasaBranch ? _vm.isDebitCasaBranch : _vm.isReadonly},model:{value:(_vm.standingOrderFormData.debitBranchCode),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"debitBranchCode\", $$v)},expression:\"standingOrderFormData.debitBranchCode\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"credit-branch\",\"label\":\"Credit Branch\",\"placeholder\":\"Select\",\"options\":_vm.branchOptions,\"reduce\":function (option) { return option.value; },\"error-name\":\"Credit Branch\",\"rules\":\"required\",\"item\":\"label\",\"readonly\":_vm.isCreditCasaBranch ? _vm.isCreditCasaBranch : _vm.isReadonly},model:{value:(_vm.standingOrderFormData.creditBranchCode),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"creditBranchCode\", $$v)},expression:\"standingOrderFormData.creditBranchCode\"}})],1)],1),_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"debit-narration\",\"label\":\"Debit Narration\",\"placeholder\":\"Enter debit narration\",\"type\":\"text\",\"error-name\":\"Debit Narration\",\"rules\":\"required\",\"readonly\":_vm.isReadonly},on:{\"input\":_vm.getNarration},model:{value:(_vm.standingOrderFormData.debitNarration),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"debitNarration\", $$v)},expression:\"standingOrderFormData.debitNarration\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"credit-narration\",\"label\":\"Credit Narration\",\"placeholder\":\"Enter credit narration\",\"type\":\"text\",\"error-name\":\"Credit Narration\",\"rules\":\"required\",\"readonly\":_vm.isReadonly},model:{value:(_vm.standingOrderFormData.creditNarration),callback:function ($$v) {_vm.$set(_vm.standingOrderFormData, \"creditNarration\", $$v)},expression:\"standingOrderFormData.creditNarration\"}})],1)],1)],1)],1)],1),_c('b-modal',{ref:\"my-modal\",attrs:{\"id\":\"modal-filter\",\"ok-title\":\"Apply\",\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"no-close-on-backdrop\":\"\",\"centered\":\"\",\"size\":\"lg\",\"title\":\"Filters\",\"modal-footer\":\"\"},on:{\"ok\":_vm.fetchStandingOrder,\"cancel\":_vm.resetFilters}},[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"description\",\"label\":\"Order Name\",\"placeholder\":\"Enter description\",\"type\":\"text\"},model:{value:(_vm.filter.description),callback:function ($$v) {_vm.$set(_vm.filter, \"description\", $$v)},expression:\"filter.description\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"debit-account\",\"label\":\"Debit Account Number\",\"placeholder\":\"Enter debit account\",\"type\":\"text\"},model:{value:(_vm.filter.debitAccount),callback:function ($$v) {_vm.$set(_vm.filter, \"debitAccount\", $$v)},expression:\"filter.debitAccount\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"debit-account-name\",\"label\":\"Debit Account Name\",\"placeholder\":\"Enter debit account name\",\"type\":\"text\"},model:{value:(_vm.filter.debitAccountName),callback:function ($$v) {_vm.$set(_vm.filter, \"debitAccountName\", $$v)},expression:\"filter.debitAccountName\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"credit-account\",\"label\":\"Credit Account Number\",\"placeholder\":\"Enter credit account\",\"type\":\"text\"},model:{value:(_vm.filter.creditAccount),callback:function ($$v) {_vm.$set(_vm.filter, \"creditAccount\", $$v)},expression:\"filter.creditAccount\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"credit-account-name\",\"label\":\"Credit Account Name\",\"placeholder\":\"Enter credit account name\",\"type\":\"text\"},model:{value:(_vm.filter.creditAccountName),callback:function ($$v) {_vm.$set(_vm.filter, \"creditAccountName\", $$v)},expression:\"filter.creditAccountName\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"order-type\",\"label\":\"Order Type\",\"reduce\":function (option){ return option.value; },\"placeholder\":\"Select\",\"options\":_vm.orderTypeOptions,\"item\":\"label\"},model:{value:(_vm.filter.type),callback:function ($$v) {_vm.$set(_vm.filter, \"type\", $$v)},expression:\"filter.type\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"order-type\",\"label\":\"Transaction Type\",\"reduce\":function (option){ return option.value; },\"placeholder\":\"Select\",\"options\":_vm.transactionTypeOptions,\"item\":\"label\"},model:{value:(_vm.filter.computationType),callback:function ($$v) {_vm.$set(_vm.filter, \"computationType\", $$v)},expression:\"filter.computationType\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"frequency\",\"label\":\"Order Frequency\",\"reduce\":function (option){ return option.value; },\"placeholder\":\"Select\",\"options\":_vm.orderFrequencyOptions,\"item\":\"label\"},model:{value:(_vm.filter.frequency),callback:function ($$v) {_vm.$set(_vm.filter, \"frequency\", $$v)},expression:\"filter.frequency\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('DatePickerField',{attrs:{\"id\":\"start-date\",\"label\":\"Start Date\",\"format\":\"Y-m-d\",\"config\":_vm.datePickerConfig},model:{value:(_vm.filter.startDate),callback:function ($$v) {_vm.$set(_vm.filter, \"startDate\", $$v)},expression:\"filter.startDate\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('DatePickerField',{attrs:{\"id\":\"end-date\",\"label\":\"End Date\",\"format\":\"Y-m-d\",\"config\":_vm.datePickerConfig},model:{value:(_vm.filter.endDate),callback:function ($$v) {_vm.$set(_vm.filter, \"endDate\", $$v)},expression:\"filter.endDate\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"status\",\"label\":\"Status\",\"reduce\":function (option){ return option.value; },\"placeholder\":\"Select\",\"options\":_vm.statusOptions,\"item\":\"label\"},model:{value:(_vm.filter.status),callback:function ($$v) {_vm.$set(_vm.filter, \"status\", $$v)},expression:\"filter.status\"}})],1)],1)],1),_c('b-modal',{attrs:{\"id\":\"customer-debit-search-modal\",\"ok-title\":\"Search\",\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"centered\":\"\",\"size\":\"sm\",\"title\":\"Search Account\",\"modal-footer\":\"\"},on:{\"ok\":_vm.handleDebitSearch}},[_c('validation-observer',{ref:\"searchRules\"},[_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.handleDebitSearch.apply(null, arguments)}}},[_c('b-row',[_c('Alert',{attrs:{\"show\":_vm.showFormErrorAlert,\"message\":\"Customer's account name or account number or customer id is required\"}}),_c('b-col',{staticClass:\"mt-3\",attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"account-number\",\"label\":\"Customer Account Number\",\"placeholder\":\"Enter account number\",\"type\":\"text\",\"for\":\"account-number\"},model:{value:(_vm.searchParams.accountNumber),callback:function ($$v) {_vm.$set(_vm.searchParams, \"accountNumber\", $$v)},expression:\"searchParams.accountNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"account-name\",\"label\":\"Account Name\",\"placeholder\":\"Enter account name\",\"type\":\"text\",\"error-name\":\"\",\"rules\":\"\"},model:{value:(_vm.searchParams.accountName),callback:function ($$v) {_vm.$set(_vm.searchParams, \"accountName\", $$v)},expression:\"searchParams.accountName\"}})],1),_c('b-col',{attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"customer-id\",\"label\":\"Customer ID\",\"placeholder\":\"Enter customer id\",\"type\":\"text\",\"for\":\"customer-id\"},model:{value:(_vm.searchParams.customerID),callback:function ($$v) {_vm.$set(_vm.searchParams, \"customerID\", $$v)},expression:\"searchParams.customerID\"}})],1),_c('b-col',{attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"reference-number\",\"label\":\"Reference Number\",\"placeholder\":\"Enter reference number\",\"type\":\"text\"},model:{value:(_vm.searchParams.referenceNumber),callback:function ($$v) {_vm.$set(_vm.searchParams, \"referenceNumber\", $$v)},expression:\"searchParams.referenceNumber\"}})],1)],1)],1)],1)],1),_c('b-modal',{attrs:{\"id\":\"customer-credit-search-modal\",\"ok-title\":\"Search\",\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"centered\":\"\",\"size\":\"sm\",\"title\":\"Search Account\",\"modal-footer\":\"\"},on:{\"ok\":_vm.handleCreditSearch}},[_c('validation-observer',{ref:\"searchRules\"},[_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.handleCreditSearch.apply(null, arguments)}}},[_c('b-row',[_c('Alert',{attrs:{\"show\":_vm.showFormErrorAlert,\"message\":\"Customer's account name or account number or customer id is required\"}}),_c('b-col',{staticClass:\"mt-3\",attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"account-number\",\"label\":\"Customer Account Number\",\"placeholder\":\"Enter account number\",\"type\":\"text\",\"for\":\"account-number\"},model:{value:(_vm.searchParams.accountNumber),callback:function ($$v) {_vm.$set(_vm.searchParams, \"accountNumber\", $$v)},expression:\"searchParams.accountNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"account-name\",\"label\":\"Account Name\",\"placeholder\":\"Enter account name\",\"type\":\"text\",\"error-name\":\"\",\"rules\":\"\"},model:{value:(_vm.searchParams.accountName),callback:function ($$v) {_vm.$set(_vm.searchParams, \"accountName\", $$v)},expression:\"searchParams.accountName\"}})],1),_c('b-col',{attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"customer-id\",\"label\":\"Customer ID\",\"placeholder\":\"Enter customer id\",\"type\":\"text\",\"for\":\"customer-id\"},model:{value:(_vm.searchParams.customerID),callback:function ($$v) {_vm.$set(_vm.searchParams, \"customerID\", $$v)},expression:\"searchParams.customerID\"}})],1),_c('b-col',{attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"reference-number\",\"label\":\"Reference Number\",\"placeholder\":\"Enter reference number\",\"type\":\"text\"},model:{value:(_vm.searchParams.referenceNumber),callback:function ($$v) {_vm.$set(_vm.searchParams, \"referenceNumber\", $$v)},expression:\"searchParams.referenceNumber\"}})],1)],1)],1)],1)],1),_c('b-modal',{ref:\"search-debit-modal\",attrs:{\"id\":\"search-debit-modal\",\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"centered\":\"\",\"size\":\"lg\",\"title\":\"Customer Account Details\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(ref){return [_c('div')]}}])},[_c('b-table',{ref:\"customerListTable\",staticClass:\"position-relative\",attrs:{\"select-mode\":\"single\",\"items\":_vm.customerList,\"per-page\":_vm.pageSize,\"current-page\":_vm.currentPage,\"responsive\":\"\",\"fields\":_vm.tableSearchHeaders,\"primary-key\":\"id\",\"selectable\":\"\",\"show-empty\":\"\",\"empty-text\":\"No result found\",\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.sortDesc=$event},\"update:sort-desc\":function($event){_vm.sortDesc=$event},\"row-selected\":_vm.onSelectDebitCustomer},scopedSlots:_vm._u([{key:\"cell(SN)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.getOverallIndex(data.index))+\"\\n \")]}}])}),_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\"}})],1),_c('b-modal',{ref:\"search-credit-modal\",attrs:{\"id\":\"search-credit-modal\",\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"centered\":\"\",\"size\":\"lg\",\"title\":\"Customer Account Details\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(ref){return [_c('div')]}}])},[_c('b-table',{ref:\"customerListTable\",staticClass:\"position-relative\",attrs:{\"select-mode\":\"single\",\"items\":_vm.customerList,\"per-page\":_vm.pageSize,\"current-page\":_vm.currentPage,\"responsive\":\"\",\"fields\":_vm.tableSearchHeaders,\"primary-key\":\"id\",\"selectable\":\"\",\"show-empty\":\"\",\"empty-text\":\"No result found\",\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.sortDesc=$event},\"update:sort-desc\":function($event){_vm.sortDesc=$event},\"row-selected\":_vm.onSelectCreditCustomer},scopedSlots:_vm._u([{key:\"cell(SN)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.getOverallIndex(data.index))+\"\\n \")]}}])}),_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\"}})],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 \n \n {{ getOverallIndex(data.index) }}\n \n\n \n {{ toBalance(data.value) }}\n \n \n {{ data.value ? toDateWithYear(data.value) : '' }}\n \n \n {{ data.value ? toDateWithYear(data.value) : '' }}\n \n \n {{ data.value ? toDateWithYear(data.value) : '' }}\n \n \n {{ data.value ? toDateWithYear(data.value) : '' }}\n \n \n {{ data.value ? toDateWithYear(data.value) : '' }}\n \n \n {{ data.value ? addSpaceToString(data.value) : '' }}\n \n \n {{ data.value ? addSpaceToString(data.value) : '' }}\n \n\n \n \n {{ data.value }}\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n Modify\n \n\n \n \n View\n \n\n \n \n {{ data.item.status === 'Active' ? 'Deactivate' : 'Activate' }}\n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n option.value\"\n error-name=\"Order Type\"\n rules=\"required\"\n item=\"label\"\n :readonly=\"isReadonly\"\n :set-selected=\"setOrderType\"\n />\n \n \n option.value\"\n error-name=\"Transaction Type\"\n rules=\"required\"\n item=\"label\"\n :readonly=\"isReadonly\"\n :set-selected=\"setTransactionType\"\n />\n \n\n \n \n \n\n \n \n \n\n \n option.value\"\n error-name=\"For How Long\"\n rules=\"required\"\n item=\"label\"\n :readonly=\"isReadonly\"\n :set-selected=\"setForHowLong\"\n />\n \n\n \n \n \n \n option.value\"\n error-name=\"Order Frequency\"\n rules=\"required\"\n item=\"label\"\n :readonly=\"isReadonly\"\n :set-selected=\"setOrderFrequency\"\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 \n \n \n option.value\"\n error-name=\"Debit Account\"\n rules=\"required\"\n item=\"label\"\n :loading=\"isLoadingGlAccount\"\n :readonly=\"isReadonly\"\n />\n \n\n \n \n \n \n option.value\"\n error-name=\"Credit Account\"\n rules=\"required\"\n item=\"label\"\n :loading=\"isLoadingGlAccount\"\n :readonly=\"isReadonly\"\n />\n\n \n \n \n \n \n \n \n \n option.value\"\n error-name=\"Debit Account\"\n rules=\"required\"\n item=\"label\"\n :loading=\"isLoadingGlAccount\"\n :readonly=\"isReadonly\"\n />\n \n \n option.value\"\n error-name=\"Credit Account\"\n rules=\"required\"\n item=\"label\"\n :loading=\"isLoadingGlAccount\"\n :readonly=\"isReadonly\"\n />\n \n \n\n \n \n \n \n \n \n \n \n\n \n \n option.value\"\n error-name=\"Debit Branch\"\n rules=\"required\"\n item=\"label\"\n :readonly=\"isDebitCasaBranch ? isDebitCasaBranch : isReadonly\"\n />\n \n \n option.value\"\n error-name=\"Credit Branch\"\n rules=\"required\"\n item=\"label\"\n :readonly=\"isCreditCasaBranch ? isCreditCasaBranch : isReadonly\"\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 \n \n \n \n \n \n \n\n \n option.value\"\n placeholder=\"Select\"\n :options=\"orderTypeOptions\"\n item=\"label\"\n />\n \n \n option.value\"\n placeholder=\"Select\"\n :options=\"transactionTypeOptions\"\n item=\"label\"\n />\n \n \n option.value\"\n placeholder=\"Select\"\n :options=\"orderFrequencyOptions\"\n item=\"label\"\n />\n \n\n \n \n \n \n \n \n \n \n option.value\"\n placeholder=\"Select\"\n :options=\"statusOptions\"\n item=\"label\"\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 \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 \n\n \n \n \n \n\n \n \n \n {{ getOverallIndex(data.index) }}\n \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!./StandingOrder.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!./StandingOrder.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StandingOrder.vue?vue&type=template&id=7e1a41ea&\"\nimport script from \"./StandingOrder.vue?vue&type=script&lang=js&\"\nexport * from \"./StandingOrder.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_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 isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\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