{"version":3,"sources":["webpack:///./src/helpers/formatAmount.js","webpack:///./src/@core/directives/animations.js","webpack:///./node_modules/core-js/internals/string-repeat.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:///./node_modules/bootstrap-vue/esm/directives/tooltip/tooltip.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/image/img.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:///./node_modules/cleave.js/dist/cleave-esm.js","webpack:///./src/views/pages/posting-management/gl-posting/Batch/BatchGLPosting.vue?6732","webpack:///./node_modules/core-js/modules/es.number.is-integer.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack:///./node_modules/core-js/modules/es.number.is-nan.js","webpack:///./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack:///./src/views/components/button/Button.vue?5dc3","webpack:///src/views/components/button/Button.vue","webpack:///./src/views/components/button/Button.vue?2fad","webpack:///./src/views/components/button/Button.vue","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./src/views/forms/SelectField.vue?e97f","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:///./src/views/pages/posting-management/gl-posting/Batch/BatchGLPosting.vue?5ebe","webpack:///src/views/pages/posting-management/gl-posting/Batch/BatchGLPosting.vue","webpack:///./src/views/pages/posting-management/gl-posting/Batch/BatchGLPosting.vue?69be","webpack:///./src/views/pages/posting-management/gl-posting/Batch/BatchGLPosting.vue?c244","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/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/bootstrap-vue/esm/utils/noop.js","webpack:///./node_modules/popper.js/dist/esm/popper.js"],"names":["toAmount","amount","Intl","NumberFormat","maximumFractionDigits","minimumFractionDigits","style","currency","format","Number","toKobo","value","toFixed","toBalance","isInteger","formatAmount","toFormatAmount","replace","toFormatBalance","removeMoneyFormat","newText","isNaN","substring","length","containsFormattedNumber","str","regex","test","removeCommas","heightFade","inserted","el","binding","height","offsetHeight","modifiers","appear","overflow","maxHeight","opacity","setTimeout","unbind","undefined","global","toIntegerOrInfinity","toString","requireObjectCoercible","RangeError","module","exports","count","this","result","n","Infinity","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","bind","footer","footerClass","footerHtml","BCardFooter","extend","name","functional","props","render","h","_ref","_ref2","data","children","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","staticClass","class","concat","domProps","html","bottom","end","start","top","BCardImg","src","alt","width","baseClass","right","left","attrs","cardImgProps","imgSrc","required","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","get","Symbol","toStringTag","__esModule","create","default","prototype","hasOwnProperty","p","s","u","assign","a","type","on","blur","onBlur","validator","String","options","raw","Boolean","cleave","onValueChangedFn","mounted","$el","getOptions","methods","onValueChanged","rawValue","$emit","watch","deep","handler","destroy","setRawValue","getRawValue","beforeDestroy","component","install","BV_TOOLTIP","DefaultTrigger","validTriggers","focus","hover","click","manual","htmlRE","noninteractiveRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","parseBindings","bindings","vnode","config","title","trigger","placement","fallbackPlacement","container","animation","offset","id","interactive","disabled","delay","boundary","boundaryPadding","variant","customClass","show","hide","arg","mod","slice","selectedTriggers","join","trim","toLowerCase","split","applyTooltip","$parent","context","parent","_scopeId","__bv_prev_data__","$on","updateData","triggers","noFade","oldData","newData","prop","removeTooltip","$destroy","VBTooltip","componentUpdated","$nextTick","_vm","_h","$createElement","_c","_self","_u","fn","staticStyle","proxy","staticRenderFns","components","BOverlay","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","blank","blankColor","block","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","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","indexOf","NumeralFormatter_1","DateFormatter","datePattern","dateMin","dateMax","date","blocks","reverse","map","x","parseInt","unshift","initBlocks","getISOFormatDate","addLeadingZero","getBlocks","getValidatedDate","index","sub","sub0","rest","getFixedDateString","day","month","year","dayIndex","monthIndex","yearIndex","dayStartIndex","monthStartIndex","yearStartIndex","fullYearDone","getFixedDate","getRangeFixedDate","reduce","previous","current","addLeadingZeroForYear","find","Math","min","isLeapYear","number","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","formatter","setFormatter","phoneNumber","clear","validated","iMax","inputDigit","charAt","PhoneFormatter_1","CreditCardDetector","uatp","amex","diners","discover","mastercard","dankort","instapayment","jcb15","jcb","maestro","visa","mir","unionPay","general","re","getStrictBlocks","total","prev","getInfo","strictMode","matchedBlocks","CreditCardDetector_1","Util","noop","strip","getPostDelimiter","delimiters","matchedDelimiter","getDelimiterREByDelimiter","getNextCursorPosition","prevPos","oldValue","newValue","getPositionOffset","oldRawValue","newRawValue","lengthOffset","stripDelimiters","abs","letter","headStr","getMaxLength","getPrefixStrippedValue","prefixLength","prevResult","noImmediatePrefix","prevValue","getFirstDiffIndex","getFormattedValue","blocksLength","delimiterLazyShow","multipleDelimiters","currentDelimiter","fixPrefixCursor","val","appendix","setSelectionRange","len","checkFullSelection","selection","window","getSelection","document","ex","setSelection","element","position","doc","getActiveElement","createTextRange","range","move","select","console","warn","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","maxLength","backspace","DefaultProperties_1","Cleave","hasMultipleElements","querySelector","querySelectorAll","Error","properties","init","pps","isBackward","onChangeListener","onChange","onKeyDownListener","onKeyDown","onFocusListener","onFocus","onCutListener","onCut","onCopyListener","onCopy","initSwapHiddenInput","addEventListener","initPhoneFormatter","initDateFormatter","initTimeFormatter","initNumeralFormatter","onInput","inputFormatter","cloneNode","parentNode","insertBefore","elementSwapHidden","numeralFormatter","AsYouTypeFormatter","event","charCode","which","keyCode","inputType","postDelimiter","postDelimiterBackspace","copyClipboardData","inputValue","textToCopy","clipboardData","setData","preventDefault","postDelimiterAfter","updateValueState","toUpperCase","updateCreditCardPropsByValue","creditCardInfo","endPos","selectionEnd","callOnValueChanged","setPhoneRegionCode","removeEventListener","Cleave_1","$","isIntegralNumber","stat","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","arrowPadding","BVPopper","localShow","attachment","getAttachment","computed","templateType","popperConfig","_this","getOffset","flip","behavior","arrow","preventOverflow","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","created","_this2","$_popper","popperCreate","handleDestroy","$once","beforeMount","updated","updatePopper","destroyPopper","destroyed","removeChild","$refs","arrowOffset","scheduleUpdate","renderTemplate","_this3","beforeEnter","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","extends","mixins","content","templateClasses","noninteractive","templateAttributes","$attrs","role","tabindex","scopedStyleAttrs","templateListeners","mouseenter","mouseleave","focusin","focusout","innerHTML","ref","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","BVTooltip","activeTrigger","computedId","computedDelay","math","computedTriggers","identity","sort","isWithActiveTrigger","computedTemplateData","newTriggers","oldTriggers","unListen","array","listen","handleTemplateUpdate","disable","enable","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","getTarget","body","scopeId","deactivated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","getTemplate","titleUpdated","fixTitle","createTemplateAndShow","getContainer","Template","$tip","propsData","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","$mount","appendChild","createElement","hideTemplate","clearActiveTriggers","localPlacementTarget","_unused","removeAriaDescribedby","restoreTitle","getTemplateElement","_this4","dropdownOpen","showEvt","buildEvent","cancelable","emitEvent","defaultPrevented","addAriaDescribedby","force","tip","hideEvt","prevHoverState","leave","getTargetId","isInModal","isDropdown","clearTimeout","clearInterval","desc","_this5","relatedTarget","componentId","vueTarget","bvEvent","emitOnRoot","_this6","setRootListener","_this7","events","$root","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","_this9","documentElement","__vue__","enter","eventTarget","currentTarget","toggle","_this10","_this11","POSITION_COVER","bgColor","fixed","noCenter","noWrap","overlayTag","spinnerSmall","spinnerType","spinnerVariant","wrapTag","zIndex","computedRounded","computedVariant","defaultOverlayFn","small","$overlay","$background","backgroundColor","backdropFilter","transform","normalizeSlot","directives","rawName","expression","size","onClick","icon","showIcon","_e","_v","_s","label","BButton","BSpinner","Ripple","className","loading","uncurryThis","thisNumberValue","$repeat","fails","floor","repeat","stringSlice","un$ToFixed","pow","acc","log","x2","multiply","c2","divide","dataToString","FORCED","proto","forced","fractionDigits","z","j","k","fractDigits","sign","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","textTag","BCardText","showBackButton","actionType","backNavigationAction","repeatAccountToDebit","_l","item","refInFor","glAccountOptions","option","isLoadingGlAccount","$event","setGLToDebitAmount","glToDebit","model","callback","$$v","$set","debitEntryCodeOptions","showModal","branchOptions","isLoadingBranches","removeAccountToDebitItem","repeatAccountToCredit","setGLToCreditAmount","glToCredit","creditEntryCodeOptions","removeAccountToCreditItem","isLoading","isDisabled","handleSubmit","description","showSpinner","BRow","BCol","BModal","InputField","Button","SelectField","InputNumberField","FullScreenSpinner","ValidationObserver","sweetAlert","showFormErrorAlert","showCustomerInfo","customerList","positive","sortDesc","currentPage","selected","perPage","entryCodes","debitEntryCode","creditEntryCode","depositData","accountNumber","recordType","entryCode","narration","instrumentNumber","branchCode","postingFormData","postingData","realDate","dateTime","postingType","initiatedBy","accountToDebitFormData","accountName","accountToCreditFormData","posting","fetchGLAccount","showEntryCodeModal","splice","trTrimHeight","accountCreditRef","accounDebitRef","resetInputField","$router","errorName","rules","vid","errors","placeholder","readonly","nativeOn","handleKeyPress","disableCopyPaste","innerValue","_n","BFormGroup","ValidationProvider","Function","isAllowSpecialCharacters","isAllowCopyAndPaste","isAllowNegativeNumbers","hasValue","kCode","alertInfo","isObject","it","isFinite","$store","state","appConfig","isRTL","clearable","multiple","setSelected","BFormInvalidFeedback","vSelect","Array","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","debounce","isFunction","functionToCheck","getType","getStyleComputedProperty","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","max","getWindowSizes","classCallCheck","instance","Constructor","TypeError","createClass","descriptor","protoProps","staticProps","_extends","getClientRect","offsets","getBoundingClientRect","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","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","enabled","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","isCreated","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","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","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","step","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-0c77efcb.9ea7b05d.js","sourcesContent":["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 heightFade = {\n /* eslint-disable no-param-reassign */\n inserted(el, binding) {\n const height = `${el.offsetHeight}px`\n\n if (binding.modifiers.appear) {\n el.style.overflow = 'hidden'\n el.style.maxHeight = '0px'\n el.style.opacity = 0\n\n // Focus the element\n setTimeout(() => {\n el.style.maxHeight = height\n el.style.opacity = 1\n setTimeout(() => {\n el.style.overflow = 'unset'\n }, 300)\n }, 100)\n } else {\n el.style.maxHeight = height\n }\n },\n unbind(el) {\n if (el.style === undefined) return\n el.style.overflow = 'hidden'\n el.style.maxHeight = '0px'\n el.style.opacity = 0\n },\n /* eslint-enable no-param-reassign */\n}\n\nexport const temp = 2\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","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\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","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/Vue.extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\n }\n});","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});","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","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!./BatchGLPosting.vue?vue&type=style&index=0&id=b50d3cae&scoped=true&lang=css&\"","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","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\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_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\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 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});","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","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Button.vue?vue&type=template&id=501d0161&\"\nimport script from \"./Button.vue?vue&type=script&lang=js&\"\nexport * from \"./Button.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","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&\"","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n}, NAME_CARD_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BCardText = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_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.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('b-row',{staticClass:\"position-relative\"},[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('div',[_c('div',{staticClass:\"d-flex align-items-center justify-content-lg-start\"},[(_vm.showBackButton && _vm.actionType === 'save' || 'add')?_c('Button',{staticClass:\"mb-1\",attrs:{\"label\":\"List page\",\"size\":\"md\",\"icon\":\"ArrowLeftIcon\",\"show-icon\":\"\"},on:{\"click\":_vm.backNavigationAction}}):_vm._e()],1),_c('validation-observer',{ref:\"glPostingRules\"},[_c('div',{staticClass:\"d-flex mb-2 align-items-center justify-content-between\"},[_c('h5',[_vm._v(\"Account to Debit\")]),_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}}],staticClass:\"ml-4\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.repeatAccountToDebit}},[_c('feather-icon',{staticClass:\"mr-25\",attrs:{\"icon\":\"PlusIcon\"}}),_c('span',[_vm._v(\"Add New\")])],1)],1),_vm._l((_vm.accountToDebitFormData),function(item,index){return _c('b-row',{key:item.id,ref:\"accounDebitRef\",refInFor:true,attrs:{\"id\":item.id}},[_c('b-col',{attrs:{\"md\":\"2\"}},[_c('SelectField',{attrs:{\"id\":\"gl-to-debit\",\"label\":\"GL to Debit\",\"placeholder\":\"Select\",\"options\":_vm.glAccountOptions,\"reduce\":function (option) { return option; },\"rules\":\"required\",\"error-name\":\"Gl to Debit\",\"item\":\"label\",\"loading\":_vm.isLoadingGlAccount},on:{\"input\":function($event){return _vm.setGLToDebitAmount(item.glToDebit, index)}},model:{value:(item.glToDebit),callback:function ($$v) {_vm.$set(item, \"glToDebit\", $$v)},expression:\"item.glToDebit\"}})],1),_c('b-col',{attrs:{\"md\":\"1\"}},[_c('InputField',{attrs:{\"id\":\"account-number\",\"label\":\"Acc. No\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(item.accountNumber),callback:function ($$v) {_vm.$set(item, \"accountNumber\", $$v)},expression:\"item.accountNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"2\"}},[_c('SelectField',{attrs:{\"id\":\"entry-code-debit\",\"reduce\":function (option) { return option; },\"label\":\"Sort Code\",\"placeholder\":\"Select\",\"options\":_vm.debitEntryCodeOptions,\"error-name\":\"Sort Code\",\"rules\":\"required\",\"item\":\"label\"},model:{value:(item.entryCode),callback:function ($$v) {_vm.$set(item, \"entryCode\", $$v)},expression:\"item.entryCode\"}}),_c('h6',{staticClass:\"cursor-pointer text-secondary entry-code\",on:{\"click\":function($event){return _vm.showModal('modal-primary')}}},[_vm._v(\"\\n Sort code meaning?\\n \")])],1),_c('b-col',{attrs:{\"md\":\"2\"}},[_c('SelectField',{attrs:{\"id\":\"gl-to-debit\",\"reduce\":function (option) { return option.value; },\"label\":\"Branch\",\"placeholder\":\"Select\",\"options\":_vm.branchOptions,\"rules\":\"required\",\"error-name\":\"Branch to Debit\",\"item\":\"label\",\"loading\":_vm.isLoadingBranches},model:{value:(item.branchCode),callback:function ($$v) {_vm.$set(item, \"branchCode\", $$v)},expression:\"item.branchCode\"}})],1),_c('b-col',{attrs:{\"md\":\"1\"}},[_c('InputNumberField',{attrs:{\"id\":\"amount\",\"label\":\"Amount\",\"placeholder\":\"\",\"error-name\":\"Amount\",\"rules\":\"required|positive\"},model:{value:(item.amount),callback:function ($$v) {_vm.$set(item, \"amount\", $$v)},expression:\"item.amount\"}})],1),_c('b-col',{attrs:{\"md\":\"1\"}},[_c('InputField',{attrs:{\"id\":\"instrument-no\",\"label\":\"Instru. No\",\"placeholder\":\"\",\"type\":\"text\",\"rules\":\"required\",\"error-name\":\"Instrument No\"},model:{value:(item.instrumentNumber),callback:function ($$v) {_vm.$set(item, \"instrumentNumber\", $$v)},expression:\"item.instrumentNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"2\"}},[_c('InputField',{attrs:{\"id\":\"narration\",\"label\":\"Narration\",\"placeholder\":\"\",\"type\":\"text\",\"rules\":\"required\",\"error-name\":\"narration\"},model:{value:(item.narration),callback:function ($$v) {_vm.$set(item, \"narration\", $$v)},expression:\"item.narration\"}})],1),_c('b-col',{staticClass:\"mt-2\",attrs:{\"md\":\"1\"}},[_c('feather-icon',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.bottom\",value:('Remove'),expression:\"'Remove'\",modifiers:{\"hover\":true,\"bottom\":true}}],staticClass:\"mr-25 cursor-pointer text-danger\",attrs:{\"icon\":\"XIcon\"},on:{\"click\":function($event){return _vm.removeAccountToDebitItem(index)}}})],1)],1)}),_c('div',{staticClass:\"d-flex mb-2 mt-4 align-items-center justify-content-between\"},[_c('h5',[_vm._v(\"Account to Credit\")]),_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}}],staticClass:\"ml-4\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.repeatAccountToCredit}},[_c('feather-icon',{staticClass:\"mr-25\",attrs:{\"icon\":\"PlusIcon\"}}),_c('span',[_vm._v(\"Add New\")])],1)],1),_vm._l((_vm.accountToCreditFormData),function(item,index){return _c('b-row',{key:item.id,ref:\"accounCreditRef\",refInFor:true,attrs:{\"id\":item.id}},[_c('b-col',{attrs:{\"md\":\"2\"}},[_c('SelectField',{attrs:{\"id\":\"gl-to-credit\",\"reduce\":function (option) { return option; },\"label\":\"GL to Credit\",\"placeholder\":\"Select\",\"options\":_vm.glAccountOptions,\"error-name\":\"GL to Credit\",\"rules\":\"required\",\"item\":\"label\",\"loading\":_vm.isLoadingGlAccount},on:{\"input\":function($event){return _vm.setGLToCreditAmount(item.glToCredit, index)}},model:{value:(item.glToCredit),callback:function ($$v) {_vm.$set(item, \"glToCredit\", $$v)},expression:\"item.glToCredit\"}})],1),_c('b-col',{attrs:{\"md\":\"1\"}},[_c('InputField',{attrs:{\"id\":\"account-number\",\"label\":\"Acc. No\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(item.accountNumber),callback:function ($$v) {_vm.$set(item, \"accountNumber\", $$v)},expression:\"item.accountNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"2\"}},[_c('SelectField',{attrs:{\"id\":\"entry-code-credit\",\"reduce\":function (option) { return option; },\"label\":\"Sort Code\",\"placeholder\":\"Select\",\"options\":_vm.creditEntryCodeOptions,\"error-name\":\"Sort Code\",\"rules\":\"required\",\"item\":\"label\"},model:{value:(item.entryCode),callback:function ($$v) {_vm.$set(item, \"entryCode\", $$v)},expression:\"item.entryCode\"}}),_c('h6',{staticClass:\"cursor-pointer text-secondary entry-code\",on:{\"click\":function($event){return _vm.showModal('modal-primary')}}},[_vm._v(\"\\n Sort code meaning?\\n \")])],1),_c('b-col',{attrs:{\"md\":\"2\"}},[_c('SelectField',{attrs:{\"id\":\"gl-to-credit\",\"reduce\":function (option) { return option.value; },\"label\":\"Branch\",\"placeholder\":\"Select\",\"options\":_vm.branchOptions,\"rules\":\"required\",\"error-name\":\"Branch to Credit\",\"item\":\"label\",\"loading\":_vm.isLoadingBranches},model:{value:(item.branchCode),callback:function ($$v) {_vm.$set(item, \"branchCode\", $$v)},expression:\"item.branchCode\"}})],1),_c('b-col',{attrs:{\"md\":\"1\"}},[_c('InputNumberField',{attrs:{\"id\":\"amount\",\"label\":\"Amount\",\"placeholder\":\"\",\"error-name\":\"Amount\",\"rules\":\"required|positive\"},model:{value:(item.amount),callback:function ($$v) {_vm.$set(item, \"amount\", $$v)},expression:\"item.amount\"}})],1),_c('b-col',{attrs:{\"md\":\"1\"}},[_c('InputField',{attrs:{\"id\":\"instrument-no\",\"label\":\"Instru. No\",\"placeholder\":\"\",\"type\":\"text\",\"rules\":\"required\",\"error-name\":\"Instrument No\"},model:{value:(item.instrumentNumber),callback:function ($$v) {_vm.$set(item, \"instrumentNumber\", $$v)},expression:\"item.instrumentNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"2\"}},[_c('InputField',{attrs:{\"id\":\"naration\",\"label\":\"Naration\",\"placeholder\":\"\",\"type\":\"text\",\"rules\":\"required\",\"error-name\":\"naration\"},model:{value:(item.narration),callback:function ($$v) {_vm.$set(item, \"narration\", $$v)},expression:\"item.narration\"}})],1),_c('b-col',{staticClass:\"mt-2\",attrs:{\"md\":\"1\"}},[_c('feather-icon',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.bottom\",value:('Remove'),expression:\"'Remove'\",modifiers:{\"hover\":true,\"bottom\":true}}],staticClass:\"mr-25 cursor-pointer text-danger\",attrs:{\"icon\":\"XIcon\"},on:{\"click\":function($event){return _vm.removeAccountToCreditItem(index)}}})],1)],1)}),_c('div',{staticClass:\"text-center mt-5\"},[_c('Button',{attrs:{\"label\":\"Post\",\"loading\":_vm.isLoading,\"disabled\":_vm.isDisabled,\"size\":\"lg\"},on:{\"click\":_vm.handleSubmit}})],1)],2)],1)])],1),_c('b-modal',{attrs:{\"id\":\"modal-primary\",\"ok-only\":\"\",\"ok-title\":\"Close\",\"centered\":\"\",\"title\":\"Sort Code Meaning\"}},[_c('b-card-text',[_c('ul',_vm._l((_vm.entryCodes),function(item,index){return _c('li',{key:index},[_c('span',[_vm._v(_vm._s(item.name))]),_vm._v(\" - \"),_c('span',[_vm._v(_vm._s(item.description))])])}),0)])],1),_c('FullScreenSpinner',{attrs:{\"show\":_vm.showSpinner}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./BatchGLPosting.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!./BatchGLPosting.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BatchGLPosting.vue?vue&type=template&id=b50d3cae&scoped=true&\"\nimport script from \"./BatchGLPosting.vue?vue&type=script&lang=js&\"\nexport * from \"./BatchGLPosting.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BatchGLPosting.vue?vue&type=style&index=0&id=b50d3cae&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 \"b50d3cae\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('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","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&\"","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\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","export var noop = function noop() {};","/**!\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":""}