{"version":3,"sources":["webpack:///./src/@core/mixins/permission.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./src/@core/mixins/table.js","webpack:///./src/views/components/table/TableEntries.vue?bdbd","webpack:///src/views/components/table/TableEntries.vue","webpack:///./src/views/components/table/TableEntries.vue?c4f3","webpack:///./src/views/components/table/TableEntries.vue?e232","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./src/views/forms/InputField.vue?b743","webpack:///src/views/forms/InputField.vue","webpack:///./src/views/forms/InputField.vue?501b","webpack:///./src/views/forms/InputField.vue?d085","webpack:///./node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./src/helpers/handleSpecialCharacter.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/collapse/collapse.js","webpack:///./node_modules/bootstrap-vue/esm/constants/classes.js","webpack:///./node_modules/bootstrap-vue/esm/components/collapse/helpers/bv-collapse.js","webpack:///./src/views/pages/admin-portal-management/UserRoles.vue?c102","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./src/views/forms/InputField.vue?8193","webpack:///./src/views/components/table/TableEntries.vue?3cd4","webpack:///./node_modules/bootstrap-vue/esm/utils/css-escape.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/form-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack:///./src/views/pages/admin-portal-management/UserRoles.vue?efc0","webpack:///src/views/pages/admin-portal-management/UserRoles.vue","webpack:///./src/views/pages/admin-portal-management/UserRoles.vue?4a4c","webpack:///./src/views/pages/admin-portal-management/UserRoles.vue?3172","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./src/@core/components/app-collapse/AppCollapseItem.vue?e387","webpack:///src/@core/components/app-collapse/AppCollapseItem.vue","webpack:///./src/@core/components/app-collapse/AppCollapseItem.vue?b238","webpack:///./src/@core/components/app-collapse/AppCollapseItem.vue","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:///./src/views/forms/TextAreaField.vue?8312","webpack:///./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:///src/views/forms/TextAreaField.vue","webpack:///./src/views/forms/TextAreaField.vue?499b","webpack:///./src/views/forms/TextAreaField.vue","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./src/views/components/table/TablePagination.vue?0506","webpack:///./src/views/components/pagination/Pagination.vue?4307","webpack:///src/views/components/pagination/Pagination.vue","webpack:///./src/views/components/pagination/Pagination.vue?4a4f","webpack:///./src/views/components/pagination/Pagination.vue","webpack:///src/views/components/table/TablePagination.vue","webpack:///./src/views/components/table/TablePagination.vue?75ec","webpack:///./src/views/components/table/TablePagination.vue","webpack:///./src/views/pages/admin-portal-management/UserRoles.vue?dfb8","webpack:///./node_modules/core-js/modules/es.object.from-entries.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./src/@core/components/app-collapse/AppCollapse.vue?692d","webpack:///src/@core/components/app-collapse/AppCollapse.vue","webpack:///./src/@core/components/app-collapse/AppCollapse.vue?a250","webpack:///./src/@core/components/app-collapse/AppCollapse.vue","webpack:///./src/views/components/table/TableEntries.vue?1fad","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/uuid/dist/esm-browser/regex.js","webpack:///./node_modules/uuid/dist/esm-browser/validate.js","webpack:///./node_modules/uuid/dist/esm-browser/stringify.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./node_modules/popper.js/dist/esm/popper.js"],"names":["permissionMixin","computed","mapGetters","userData","methods","getUserPermission","value","this","permissions","includes","formSelectionMixin","extend","selectionStart","cache","get","$refs","input","set","val","selectionEnd","selectionDirection","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","tableMixins","data","isBusy","showSpinner","sortDesc","searchQuery","statusFilter","perPage","pageSize","currentPage","perPageOptions","totalCount","statusOptions","approvalTotalCount","approvalPerPage","approvalPageSize","approvalCurrentPage","totalEntries","numberOfPages","Math","floor","from","to","min","approvalTotalEntries","approvalNumberOfPages","approvalFom","approvalTo","variantColor","status","getOverallIndex","index","render","_vm","_h","$createElement","_c","_self","_v","staticClass","attrs","$store","state","appConfig","isRTL","options","model","callback","$$v","expression","staticRenderFns","name","components","vSelect","props","type","Array","required","Object","String","Number","Boolean","default","hasValue","watch","$emit","created","component","id","inline","novalidate","validated","BForm","functional","h","_ref","children","class","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","bind","footer","footerClass","footerHtml","BCardFooter","_ref2","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","concat","domProps","html","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","cardImgProps","imgSrc","card","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","$content","overlay","$footer","hasFooterSlot","tag","_s","label","errorName","rules","vid","_u","fn","ref","errors","placeholder","readonly","step","onpaste","formatter","disableCopyPaste","on","onChange","onInput","onBlur","nativeOn","$event","handleKeyPress","innerValue","text","_e","directives","rawName","icon","iconSize","onClick","BFormInput","BFormGroup","ValidationProvider","mixins","sweetAlert","Function","validator","showIcon","isAllowSpecialCharacters","isAllowOnlySpecialCharacters","isAllowCopyAndPaste","isAllowNegativeNumbers","maxLength","validateInputLength","event","preventDefault","alertInfo","_watch","_makeModelMixin","defaultValue","warn","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","startNumber","_","number","classes","limit","page","keyCode","immediatePropagation","currentTarget","click","ariaLabel","disabled","ellipsisClass","ellipsisText","firstClass","firstNumber","firstText","hideEllipsis","hideGotoEndButtons","labelFirstPage","labelLastPage","labelNextPage","labelPage","labelPrevPage","lastClass","lastNumber","lastText","nextClass","nextText","pageClass","pills","prevClass","prevText","size","paginationMixin","localNumberOfPages","localLimit","btnSize","alignment","styleClass","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","math","lastPageNumber","pageList","_this$paginationParam","pages","idx","_i","_i2","_i3","newValue","oldValue","_this","$nextTick","handleKeyNav","shiftKey","isNav","propagation","focusFirst","focusPrev","focusLast","focusNext","getButtons","$el","btn","focusCurrent","_this2","find","el","_this3","_this4","reverse","_this5","buttons","indexOf","_this6","_this7","pageNumbers","map","p","_this$paginationParam2","fill","$buttons","isActivePage","pageNumber","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","isDisabled","scope","$btnContent","normalizeSlot","$inner","linkProps","role","tabindex","ariaControls","keydown","makeEllipsis","isLast","makePageButton","active","tabIndex","btnContent","makePage","content","$firstPageBtn","offset","$lastPageBtn","$pagination","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","totalRows","BPagination","result","pageSizeNumberOfPages","clickEvt","cancelable","vueTarget","defaultPrevented","contains","pageNum","ariaLive","forceShow","tooltip","BFormInvalidFeedback","show","ariaInvalid","autocomplete","debounce","lazy","lazyFormatter","plaintext","trim","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","mounted","$on","beforeDestroy","clearTimeout","formatValue","force","undefined","updateValue","doUpdate","$input","setTimeout","composing","formattedValue","focus","blur","TYPES","list","max","noWheel","localType","computedAttrs","form","safeId","computedAriaInvalid","computedListeners","bvListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","removeSpecialChar","regex","test","removeNegativeNumber","removeCharAndSpace","persistPhoneNumber","persistAccountNumber","title","titleTag","BCardTitle","CLASS_NAME_SHOW","scrollHeight","TRANSITION_PROPS","css","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","TRANSITION_HANDLERS","enter","afterEnter","leave","afterLeave","BVCollapse","appear","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","ROOT_EVENT_NAME_ACCORDION","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","accordion","BCollapse","transitioning","classObject","collapse","visible","close","emitState","listenOnRoot","handleToggleEvt","handleAccordionEvt","setWindowEvents","handleResize","emitSync","updated","window","toggle","onEnter","onAfterEnter","onLeave","onAfterLeave","emitOnRoot","checkDisplayBlock","restore","isBlock","display","clickHandler","openedId","openAccordion","isThis","subTitle","subTitleTag","subTitleTextVariant","BCardSubTitle","bodyClass","BCardBody","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","bodyTag","escapeChar","firstCharCode","charCodeAt","split","reduce","char","charCode","toString","BFormRow","BFormValidFeedback","INPUTS","INPUT_SELECTOR","v","join","LEGEND_INTERACTIVE_ELEMENTS","breakpoint","description","feedbackAriaLive","invalidFeedback","labelClass","labelFor","labelSize","labelSrOnly","validFeedback","ariaDescribedby","contentColProps","getColProps","$props","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","updateAriaDescribedby","prefix","propValue","identity","attr","newIds","oldIds","ids","array","onLegendClick","tagName","inputs","computedState","isFieldset","$label","labelContent","labelId","labelTag","for","$invalidFeedback","invalidFeedbackContent","invalidFeedbackId","$validFeedback","validFeedbackContent","validFeedbackId","$description","descriptionContent","descriptionId","showModal","isReadonly","modalType","resetFilter","roleList","tableHeaders","proxy","updateViewRole","item","buttonLabel","isLoading","handleSubmit","clearForm","roleFormData","$set","_l","toggleAll","slice","allSelected","permission","j","getRoles","resetFilters","BRow","BCol","BButton","Button","BTable","BSpinner","BDropdown","BDropdownItem","BModal","TableEntries","ValidationObserver","InputField","BFormCheckbox","TextAreaField","TablePagination","AppCollapse","AppCollapseItem","sortBy","loading","sortPermissions","fromEntries","entries","sort","fetchAllPermission","toggleModal","arr","checked","actionType","bvModalEvt","roleRules","validate","then","success","BFormText","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","clickOutMixin","listenForClickOut","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","isClickOut","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","selector","els","boundary","dropleft","dropright","dropup","noFlip","popperOpts","dropdownMixin","provide","bvDropdown","inject","bvNavbar","visibleChangePrevented","inNavbar","toggler","directionClass","boundaryClass","eventName","bvEvent","menu","relatedTarget","componentId","emitEvent","$off","focusToggler","showMenu","hideMenu","$_popper","$_hideTimeout","whileOpenListen","destroyPopper","clearHideTimeout","createPopper","focusMenu","element","getPopperConfig","destroy","updatePopper","scheduleUpdate","_unused","placement","popperConfig","modifiers","flip","enabled","boundariesElement","preventOverflow","isOpen","method","$root","rootCloseListener","vm","hide","refocus","$once","_event","onMousedown","onKeydown","onEsc","onSplitClick","hideHandler","up","items","getItems","focusItem","linkClass","variant","inheritAttrs","bvAttrs","closeDropdown","style","plain","formCustomMixin","custom","formSizeMixin","collapseOpen","collapseClose","collapseItemID","updateVisible","_t","BCardHeader","isVisible","openOnHover","$parent","hover","block","Ripple","className","rows","maxlength","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_createClass","protoProps","staticProps","prototype","OBSERVER_PROP_NAME","VisibilityObserver","vnode","margin","once","observer","doneOnce","createObserver","stop","IntersectionObserver","handler","root","rootMargin","threshold","context","observe","entry","isIntersecting","intersectionRatio","disconnect","mod","toLowerCase","_prevModifiers","unbind","VBVisible","componentUpdated","maxRows","noAutoShrink","noResize","wrap","BFormTextarea","listeners","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","computedMaxRows","setHeight","visibleCallback","computeHeight","$isServer","lineHeight","border","borderTopWidth","borderBottomWidth","padding","paddingTop","paddingBottom","minHeight","oldHeight","contentRows","isAllowNumbersWithComma","isAllowAccountNumbersWithComma","headerClass","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","$t","Pagination","$","iterate","createProperty","stat","iterable","k","AS_ENTRIES","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","bvGroup","isChecked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","collapseClasses","collapseID","shadow","collapseVariants","_methods","ariaLabelledby","button","buttonVariant","formRadioCheckMixin","hasFocus","isBtnMode","isPlain","isCustom","isSwitch","switches","switch","isInline","isRequired","computedName","groupName","computedForm","computedSize","computedButtonVariant","buttonClasses","handleFocus","$button","formStateMixin","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleClass","toggleTag","toggleText","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","hasNormalizedSlot","$split","btnProps","href","$toggle","mousedown","$menu","SELECTOR","autofocus","formControlMixin","handleAutofocus","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","Error","uuid","byteToHex","substr","stringify","v4","buf","rnds","random","isBrowser","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","microtaskDebounce","called","Promise","resolve","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","call","getStyleComputedProperty","property","nodeType","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","axis","sideA","sideB","parseFloat","getSize","parseInt","getWindowSizes","classCallCheck","createClass","_extends","assign","hasOwnProperty","getClientRect","offsets","getBoundingClientRect","e","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","a","b","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","findIndex","cur","match","runModifiers","ends","modifiersToRun","console","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","removeEventListener","cancelAnimationFrame","isNumeric","n","isNaN","isFinite","setStyles","unit","setAttributes","setAttribute","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","_data$offsets$arrow","querySelector","len","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","str","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","shift","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","requestAnimationFrame","jquery","Utils","global","PopperUtils"],"mappings":"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","file":"js/chunk-0e387208.2d5e625a.js","sourcesContent":["import { mapGetters } from 'vuex'\n\nexport const permissionMixin = {\n computed: {\n ...mapGetters({\n userData: 'auth/getCurrentUser',\n }),\n },\n methods: {\n getUserPermission(value) {\n return this.userData.permissions.includes(value)\n },\n },\n}\n\nexport const _ = null\n","import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\n }\n }\n});","export const tableMixins = {\n data() {\n return {\n isBusy: false,\n showSpinner: false,\n sortDesc: false,\n searchQuery: '',\n statusFilter: '',\n perPage: 10,\n pageSize: 0,\n currentPage: 1,\n perPageOptions: [10, 25, 50, 100],\n totalCount: 0,\n statusOptions: [\n 'Active',\n 'Inactive',\n ],\n approvalTotalCount: 0,\n approvalPerPage: 10,\n approvalPageSize: 0,\n approvalCurrentPage: 1,\n }\n },\n computed: {\n totalEntries() {\n return this.totalCount\n },\n numberOfPages() {\n return Math.floor((this.totalEntries + this.perPage - 1) / this.perPage)\n },\n from() {\n if (this.totalCount === 0) {\n return 0\n }\n return (this.currentPage * this.perPage) - (this.perPage - 1)\n },\n to() {\n return Math.min(this.from + this.perPage - 1, this.totalEntries)\n },\n approvalTotalEntries() {\n return this.approvalTotalCount\n },\n approvalNumberOfPages() {\n return Math.floor((this.approvalTotalCount + this.approvalPerPage - 1) / this.approvalPerPage)\n },\n approvalFom() {\n if (this.approvalTotalCount === 0) {\n return 0\n }\n return (this.approvalCurrentPage * this.approvalPerPage) - (this.approvalPerPage - 1)\n },\n approvalTo() {\n return Math.min(this.approvalFom + this.approvalPerPage - 1, this.approvalTotalCount)\n },\n },\n methods: {\n variantColor(status) {\n return status === 'Active' ? 'light-success' : 'light-secondary'\n },\n getOverallIndex(index) {\n return (this.currentPage * this.perPage) - this.perPage + index + 1\n },\n },\n}\n\nexport const _ = null\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',[_vm._v(\"Show\")]),_c('v-select',{staticClass:\"per-page-selector d-inline-block ml-50 mr-1\",attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.options,\"value\":_vm.value,\"clearable\":false},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n Show\n \n \n\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableEntries.vue?vue&type=template&id=bcfccc92&scoped=true&\"\nimport script from \"./TableEntries.vue?vue&type=script&lang=js&\"\nexport * from \"./TableEntries.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableEntries.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./TableEntries.vue?vue&type=style&index=1&id=bcfccc92&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bcfccc92\",\n null\n \n)\n\nexport default component.exports","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\n }));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-group',[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label)+\" \")]),_c('validation-provider',{attrs:{\"name\":_vm.errorName,\"rules\":_vm.rules,\"vid\":_vm.vid},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-form-input',{attrs:{\"id\":_vm.id,\"for\":_vm.id,\"type\":_vm.type,\"placeholder\":_vm.placeholder,\"readonly\":_vm.readonly,\"value\":_vm.value,\"state\":errors.length > 0 ? false : null,\"step\":_vm.step,\"onpaste\":_vm.onpaste,\"formatter\":_vm.formatter,\"autocomplete\":\"off\",\"on-mousedown\":_vm.disableCopyPaste},on:{\"change\":_vm.onChange,\"input\":_vm.onInput,\"blur\":_vm.onBlur},nativeOn:{\"keypress\":function($event){return _vm.handleKeyPress.apply(null, arguments)},\"keydown\":function($event){return _vm.disableCopyPaste.apply(null, arguments)}},model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),(_vm.text)?_c('p',{staticClass:\"ml-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.text)+\"\\n \")]):_vm._e(),_c('feather-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showIcon),expression:\"showIcon\"}],staticClass:\"cursor-pointer ml-1\",attrs:{\"icon\":_vm.icon,\"size\":_vm.iconSize},on:{\"click\":_vm.onClick}})],1),_c('small',{staticClass:\"text-danger error-text\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n {{ label }} \n \n \n 0 ? false : null\"\n :step=\"step\"\n :onpaste=\"onpaste\"\n :formatter=\"formatter\"\n autocomplete=\"off\"\n :on-mousedown=\"disableCopyPaste\"\n @change=\"onChange\"\n @input=\"onInput\"\n @blur=\"onBlur\"\n @keypress.native=\"handleKeyPress\"\n @keydown.native=\"disableCopyPaste\"\n />\n \n {{ text }}\n \n \n \n\n {{ errors[0] }}\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputField.vue?vue&type=template&id=c26398c2&scoped=true&\"\nimport script from \"./InputField.vue?vue&type=script&lang=js&\"\nexport * from \"./InputField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputField.vue?vue&type=style&index=0&id=c26398c2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c26398c2\",\n null\n \n)\n\nexport default component.exports","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { NAME_PAGINATION } from '../constants/components';\nimport { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_FUNCTION_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_ELLIPSIS_TEXT, SLOT_NAME_FIRST_TEXT, SLOT_NAME_LAST_TEXT, SLOT_NAME_NEXT_TEXT, SLOT_NAME_PAGE, SLOT_NAME_PREV_TEXT } from '../constants/slots';\nimport { createArray } from '../utils/array';\nimport { attemptFocus, getActiveElement, getAttr, isDisabled, isVisible, selectAll } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { isFunction, isNull } from '../utils/inspect';\nimport { mathFloor, mathMax, mathMin } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string';\nimport { warn } from '../utils/warn';\nimport { normalizeSlotMixin } from '../mixins/normalize-slot';\nimport { BLink } from '../components/link/link'; // Common props, computed, data, render function, and methods\n// for `` and ``\n// --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: null,\n\n /* istanbul ignore next */\n validator: function validator(value) {\n if (!isNull(value) && toInteger(value, 0) < 1) {\n warn('\"v-model\" value must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // Threshold of limit size when we start/stop showing ellipsis\n\nvar ELLIPSIS_THRESHOLD = 3; // Default # of buttons limit\n\nvar DEFAULT_LIMIT = 5; // --- Helper methods ---\n// Make an array of N to N+X\n\nvar makePageArray = function makePageArray(startNumber, numberOfPages) {\n return createArray(numberOfPages, function (_, i) {\n return {\n number: startNumber + i,\n classes: null\n };\n });\n}; // Sanitize the provided limit value (converting to a number)\n\n\nvar sanitizeLimit = function sanitizeLimit(value) {\n var limit = toInteger(value) || 1;\n return limit < 1 ? DEFAULT_LIMIT : limit;\n}; // Sanitize the provided current page number (converting to a number)\n\n\nvar sanitizeCurrentPage = function sanitizeCurrentPage(val, numberOfPages) {\n var page = toInteger(val) || 1;\n return page > numberOfPages ? numberOfPages : page < 1 ? 1 : page;\n}; // Links don't normally respond to SPACE, so we add that\n// functionality via this handler\n\n\nvar onSpaceKey = function onSpaceKey(event) {\n if (event.keyCode === CODE_SPACE) {\n // Stop page from scrolling\n stopEvent(event, {\n immediatePropagation: true\n }); // Trigger the click event on the link\n\n event.currentTarget.click();\n return false;\n }\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n align: makeProp(PROP_TYPE_STRING, 'left'),\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Pagination'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n ellipsisClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n ellipsisText: makeProp(PROP_TYPE_STRING, \"\\u2026\"),\n // '…'\n firstClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n firstNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n firstText: makeProp(PROP_TYPE_STRING, \"\\xAB\"),\n // '«'\n hideEllipsis: makeProp(PROP_TYPE_BOOLEAN, false),\n hideGotoEndButtons: makeProp(PROP_TYPE_BOOLEAN, false),\n labelFirstPage: makeProp(PROP_TYPE_STRING, 'Go to first page'),\n labelLastPage: makeProp(PROP_TYPE_STRING, 'Go to last page'),\n labelNextPage: makeProp(PROP_TYPE_STRING, 'Go to next page'),\n labelPage: makeProp(PROP_TYPE_FUNCTION_STRING, 'Go to page'),\n labelPrevPage: makeProp(PROP_TYPE_STRING, 'Go to previous page'),\n lastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n lastNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n lastText: makeProp(PROP_TYPE_STRING, \"\\xBB\"),\n // '»'\n limit: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_LIMIT,\n /* istanbul ignore next */\n function (value) {\n if (toInteger(value, 0) < 1) {\n warn('Prop \"limit\" must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }),\n nextClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n nextText: makeProp(PROP_TYPE_STRING, \"\\u203A\"),\n // '›'\n pageClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n prevClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n prevText: makeProp(PROP_TYPE_STRING, \"\\u2039\"),\n // '‹'\n size: makeProp(PROP_TYPE_STRING)\n})), 'pagination'); // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n // `-1` signifies no page initially selected\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n currentPage = currentPage > 0 ? currentPage : -1;\n return {\n currentPage: currentPage,\n localNumberOfPages: 1,\n localLimit: DEFAULT_LIMIT\n };\n },\n computed: {\n btnSize: function btnSize() {\n var size = this.size;\n return size ? \"pagination-\".concat(size) : '';\n },\n alignment: function alignment() {\n var align = this.align;\n\n if (align === 'center') {\n return 'justify-content-center';\n } else if (align === 'end' || align === 'right') {\n return 'justify-content-end';\n } else if (align === 'fill') {\n // The page-items will also have 'flex-fill' added\n // We add text centering to make the button appearance better in fill mode\n return 'text-center';\n }\n\n return '';\n },\n styleClass: function styleClass() {\n return this.pills ? 'b-pagination-pills' : '';\n },\n computedCurrentPage: function computedCurrentPage() {\n return sanitizeCurrentPage(this.currentPage, this.localNumberOfPages);\n },\n paginationParams: function paginationParams() {\n // Determine if we should show the the ellipsis\n var limit = this.localLimit,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage,\n hideEllipsis = this.hideEllipsis,\n firstNumber = this.firstNumber,\n lastNumber = this.lastNumber;\n var showFirstDots = false;\n var showLastDots = false;\n var numberOfLinks = limit;\n var startNumber = 1;\n\n if (numberOfPages <= limit) {\n // Special case: Less pages available than the limit of displayed pages\n numberOfLinks = numberOfPages;\n } else if (currentPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || lastNumber) {\n showLastDots = true;\n numberOfLinks = limit - (firstNumber ? 0 : 1);\n }\n\n numberOfLinks = mathMin(numberOfLinks, limit);\n } else if (numberOfPages - currentPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || firstNumber) {\n showFirstDots = true;\n numberOfLinks = limit - (lastNumber ? 0 : 1);\n }\n\n startNumber = numberOfPages - numberOfLinks + 1;\n } else {\n // We are somewhere in the middle of the page list\n if (limit > ELLIPSIS_THRESHOLD) {\n numberOfLinks = limit - (hideEllipsis ? 0 : 2);\n showFirstDots = !!(!hideEllipsis || firstNumber);\n showLastDots = !!(!hideEllipsis || lastNumber);\n }\n\n startNumber = currentPage - mathFloor(numberOfLinks / 2);\n } // Sanity checks\n\n /* istanbul ignore if */\n\n\n if (startNumber < 1) {\n startNumber = 1;\n showFirstDots = false;\n } else if (startNumber > numberOfPages - numberOfLinks) {\n startNumber = numberOfPages - numberOfLinks + 1;\n showLastDots = false;\n }\n\n if (showFirstDots && firstNumber && startNumber < 4) {\n numberOfLinks = numberOfLinks + 2;\n startNumber = 1;\n showFirstDots = false;\n }\n\n var lastPageNumber = startNumber + numberOfLinks - 1;\n\n if (showLastDots && lastNumber && lastPageNumber > numberOfPages - 3) {\n numberOfLinks = numberOfLinks + (lastPageNumber === numberOfPages - 2 ? 2 : 3);\n showLastDots = false;\n } // Special handling for lower limits (where ellipsis are never shown)\n\n\n if (limit <= ELLIPSIS_THRESHOLD) {\n if (firstNumber && startNumber === 1) {\n numberOfLinks = mathMin(numberOfLinks + 1, numberOfPages, limit + 1);\n } else if (lastNumber && numberOfPages === startNumber + numberOfLinks - 1) {\n startNumber = mathMax(startNumber - 1, 1);\n numberOfLinks = mathMin(numberOfPages - startNumber + 1, numberOfPages, limit + 1);\n }\n }\n\n numberOfLinks = mathMin(numberOfLinks, numberOfPages - startNumber + 1);\n return {\n showFirstDots: showFirstDots,\n showLastDots: showLastDots,\n numberOfLinks: numberOfLinks,\n startNumber: startNumber\n };\n },\n pageList: function pageList() {\n // Generates the pageList array\n var _this$paginationParam = this.paginationParams,\n numberOfLinks = _this$paginationParam.numberOfLinks,\n startNumber = _this$paginationParam.startNumber;\n var currentPage = this.computedCurrentPage; // Generate list of page numbers\n\n var pages = makePageArray(startNumber, numberOfLinks); // We limit to a total of 3 page buttons on XS screens\n // So add classes to page links to hide them for XS breakpoint\n // Note: Ellipsis will also be hidden on XS screens\n // TODO: Make this visual limit configurable based on breakpoint(s)\n\n if (pages.length > 3) {\n var idx = currentPage - startNumber; // THe following is a bootstrap-vue custom utility class\n\n var classes = 'bv-d-xs-down-none';\n\n if (idx === 0) {\n // Keep leftmost 3 buttons visible when current page is first page\n for (var i = 3; i < pages.length; i++) {\n pages[i].classes = classes;\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible when current page is last page\n for (var _i = 0; _i < pages.length - 3; _i++) {\n pages[_i].classes = classes;\n }\n } else {\n // Hide all except current page, current page - 1 and current page + 1\n for (var _i2 = 0; _i2 < idx - 1; _i2++) {\n // hide some left button(s)\n pages[_i2].classes = classes;\n }\n\n for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {\n // hide some right button(s)\n pages[_i3].classes = classes;\n }\n }\n }\n\n return pages;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = sanitizeCurrentPage(newValue, this.localNumberOfPages);\n }\n }), _defineProperty(_watch, \"currentPage\", function currentPage(newValue, oldValue) {\n if (newValue !== oldValue) {\n // Emit `null` if no page selected\n this.$emit(MODEL_EVENT_NAME, newValue > 0 ? newValue : null);\n }\n }), _defineProperty(_watch, \"limit\", function limit(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localLimit = sanitizeLimit(newValue);\n }\n }), _watch),\n created: function created() {\n var _this = this;\n\n // Set our default values in data\n this.localLimit = sanitizeLimit(this.limit);\n this.$nextTick(function () {\n // Sanity check\n _this.currentPage = _this.currentPage > _this.localNumberOfPages ? _this.localNumberOfPages : _this.currentPage;\n });\n },\n methods: {\n handleKeyNav: function handleKeyNav(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n /* istanbul ignore if */\n\n if (this.isNav) {\n // We disable left/right keyboard navigation in ``\n return;\n }\n\n if (keyCode === CODE_LEFT || keyCode === CODE_UP) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusFirst() : this.focusPrev();\n } else if (keyCode === CODE_RIGHT || keyCode === CODE_DOWN) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusLast() : this.focusNext();\n }\n },\n getButtons: function getButtons() {\n // Return only buttons that are visible\n return selectAll('button.page-link, a.page-link', this.$el).filter(function (btn) {\n return isVisible(btn);\n });\n },\n focusCurrent: function focusCurrent() {\n var _this2 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this2.getButtons().find(function (el) {\n return toInteger(getAttr(el, 'aria-posinset'), 0) === _this2.computedCurrentPage;\n });\n\n if (!attemptFocus(btn)) {\n // Fallback if current page is not in button list\n _this2.focusFirst();\n }\n });\n },\n focusFirst: function focusFirst() {\n var _this3 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this3.getButtons().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusLast: function focusLast() {\n var _this4 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this4.getButtons().reverse().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusPrev: function focusPrev() {\n var _this5 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this5.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index > 0 && !isDisabled(buttons[index - 1])) {\n attemptFocus(buttons[index - 1]);\n }\n });\n },\n focusNext: function focusNext() {\n var _this6 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this6.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index < buttons.length - 1 && !isDisabled(buttons[index + 1])) {\n attemptFocus(buttons[index + 1]);\n }\n });\n }\n },\n render: function render(h) {\n var _this7 = this;\n\n var disabled = this.disabled,\n labelPage = this.labelPage,\n ariaLabel = this.ariaLabel,\n isNav = this.isNav,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage;\n var pageNumbers = this.pageList.map(function (p) {\n return p.number;\n });\n var _this$paginationParam2 = this.paginationParams,\n showFirstDots = _this$paginationParam2.showFirstDots,\n showLastDots = _this$paginationParam2.showLastDots;\n var fill = this.align === 'fill';\n var $buttons = []; // Helper function and flag\n\n var isActivePage = function isActivePage(pageNumber) {\n return pageNumber === currentPage;\n };\n\n var noCurrentPage = this.currentPage < 1; // Factory function for prev/next/first/last buttons\n\n var makeEndBtn = function makeEndBtn(linkTo, ariaLabel, btnSlot, btnText, btnClass, pageTest, key) {\n var isDisabled = disabled || isActivePage(pageTest) || noCurrentPage || linkTo < 1 || linkTo > numberOfPages;\n var pageNumber = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo;\n var scope = {\n disabled: isDisabled,\n page: pageNumber,\n index: pageNumber - 1\n };\n var $btnContent = _this7.normalizeSlot(btnSlot, scope) || toString(btnText) || h();\n var $inner = h(isDisabled ? 'span' : isNav ? BLink : 'button', {\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !isDisabled && fill\n },\n props: isDisabled || !isNav ? {} : _this7.linkProps(linkTo),\n attrs: {\n role: isNav ? null : 'menuitem',\n type: isNav || isDisabled ? null : 'button',\n tabindex: isDisabled || isNav ? null : '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-disabled': isDisabled ? 'true' : null\n },\n on: isDisabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, linkTo);\n },\n keydown: onSpaceKey\n }\n }, [$btnContent]);\n return h('li', {\n key: key,\n staticClass: 'page-item',\n class: [{\n disabled: isDisabled,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !isDisabled\n }, btnClass],\n attrs: {\n role: isNav ? null : 'presentation',\n 'aria-hidden': isDisabled ? 'true' : null\n }\n }, [$inner]);\n }; // Ellipsis factory\n\n\n var makeEllipsis = function makeEllipsis(isLast) {\n return h('li', {\n staticClass: 'page-item',\n class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : '', _this7.ellipsisClass],\n attrs: {\n role: 'separator'\n },\n key: \"ellipsis-\".concat(isLast ? 'last' : 'first')\n }, [h('span', {\n staticClass: 'page-link'\n }, [_this7.normalizeSlot(SLOT_NAME_ELLIPSIS_TEXT) || toString(_this7.ellipsisText) || h()])]);\n }; // Page button factory\n\n\n var makePageButton = function makePageButton(page, idx) {\n var pageNumber = page.number;\n var active = isActivePage(pageNumber) && !noCurrentPage; // Active page will have tabindex of 0, or if no current page and first page button\n\n var tabIndex = disabled ? null : active || noCurrentPage && idx === 0 ? '0' : '-1';\n var attrs = {\n role: isNav ? null : 'menuitemradio',\n type: isNav || disabled ? null : 'button',\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-label': hasPropFunction(labelPage) ?\n /* istanbul ignore next */\n labelPage(pageNumber) : \"\".concat(isFunction(labelPage) ? labelPage() : labelPage, \" \").concat(pageNumber),\n 'aria-checked': isNav ? null : active ? 'true' : 'false',\n 'aria-current': isNav && active ? 'page' : null,\n 'aria-posinset': isNav ? null : pageNumber,\n 'aria-setsize': isNav ? null : numberOfPages,\n // ARIA \"roving tabindex\" method (except in `isNav` mode)\n tabindex: isNav ? null : tabIndex\n };\n var btnContent = toString(_this7.makePage(pageNumber));\n var scope = {\n page: pageNumber,\n index: pageNumber - 1,\n content: btnContent,\n active: active,\n disabled: disabled\n };\n var $inner = h(disabled ? 'span' : isNav ? BLink : 'button', {\n props: disabled || !isNav ? {} : _this7.linkProps(pageNumber),\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !disabled && fill\n },\n attrs: attrs,\n on: disabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, pageNumber);\n },\n keydown: onSpaceKey\n }\n }, [_this7.normalizeSlot(SLOT_NAME_PAGE, scope) || btnContent]);\n return h('li', {\n staticClass: 'page-item',\n class: [{\n disabled: disabled,\n active: active,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !disabled\n }, page.classes, _this7.pageClass],\n attrs: {\n role: isNav ? null : 'presentation'\n },\n key: \"page-\".concat(pageNumber)\n }, [$inner]);\n }; // Goto first page button\n // Don't render button when `hideGotoEndButtons` or `firstNumber` is set\n\n\n var $firstPageBtn = h();\n\n if (!this.firstNumber && !this.hideGotoEndButtons) {\n $firstPageBtn = makeEndBtn(1, this.labelFirstPage, SLOT_NAME_FIRST_TEXT, this.firstText, this.firstClass, 1, 'pagination-goto-first');\n }\n\n $buttons.push($firstPageBtn); // Goto previous page button\n\n $buttons.push(makeEndBtn(currentPage - 1, this.labelPrevPage, SLOT_NAME_PREV_TEXT, this.prevText, this.prevClass, 1, 'pagination-goto-prev')); // Show first (1) button?\n\n $buttons.push(this.firstNumber && pageNumbers[0] !== 1 ? makePageButton({\n number: 1\n }, 0) : h()); // First ellipsis\n\n $buttons.push(showFirstDots ? makeEllipsis(false) : h()); // Individual page links\n\n this.pageList.forEach(function (page, idx) {\n var offset = showFirstDots && _this7.firstNumber && pageNumbers[0] !== 1 ? 1 : 0;\n $buttons.push(makePageButton(page, idx + offset));\n }); // Last ellipsis\n\n $buttons.push(showLastDots ? makeEllipsis(true) : h()); // Show last page button?\n\n $buttons.push(this.lastNumber && pageNumbers[pageNumbers.length - 1] !== numberOfPages ? makePageButton({\n number: numberOfPages\n }, -1) : h()); // Goto next page button\n\n $buttons.push(makeEndBtn(currentPage + 1, this.labelNextPage, SLOT_NAME_NEXT_TEXT, this.nextText, this.nextClass, numberOfPages, 'pagination-goto-next')); // Goto last page button\n // Don't render button when `hideGotoEndButtons` or `lastNumber` is set\n\n var $lastPageBtn = h();\n\n if (!this.lastNumber && !this.hideGotoEndButtons) {\n $lastPageBtn = makeEndBtn(numberOfPages, this.labelLastPage, SLOT_NAME_LAST_TEXT, this.lastText, this.lastClass, numberOfPages, 'pagination-goto-last');\n }\n\n $buttons.push($lastPageBtn); // Assemble the pagination buttons\n\n var $pagination = h('ul', {\n staticClass: 'pagination',\n class: ['b-pagination', this.btnSize, this.alignment, this.styleClass],\n attrs: {\n role: isNav ? null : 'menubar',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-label': isNav ? null : ariaLabel || null\n },\n // We disable keyboard left/right nav when ``\n on: isNav ? {} : {\n keydown: this.handleKeyNav\n },\n ref: 'ul'\n }, $buttons); // If we are ``, wrap in `` wrapper\n\n if (isNav) {\n return h('nav', {\n attrs: {\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-hidden': disabled ? 'true' : 'false',\n 'aria-label': isNav ? ariaLabel || null : null\n }\n }, [$pagination]);\n }\n\n return $pagination;\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_PAGINATION } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_PAGE_CLICK } from '../../constants/events';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, isVisible } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { mathCeil, mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, paginationMixin, props as paginationProps } from '../../mixins/pagination'; // --- Constants ---\n\nvar DEFAULT_PER_PAGE = 20;\nvar DEFAULT_TOTAL_ROWS = 0; // --- Helper methods ---\n// Sanitize the provided per page number (converting to a number)\n\nvar sanitizePerPage = function sanitizePerPage(value) {\n return mathMax(toInteger(value) || DEFAULT_PER_PAGE, 1);\n}; // Sanitize the provided total rows number (converting to a number)\n\n\nvar sanitizeTotalRows = function sanitizeTotalRows(value) {\n return mathMax(toInteger(value) || DEFAULT_TOTAL_ROWS, 0);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, paginationProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_PER_PAGE),\n totalRows: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_TOTAL_ROWS)\n})), NAME_PAGINATION); // --- Main component ---\n// @vue/component\n\nexport var BPagination = /*#__PURE__*/Vue.extend({\n name: NAME_PAGINATION,\n // The render function is brought in via the `paginationMixin`\n mixins: [paginationMixin],\n props: props,\n computed: {\n numberOfPages: function numberOfPages() {\n var result = mathCeil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage));\n return result < 1 ? 1 : result;\n },\n // Used for watching changes to `perPage` and `numberOfPages`\n pageSizeNumberOfPages: function pageSizeNumberOfPages() {\n return {\n perPage: sanitizePerPage(this.perPage),\n totalRows: sanitizeTotalRows(this.totalRows),\n numberOfPages: this.numberOfPages\n };\n }\n },\n watch: {\n pageSizeNumberOfPages: function pageSizeNumberOfPages(newValue, oldValue) {\n if (!isUndefinedOrNull(oldValue)) {\n if (newValue.perPage !== oldValue.perPage && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n this.currentPage = 1;\n } else if (newValue.numberOfPages !== oldValue.numberOfPages && this.currentPage > newValue.numberOfPages) {\n // If `numberOfPages` changes and is less than\n // the `currentPage` number, reset to page 1\n this.currentPage = 1;\n }\n }\n\n this.localNumberOfPages = newValue.numberOfPages;\n }\n },\n created: function created() {\n var _this = this;\n\n // Set the initial page count\n this.localNumberOfPages = this.numberOfPages; // Set the initial page value\n\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n\n if (currentPage > 0) {\n this.currentPage = currentPage;\n } else {\n this.$nextTick(function () {\n // If this value parses to `NaN` or a value less than `1`\n // trigger an initial emit of `null` if no page specified\n _this.currentPage = 0;\n });\n }\n },\n methods: {\n // These methods are used by the render function\n onClick: function onClick(event, pageNumber) {\n var _this2 = this;\n\n // Dont do anything if clicking the current active page\n if (pageNumber === this.currentPage) {\n return;\n }\n\n var target = event.target; // Emit a user-cancelable `page-click` event\n\n var clickEvt = new BvEvent(EVENT_NAME_PAGE_CLICK, {\n cancelable: true,\n vueTarget: this,\n target: target\n });\n this.$emit(clickEvt.type, clickEvt, pageNumber);\n\n if (clickEvt.defaultPrevented) {\n return;\n } // Update the `v-model`\n\n\n this.currentPage = pageNumber; // Emit event triggered by user interaction\n\n this.$emit(EVENT_NAME_CHANGE, this.currentPage); // Keep the current button focused if possible\n\n this.$nextTick(function () {\n if (isVisible(target) && _this2.$el.contains(target)) {\n attemptFocus(target);\n } else {\n _this2.focusCurrent();\n }\n });\n },\n makePage: function makePage(pageNum) {\n return pageNum;\n },\n\n /* istanbul ignore next */\n linkProps: function linkProps() {\n // No props, since we render a plain button\n return {};\n }\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_INVALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_INVALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormInvalidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INVALID_FEEDBACK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === false;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'invalid-feedback': !tooltip,\n 'invalid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","export const removeSpecialChar = event => {\n const regex = /^[A-Za-z0-9 %-]$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const removeNegativeNumber = event => {\n const regex = /^\\d*\\.?\\d*$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const removeCharAndSpace = event => {\n const regex = /^[A-Za-z0-9]$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const persistPhoneNumber = event => {\n const regex = /^[\\d,+]*$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const persistAccountNumber = event => {\n const regex = /^[\\d,]*$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_COLLAPSE } from '../../constants/components';\nimport { CLASS_NAME_SHOW } from '../../constants/classes';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { addClass, hasClass, removeClass, closest, matches, getCS } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOnOff } from '../../utils/events';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVCollapse } from './helpers/bv-collapse'; // --- Constants ---\n\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar ROOT_EVENT_NAME_ACCORDION = getRootEventName(NAME_COLLAPSE, 'accordion');\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n // If `true` (and `visible` is `true` on mount), animate initially visible\n accordion: makeProp(PROP_TYPE_STRING),\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n isNav: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_COLLAPSE); // --- Main component ---\n// @vue/component\n\nexport var BCollapse = /*#__PURE__*/Vue.extend({\n name: NAME_COLLAPSE,\n mixins: [idMixin, modelMixin, normalizeSlotMixin, listenOnRootMixin],\n props: props,\n data: function data() {\n return {\n show: this[MODEL_PROP_NAME],\n transitioning: false\n };\n },\n computed: {\n classObject: function classObject() {\n var transitioning = this.transitioning;\n return {\n 'navbar-collapse': this.isNav,\n collapse: !transitioning,\n show: this.show && !transitioning\n };\n },\n slotScope: function slotScope() {\n var _this = this;\n\n return {\n visible: this.show,\n close: function close() {\n _this.show = false;\n }\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (newValue !== this.show) {\n this.show = newValue;\n }\n }), _defineProperty(_watch, \"show\", function show(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState();\n }\n }), _watch),\n created: function created() {\n this.show = this[MODEL_PROP_NAME];\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.show = this[MODEL_PROP_NAME]; // Listen for toggle events to open/close us\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE, this.handleToggleEvt); // Listen to other collapses for accordion events\n\n this.listenOnRoot(ROOT_EVENT_NAME_ACCORDION, this.handleAccordionEvt);\n\n if (this.isNav) {\n // Set up handlers\n this.setWindowEvents(true);\n this.handleResize();\n }\n\n this.$nextTick(function () {\n _this2.emitState();\n }); // Listen for \"Sync state\" requests from `v-b-toggle`\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, function (id) {\n if (id === _this2.safeId()) {\n _this2.$nextTick(_this2.emitSync);\n }\n });\n },\n updated: function updated() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitSync();\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.isNav) {\n this.setWindowEvents(false);\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.isNav) {\n this.setWindowEvents(true);\n }\n\n this.emitSync();\n },\n beforeDestroy: function beforeDestroy() {\n // Trigger state emit if needed\n this.show = false;\n\n if (this.isNav && IS_BROWSER) {\n this.setWindowEvents(false);\n }\n },\n methods: {\n setWindowEvents: function setWindowEvents(on) {\n eventOnOff(on, window, 'resize', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, window, 'orientationchange', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\n },\n toggle: function toggle() {\n this.show = !this.show;\n },\n onEnter: function onEnter() {\n this.transitioning = true; // This should be moved out so we can add cancellable events\n\n this.$emit(EVENT_NAME_SHOW);\n },\n onAfterEnter: function onAfterEnter() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_SHOWN);\n },\n onLeave: function onLeave() {\n this.transitioning = true; // This should be moved out so we can add cancellable events\n\n this.$emit(EVENT_NAME_HIDE);\n },\n onAfterLeave: function onAfterLeave() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n emitState: function emitState() {\n var show = this.show,\n accordion = this.accordion;\n var id = this.safeId();\n this.$emit(MODEL_EVENT_NAME, show); // Let `v-b-toggle` know the state of this collapse\n\n this.emitOnRoot(ROOT_EVENT_NAME_STATE, id, show);\n\n if (accordion && show) {\n // Tell the other collapses in this accordion to close\n this.emitOnRoot(ROOT_EVENT_NAME_ACCORDION, id, accordion);\n }\n },\n emitSync: function emitSync() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.safeId(), this.show);\n },\n checkDisplayBlock: function checkDisplayBlock() {\n // Check to see if the collapse has `display: block !important` set\n // We can't set `display: none` directly on `this.$el`, as it would\n // trigger a new transition to start (or cancel a current one)\n var $el = this.$el;\n var restore = hasClass($el, CLASS_NAME_SHOW);\n removeClass($el, CLASS_NAME_SHOW);\n var isBlock = getCS($el).display === 'block';\n\n if (restore) {\n addClass($el, CLASS_NAME_SHOW);\n }\n\n return isBlock;\n },\n clickHandler: function clickHandler(event) {\n var el = event.target; // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n\n /* istanbul ignore next: can't test `getComputedStyle()` in JSDOM */\n\n if (!this.isNav || !el || getCS(this.$el).display !== 'block') {\n return;\n } // Only close the collapse if it is not forced to be `display: block !important`\n\n\n if ((matches(el, '.nav-link,.dropdown-item') || closest('.nav-link,.dropdown-item', el)) && !this.checkDisplayBlock()) {\n this.show = false;\n }\n },\n handleToggleEvt: function handleToggleEvt(id) {\n if (id === this.safeId()) {\n this.toggle();\n }\n },\n handleAccordionEvt: function handleAccordionEvt(openedId, openAccordion) {\n var accordion = this.accordion,\n show = this.show;\n\n if (!accordion || accordion !== openAccordion) {\n return;\n }\n\n var isThis = openedId === this.safeId(); // Open this collapse if not shown or\n // close this collapse if shown\n\n if (isThis && !show || !isThis && show) {\n this.toggle();\n }\n },\n handleResize: function handleResize() {\n // Handler for orientation/resize to set collapsed state in nav/navbar\n this.show = getCS(this.$el).display === 'block';\n }\n },\n render: function render(h) {\n var appear = this.appear;\n var $content = h(this.tag, {\n class: this.classObject,\n directives: [{\n name: 'show',\n value: this.show\n }],\n attrs: {\n id: this.safeId()\n },\n on: {\n click: this.clickHandler\n }\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope));\n return h(BVCollapse, {\n props: {\n appear: appear\n },\n on: {\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [$content]);\n }\n});","export var CLASS_NAME_SHOW = 'show';\nexport var CLASS_NAME_FADE = 'fade';","// Generic collapse transion helper component\n//\n// Note:\n// Applies the classes `collapse`, `show` and `collapsing`\n// during the enter/leave transition phases only\n// Although it appears that Vue may be leaving the classes\n// in-place after the transition completes\nimport { Vue, mergeData } from '../../../vue';\nimport { NAME_COLLAPSE_HELPER } from '../../../constants/components';\nimport { getBCR, reflow, removeStyle, requestAF, setStyle } from '../../../utils/dom'; // --- Helper methods ---\n// Transition event handler helpers\n\nvar onEnter = function onEnter(el) {\n setStyle(el, 'height', 0); // In a `requestAF()` for `appear` to work\n\n requestAF(function () {\n reflow(el);\n setStyle(el, 'height', \"\".concat(el.scrollHeight, \"px\"));\n });\n};\n\nvar onAfterEnter = function onAfterEnter(el) {\n removeStyle(el, 'height');\n};\n\nvar onLeave = function onLeave(el) {\n setStyle(el, 'height', 'auto');\n setStyle(el, 'display', 'block');\n setStyle(el, 'height', \"\".concat(getBCR(el).height, \"px\"));\n reflow(el);\n setStyle(el, 'height', 0);\n};\n\nvar onAfterLeave = function onAfterLeave(el) {\n removeStyle(el, 'height');\n}; // --- Constants ---\n// Default transition props\n// `appear` will use the enter classes\n\n\nvar TRANSITION_PROPS = {\n css: true,\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: 'collapse show',\n leaveClass: 'collapse show',\n leaveActiveClass: 'collapsing',\n leaveToClass: 'collapse'\n}; // Default transition handlers\n// `appear` will use the enter handlers\n\nvar TRANSITION_HANDLERS = {\n enter: onEnter,\n afterEnter: onAfterEnter,\n leave: onLeave,\n afterLeave: onAfterLeave\n}; // --- Main component ---\n// @vue/component\n\nexport var BVCollapse = /*#__PURE__*/Vue.extend({\n name: NAME_COLLAPSE_HELPER,\n functional: true,\n props: {\n appear: {\n // If `true` (and `visible` is `true` on mount), animate initially visible\n type: Boolean,\n default: false\n }\n },\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('transition', // We merge in the `appear` prop last\n mergeData(data, {\n props: TRANSITION_PROPS,\n on: TRANSITION_HANDLERS\n }, {\n props: props\n }), // Note: `` supports a single root element only\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!./UserRoles.vue?vue&type=style&index=1&lang=scss&\"","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=style&index=0&id=c26398c2&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=style&index=0&lang=scss&\"","import { toString } from './string';\n\nvar escapeChar = function escapeChar(value) {\n return '\\\\' + value;\n}; // The `cssEscape()` util is based on this `CSS.escape()` polyfill:\n// https://github.com/mathiasbynens/CSS.escape\n\n\nexport var cssEscape = function cssEscape(value) {\n value = toString(value);\n var length = value.length;\n var firstCharCode = value.charCodeAt(0);\n return value.split('').reduce(function (result, char, index) {\n var charCode = value.charCodeAt(index); // If the character is NULL (U+0000), use (U+FFFD) as replacement\n\n if (charCode === 0x0000) {\n return result + \"\\uFFFD\";\n } // If the character ...\n\n\n if ( // ... is U+007F OR\n charCode === 0x007f || // ... is in the range [\\1-\\1F] (U+0001 to U+001F) OR ...\n charCode >= 0x0001 && charCode <= 0x001f || // ... is the first character and is in the range [0-9] (U+0030 to U+0039) OR ...\n index === 0 && charCode >= 0x0030 && charCode <= 0x0039 || // ... is the second character and is in the range [0-9] (U+0030 to U+0039)\n // and the first character is a `-` (U+002D) ...\n index === 1 && charCode >= 0x0030 && charCode <= 0x0039 && firstCharCode === 0x002d) {\n // ... https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n return result + escapeChar(\"\".concat(charCode.toString(16), \" \"));\n } // If the character ...\n\n\n if ( // ... is the first character AND ...\n index === 0 && // ... is a `-` (U+002D) AND ...\n charCode === 0x002d && // ... there is no second character ...\n length === 1) {\n // ... use the escaped character\n return result + escapeChar(char);\n } // If the character ...\n\n\n if ( // ... is greater than or equal to U+0080 OR ...\n charCode >= 0x0080 || // ... is `-` (U+002D) OR ...\n charCode === 0x002d || // ... is `_` (U+005F) OR ...\n charCode === 0x005f || // ... is in the range [0-9] (U+0030 to U+0039) OR ...\n charCode >= 0x0030 && charCode <= 0x0039 || // ... is in the range [A-Z] (U+0041 to U+005A) OR ...\n charCode >= 0x0041 && charCode <= 0x005a || // ... is in the range [a-z] (U+0061 to U+007A) ...\n charCode >= 0x0061 && charCode <= 0x007a) {\n // ... use the character itself\n return result + char;\n } // Otherwise use the escaped character\n // See: https://drafts.csswg.org/cssom/#escape-a-character\n\n\n return result + escapeChar(char);\n }, '');\n};","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_ROW } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_FORM_ROW); // --- Main component ---\n// @vue/component\n\nexport var BFormRow = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_ROW,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'form-row'\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_VALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_VALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormValidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_VALID_FEEDBACK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === true;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'valid-feedback': !tooltip,\n 'valid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NAME_FORM_GROUP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_SPACE_SPLIT } from '../../constants/regex';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_DESCRIPTION, SLOT_NAME_INVALID_FEEDBACK, SLOT_NAME_LABEL, SLOT_NAME_VALID_FEEDBACK } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { cssEscape } from '../../utils/css-escape';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr, attemptFocus } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isBoolean } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BCol } from '../layout/col';\nimport { BFormRow } from '../layout/form-row';\nimport { BFormText } from '../form/form-text';\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback';\nimport { BFormValidFeedback } from '../form/form-valid-feedback'; // --- Constants ---\n\nvar INPUTS = ['input', 'select', 'textarea']; // Selector for finding first input in the form group\n\nvar INPUT_SELECTOR = INPUTS.map(function (v) {\n return \"\".concat(v, \":not([disabled])\");\n}).join(); // A list of interactive elements (tag names) inside ``'s legend\n\nvar LEGEND_INTERACTIVE_ELEMENTS = [].concat(INPUTS, ['a', 'button', 'label']); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formStateProps), getBreakpointsUpCached().reduce(function (props, breakpoint) {\n // i.e. 'content-cols', 'content-cols-sm', 'content-cols-md', ...\n props[suffixPropName(breakpoint, 'contentCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING); // i.e. 'label-align', 'label-align-sm', 'label-align-md', ...\n\n props[suffixPropName(breakpoint, 'labelAlign')] = makeProp(PROP_TYPE_STRING); // i.e. 'label-cols', 'label-cols-sm', 'label-cols-md', ...\n\n props[suffixPropName(breakpoint, 'labelCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null))), {}, {\n description: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),\n invalidFeedback: makeProp(PROP_TYPE_STRING),\n label: makeProp(PROP_TYPE_STRING),\n labelClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n labelFor: makeProp(PROP_TYPE_STRING),\n labelSize: makeProp(PROP_TYPE_STRING),\n labelSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false),\n validFeedback: makeProp(PROP_TYPE_STRING),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n })), NAME_FORM_GROUP);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BFormGroup = {\n name: NAME_FORM_GROUP,\n mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n data: function data() {\n return {\n ariaDescribedby: null\n };\n },\n computed: {\n contentColProps: function contentColProps() {\n return this.getColProps(this.$props, 'content');\n },\n labelAlignClasses: function labelAlignClasses() {\n return this.getAlignClasses(this.$props, 'label');\n },\n labelColProps: function labelColProps() {\n return this.getColProps(this.$props, 'label');\n },\n isHorizontal: function isHorizontal() {\n // Determine if the form group will be rendered horizontal\n // based on the existence of 'content-col' or 'label-col' props\n return keys(this.contentColProps).length > 0 || keys(this.labelColProps).length > 0;\n }\n },\n watch: {\n ariaDescribedby: function ariaDescribedby(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.updateAriaDescribedby(newValue, oldValue);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Set `aria-describedby` on the input specified by `labelFor`\n // We do this in a `$nextTick()` to ensure the children have finished rendering\n _this.updateAriaDescribedby(_this.ariaDescribedby);\n });\n },\n methods: {\n getAlignClasses: function getAlignClasses(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Align\"))] || null;\n\n if (propValue) {\n result.push(['text', breakpoint, propValue].filter(identity).join('-'));\n }\n\n return result;\n }, []);\n },\n getColProps: function getColProps(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Cols\"))]; // Handle case where the prop's value is an empty string,\n // which represents `true`\n\n propValue = propValue === '' ? true : propValue || false;\n\n if (!isBoolean(propValue) && propValue !== 'auto') {\n // Convert to column size to number\n propValue = toInteger(propValue, 0); // Ensure column size is greater than `0`\n\n propValue = propValue > 0 ? propValue : false;\n } // Add the prop to the list of props to give to ``\n // If breakpoint is '' (`${prefix}Cols` is `true`), then we use\n // the 'col' prop to make equal width at 'xs'\n\n\n if (propValue) {\n result[breakpoint || (isBoolean(propValue) ? 'col' : 'cols')] = propValue;\n }\n\n return result;\n }, {});\n },\n // Sets the `aria-describedby` attribute on the input if `labelFor` is set\n // Optionally accepts a string of IDs to remove as the second parameter\n // Preserves any `aria-describedby` value(s) user may have on input\n updateAriaDescribedby: function updateAriaDescribedby(newValue, oldValue) {\n var labelFor = this.labelFor;\n\n if (IS_BROWSER && labelFor) {\n // We need to escape `labelFor` since it can be user-provided\n var $input = select(\"#\".concat(cssEscape(labelFor)), this.$refs.content);\n\n if ($input) {\n var attr = 'aria-describedby';\n var newIds = (newValue || '').split(RX_SPACE_SPLIT);\n var oldIds = (oldValue || '').split(RX_SPACE_SPLIT); // Update ID list, preserving any original IDs\n // and ensuring the ID's are unique\n\n var ids = (getAttr($input, attr) || '').split(RX_SPACE_SPLIT).filter(function (id) {\n return !arrayIncludes(oldIds, id);\n }).concat(newIds).filter(function (id, index, ids) {\n return ids.indexOf(id) === index;\n }).filter(identity).join(' ').trim();\n\n if (ids) {\n setAttr($input, attr, ids);\n } else {\n removeAttr($input, attr);\n }\n }\n }\n },\n onLegendClick: function onLegendClick(event) {\n // Don't do anything if `labelFor` is set\n\n /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n if (this.labelFor) {\n return;\n }\n\n var target = event.target;\n var tagName = target ? target.tagName : ''; // If clicked an interactive element inside legend,\n // we just let the default happen\n\n /* istanbul ignore next */\n\n if (LEGEND_INTERACTIVE_ELEMENTS.indexOf(tagName) !== -1) {\n return;\n } // If only a single input, focus it, emulating label behaviour\n\n\n var inputs = selectAll(INPUT_SELECTOR, this.$refs.content).filter(isVisible);\n\n if (inputs.length === 1) {\n attemptFocus(inputs[0]);\n }\n }\n },\n render: function render(h) {\n var state = this.computedState,\n feedbackAriaLive = this.feedbackAriaLive,\n isHorizontal = this.isHorizontal,\n labelFor = this.labelFor,\n normalizeSlot = this.normalizeSlot,\n safeId = this.safeId,\n tooltip = this.tooltip;\n var id = safeId();\n var isFieldset = !labelFor;\n var $label = h();\n var labelContent = normalizeSlot(SLOT_NAME_LABEL) || this.label;\n var labelId = labelContent ? safeId('_BV_label_') : null;\n\n if (labelContent || isHorizontal) {\n var labelSize = this.labelSize,\n labelColProps = this.labelColProps;\n var labelTag = isFieldset ? 'legend' : 'label';\n\n if (this.labelSrOnly) {\n if (labelContent) {\n $label = h(labelTag, {\n class: 'sr-only',\n attrs: {\n id: labelId,\n for: labelFor || null\n }\n }, [labelContent]);\n }\n\n $label = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? labelColProps : {}\n }, [$label]);\n } else {\n $label = h(isHorizontal ? BCol : labelTag, {\n on: isFieldset ? {\n click: this.onLegendClick\n } : {},\n props: isHorizontal ? _objectSpread(_objectSpread({}, labelColProps), {}, {\n tag: labelTag\n }) : {},\n attrs: {\n id: labelId,\n for: labelFor || null,\n // We add a `tabindex` to legend so that screen readers\n // will properly read the `aria-labelledby` in IE\n tabindex: isFieldset ? '-1' : null\n },\n class: [// Hide the focus ring on the legend\n isFieldset ? 'bv-no-focus-ring' : '', // When horizontal or if a legend is rendered, add 'col-form-label' class\n // for correct sizing as Bootstrap has inconsistent font styling for\n // legend in non-horizontal form groups\n // See: https://github.com/twbs/bootstrap/issues/27805\n isHorizontal || isFieldset ? 'col-form-label' : '', // Emulate label padding top of `0` on legend when not horizontal\n !isHorizontal && isFieldset ? 'pt-0' : '', // If not horizontal and not a legend, we add 'd-block' class to label\n // so that label-align works\n !isHorizontal && !isFieldset ? 'd-block' : '', labelSize ? \"col-form-label-\".concat(labelSize) : '', this.labelAlignClasses, this.labelClass]\n }, [labelContent]);\n }\n }\n\n var $invalidFeedback = h();\n var invalidFeedbackContent = normalizeSlot(SLOT_NAME_INVALID_FEEDBACK) || this.invalidFeedback;\n var invalidFeedbackId = invalidFeedbackContent ? safeId('_BV_feedback_invalid_') : null;\n\n if (invalidFeedbackContent) {\n $invalidFeedback = h(BFormInvalidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: invalidFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `false`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: invalidFeedbackContent ? '-1' : null\n }\n }, [invalidFeedbackContent]);\n }\n\n var $validFeedback = h();\n var validFeedbackContent = normalizeSlot(SLOT_NAME_VALID_FEEDBACK) || this.validFeedback;\n var validFeedbackId = validFeedbackContent ? safeId('_BV_feedback_valid_') : null;\n\n if (validFeedbackContent) {\n $validFeedback = h(BFormValidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: validFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `true`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: validFeedbackContent ? '-1' : null\n }\n }, [validFeedbackContent]);\n }\n\n var $description = h();\n var descriptionContent = normalizeSlot(SLOT_NAME_DESCRIPTION) || this.description;\n var descriptionId = descriptionContent ? safeId('_BV_description_') : null;\n\n if (descriptionContent) {\n $description = h(BFormText, {\n attrs: {\n id: descriptionId,\n tabindex: '-1'\n }\n }, [descriptionContent]);\n } // Update `ariaDescribedby`\n // Screen readers will read out any content linked to by `aria-describedby`\n // even if the content is hidden with `display: none;`, hence we only include\n // feedback IDs if the form group's state is explicitly valid or invalid\n\n\n var ariaDescribedby = this.ariaDescribedby = [descriptionId, state === false ? invalidFeedbackId : null, state === true ? validFeedbackId : null].filter(identity).join(' ') || null;\n var $content = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? this.contentColProps : {},\n ref: 'content'\n }, [normalizeSlot(SLOT_NAME_DEFAULT, {\n ariaDescribedby: ariaDescribedby,\n descriptionId: descriptionId,\n id: id,\n labelId: labelId\n }) || h(), $invalidFeedback, $validFeedback, $description]); // Return it wrapped in a form group\n // Note: Fieldsets do not support adding `row` or `form-row` directly\n // to them due to browser specific render issues, so we move the `form-row`\n // to an inner wrapper div when horizontal and using a fieldset\n\n return h(isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div', {\n staticClass: 'form-group',\n class: [{\n 'was-validated': this.validated\n }, this.stateClass],\n attrs: {\n id: id,\n disabled: isFieldset ? this.disabled : null,\n role: isFieldset ? null : 'group',\n 'aria-invalid': this.computedAriaInvalid,\n // Only apply `aria-labelledby` if we are a horizontal fieldset\n // as the legend is no longer a direct child of fieldset\n 'aria-labelledby': isFieldset && isHorizontal ? labelId : null\n }\n }, isHorizontal && isFieldset ? [h(BFormRow, [$label, $content])] : [$label, $content]);\n }\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"m-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center justify-content-start mb-1 mb-md-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('TableEntries',{attrs:{\"options\":_vm.perPageOptions},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}}),(_vm.getUserPermission('CREATE_USER_ROLE'))?_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){_vm.showModal('modal-lg'),\n (_vm.isReadonly = false),\n (_vm.modalType = { type: 'add', text: 'Create New Role' })}}},[_vm._v(\"\\n Add\\n \")]):_vm._e()],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('div',{staticClass:\"d-flex align-items-center justify-content-end\"},[_c('b-button',{staticClass:\"mr-1\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.showModal('modal-filter')}}},[_c('feather-icon',{attrs:{\"icon\":\"FilterIcon\"}}),_vm._v(\" Filter\\n \")],1),_c('Button',{attrs:{\"label\":\"Reset Filter\",\"size\":\"md\",\"icon\":\"RotateCwIcon\",\"show-icon\":\"\"},on:{\"click\":_vm.resetFilter}})],1)])],1)],1),_c('b-table',{staticClass:\"position-relative\",attrs:{\"items\":_vm.roleList,\"responsive\":\"\",\"busy\":_vm.isBusy,\"fields\":_vm.tableHeaders,\"primary-key\":\"id\",\"show-empty\":\"\",\"empty-text\":\"No data available\"},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-danger my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\"}})],1)]},proxy:true},{key:\"cell(SN)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.getOverallIndex(data.index))+\"\\n \")]}},{key:\"cell(roleName)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(data.value)+\"\\n \")]}},{key:\"cell(actions)\",fn:function(data){return [_c('div',{staticClass:\"text-nowrap\"},[_c('b-dropdown',{attrs:{\"variant\":\"link\",\"toggle-class\":\"p-0\",\"no-caret\":\"\",\"right\":_vm.$store.state.appConfig.isRTL},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('feather-icon',{staticClass:\"align-middle text-body\",attrs:{\"icon\":\"MoreVerticalIcon\",\"size\":\"16\"}})]},proxy:true}],null,true)},[(_vm.getUserPermission('MODIFY_USER_ROLE'))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.updateViewRole(data.item, 'edit')}}},[_c('feather-icon',{attrs:{\"icon\":\"EditIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Modify\")])],1):_vm._e(),_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.updateViewRole(data.item, 'view')}}},[_c('feather-icon',{attrs:{\"icon\":\"EyeIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"View\")])],1)],1)],1)]}}])}),_c('TablePagination',{attrs:{\"from\":_vm.from,\"to\":_vm.to,\"total-rows\":_vm.totalEntries,\"per-page\":_vm.perPage},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}}),_c('b-modal',{ref:\"my-modal\",attrs:{\"id\":\"modal-lg\",\"ok-title\":_vm.modalType.buttonLabel,\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"centered\":\"\",\"size\":\"lg\",\"title\":_vm.modalType.text,\"ok-disabled\":_vm.isLoading},on:{\"ok\":_vm.handleSubmit,\"hidden\":_vm.clearForm},scopedSlots:_vm._u([(_vm.isReadonly)?{key:\"modal-footer\",fn:function(ref){return [_c('div')]}}:null],null,true)},[_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.handleSubmit.apply(null, arguments)}}},[_c('validation-observer',{ref:\"roleRules\"},[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('InputField',{attrs:{\"id\":\"role-name\",\"label\":\"Role Name\",\"placeholder\":\"Enter role name\",\"type\":\"text\",\"error-name\":\"Role Name\",\"rules\":\"required\",\"for\":\"role-name\",\"readonly\":_vm.isReadonly,\"onpaste\":\"return false;\",\"is-allow-special-characters\":false},model:{value:(_vm.roleFormData.name),callback:function ($$v) {_vm.$set(_vm.roleFormData, \"name\", $$v)},expression:\"roleFormData.name\"}})],1),_c('b-col',{attrs:{\"md\":\"12\"}},[_c('TextAreaField',{attrs:{\"id\":\"role-description\",\"rows\":\"4\",\"label\":\"Role Description\",\"placeholder\":\"Enter role description\",\"type\":\"text\",\"error-name\":\"Role Description\",\"rules\":\"required\",\"for\":\"role-description\",\"readonly\":_vm.isReadonly},model:{value:(_vm.roleFormData.description),callback:function ($$v) {_vm.$set(_vm.roleFormData, \"description\", $$v)},expression:\"roleFormData.description\"}})],1)],1),_c('div',{staticClass:\"business-card\"},[_c('app-collapse',{staticClass:\"business-items\",attrs:{\"type\":\"margin\",\"accordion\":\"\"}},_vm._l((_vm.sortPermissions),function(item,key){return _c('app-collapse-item',{key:key,staticClass:\"card-item px-2\",attrs:{\"title\":key}},[_c('b-row',{staticClass:\"ml-0\"},[_c('b-col',{staticClass:\"business-item mr-1 mb-1\",attrs:{\"md\":\"3\"}},[_c('div',{staticClass:\"d-flex align-items-center justify-content-between\"},[_c('b-form-checkbox',{attrs:{\"aria-describedby\":key,\"aria-controls\":key,\"disabled\":_vm.isReadonly},on:{\"change\":function($event){_vm.toggleAll(item.slice(1), $event)}},model:{value:(_vm.allSelected[key]),callback:function ($$v) {_vm.$set(_vm.allSelected, key, $$v)},expression:\"allSelected[key]\"}},[_vm._v(\"\\n Select All\\n \")])],1)]),_vm._l((item.slice(1)),function(permission,j){return _c('b-col',{key:j,staticClass:\"business-item mr-1 mb-1\",attrs:{\"md\":\"3\"}},[_c('div',{staticClass:\"d-flex align-items-center justify-content-between\"},[_c('b-form-checkbox',{attrs:{\"value\":permission.name,\"disabled\":_vm.isReadonly},model:{value:(_vm.roleFormData.permissions),callback:function ($$v) {_vm.$set(_vm.roleFormData, \"permissions\", $$v)},expression:\"roleFormData.permissions\"}},[_vm._v(\"\\n \"+_vm._s(permission.description)+\"\\n \")])],1)])})],2)],1)}),1)],1)],1)],1)],1),_c('b-modal',{ref:\"modal-filter\",attrs:{\"id\":\"modal-filter\",\"ok-title\":\"Apply\",\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"centered\":\"\",\"size\":\"lg\",\"title\":\"Filters\",\"modal-footer\":\"\"},on:{\"ok\":_vm.getRoles,\"cancel\":_vm.resetFilters}},[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"name\",\"label\":\"Name\",\"placeholder\":\"Enter name\",\"type\":\"text\",\"for\":\"name\",\"onpaste\":\"return false;\",\"is-allow-special-characters\":false},model:{value:(_vm.filter.name),callback:function ($$v) {_vm.$set(_vm.filter, \"name\", $$v)},expression:\"filter.name\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n\n \n Add\n \n \n \n \n \n Filter\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n {{ getOverallIndex(data.index) }}\n \n \n \n {{ data.value }}\n \n\n \n \n \n \n \n \n \n \n \n \n Modify\n \n \n \n View\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select All\n \n \n \n \n \n \n {{ permission.description }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n","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!./UserRoles.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!./UserRoles.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserRoles.vue?vue&type=template&id=5537e147&scoped=true&\"\nimport script from \"./UserRoles.vue?vue&type=script&lang=js&\"\nexport * from \"./UserRoles.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserRoles.vue?vue&type=style&index=0&id=5537e147&lang=scss&scoped=true&\"\nimport style1 from \"./UserRoles.vue?vue&type=style&index=1&lang=scss&\"\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 \"5537e147\",\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_FORM_TEXT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'small'),\n textVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_FORM_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BFormText = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'form-text': !props.inline\n }, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n id: props.id\n }\n }), children);\n }\n});","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: this.$props,\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{class:{'open': _vm.visible},attrs:{\"no-body\":\"\"},on:{\"mouseenter\":_vm.collapseOpen,\"mouseleave\":_vm.collapseClose}},[_c('b-card-header',{class:{'collapsed': !_vm.visible},attrs:{\"aria-expanded\":_vm.visible ? 'true' : 'false',\"aria-controls\":_vm.collapseItemID,\"role\":\"tab\",\"data-toggle\":\"collapse\"},on:{\"click\":function($event){return _vm.updateVisible(!_vm.visible)}}},[_vm._t(\"header\",function(){return [_c('span',{staticClass:\"lead collapse-title\"},[_vm._v(_vm._s(_vm.title))])]})],2),_c('b-collapse',{attrs:{\"id\":_vm.collapseItemID,\"accordion\":_vm.accordion,\"role\":\"tabpanel\"},model:{value:(_vm.visible),callback:function ($$v) {_vm.visible=$$v},expression:\"visible\"}},[_c('b-card-body',[_vm._t(\"default\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n {{ title }}\n \n \n\n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppCollapseItem.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!./AppCollapseItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppCollapseItem.vue?vue&type=template&id=af0845a4&\"\nimport script from \"./AppCollapseItem.vue?vue&type=script&lang=js&\"\nexport * from \"./AppCollapseItem.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 render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":_vm.variant,\"disabled\":_vm.disabled,\"size\":_vm.size,\"block\":_vm.block},on:{\"click\":_vm.onClick}},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":_vm.icon,\"show-icon\":_vm.showIcon}}),(_vm.loading)?_c('b-spinner',{attrs:{\"small\":\"\"}}):_vm._e(),_c('span',{staticClass:\"align-middle\"},[_vm._v(\" \"+_vm._s(_vm.label))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ label }}\n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Button.vue?vue&type=template&id=501d0161&\"\nimport script from \"./Button.vue?vue&type=script&lang=js&\"\nexport * from \"./Button.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-group',[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))]),_c('validation-provider',{attrs:{\"name\":_vm.errorName,\"rules\":_vm.rules},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-form-textarea',{attrs:{\"id\":_vm.id,\"value\":_vm.value,\"placeholder\":_vm.placeholder,\"state\":errors.length > 0 ? false:null,\"rows\":_vm.rows,\"maxlength\":_vm.maxlength,\"readonly\":_vm.readonly},on:{\"input\":_vm.onInput},nativeOn:{\"keypress\":function($event){return _vm.handleKeyPress.apply(null, arguments)}},model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),_c('feather-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showIcon),expression:\"showIcon\"}],staticClass:\"cursor-pointer ml-1\",attrs:{\"icon\":_vm.icon,\"size\":_vm.iconSize},on:{\"click\":_vm.onClick}})],1),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_TEXTAREA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect';\nimport { mathCeil, mathMax, mathMin } from '../../utils/math';\nimport { toInteger, toFloat } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { VBVisible } from '../../directives/visible/visible'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n maxRows: makeProp(PROP_TYPE_NUMBER_STRING),\n // When in auto resize mode, disable shrinking to content height\n noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the resize handle of textarea\n noResize: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),\n // 'soft', 'hard' or 'off'\n // Browser default is 'soft'\n wrap: makeProp(PROP_TYPE_STRING, 'soft')\n})), NAME_FORM_TEXTAREA); // --- Main component ---\n// @vue/component\n\nexport var BFormTextarea = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXTAREA,\n directives: {\n 'b-visible': VBVisible\n },\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return mathMax(toInteger(this.rows, 2), 2);\n },\n computedMaxRows: function computedMaxRows() {\n return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.disabled,\n required = this.required;\n return {\n id: this.safeId(),\n name: this.name || null,\n form: this.form || null,\n disabled: disabled,\n placeholder: this.placeholder || null,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.computedRows,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n localValue: function localValue() {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n\n /* istanbul ignore next */\n visibleCallback: function visibleCallback(visible) {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n computeHeight: function computeHeight() {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = toFloat(computedStyle.lineHeight, 1); // Calculate height of border and padding\n\n var border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);\n var padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = getStyle(el, 'height') || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n setStyle(el, 'height', 'auto');\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n setStyle(el, 'height', oldHeight); // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = mathMax((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = mathMax(mathCeil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n return h('textarea', {\n class: this.computedClass,\n style: this.computedStyle,\n directives: [{\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","\n \n\n \n {{ label }}\n \n \n 0 ? false:null\"\n :rows=\"rows\"\n :maxlength=\"maxlength\"\n :readonly=\"readonly\"\n @input=\"onInput\"\n @keypress.native=\"handleKeyPress\"\n />\n \n \n {{ errors[0] }}\n \n \n\n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextAreaField.vue?vue&type=template&id=ecc47568&\"\nimport script from \"./TextAreaField.vue?vue&type=script&lang=js&\"\nexport * from \"./TextAreaField.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mx-2 mb-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-start\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$t('Showing'))+\" \"+_vm._s(_vm.from)+\" \"+_vm._s(_vm.$t('to'))+\" \"+_vm._s(_vm.to)+\" \"+_vm._s(_vm.$t('of'))+\" \"+_vm._s(_vm.totalRows)+\" \"+_vm._s(_vm.$t('entries'))+\" \")])]),_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-end\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('Pagination',{attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-pagination',{staticClass:\"mb-0 mt-1 mt-sm-0\",attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"first-number\":\"\",\"last-number\":\"\",\"prev-class\":\"prev-item\",\"next-class\":\"next-item\"},scopedSlots:_vm._u([{key:\"prev-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronLeftIcon\",\"size\":\"18\"}})]},proxy:true},{key:\"next-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronRightIcon\",\"size\":\"18\"}})]},proxy:true}]),model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=24a69b3b&\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js&\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n \n\n \n {{ $t('Showing') }} {{ from }} {{ $t('to') }} {{ to }} {{ $t('of') }} {{ totalRows }} {{ $t('entries') }} \n \n\n \n \n \n \n\n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TablePagination.vue?vue&type=template&id=77d3811a&\"\nimport script from \"./TablePagination.vue?vue&type=script&lang=js&\"\nexport * from \"./TablePagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRoles.vue?vue&type=style&index=0&id=5537e147&lang=scss&scoped=true&\"","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","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',{staticClass:\"collapse-icon\",class:_vm.collapseClasses,attrs:{\"role\":\"tablist\"}},[_vm._t(\"default\")],2)}\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!./AppCollapse.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!./AppCollapse.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppCollapse.vue?vue&type=template&id=20c0c53e&\"\nimport script from \"./AppCollapse.vue?vue&type=script&lang=js&\"\nexport * from \"./AppCollapse.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=style&index=1&id=bcfccc92&lang=scss&scoped=true&\"","var _watch, _methods;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\n});","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true for is-valid\n * - false for is-invalid\n * - null for no contextual state\n */\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { isBoolean } from '../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Tri-state prop: true, false, null (or undefined)\n state: makeProp(PROP_TYPE_BOOLEAN, null)\n}, 'formState'); // --- Mixin ---\n// @vue/component\n\nexport var formStateMixin = Vue.extend({\n props: props,\n computed: {\n computedState: function computedState() {\n // If not a boolean, ensure that value is null\n return isBoolean(this.state) ? this.state : null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n return state === true ? 'is-valid' : state === false ? 'is-invalid' : null;\n },\n computedAriaInvalid: function computedAriaInvalid() {\n var ariaInvalid = this.ariaInvalid;\n\n if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n return 'true';\n }\n\n return this.computedState === false ? 'true' : ariaInvalid;\n }\n }\n});","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': toString(visible)\n },\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.\n * It will read the variation of the `placement` property.\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.\n * These can be overridden using the `options` argument of Popper.js.\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n"],"sourceRoot":""}
\n {{ text }}\n