{"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:///./src/helpers/getStatusColor.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:///./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:///./node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./src/views/pages/fraud-monitor/Rules.vue?6ec5","webpack:///src/views/pages/fraud-monitor/Rules.vue","webpack:///./src/views/pages/fraud-monitor/Rules.vue?8804","webpack:///./src/views/pages/fraud-monitor/Rules.vue","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:///./src/assets/images/gif/loader.gif","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/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:///./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:///./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.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:///./src/views/forms/TextAreaField.vue?8312","webpack:///./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:///src/views/forms/TextAreaField.vue","webpack:///./src/views/forms/TextAreaField.vue?499b","webpack:///./src/views/forms/TextAreaField.vue","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./src/views/components/table/TablePagination.vue?0506","webpack:///./src/views/components/pagination/Pagination.vue?4307","webpack:///src/views/components/pagination/Pagination.vue","webpack:///./src/views/components/pagination/Pagination.vue?4a4f","webpack:///./src/views/components/pagination/Pagination.vue","webpack:///src/views/components/table/TablePagination.vue","webpack:///./src/views/components/table/TablePagination.vue?75ec","webpack:///./src/views/components/table/TablePagination.vue","webpack:///./src/views/forms/SelectField.vue?e97f","webpack:///./src/views/components/table/TableEntries.vue?1fad","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./src/views/forms/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:///./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","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","global","toIntegerOrInfinity","toString","requireObjectCoercible","RangeError","module","exports","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","end","start","top","BCardImg","src","alt","width","height","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","maxLength","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","el","_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","show","staticStyle","proxy","BOverlay","ariaLive","forceShow","tooltip","BFormInvalidFeedback","ariaInvalid","autocomplete","debounce","lazy","lazyFormatter","plaintext","trim","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","$on","clearTimeout","formatValue","force","undefined","updateValue","doUpdate","$input","setTimeout","composing","formattedValue","focus","showModal","resetFilter","transactionRuleData","tableHeaders","sortBy","onSelectTransactionRuleItem","item","editRuleStatus","buttonLabel","modalTitle","isLoading","handleSubmit","resetModal","rulesOptions","option","isEditable","transactionRuleFormData","$set","isReadonly","customerTypeOptions","accountTierOptions","TransactionRuleAction","productOptions","currencyCodeOptions","fetchTransactionRuleList","resetFilters","TransactionDirectionOptions","StatusOptions","BRow","BCol","SelectField","BTable","BModal","BSpinner","ValidationObserver","InputField","BDropdownItem","BDropdown","BBadge","TablePagination","Button","TextAreaField","InputNumberField","TableEntries","FullScreenSpinner","query","accountType","productCodes","tierLevel","rule","description","minimumAmount","action","notificationEmail","accountNumber","bankCode","fetchAllCurrencies","fetchCASAProducts","fetchTransactionRules","TYPES","list","max","noWheel","localType","computedAttrs","form","safeId","computedAriaInvalid","computedListeners","bvListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","removeSpecialChar","removeNegativeNumber","removeCharAndSpace","persistPhoneNumber","persistAccountNumber","title","titleTag","BCardTitle","subTitle","subTitleTag","subTitleTextVariant","BCardSubTitle","bodyClass","BCardBody","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","bodyTag","NumeralFormatter","numeralDecimalMark","numeralIntegerScale","numeralDecimalScale","numeralThousandsGroupStyle","numeralPositiveOnly","stripLeadingZeroes","prefix","signBeforePrefix","tailPrefix","delimiter","owner","groupStyle","thousand","delimiterRE","RegExp","lakh","wan","none","parts","partSign","partSignAndPrefix","partInteger","partDecimal","slice","split","NumeralFormatter_1","DateFormatter","datePattern","dateMin","dateMax","date","blocks","x","parseInt","unshift","initBlocks","getISOFormatDate","addLeadingZero","getBlocks","getValidatedDate","sub","sub0","rest","getFixedDateString","day","month","year","dayIndex","monthIndex","yearIndex","dayStartIndex","monthStartIndex","yearStartIndex","fullYearDone","toLowerCase","getFixedDate","getRangeFixedDate","reduce","previous","current","addLeadingZeroForYear","isLeapYear","fullYearMode","DateFormatter_1","TimeFormatter","timePattern","timeFormat","time","getISOFormatTime","getTimeFormatOptions","maxHourFirstDigit","maxHours","maxMinutesFirstDigit","maxMinutes","getValidatedTime","timeFormatOptions","getFixedTimeString","second","minute","hour","secondIndex","minuteIndex","hourIndex","secondStartIndex","minuteStartIndex","hourStartIndex","getFixedTime","TimeFormatter_1","PhoneFormatter","setFormatter","phoneNumber","clear","iMax","inputDigit","charAt","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","abs","letter","headStr","getMaxLength","getPrefixStrippedValue","prefixLength","prevResult","noImmediatePrefix","prevValue","getFirstDiffIndex","getFormattedValue","blocksLength","delimiterLazyShow","multipleDelimiters","currentDelimiter","fixPrefixCursor","appendix","len","checkFullSelection","selection","window","getSelection","ex","setSelection","element","position","doc","getActiveElement","createTextRange","range","move","console","parent","activeElement","shadowRoot","isAndroid","navigator","userAgent","isAndroidBackspaceKeydown","lastInputValue","currentInputValue","Util_1","DefaultProperties","opts","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","querySelector","querySelectorAll","Error","properties","init","pps","isBackward","onChangeListener","onKeyDownListener","onKeyDown","onFocusListener","onFocus","onCutListener","onCut","onCopyListener","onCopy","initSwapHiddenInput","addEventListener","initPhoneFormatter","initDateFormatter","initTimeFormatter","initNumeralFormatter","inputFormatter","cloneNode","parentNode","insertBefore","elementSwapHidden","numeralFormatter","AsYouTypeFormatter","charCode","which","inputType","postDelimiter","postDelimiterBackspace","copyClipboardData","inputValue","textToCopy","clipboardData","setData","postDelimiterAfter","updateValueState","toUpperCase","updateCreditCardPropsByValue","creditCardInfo","endPos","callOnValueChanged","setPhoneRegionCode","removeEventListener","Cleave_1","escapeChar","firstCharCode","charCodeAt","char","BFormRow","BFormValidFeedback","INPUTS","INPUT_SELECTOR","v","join","LEGEND_INTERACTIVE_ELEMENTS","breakpoint","feedbackAriaLive","invalidFeedback","labelClass","labelFor","labelSize","labelSrOnly","validFeedback","ariaDescribedby","contentColProps","getColProps","$props","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","updateAriaDescribedby","propValue","identity","attr","newIds","oldIds","ids","array","onLegendClick","tagName","inputs","computedState","isFieldset","$label","labelContent","labelId","labelTag","for","$invalidFeedback","invalidFeedbackContent","invalidFeedbackId","$validFeedback","validFeedbackContent","validFeedbackId","$description","descriptionContent","descriptionId","$","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","selector","els","boundary","dropleft","dropright","dropup","noFlip","popperOpts","dropdownMixin","provide","bvDropdown","inject","bvNavbar","visible","visibleChangePrevented","inNavbar","toggler","toggle","directionClass","boundaryClass","eventName","bvEvent","menu","relatedTarget","componentId","emitEvent","$off","focusToggler","showMenu","hideMenu","$_popper","$_hideTimeout","whileOpenListen","destroyPopper","clearHideTimeout","emitOnRoot","createPopper","focusMenu","getPopperConfig","updatePopper","scheduleUpdate","_unused","placement","popperConfig","modifiers","flip","enabled","boundariesElement","preventOverflow","isOpen","method","$root","rootCloseListener","vm","hide","refocus","$once","_event","onMousedown","onKeydown","onEsc","onSplitClick","hideHandler","up","items","getItems","focusItem","POSITION_COVER","bgColor","fixed","noCenter","noFade","noWrap","opacity","overlayTag","rounded","spinnerSmall","spinnerType","spinnerVariant","variant","wrapTag","zIndex","computedRounded","computedVariant","defaultOverlayFn","small","$overlay","$background","backgroundColor","backdropFilter","transform","appear","linkClass","inheritAttrs","bvAttrs","closeDropdown","formSizeMixin","BButton","Ripple","className","loading","uncurryThis","thisNumberValue","$repeat","fails","repeat","stringSlice","un$ToFixed","pow","acc","log","x2","multiply","c2","divide","dataToString","FORCED","proto","forced","fractionDigits","z","j","k","fractDigits","sign","rows","maxlength","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_createClass","protoProps","staticProps","OBSERVER_PROP_NAME","VisibilityObserver","vnode","margin","once","observer","doneOnce","createObserver","stop","IntersectionObserver","rootMargin","threshold","context","observe","entries","entry","isIntersecting","intersectionRatio","disconnect","mod","_prevModifiers","unbind","VBVisible","componentUpdated","maxRows","noAutoShrink","noResize","wrap","BFormTextarea","listeners","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","computedMaxRows","setHeight","visibleCallback","computeHeight","$isServer","lineHeight","border","borderTopWidth","borderBottomWidth","padding","paddingTop","paddingBottom","minHeight","oldHeight","scrollHeight","contentRows","isAllowNumbersWithComma","isAllowAccountNumbersWithComma","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","$t","Pagination","formStateMixin","_n","kCode","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleClass","toggleTag","toggleText","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","hasNormalizedSlot","$split","btnProps","href","$toggle","mousedown","$menu","SELECTOR","autofocus","formControlMixin","handleAutofocus","pill","link","isObject","it","isFinite","clearable","multiple","setSelected","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","getStyleComputedProperty","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","axis","sideA","sideB","parseFloat","getSize","getWindowSizes","classCallCheck","createClass","_extends","getClientRect","offsets","getBoundingClientRect","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","sort","b","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","findIndex","cur","match","runModifiers","ends","modifiersToRun","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","cancelAnimationFrame","isNumeric","setStyles","unit","setAttributes","setAttribute","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","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","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","shift","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","requestAnimationFrame","jquery","Utils","PopperUtils"],"mappings":"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","file":"js/chunk-268e053d.264090b7.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","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","'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 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 { 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});","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_TRANSACTION_RULE'))?_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:\"blackListRef\",staticClass:\"position-relative\",attrs:{\"busy\":_vm.isBusy,\"per-page\":_vm.pageSize,\"current-page\":_vm.currentPage,\"items\":_vm.transactionRuleData,\"responsive\":\"\",\"fields\":_vm.tableHeaders,\"primary-key\":\"id\",\"show-empty\":\"\",\"empty-text\":\"No records available\",\"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}},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(minimumAmount)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.toBalance(data.value))+\"\\n \")]}},{key:\"cell(status)\",fn:function(data){return [(data.value)?_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":_vm.getStatusColor(data.value)}},[_vm._v(\"\\n \"+_vm._s(data.value)+\"\\n \")]):_vm._e()]}},{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_TRANSACTION_RULE'))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.onSelectTransactionRuleItem(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.onSelectTransactionRuleItem(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_TRANSACTION_RULE' : 'ACTIVATE_TRANSACTION_RULE'))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.editRuleStatus(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:\"transactionRuleRules\"},[_c('b-form',[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"rule\",\"label\":\"Rule\",\"placeholder\":\"Select\",\"options\":_vm.rulesOptions,\"reduce\":function (option) { return option.value; },\"item\":\"label\",\"error-name\":\"Rule\",\"rules\":\"required\",\"readonly\":_vm.isEditable},model:{value:(_vm.transactionRuleFormData.rule),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"rule\", $$v)},expression:\"transactionRuleFormData.rule\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('TextAreaField',{attrs:{\"id\":\"description\",\"label\":\"Description\",\"placeholder\":\"Enter Description\",\"error-name\":\"Description\",\"rules\":\"required\",\"rows\":\"2\",\"readonly\":_vm.isReadonly},model:{value:(_vm.transactionRuleFormData.description),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"description\", $$v)},expression:\"transactionRuleFormData.description\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputNumberField',{attrs:{\"id\":\"value\",\"label\":\"Value\",\"placeholder\":\"Enter Value\",\"type\":\"text\",\"error-name\":\"Value\",\"rules\":\"required\",\"for\":\"name\",\"readonly\":_vm.isReadonly},model:{value:(_vm.transactionRuleFormData.value),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"value\", $$v)},expression:\"transactionRuleFormData.value\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"account-type\",\"label\":\"Account Type\",\"options\":_vm.customerTypeOptions,\"item\":\"label\",\"multiple\":\"\",\"reduce\":function (option) { return option.value; },\"placeholder\":\"Select\",\"error-name\":\"Account Type\",\"rules\":\"required\",\"readonly\":_vm.isReadonly},model:{value:(_vm.transactionRuleFormData.accountType),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"accountType\", $$v)},expression:\"transactionRuleFormData.accountType\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"tier-level\",\"label\":\"Account Tier Level\",\"options\":_vm.accountTierOptions,\"item\":\"label\",\"reduce\":function (option) { return option.value; },\"placeholder\":\"Select\",\"readonly\":_vm.isReadonly},model:{value:(_vm.transactionRuleFormData.tierLevel),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"tierLevel\", $$v)},expression:\"transactionRuleFormData.tierLevel\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"action\",\"label\":\"Action\",\"placeholder\":\"Select\",\"options\":_vm.TransactionRuleAction,\"reduce\":function (option) { return option.value; },\"item\":\"label\",\"error-name\":\"Action\",\"rules\":\"required\",\"readonly\":_vm.isReadonly},model:{value:(_vm.transactionRuleFormData.action),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"action\", $$v)},expression:\"transactionRuleFormData.action\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"product-codes\",\"label\":\"Product Code\",\"options\":_vm.productOptions,\"item\":\"label\",\"multiple\":\"\",\"reduce\":function (option) { return option.value; },\"placeholder\":\"Select\",\"readonly\":_vm.isReadonly},model:{value:(_vm.transactionRuleFormData.productCodes),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"productCodes\", $$v)},expression:\"transactionRuleFormData.productCodes\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputNumberField',{attrs:{\"id\":\"minimum-amount\",\"label\":\"Minimum Amount\",\"placeholder\":\"Enter Minimum Amount\",\"type\":\"text\",\"for\":\"name\",\"readonly\":_vm.isReadonly},model:{value:(_vm.transactionRuleFormData.minimumAmount),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"minimumAmount\", $$v)},expression:\"transactionRuleFormData.minimumAmount\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"currency-code\",\"label\":\"Currency\",\"reduce\":function (option) { return option; },\"options\":_vm.currencyCodeOptions,\"item\":\"label\",\"placeholder\":\"Select currency\",\"error-name\":\"Currency\",\"rules\":\"required\",\"readonly\":_vm.isReadonly},model:{value:(_vm.transactionRuleFormData.currency),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"currency\", $$v)},expression:\"transactionRuleFormData.currency\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('TextAreaField',{attrs:{\"id\":\"notification-email\",\"label\":\"Notification Email\",\"placeholder\":\"Enter Notification Email\",\"error-name\":\"Notification Email\",\"rules\":\"required\",\"rows\":\"2\",\"readonly\":_vm.isReadonly},model:{value:(_vm.transactionRuleFormData.notificationEmail),callback:function ($$v) {_vm.$set(_vm.transactionRuleFormData, \"notificationEmail\", $$v)},expression:\"transactionRuleFormData.notificationEmail\"}})],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.fetchTransactionRuleList,\"cancel\":_vm.resetFilters}},[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"name\",\"label\":\"Name\",\"placeholder\":\"Enter name\",\"type\":\"text\"},model:{value:(_vm.filter.name),callback:function ($$v) {_vm.$set(_vm.filter, \"name\", $$v)},expression:\"filter.name\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"currency-code\",\"label\":\"Currency\",\"reduce\":function (option) { return option; },\"options\":_vm.currencyCodeOptions,\"item\":\"label\",\"placeholder\":\"Select currency\"},model:{value:(_vm.filter.currency),callback:function ($$v) {_vm.$set(_vm.filter, \"currency\", $$v)},expression:\"filter.currency\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"action\",\"label\":\"Action\",\"placeholder\":\"Enter Action\",\"options\":_vm.TransactionRuleAction,\"reduce\":function (option) { return option.value; },\"item\":\"label\"},model:{value:(_vm.filter.action),callback:function ($$v) {_vm.$set(_vm.filter, \"action\", $$v)},expression:\"filter.action\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"transaction-direction\",\"label\":\"Transaction Direction\",\"placeholder\":\"Enter Transaction Direction\",\"options\":_vm.TransactionDirectionOptions,\"reduce\":function (option) { return option; },\"item\":\"label\"},model:{value:(_vm.filter.transactionDirection),callback:function ($$v) {_vm.$set(_vm.filter, \"transactionDirection\", $$v)},expression:\"filter.transactionDirection\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"status\",\"label\":\"Status\",\"placeholder\":\"Enter Status\",\"options\":_vm.StatusOptions,\"reduce\":function (option) { return option; },\"item\":\"label\"},model:{value:(_vm.filter.status),callback:function ($$v) {_vm.$set(_vm.filter, \"status\", $$v)},expression:\"filter.status\"}})],1)],1)],1),_c('FullScreenSpinner',{attrs:{\"show\":_vm.showSpinner}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n\n \n\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n {{ getOverallIndex(data.index) }}\n \n \n {{ toBalance(data.value) }}\n \n \n \n {{ data.value }}\n \n \n\n \n \n \n \n \n \n \n \n \n \n Modify\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 option.value\"\n item=\"label\"\n error-name=\"Rule\"\n rules=\"required\"\n :readonly=\"isEditable\"\n />\n \n \n \n \n \n \n \n \n option.value\"\n placeholder=\"Select\"\n error-name=\"Account Type\"\n rules=\"required\"\n :readonly=\"isReadonly\"\n />\n \n \n option.value\"\n placeholder=\"Select\"\n :readonly=\"isReadonly\"\n />\n \n \n option.value\"\n item=\"label\"\n error-name=\"Action\"\n rules=\"required\"\n :readonly=\"isReadonly\"\n />\n \n \n option.value\"\n placeholder=\"Select\"\n :readonly=\"isReadonly\"\n />\n \n \n \n \n\n \n option\"\n :options=\"currencyCodeOptions\"\n item=\"label\"\n placeholder=\"Select currency\"\n error-name=\"Currency\"\n rules=\"required\"\n :readonly=\"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 option\"\n :options=\"currencyCodeOptions\"\n item=\"label\"\n placeholder=\"Select currency\"\n />\n \n \n option.value\"\n item=\"label\"\n />\n \n \n option\"\n item=\"label\"\n />\n \n \n option\"\n item=\"label\"\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!./Rules.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!./Rules.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Rules.vue?vue&type=template&id=96deb6aa&\"\nimport script from \"./Rules.vue?vue&type=script&lang=js&\"\nexport * from \"./Rules.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_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});","module.exports = __webpack_public_path__ + \"img/loader.eb08adcf.gif\";","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&\"","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};","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});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_OVERLAY } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_OVERLAY } from '../../constants/slots';\nimport { toFloat } from '../../utils/number';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BSpinner } from '../spinner/spinner';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar POSITION_COVER = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n}; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Alternative to variant, allowing a specific\n // CSS color to be applied to the overlay\n bgColor: makeProp(PROP_TYPE_STRING),\n blur: makeProp(PROP_TYPE_STRING, '2px'),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n noCenter: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // If `true, does not render the default slot\n // and switches to absolute positioning\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false),\n opacity: makeProp(PROP_TYPE_NUMBER_STRING, 0.85, function (value) {\n var number = toFloat(value, 0);\n return number >= 0 && number <= 1;\n }),\n overlayTag: makeProp(PROP_TYPE_STRING, 'div'),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n show: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerSmall: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerType: makeProp(PROP_TYPE_STRING, 'border'),\n spinnerVariant: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'light'),\n wrapTag: makeProp(PROP_TYPE_STRING, 'div'),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING, 10)\n}, NAME_OVERLAY); // --- Main component ---\n// @vue/component\n\nexport var BOverlay = /*#__PURE__*/Vue.extend({\n name: NAME_OVERLAY,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n computedRounded: function computedRounded() {\n var rounded = this.rounded;\n return rounded === true || rounded === '' ? 'rounded' : !rounded ? '' : \"rounded-\".concat(rounded);\n },\n computedVariant: function computedVariant() {\n var variant = this.variant;\n return variant && !this.bgColor ? \"bg-\".concat(variant) : '';\n },\n slotScope: function slotScope() {\n return {\n spinnerType: this.spinnerType || null,\n spinnerVariant: this.spinnerVariant || null,\n spinnerSmall: this.spinnerSmall\n };\n }\n },\n methods: {\n defaultOverlayFn: function defaultOverlayFn(_ref) {\n var spinnerType = _ref.spinnerType,\n spinnerVariant = _ref.spinnerVariant,\n spinnerSmall = _ref.spinnerSmall;\n return this.$createElement(BSpinner, {\n props: {\n type: spinnerType,\n variant: spinnerVariant,\n small: spinnerSmall\n }\n });\n }\n },\n render: function render(h) {\n var _this = this;\n\n var show = this.show,\n fixed = this.fixed,\n noFade = this.noFade,\n noWrap = this.noWrap,\n slotScope = this.slotScope;\n var $overlay = h();\n\n if (show) {\n var $background = h('div', {\n staticClass: 'position-absolute',\n class: [this.computedVariant, this.computedRounded],\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n opacity: this.opacity,\n backgroundColor: this.bgColor || null,\n backdropFilter: this.blur ? \"blur(\".concat(this.blur, \")\") : null\n })\n });\n var $content = h('div', {\n staticClass: 'position-absolute',\n style: this.noCenter ?\n /* istanbul ignore next */\n _objectSpread({}, POSITION_COVER) : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)'\n }\n }, [this.normalizeSlot(SLOT_NAME_OVERLAY, slotScope) || this.defaultOverlayFn(slotScope)]);\n $overlay = h(this.overlayTag, {\n staticClass: 'b-overlay',\n class: {\n 'position-absolute': !noWrap || noWrap && !fixed,\n 'position-fixed': noWrap && fixed\n },\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n zIndex: this.zIndex || 10\n }),\n on: {\n click: function click(event) {\n return _this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n key: 'overlay'\n }, [$background, $content]);\n } // Wrap in a fade transition\n\n\n $overlay = h(BVTransition, {\n props: {\n noFade: noFade,\n appear: true\n },\n on: {\n 'after-enter': function afterEnter() {\n return _this.$emit(EVENT_NAME_SHOWN);\n },\n 'after-leave': function afterLeave() {\n return _this.$emit(EVENT_NAME_HIDDEN);\n }\n }\n }, [$overlay]);\n\n if (noWrap) {\n return $overlay;\n }\n\n return h(this.wrapTag, {\n staticClass: 'b-overlay-wrap position-relative',\n attrs: {\n 'aria-busy': show ? 'true' : null\n }\n }, noWrap ? [$overlay] : [this.normalizeSlot(), $overlay]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: this.$props,\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","import { 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","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},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-form-textarea',{attrs:{\"id\":_vm.id,\"value\":_vm.value,\"placeholder\":_vm.placeholder,\"state\":errors.length > 0 ? false:null,\"rows\":_vm.rows,\"maxlength\":_vm.maxlength,\"readonly\":_vm.readonly},on:{\"input\":_vm.onInput},nativeOn:{\"keypress\":function($event){return _vm.handleKeyPress.apply(null, arguments)}},model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),_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\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_TEXTAREA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect';\nimport { mathCeil, mathMax, mathMin } from '../../utils/math';\nimport { toInteger, toFloat } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { VBVisible } from '../../directives/visible/visible'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n maxRows: makeProp(PROP_TYPE_NUMBER_STRING),\n // When in auto resize mode, disable shrinking to content height\n noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the resize handle of textarea\n noResize: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),\n // 'soft', 'hard' or 'off'\n // Browser default is 'soft'\n wrap: makeProp(PROP_TYPE_STRING, 'soft')\n})), NAME_FORM_TEXTAREA); // --- Main component ---\n// @vue/component\n\nexport var BFormTextarea = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXTAREA,\n directives: {\n 'b-visible': VBVisible\n },\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return mathMax(toInteger(this.rows, 2), 2);\n },\n computedMaxRows: function computedMaxRows() {\n return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.disabled,\n required = this.required;\n return {\n id: this.safeId(),\n name: this.name || null,\n form: this.form || null,\n disabled: disabled,\n placeholder: this.placeholder || null,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.computedRows,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n localValue: function localValue() {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n\n /* istanbul ignore next */\n visibleCallback: function visibleCallback(visible) {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n computeHeight: function computeHeight() {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = toFloat(computedStyle.lineHeight, 1); // Calculate height of border and padding\n\n var border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);\n var padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = getStyle(el, 'height') || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n setStyle(el, 'height', 'auto');\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n setStyle(el, 'height', oldHeight); // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = mathMax((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = mathMax(mathCeil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n return h('textarea', {\n class: this.computedClass,\n style: this.computedStyle,\n directives: [{\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","\n \n\n \n {{ label }}\n \n \n 0 ? false:null\"\n :rows=\"rows\"\n :maxlength=\"maxlength\"\n :readonly=\"readonly\"\n @input=\"onInput\"\n @keypress.native=\"handleKeyPress\"\n />\n \n \n {{ errors[0] }}\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!./TextAreaField.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!./TextAreaField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextAreaField.vue?vue&type=template&id=ecc47568&\"\nimport script from \"./TextAreaField.vue?vue&type=script&lang=js&\"\nexport * from \"./TextAreaField.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mx-2 mb-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-start\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$t('Showing'))+\" \"+_vm._s(_vm.from)+\" \"+_vm._s(_vm.$t('to'))+\" \"+_vm._s(_vm.to)+\" \"+_vm._s(_vm.$t('of'))+\" \"+_vm._s(_vm.totalRows)+\" \"+_vm._s(_vm.$t('entries'))+\" \")])]),_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-end\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('Pagination',{attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-pagination',{staticClass:\"mb-0 mt-1 mt-sm-0\",attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"first-number\":\"\",\"last-number\":\"\",\"prev-class\":\"prev-item\",\"next-class\":\"next-item\"},scopedSlots:_vm._u([{key:\"prev-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronLeftIcon\",\"size\":\"18\"}})]},proxy:true},{key:\"next-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronRightIcon\",\"size\":\"18\"}})]},proxy:true}]),model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=24a69b3b&\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js&\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n \n\n \n {{ $t('Showing') }} {{ from }} {{ $t('to') }} {{ to }} {{ $t('of') }} {{ totalRows }} {{ $t('entries') }} \n \n\n \n \n \n \n\n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TablePagination.vue?vue&type=template&id=77d3811a&\"\nimport script from \"./TablePagination.vue?vue&type=script&lang=js&\"\nexport * from \"./TablePagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=style&index=0&lang=scss&\"","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&\"","/* 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});","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