{"version":3,"sources":["webpack:///./src/@core/mixins/permission.js","webpack:///./src/helpers/formatAmount.js","webpack:///./src/@core/mixins/table.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/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/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:///./src/views/pages/operations-management/utility/BulkSMS.vue?acb7","webpack:///src/views/pages/operations-management/utility/BulkSMS.vue","webpack:///./src/views/pages/operations-management/utility/BulkSMS.vue?5b9c","webpack:///./src/views/pages/operations-management/utility/BulkSMS.vue?4b57","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:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./src/views/components/button/Button.vue?5dc3","webpack:///src/views/components/button/Button.vue","webpack:///./src/views/components/button/Button.vue?2fad","webpack:///./src/views/components/button/Button.vue","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./src/views/forms/TextAreaField.vue?8312","webpack:///./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:///src/views/forms/TextAreaField.vue","webpack:///./src/views/forms/TextAreaField.vue?499b","webpack:///./src/views/forms/TextAreaField.vue","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./src/views/forms/SelectField.vue?e97f","webpack:///./src/views/pages/operations-management/utility/BulkSMS.vue?46ba","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./src/views/components/switch/Switch.vue?f7b3","webpack:///src/views/components/switch/Switch.vue","webpack:///./src/views/components/switch/Switch.vue?dcd1","webpack:///./src/views/components/switch/Switch.vue","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","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":["permissionMixin","computed","mapGetters","userData","methods","getUserPermission","value","this","permissions","includes","toAmount","amount","Intl","NumberFormat","maximumFractionDigits","minimumFractionDigits","style","currency","format","Number","toKobo","toFixed","toBalance","isInteger","formatAmount","toFormatAmount","replace","toFormatBalance","removeMoneyFormat","newText","isNaN","substring","length","containsFormattedNumber","str","regex","test","removeCommas","tableMixins","data","isBusy","showSpinner","sortDesc","searchQuery","statusFilter","perPage","pageSize","currentPage","perPageOptions","totalCount","statusOptions","approvalTotalCount","approvalPerPage","approvalPageSize","approvalCurrentPage","totalEntries","numberOfPages","Math","floor","from","to","min","approvalTotalEntries","approvalNumberOfPages","approvalFom","approvalTo","variantColor","status","getOverallIndex","index","global","toIntegerOrInfinity","toString","requireObjectCoercible","RangeError","module","exports","count","result","n","Infinity","props","id","inline","novalidate","validated","BForm","extend","name","functional","render","h","_ref","children","class","attrs","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","_ref2","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","staticClass","concat","domProps","html","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","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","BV_TOOLTIP","DefaultTrigger","validTriggers","focus","hover","click","blur","manual","htmlRE","noninteractiveRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","parseBindings","bindings","vnode","config","title","undefined","trigger","placement","fallbackPlacement","container","animation","offset","interactive","disabled","delay","boundary","String","boundaryPadding","variant","customClass","show","hide","arg","modifiers","mod","slice","selectedTriggers","join","trim","toLowerCase","split","applyTooltip","el","$parent","context","parent","_scopeId","__bv_prev_data__","$on","updateData","triggers","noFade","oldData","newData","prop","removeTooltip","$destroy","VBTooltip","componentUpdated","$nextTick","unbind","_vm","_h","$createElement","_c","_self","_u","fn","staticStyle","proxy","staticRenderFns","components","BOverlay","type","Boolean","component","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","_v","ref","option","productOptions","model","bulkSMS","callback","$$v","$set","expression","setAccountCharge","chargeAccount","_e","_s","message","isLoading","isDisabled","on","handleSubmit","directives","BRow","BCol","Button","ValidationObserver","SelectField","TextAreaField","InputField","SwitchButton","FullScreenSpinner","mixins","modal","isAccountCharge","positive","phoneNumbers","accountNumbers","productCodes","sendToOnlyActiveAccount","smsChargePerNotification","minimumBalance","selectedValue","$refs","bulkSMSRef","validate","then","success","resetInputField","$","isIntegralNumber","stat","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","arrowPadding","BVPopper","localShow","attachment","getAttachment","templateType","popperConfig","_this","getOffset","flip","behavior","arrow","element","preventOverflow","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","created","_this2","$_popper","popperCreate","handleDestroy","$once","beforeMount","updated","updatePopper","beforeDestroy","destroyPopper","destroyed","$el","parentNode","removeChild","toUpperCase","arrowOffset","destroy","scheduleUpdate","renderTemplate","_this3","appear","beforeEnter","$emit","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","extends","content","templateClasses","noninteractive","templateAttributes","$attrs","role","tabindex","scopedStyleAttrs","templateListeners","mouseenter","event","mouseleave","focusin","focusout","innerHTML","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","watch","newTriggers","oldTriggers","unListen","array","listen","handleTemplateUpdate","newValue","oldValue","disable","enable","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","noop","getTarget","document","body","scopeId","warn","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","d","options","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","setTimeout","_this11","number","POSITION_COVER","bgColor","fixed","noCenter","noWrap","opacity","overlayTag","spinnerSmall","spinnerType","spinnerVariant","wrapTag","zIndex","computedRounded","computedVariant","defaultOverlayFn","small","$overlay","$background","backgroundColor","backdropFilter","transform","normalizeSlot","plain","formCustomMixin","custom","rawName","size","onClick","icon","showIcon","label","BButton","BSpinner","Ripple","default","className","loading","uncurryThis","thisNumberValue","$repeat","fails","repeat","stringSlice","un$ToFixed","pow","x","acc","log","x2","multiply","c","c2","divide","dataToString","s","t","FORCED","proto","forced","fractionDigits","e","z","j","k","fractDigits","sign","errorName","rules","errors","placeholder","rows","maxlength","readonly","onInput","nativeOn","$event","handleKeyPress","innerValue","iconSize","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_createClass","protoProps","staticProps","prototype","OBSERVER_PROP_NAME","VisibilityObserver","margin","once","observer","visible","doneOnce","createObserver","stop","IntersectionObserver","handler","root","rootMargin","threshold","observe","entries","entry","isIntersecting","intersectionRatio","disconnect","_prevModifiers","VBVisible","maxRows","noAutoShrink","noResize","wrap","BFormTextarea","listeners","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","computedMaxRows","computedAttrs","safeId","form","autocomplete","plaintext","computedAriaInvalid","computedListeners","bvListeners","input","change","onChange","onBlur","localValue","setHeight","mounted","visibleCallback","computeHeight","$isServer","lineHeight","border","borderTopWidth","borderBottomWidth","paddingTop","paddingBottom","minHeight","oldHeight","scrollHeight","contentRows","computedClass","BFormGroup","ValidationProvider","Function","isAllowNumbersWithComma","isAllowAccountNumbersWithComma","hasValue","val","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","BFormCheckbox","inject","bvGroup","isChecked","checked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","state","vid","_watch","_methods","_makeModelMixin","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","ariaLabel","ariaLabelledby","button","buttonVariant","formRadioCheckMixin","inheritAttrs","hasFocus","get","set","isBtnMode","buttons","isPlain","isCustom","isSwitch","switches","switch","isInline","isRequired","computedName","groupName","computedForm","computedSize","computedState","computedButtonVariant","buttonClasses","bvAttrs","stateClass","handleFocus","$button","$label","for","isObject","it","isFinite","$store","appConfig","isRTL","item","clearable","reduce","multiple","setSelected","BFormInvalidFeedback","vSelect","Array","isBrowser","window","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","indexOf","microtaskDebounce","called","Promise","resolve","taskDebounce","scheduled","supportsMicroTasks","debounce","isFunction","functionToCheck","getType","call","getStyleComputedProperty","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","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","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","axis","sideA","sideB","parseFloat","getSize","max","parseInt","getWindowSizes","classCallCheck","createClass","_extends","assign","hasOwnProperty","getClientRect","offsets","getBoundingClientRect","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","map","area","a","b","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","findIndex","cur","match","runModifiers","ends","modifiersToRun","console","enabled","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","position","isCreated","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","prefix","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","removeEventListener","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","_requesting","requested","_data$offsets$arrow","querySelector","len","sideCapitalized","altSide","opSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","reverse","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-fccb019e.69ac62df.js","sourcesContent":["import { mapGetters } from 'vuex'\n\nexport const permissionMixin = {\n computed: {\n ...mapGetters({\n userData: 'auth/getCurrentUser',\n }),\n },\n methods: {\n getUserPermission(value) {\n return this.userData.permissions.includes(value)\n },\n },\n}\n\nexport const _ = null\n","export const toAmount = amount => (\n new Intl.NumberFormat('en-NG', {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n style: 'currency',\n currency: 'NGN',\n }).format(Number(amount))\n)\n\nexport const toKobo = value => (\n Number(((value) * 100).toFixed())\n)\n\nexport const toBalance = value => (\n Number.isInteger(Number(value)) ? toAmount(Number(value) / 100) : value\n)\n\nexport const toLedgerBalance = value => (\n toAmount(Number(value) * 100)\n)\n\nexport const formatAmount = value => (\n Number(value) / 100\n)\nexport const toFormatAmount = value => (\n (Number(value) / 100).toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,')\n // (Number(value) / 100).toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,').replace('.00', '')\n)\nexport const toFormatBalance = value => (\n (Number(value) / 100).toFixed(2)\n)\n\nexport const removeMoneyFormat = value => {\n let newText = value?.replace(/\\s/g, '').replace(/,/g, '')\n if (Number.isNaN(Number(value[0]))) {\n newText = newText.substring(1, newText.length)\n }\n return newText\n}\n\nexport const containsFormattedNumber = str => {\n if (str) {\n const regex = /\\b\\d{1,3}(,\\d{3})*\\.\\d{2}\\b/\n return regex.test(str)\n }\n return null\n}\nexport const removeCommas = str => {\n if (str) {\n return str.replace(/,/g, '')\n }\n return null\n}\n\nexport const datass = [\n {\n id: '7beeb1c6-12e7-eb11-82dc-0abb463f1216',\n name: 'DISBURSE_LOAN',\n description: 'Disburse Loan',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_USER',\n description: 'Create User',\n groupName: 'User Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_USER',\n description: 'Modify User',\n groupName: 'User Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_USER',\n description: 'Activate User',\n groupName: 'User Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_USER',\n description: 'Deactivate User',\n groupName: 'User Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '50eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_USER',\n description: 'View User',\n groupName: 'User Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '51eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_USER_ROLE',\n description: 'Create User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '52eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_USER_ROLE',\n description: 'Modify User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '53eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_USER_ROLE',\n description: 'Activate User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '54eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_USER_ROLE',\n description: 'Deactivate User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '55eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_USER_ROLE',\n description: 'View User Role',\n groupName: 'User Role Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '56eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_BRANCH',\n description: 'Create Branch',\n groupName: 'Branch Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '57eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_BRANCH',\n description: 'Modify Branch',\n groupName: 'Branch Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '58eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_BRANCH',\n description: 'Activate Branch ',\n groupName: 'Branch Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: true,\n },\n {\n id: '59eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_BRANCH',\n description: 'Deactivate Branch',\n groupName: 'Branch Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BRANCH',\n description: 'View Branch',\n groupName: 'Branch Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_REGION',\n description: 'Create Region',\n groupName: 'Region Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_REGION',\n description: 'Modify Region',\n groupName: 'Region Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_REGION',\n description: 'Activate Region',\n groupName: 'Region Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_REGION',\n description: 'Deactivate Region',\n groupName: 'Region Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_REGION',\n description: 'View Region',\n groupName: 'Region Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '60eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_SYSTEM_SETUP',\n description: 'Modify System Setup',\n groupName: 'System Setup',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '61eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SYSTEM_SETUP',\n description: 'View System Setup',\n groupName: 'System Setup',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '62eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_LIEN',\n description: 'Create Lien',\n groupName: 'Lien Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '63eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_LIEN',\n description: 'Modify Lien',\n groupName: 'Lien Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '64eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_LIEN',\n description: 'Activate Lien',\n groupName: 'Lien Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '65eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_LIEN',\n description: 'Deactivate Lien',\n groupName: 'Lien Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '66eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LIEN',\n description: 'View Lien',\n groupName: 'Lien Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '67eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'OPEN_CLOSE_BRANCH',\n description: 'Open/Close Branch',\n groupName: 'Business Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '68eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'OPEN_CLOSE_BUSINESS',\n description: 'Open/Close Business',\n groupName: 'Business Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '69eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'OPEN_CLOSE_BUSINESS_HISTORY',\n description: 'Open/Close Business History',\n groupName: 'Business Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'AUDIT_TRAIL',\n description: 'Audit Trail',\n groupName: 'Audit Trail Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_APPROVAL_SETUP',\n description: 'Create Approval Setup',\n groupName: 'Approval Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_APPROVAL_SETUP',\n description: 'Modify Approval Setup',\n groupName: 'Approval Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_APPROVAL_SETUP',\n description: 'View Approval Setups',\n groupName: 'Approval Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_BUSINESS_AUTOMATION',\n description: 'Create Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_BUSINESS_AUTOMATION',\n description: 'Modify Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '70eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_BUSINESS_AUTOMATION',\n description: 'Activate Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '71eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_BUSINESS_AUTOMATION',\n description: 'Deactivate Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '72eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BUSINESS_AUTOMATION',\n description: 'View Business Automation',\n groupName: 'Business Automation Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '73eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_SAVING_CURRENT_ACCOUNT',\n description: 'Create Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '74eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_SAVING_CURRENT_ACCOUNT',\n description: 'Modify Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '75eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_SAVING_CURRENT_ACCOUNT',\n description: 'Activate Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '76eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_SAVING_CURRENT_ACCOUNT',\n description: 'Deactivate Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '77eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SAVING_CURRENT_ACCOUNT',\n description: 'View Saving/Current Account',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '78eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CUSTOMER_ACCOUNT_BALANCE',\n description: 'View Customer Account Balance',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '79eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CLOSE_CUSTOMER_ACCOUNT',\n description: 'Customer Account Closure',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CLOSED_ACCOUNTS',\n description: 'View Closed Accounts',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_LOAN_ACCOUNT',\n description: 'Create Loan Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_LOAN_ACCOUNT',\n description: 'Modify Loan Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOAN_ACCOUNT',\n description: 'View Loan Account',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_FIXED_DEPOSIT_ACCOUNT',\n description: 'Create Fixed Deposit Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_FIXED_DEPOSIT_ACCOUNT',\n description: 'Modify Fixed Deposit Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '80eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'LIQUIDATE_FIXED_DEPOSIT_ACCOUNT',\n description: 'Liquidate Fixed Deposit Account',\n groupName: 'Customer Account Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '81eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_FIXED_DEPOSIT_ACCOUNT',\n description: 'View Fixed Deposit Account',\n groupName: 'Customer Account Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '82eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_OVERDRAFT',\n description: 'Create Overdraft',\n groupName: 'Overdraft',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '83eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_OVERDRAFT',\n description: 'Modify Overdraft',\n groupName: 'Overdraft',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '84eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_OVERDRAFT',\n description: 'View Overdraft Accounts',\n groupName: 'Overdraft',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '85eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_OVERDRAFT',\n description: 'Activate Overdraft',\n groupName: 'Overdraft',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '86eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_OVERDRAFT',\n description: 'Deactivate Overdraft',\n groupName: 'Overdraft',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '87eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_GENERAL_LEDGER',\n description: 'Create General Ledger',\n groupName: 'General Ledger Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '88eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_GENERAL_LEDGER',\n description: 'Modify General Ledger',\n groupName: 'General Ledger Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '89eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_GENERAL_LEDGER',\n description: 'View General Ledger',\n groupName: 'General Ledger Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_GENERAL_LEDGER',\n description: 'Activate General Ledger',\n groupName: 'General Ledger Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_GENERAL_LEDGER',\n description: 'Deactivate General Ledger ',\n groupName: 'General Ledger Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_COT_FEE',\n description: 'Create COT Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_COT_FEE',\n description: 'Modify COT Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_COT_FEE',\n description: 'View COT Fee',\n groupName: 'Fee Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_COT_FEE',\n description: 'Activate COT Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '90eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_COT_FEE',\n description: 'Deactivate COT Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '91eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_OVERDRAFT_FEE',\n description: 'Create Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '92eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_OVERDRAFT_FEE',\n description: 'Modify Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '93eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_OVERDRAFT_FEE',\n description: 'View Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '94eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_OVERDRAFT_FEE',\n description: 'Activate Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '95eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_OVERDRAFT_FEE',\n description: 'Deactivate Overdraft Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '96eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_LOAN_FEE',\n description: 'Create Loan Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '97eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_LOAN_FEE',\n description: 'Modify Loan Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '98eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOAN_FEE',\n description: 'View Loan Fee',\n groupName: 'Fee Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '99eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_LOAN_FEE',\n description: 'Activate Loan Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9aeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_LOAN_FEE',\n description: 'Deactivate Loan Fee',\n groupName: 'Fee Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9beeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_INTEREST',\n description: 'Create Interest',\n groupName: 'Interest Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9ceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_INTEREST',\n description: 'Modify Interest',\n groupName: 'Interest Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9deeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_INTEREST',\n description: 'View Interest',\n groupName: 'Interest Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9eeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_INTEREST',\n description: 'Activate Interest',\n groupName: 'Interest Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9feeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_INTEREST',\n description: 'Deactivate Interest',\n groupName: 'Interest Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_CHARGE',\n description: 'Create Charge',\n groupName: 'Charge Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_CHARGE',\n description: 'Modify Charge',\n groupName: 'Charge Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CHARGE',\n description: 'View Charge',\n groupName: 'Charge Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_CHARGE',\n description: 'Activate Charge',\n groupName: 'Charge Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_CHARGE',\n description: 'Deactivate Charge',\n groupName: 'Charge Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_INDIVIDUAL_CUSTOMER',\n description: 'Create Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_INDIVIDUAL_CUSTOMER',\n description: 'Modify Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_INDIVIDUAL_CUSTOMER',\n description: 'View Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_INDIVIDUAL_CUSTOMER',\n description: 'Activate Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'a9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_INDIVIDUAL_CUSTOMER',\n description: 'Deactivate Individual Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'aaeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_GROUP_CUSTOMER',\n description: 'Create Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'abeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_GROUP_CUSTOMER',\n description: 'Modify Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'aceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_GROUP_CUSTOMER',\n description: 'View Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'adeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_GROUP_CUSTOMER',\n description: 'Activate Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'aeeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_GROUP_CUSTOMER',\n description: 'Deactivate Group Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'afeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_CORPORATE_CUSTOMER',\n description: 'Create Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_CORPORATE_CUSTOMER',\n description: 'Modify Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CORPORATE_CUSTOMER',\n description: 'View Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_CORPORATE_CUSTOMER',\n description: 'Activate Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_CORPORATE_CUSTOMER',\n description: 'Deactivate Corporate Customer',\n groupName: 'Customer Information Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_SAVING_CURRENT_PRODUCT',\n description: 'Create Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_SAVING_CURRENT_PRODUCT',\n description: 'Modify Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SAVING_CURRENT_PRODUCT',\n description: 'View Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_SAVING_CURRENT_PRODUCT',\n description: 'Activate Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_SAVING_CURRENT_PRODUCT',\n description: 'Deactivate Saving/Current Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_LOAN_PRODUCT',\n description: 'Create Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'baeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_LOAN_PRODUCT',\n description: 'Modify Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bbeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOAN_PRODUCT',\n description: 'View Loan Product',\n groupName: 'Product Manangement',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_LOAN_PRODUCT',\n description: 'Activate Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bdeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_LOAN_PRODUCT',\n description: 'Deactivate Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'beeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_FIXED_DEPOSIT_PRODUCT',\n description: 'Create Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bfeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_FIXED_DEPOSIT_PRODUCT',\n description: 'Modify Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_FIXED_DEPOSIT_PRODUCT',\n description: 'View Loan Product',\n groupName: 'Product Manangement',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_FIXED_DEPOSIT_PRODUCT',\n description: 'Activate Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_FIXED_DEPOSIT_PRODUCT',\n description: 'Deactivate Loan Product',\n groupName: 'Product Manangement',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_ACCOUNT_OFFICER',\n description: 'Create Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_ACCOUNT_OFFICER',\n description: 'Modify Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_ACCOUNT_OFFICER',\n description: 'View Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_ACCOUNT_OFFICER',\n description: 'Activate Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_ACCOUNT_OFFICER',\n description: 'Deactivate Account Officer',\n groupName: 'Account Officer Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CASH_DEPOSIT_POSTING',\n description: 'Cash Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CASH_DEPOSIT_POSTING_LIST',\n description: 'View Cash Deposits Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'caeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CASH_WITHDRAWAL_POSTING',\n description: 'Cash Withdrawal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cbeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CASH_WITHDRAWAL_POSTING_LIST',\n description: 'View Cash Withdrawal Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'LOCAL_FUNDS_TRANSFER_POSTING',\n description: 'Local Funds Transfer Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cdeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOCAL_FUNDS_TRANSFER_POSTING',\n description: 'View Local Funds Transfer Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ceeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'SINGLE_JOURNAL_POSTING',\n description: 'Single Journal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cfeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SINGLE_JOURNAL_POSTING',\n description: 'View Single Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'BATCH_JOURNAL_POSTING',\n description: 'Batch Journal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BATCH_JOURNAL_POSTING',\n description: 'View Batch Journal Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'SINGLE_JOURNAL_TO_CUSTOMER_POSTING',\n description: 'Single Journal to Customer Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SINGLE_JOURNAL_TO_CUSTOMER_POSTING',\n description: 'View Single Journal to Customer Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'BATCH_JOURNAL_TO_CUSTOMER_POSTING',\n description: 'Batch Journal to Customer Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BATCH_JOURNAL_TO_CUSTOMER_POSTING',\n description: 'View Batch Journal to Customer Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'BATCH_JOURNAL_UPLOAD_POSTING',\n description: 'Batch Journal Upload Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BATCH_JOURNAL_UPLOAD_POSTING',\n description: 'View Batch Journal Upload Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'BUY_CASH_POSTING',\n description: 'Buy Cash Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BUY_CASH_POSTING',\n description: 'View Buy Cash Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'daeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'SELL_CASH_POSTING',\n description: 'Sell Cash Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'dbeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_SELL_CASH_POSTING',\n description: 'View Sell Cash Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'dceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'REVERSAL_POSTING',\n description: 'Reversal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ddeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_REVERSAL_POSTING',\n description: 'View Reversal Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'deeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CHEQUE_WITHDRAWAL_POSTING',\n description: 'Cheque Withdrawal Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'dfeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CHEQUE_WITHDRAWAL_POSTING',\n description: 'View Cheque Withdrawal Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'LOCAL_CHEQUE_DEPOSIT_POSTING',\n description: 'Local Cheque Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_LOCAL_CHEQUE_DEPOSIT_POSTING',\n description: 'View Local Cheque Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'OUTWARD_CHEQUE_DEPOSIT_POSTING',\n description: 'Outward Cheque Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_OUTWARD_CHEQUE_DEPOSIT_POSTING',\n description: 'View Outward Cheque Deposit Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TELLER_TO_TELLER_POSTING',\n description: 'Teller to Teller Posting',\n groupName: 'Posting Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_TELLER_TO_TELLER_POSTING',\n description: 'View Teller to Teller Posting',\n groupName: 'Posting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CREATE_ACCOUNT_CATEGORY',\n description: 'Create Account Category',\n groupName: 'Account Category Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MODIFY_ACCOUNT_CATEGORY',\n description: 'Modify Account Category',\n groupName: 'Account Category Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_ACCOUNT_CATEGORY',\n description: 'View Account Category',\n groupName: 'Account Category Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'ACTIVATE_ACCOUNT_CATEGORY',\n description: 'Activate Account Category',\n groupName: 'Account Category Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'eaeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'DEACTIVATE_ACCOUNT_CATEGORY',\n description: 'Deactivate Account Category',\n groupName: 'Account Category Management',\n isApprovable: true,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ebeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_CHART_OF_ACCOUNT_REPORT',\n description: 'View Chart of Account',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'eceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_CHART_OF_ACCOUNT_REPORT',\n description: 'Export Chart of Account',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'edeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_TRIAL_BALANCE_REPORT',\n description: 'View Trial Balance Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'eeeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TRIAL_BALANCE_REPORT',\n description: 'Export Trial Balance Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'efeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_PROFIT_OR_LOSS_REPORT',\n description: 'View Profit or Loss Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f0eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_PROFIT_OR_LOSS_REPORT',\n description: 'Export Profit or Loss Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f1eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'VIEW_BALANCE_SHEET_REPORT',\n description: 'View Balance Sheet Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f2eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_BALANCE_SHEET_REPORT',\n description: 'Export Balance Sheet Report',\n groupName: 'Financial Reporting Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f3eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'GL_CLOSING_BALANCE_HISTORY_REPORT',\n description: 'GL Closing Balance History ',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f4eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CUSTOMER_CLOSING_BALANCE_HISTORY_REPORT',\n description: 'Customer Closing Balance History',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f5eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TOTAL_DEPOSIT_LIABILITY_REPORT',\n description: 'Total Deposit Liability Report',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f6eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TOTAL_DEPOSIT_LIABILITY_REPORT',\n description: 'Export Total Deposit Liability Report',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f7eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TOTAL_OVERDRAWN_ACCOUNT_REPORT',\n description: 'Total Overdrawn Account Report',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f8eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_OVERDRAWN_ACCOUNT_REPORT',\n description: 'Export Overdrawn Account Report',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f9eeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'MANAGE_CLEARING_CHEQUES',\n description: 'Manage Clearing Cheques',\n groupName: 'Management Information System',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'faeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TRANSACTION_CALLOVER_REPORT',\n description: 'View Transaction Callover Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'fbeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TRANSACTION_CALLOVER_REPORT',\n description: 'Export Transaction Callover Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'fceeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'END_OF_DAY_TRANSACTION_REPORT',\n description: 'View End of Day Transaction Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'fdeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_END_OF_DAY_TRANSACTION_REPORT',\n description: 'Export End of Day Transaction Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'feeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TOTAL_DEPOSIT_TRANSACTION_REPORT',\n description: 'Veiw Total Deposit Transaction Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ffeeb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TOTAL_DEPOSIT_TRANSACTION_REPORT',\n description: 'Export Total Deposit Transaction Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '00efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TOTAL_CASH_WITHDRAWAL_REPORT',\n description: 'View Total Cash Withdrawal Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '01efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TOTAL_CASH_WITHDRAWAL_REPORT',\n description: 'Export Total Cash Withdrawal Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '02efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'TELLER_TILL_REPORT',\n description: \"View Teller's Till Report\",\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '03efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'EXPORT_TELLER_TILL_REPORT',\n description: \"Export Teller's Till Report\",\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '04efb1c6-12e7-eb11-82dc-0abb469f1216',\n name: 'CHECK_MY_TILL_SUMMARY',\n description: 'Check My Till Summary',\n groupName: 'Transaction Reporting',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '87bcf41f-b034-ec11-82dc-0abb469f1216',\n name: 'VIEW_PENALTY',\n description: 'View Penalties',\n groupName: 'Penalty Management',\n isApprovable: false,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'fe460738-b034-ec11-82dc-0abb469f1216',\n name: 'CREATE_PENALTY',\n description: 'Create Penalties',\n groupName: 'Penalty Management',\n isApprovable: true,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9f21aa4c-b034-ec11-82dc-0abb469f1216',\n name: 'MODIFY_PENALTY',\n description: 'Modify Penalties',\n groupName: 'Penalty Management',\n isApprovable: true,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '243b6160-b034-ec11-82dc-0abb469f1216',\n name: 'ACTIVATE_PENALTY',\n description: 'Activate Penalties',\n groupName: 'Penalty Management',\n isApprovable: true,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '0316ce6e-b034-ec11-82dc-0abb469f1216',\n name: 'DEACTIVATE_PENALTY',\n description: 'Deactivate Penalties',\n groupName: 'Penalty Management',\n isApprovable: true,\n dateCreated: '2021-10-23T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '1173b523-5458-ec11-82dc-0abb469f1216',\n name: 'BATCH_ACCOUNT_UPLOAD',\n description: 'Batch Account Upload',\n groupName: 'Data Upload',\n isApprovable: true,\n dateCreated: '2021-12-08T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '7e29c63b-5458-ec11-82dc-0abb469f1216',\n name: 'BATCH_LOAN_UPLOAD',\n description: 'Batch Loan Upload',\n groupName: 'Data Upload',\n isApprovable: true,\n dateCreated: '2021-12-08T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'd31b2ed1-bd4b-4110-bbdf-17e5b46adceb',\n name: 'OVERDRAFT_REPORT',\n description: 'View Overdraft Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'c365cb95-c7cb-47d0-b603-1b051a65fede',\n name: 'VIEW_EXECUTIVE_DASHBOARD',\n description: 'Executive Dashboard',\n groupName: 'Dashboard Reports',\n isApprovable: false,\n dateCreated: '2022-04-10T10:38:52.5366667',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '05f505cc-edd5-4f37-b128-2878ec5e9f73',\n name: 'EXPORT_OVERDRAFT_REPORT',\n description: 'Export Overdraft Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'cd6028ef-8433-4106-8037-29e1e6178fd1',\n name: 'EXPORT_DEPOSITS_BALANCE_REPORT',\n description: 'Export Deposits Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '9a7770a9-4b00-48c1-bd7f-2b415f38fdc9',\n name: 'EXPORT_LOAN_REPAYMENT_REPORT',\n description: 'Export Loan Repayment Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b4a0471f-f31c-4157-bf9a-319bd2ec47b5',\n name: 'ACCOUNT_BALANCE_MOVEMENT_REPORT',\n description: 'View Account Balance Movement Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'be5987a6-f271-4be9-a97b-32c63475b0aa',\n name: 'EXPORT_DAILY_TILL_BALANCE_REPORT',\n description: 'Export Daily Till Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '12befcd4-0442-43c9-aede-354c27bb11d4',\n name: 'VIEW_BASIC_DASHBOARD',\n description: 'General Dashboard',\n groupName: 'Dashboard Reports',\n isApprovable: false,\n dateCreated: '2022-04-10T10:39:45.64',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ac2655e9-dbe8-4ea3-970c-4d4e0fd6c4cf',\n name: 'GL_HISTORY_REPORT',\n description: 'View GL History Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '25baf72b-994a-43c4-9cec-4f295ca58c8f',\n name: 'FIXED_DEPOSITS_REPORT',\n description: 'View Fixed Deposits Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '5b638862-bed2-4213-9916-5706bb967197',\n name: 'EXPORT_GL_HISTORY_REPORT',\n description: 'Export GL History Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '6de7eaee-673a-437c-9482-6b5eb9bc37e7',\n name: 'EXPORT_LOANS_AND_ADVANCES_REPORT',\n description: 'Export Loan & Advances Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '8efc1e0e-3840-4b9f-b0f8-6dafca2c2bfd',\n name: 'DAILY_TILL_BALANCE_REPORT',\n description: 'View Daily Till Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'e6f4c79d-4a41-44f2-a4fb-75acc1d93242',\n name: 'EXPORT_LOAN_TRACKING_REPORT',\n description: 'Export Loan Tracking Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '49c8b404-88aa-416f-a288-7b5ba7f34aa7',\n name: 'LOAN_AND_ADVANCES_REPORT',\n description: 'View Loan & Advances Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '689d8a0f-b498-455f-898b-98ac40f7fb1d',\n name: 'ACCOUNT_BALANCE_REPORT',\n description: 'View Account Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'ff99b473-f376-4341-ae20-9f124410e8ea',\n name: 'EXPORT_ACCOUNT_BALANCE_REPORT',\n description: 'Export Account Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '76dcd111-5de5-44ef-8935-b543f9260ed1',\n name: 'LOAN_TRACKING_REPORT',\n description: 'View Loan Tracking Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '389250d3-32b1-48ee-8c6a-bc477131a44f',\n name: 'EXPORT_ACCOUNT_HISTORY_REPORT',\n description: 'Export Account History Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '510f6c04-8189-4978-99f3-d80a065085a8',\n name: 'DEPOSITS_BALANCE_REPORT',\n description: 'View Deposits Balance Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'b7792915-d6e2-4bc0-b9c2-d84161d594c8',\n name: 'EXPORT_ACCOUNT_BALANCE_MOVEMENT_REPORT',\n description: 'Export Account Balance Movement Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '67b3677e-e6ea-46d1-ae78-d8dea0608345',\n name: 'EXPORT_FIXED_DEPOSITS_REPORT',\n description: 'Export Fixed Deposit Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'f93f68d8-84d2-4f80-88d0-ea5480fb8395',\n name: 'RESET_PASSWORD',\n description: 'Reset Password',\n groupName: 'User Management',\n isApprovable: false,\n dateCreated: '2021-07-16T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: 'bffc0306-167d-49d8-9932-f3b482759f04',\n name: 'LOAN_REPAYMENT_REPORT',\n description: 'View Loan Repayment Report',\n groupName: 'Credit & Loan Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n {\n id: '4446315f-9ac3-422d-8527-f589fad1342d',\n name: 'ACCOUNT_HISTORY_REPORT',\n description: 'View Account History Report',\n groupName: 'Operational Reports',\n isApprovable: false,\n dateCreated: '2022-03-10T00:00:00',\n dateLastModified: null,\n hasApprovalConfigured: false,\n },\n]\n","export const tableMixins = {\n data() {\n return {\n isBusy: false,\n showSpinner: false,\n sortDesc: false,\n searchQuery: '',\n statusFilter: '',\n perPage: 10,\n pageSize: 0,\n currentPage: 1,\n perPageOptions: [10, 25, 50, 100],\n totalCount: 0,\n statusOptions: [\n 'Active',\n 'Inactive',\n ],\n approvalTotalCount: 0,\n approvalPerPage: 10,\n approvalPageSize: 0,\n approvalCurrentPage: 1,\n }\n },\n computed: {\n totalEntries() {\n return this.totalCount\n },\n numberOfPages() {\n return Math.floor((this.totalEntries + this.perPage - 1) / this.perPage)\n },\n from() {\n if (this.totalCount === 0) {\n return 0\n }\n return (this.currentPage * this.perPage) - (this.perPage - 1)\n },\n to() {\n return Math.min(this.from + this.perPage - 1, this.totalEntries)\n },\n approvalTotalEntries() {\n return this.approvalTotalCount\n },\n approvalNumberOfPages() {\n return Math.floor((this.approvalTotalCount + this.approvalPerPage - 1) / this.approvalPerPage)\n },\n approvalFom() {\n if (this.approvalTotalCount === 0) {\n return 0\n }\n return (this.approvalCurrentPage * this.approvalPerPage) - (this.approvalPerPage - 1)\n },\n approvalTo() {\n return Math.min(this.approvalFom + this.approvalPerPage - 1, this.approvalTotalCount)\n },\n },\n methods: {\n variantColor(status) {\n return status === 'Active' ? 'light-success' : 'light-secondary'\n },\n getOverallIndex(index) {\n return (this.currentPage * this.perPage) - this.perPage + index + 1\n },\n },\n}\n\nexport const _ = null\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NAME_TOOLTIP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\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 { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip'; // Key which we use to store tooltip object on element\n\nvar BV_TOOLTIP = '__BV_Tooltip__'; // Default trigger\n\nvar DefaultTrigger = 'hover focus'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noninteractiveRE = /^noninteractive$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Tooltip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'top',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n id: null,\n html: false,\n interactive: true,\n disabled: false,\n delay: getComponentConfig(NAME_TOOLTIP, 'delay', 50),\n boundary: String(getComponentConfig(NAME_TOOLTIP, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_TOOLTIP, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_TOOLTIP, 'variant'),\n customClass: getComponentConfig(NAME_TOOLTIP, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is tooltip content (HTML optionally supported)\n config.title = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Title generator function\n config.title = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (noninteractiveRE.test(mod)) {\n // Noninteractive\n config.interactive = false;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of tooltip\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of tooltip\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n } // Return the config\n\n\n return config;\n}; // Add/update Tooltip on our element\n\n\nvar applyTooltip = function applyTooltip(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_TOOLTIP]) {\n var $parent = vnode.context;\n el[BV_TOOLTIP] = new BVTooltip({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_TOOLTIP].__bv_prev_data__ = {};\n el[BV_TOOLTIP].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the tooltip, we update the title if it is a function\n if (isFunction(config.title)) {\n el[BV_TOOLTIP].updateData({\n title: config.title(el)\n });\n }\n });\n }\n\n var data = {\n title: config.title,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n interactive: config.interactive,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_TOOLTIP].__bv_prev_data__;\n el[BV_TOOLTIP].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // if title is a function, we execute it here\n newData[prop] = prop === 'title' && isFunction(data[prop]) ? data[prop](el) : data[prop];\n }\n });\n el[BV_TOOLTIP].updateData(newData);\n }\n}; // Remove Tooltip on our element\n\n\nvar removeTooltip = function removeTooltip(el) {\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].$destroy();\n el[BV_TOOLTIP] = null;\n }\n\n delete el[BV_TOOLTIP];\n}; // Export our directive\n\n\nexport var VBTooltip = {\n bind: function bind(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent render update loops\n vnode.context.$nextTick(function () {\n applyTooltip(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removeTooltip(el);\n }\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-overlay',{attrs:{\"id\":\"overlay-background\",\"show\":_vm.show,\"variant\":\"transparent\",\"opacity\":\"0.85\",\"blur\":\"2px\",\"rounded\":\"sm\",\"no-wrap\":\"\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center\",staticStyle:{\"height\":\"120px\",\"width\":\"70px\"}},[_c('img',{attrs:{\"src\":require(\"../../../assets/images/gif/loader.gif\"),\"alt\":\"udara360-logo\",\"width\":\"100%\",\"height\":\"100%\"}})])]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","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 render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"m-2\"},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('h5',{staticClass:\"section-label mb-3\"},[_vm._v(\"\\n Bulk SMS\\n \")])]),_c('b-col',{staticClass:\"align-items-center justify-content-start mb-1 mb-md-0\",attrs:{\"md\":\"12\"}},[_c('validation-observer',{ref:\"bulkSMSRef\"},[_c('b-form',[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"4\"}},[_c('SelectField',{attrs:{\"id\":\"products\",\"reduce\":function (option) { return option.value; },\"label\":\"Products\",\"placeholder\":\"Select\",\"options\":_vm.productOptions,\"item\":\"label\",\"multiple\":\"\"},model:{value:(_vm.bulkSMS.productCodes),callback:function ($$v) {_vm.$set(_vm.bulkSMS, \"productCodes\", $$v)},expression:\"bulkSMS.productCodes\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('TextAreaField',{attrs:{\"id\":\"phone-number\",\"placeholder\":\"Enter Phone number separated with commas\",\"rows\":\"1\",\"label\":\"Enter Phone number separated with comma (,)\",\"is-allow-numbers-with-comma\":false},model:{value:(_vm.bulkSMS.phoneNumbers),callback:function ($$v) {_vm.$set(_vm.bulkSMS, \"phoneNumbers\", $$v)},expression:\"bulkSMS.phoneNumbers\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('TextAreaField',{attrs:{\"id\":\"account-number\",\"placeholder\":\"Enter Account number separated with commas\",\"rows\":\"1\",\"label\":\"Enter Account number separated with comma (,)\",\"is-allow-account-numbers-with-comma\":false},model:{value:(_vm.bulkSMS.accountNumbers),callback:function ($$v) {_vm.$set(_vm.bulkSMS, \"accountNumbers\", $$v)},expression:\"bulkSMS.accountNumbers\"}})],1)],1),_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{staticClass:\"mb-0 mt-0\",attrs:{\"md\":\"12\"}},[_c('SwitchButton',{attrs:{\"label\":\"Charge Account?\",\"name\":\"charge-account\",\"change\":_vm.setAccountCharge(_vm.bulkSMS.chargeAccount)},model:{value:(_vm.bulkSMS.chargeAccount),callback:function ($$v) {_vm.$set(_vm.bulkSMS, \"chargeAccount\", $$v)},expression:\"bulkSMS.chargeAccount\"}})],1)],1),_c('b-row',{staticClass:\"match-height\"},[(_vm.isAccountCharge)?_c('b-col',{staticClass:\"mb-0 mt-0\",attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"sms-charge-per-notification\",\"label\":\"SMS Charge Per Notification\",\"placeholder\":\"SMS Charge Per Notification\",\"type\":\"number\",\"rules\":\"required|limited2Decimal\",\"error-name\":\"SMS Charge Per Notification\"},model:{value:(_vm.bulkSMS.smsChargePerNotification),callback:function ($$v) {_vm.$set(_vm.bulkSMS, \"smsChargePerNotification\", $$v)},expression:\"bulkSMS.smsChargePerNotification\"}})],1):_vm._e(),(_vm.isAccountCharge)?_c('b-col',{staticClass:\"mb-0 mt-0\",attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"minimum-balance\",\"label\":\"Minimum Balance\",\"placeholder\":\"Minimum Balance\",\"type\":\"number\",\"error-name\":\"Minimum Balance\",\"rules\":\"required|limited2Decimal\"},model:{value:(_vm.bulkSMS.minimumBalance),callback:function ($$v) {_vm.$set(_vm.bulkSMS, \"minimumBalance\", $$v)},expression:\"bulkSMS.minimumBalance\"}})],1):_vm._e(),_c('b-col',{staticClass:\"mb-0 mt-2\",attrs:{\"md\":\"4\"}},[_c('SwitchButton',{attrs:{\"label\":\"Send To Only Active Account?\",\"name\":\"send-to-only-active-account\"},model:{value:(_vm.bulkSMS.sendToOnlyActiveAccount),callback:function ($$v) {_vm.$set(_vm.bulkSMS, \"sendToOnlyActiveAccount\", $$v)},expression:\"bulkSMS.sendToOnlyActiveAccount\"}})],1)],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('TextAreaField',{attrs:{\"id\":\"account-number\",\"placeholder\":\"Enter message\",\"rows\":\"3\",\"maxlength\":\"1000\",\"label\":\"Message\",\"error-name\":\"Message\",\"rules\":\"required\"},model:{value:(_vm.bulkSMS.message),callback:function ($$v) {_vm.$set(_vm.bulkSMS, \"message\", $$v)},expression:\"bulkSMS.message\"}})],1),_c('p',{staticClass:\"message-counter\"},[_vm._v(\"\\n \"+_vm._s(_vm.bulkSMS.message.length)+\" / 1000\\n \")])],1),_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',[_c('h4',[_vm._v(\"\\n Keyword Substitutes\\n \")]),_vm._v(\"\\n [LastName] - Last Name of the customer \"),_c('br'),_vm._v(\"\\n [FirstName] - First Name of the customer\\n \")])],1),_c('b-row',[_c('b-col',[(_vm.getUserPermission('BULK_SMS'))?_c('Button',{staticClass:\"mt-0\",attrs:{\"label\":\"Send SMS\",\"size\":\"md\",\"loading\":_vm.isLoading,\"disabled\":_vm.isDisabled},on:{\"click\":_vm.handleSubmit}}):_vm._e()],1)],1)],1)],1)],1)],1)],1),_c('FullScreenSpinner',{attrs:{\"show\":_vm.showSpinner}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./BulkSMS.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!./BulkSMS.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BulkSMS.vue?vue&type=template&id=68810fa2&scoped=true&\"\nimport script from \"./BulkSMS.vue?vue&type=script&lang=js&\"\nexport * from \"./BulkSMS.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BulkSMS.vue?vue&type=style&index=0&id=68810fa2&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 \"68810fa2\",\n null\n \n)\n\nexport default component.exports","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});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-group',[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))]),_c('validation-provider',{attrs:{\"name\":_vm.errorName,\"rules\":_vm.rules},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-form-textarea',{attrs:{\"id\":_vm.id,\"value\":_vm.value,\"placeholder\":_vm.placeholder,\"state\":errors.length > 0 ? false:null,\"rows\":_vm.rows,\"maxlength\":_vm.maxlength,\"readonly\":_vm.readonly},on:{\"input\":_vm.onInput},nativeOn:{\"keypress\":function($event){return _vm.handleKeyPress.apply(null, arguments)}},model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),_c('feather-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showIcon),expression:\"showIcon\"}],staticClass:\"cursor-pointer ml-1\",attrs:{\"icon\":_vm.icon,\"size\":_vm.iconSize},on:{\"click\":_vm.onClick}})],1),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_TEXTAREA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect';\nimport { mathCeil, mathMax, mathMin } from '../../utils/math';\nimport { toInteger, toFloat } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { VBVisible } from '../../directives/visible/visible'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n maxRows: makeProp(PROP_TYPE_NUMBER_STRING),\n // When in auto resize mode, disable shrinking to content height\n noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the resize handle of textarea\n noResize: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),\n // 'soft', 'hard' or 'off'\n // Browser default is 'soft'\n wrap: makeProp(PROP_TYPE_STRING, 'soft')\n})), NAME_FORM_TEXTAREA); // --- Main component ---\n// @vue/component\n\nexport var BFormTextarea = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXTAREA,\n directives: {\n 'b-visible': VBVisible\n },\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return mathMax(toInteger(this.rows, 2), 2);\n },\n computedMaxRows: function computedMaxRows() {\n return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.disabled,\n required = this.required;\n return {\n id: this.safeId(),\n name: this.name || null,\n form: this.form || null,\n disabled: disabled,\n placeholder: this.placeholder || null,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.computedRows,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n localValue: function localValue() {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n\n /* istanbul ignore next */\n visibleCallback: function visibleCallback(visible) {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n computeHeight: function computeHeight() {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = toFloat(computedStyle.lineHeight, 1); // Calculate height of border and padding\n\n var border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);\n var padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = getStyle(el, 'height') || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n setStyle(el, 'height', 'auto');\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n setStyle(el, 'height', oldHeight); // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = mathMax((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = mathMax(mathCeil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n return h('textarea', {\n class: this.computedClass,\n style: this.computedStyle,\n directives: [{\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextAreaField.vue?vue&type=template&id=ecc47568&\"\nimport script from \"./TextAreaField.vue?vue&type=script&lang=js&\"\nexport * from \"./TextAreaField.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--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!./BulkSMS.vue?vue&type=style&index=0&id=68810fa2&scoped=true&lang=css&\"","var _objectSpread2;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_CHECKBOX } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Constants ---\n\nvar MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nvar MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_INDETERMINATE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"switch\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"uncheckedValue\", makeProp(PROP_TYPE_ANY, false)), _defineProperty(_objectSpread2, \"value\", makeProp(PROP_TYPE_ANY, true)), _objectSpread2))), NAME_FORM_CHECKBOX); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckbox = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: null\n }\n },\n props: props,\n computed: {\n isChecked: function isChecked() {\n var value = this.value,\n checked = this.computedLocalChecked;\n return isArray(checked) ? looseIndexOf(checked, value) > -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-group',[_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('b-form-checkbox',{attrs:{\"checked\":\"false\",\"name\":_vm.name,\"switch\":\"\",\"inline\":\"\",\"disabled\":_vm.readonly},on:{\"change\":_vm.onChange},model:{value:(_vm.selectedValue),callback:function ($$v) {_vm.selectedValue=$$v},expression:\"selectedValue\"}},[_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n \")]),_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!./Switch.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!./Switch.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Switch.vue?vue&type=template&id=d315bc30&\"\nimport script from \"./Switch.vue?vue&type=script&lang=js&\"\nexport * from \"./Switch.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","var _watch, _methods;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\n});","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});","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":""}