{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.regexp.test.js","webpack:///./node_modules/bootstrap-vue/esm/components/spinner/spinner.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?de04","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?512b","webpack:///./src/@core/components/toastification/ToastificationContent.vue","webpack:///./node_modules/bootstrap-vue/esm/directives/tooltip/tooltip.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?bb93","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./node_modules/vee-validate/dist/rules.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav-form.js","webpack:///./src/views/Login-ads.vue?cad3","webpack:///./src/assets/images/pages/login-v2.svg","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:///./node_modules/vee-validate/dist/vee-validate.esm.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack:///./src/@core/utils/validations/validators.js","webpack:///./src/@core/utils/validations/validations.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/mixins/form-custom.js","webpack:///./src/@core/mixins/ui/forms.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:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav-item-dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-divider.js","webpack:///./src/views/Login-ads.vue?24d5","webpack:///src/views/Login-ads.vue","webpack:///./src/views/Login-ads.vue?63f8","webpack:///./src/views/Login-ads.vue","webpack:///./src/assets/images/pages/login-v2-dark.svg"],"names":["$","call","isCallable","anObject","toString","DELEGATES_TO_EXEC","execCalled","re","exec","apply","this","arguments","test","nativeTest","target","proto","forced","S","R","string","result","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","props","label","role","small","tag","type","variant","BSpinner","extend","name","functional","render","h","_ref","_class","data","slots","scopedSlots","$slots","$scopedSlots","$label","staticClass","attrs","class","concat","id","inline","novalidate","validated","BForm","children","_vm","_h","$createElement","_c","_self","icon","domProps","_s","title","_e","text","on","$event","$emit","hideClose","staticRenderFns","components","BAvatar","String","default","Boolean","component","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_objectSpread","i","length","source","forEach","getOwnPropertyDescriptors","defineProperties","BV_TOOLTIP","DefaultTrigger","validTriggers","focus","hover","click","blur","manual","htmlRE","noninteractiveRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","parseBindings","bindings","vnode","config","undefined","trigger","placement","fallbackPlacement","container","animation","offset","html","interactive","disabled","delay","boundary","boundaryPadding","customClass","show","hide","arg","modifiers","mod","slice","selectedTriggers","join","trim","toLowerCase","split","applyTooltip","el","$parent","context","parent","_scopeId","__bv_prev_data__","$on","updateData","triggers","noFade","oldData","newData","prop","removeTooltip","$destroy","VBTooltip","bind","componentUpdated","$nextTick","unbind","BInputGroupPrepend","append","isText","BInputGroupAddon","alpha","en","cs","da","de","es","fa","fr","it","lt","nl","hu","pl","pt","ro","ru","sk","sr","sv","tr","uk","ar","az","alphanumeric","alphaDash","validate","_a","_b","locale","Array","isArray","every","val","some","loc","params","alpha$1","validate$1","params$1","alpha_dash","validate$2","params$2","alpha_num","validate$4","min","max","Number","params$4","between","validate$5","params$5","isTarget","confirmed","validate$6","strVal","params$6","cast","digits","validate$8","multiple","map","emailStr","params$8","email","isNullOrUndefined","isEmptyArray","arr","fn","toArray","arrayLike","from","_copyArray","array","validate$d","integer","validate$g","params$b","validate$k","params$e","validate$n","regex","params$g","RegExp","validate$o","allowFalse","valid","required","computesRequired","params$h","formClass","BNavForm","listeners","$form","module","exports","appendHtml","prepend","prependHtml","size","BInputGroup","slotScope","$prepend","hasPrependSlot","$append","hasAppendSlot","_watch","_makeModelMixin","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","event","parseCountDown","parseShow","dismissLabel","dismissible","fade","BAlert","mixins","countDown","localShow","watch","newValue","_this","clearCountDownInterval","$_countDownTimeout","setTimeout","created","$_filterTimer","beforeDestroy","methods","dismiss","clearTimeout","$alert","$dismissButton","normalizeSlot","__assign","assign","t","s","n","p","prototype","hasOwnProperty","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","e","rejected","done","then","__generator","body","f","y","g","_","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","__spreadArrays","il","r","k","a","j","jl","isNaN","isObject","isRefEqual","lhs","rhs","isEqual","flags","isSpecified","isLocator","__locatorRef","findIndex","predicate","find","idx","includes","collection","item","indexOf","values","merge","createFlags","untouched","touched","dirty","pristine","invalid","pending","changed","passed","failed","debounce","wait","token","cancelled","args","_i","later","timeout","warn","message","console","interpolate","template","replace","RULES","normalizeSchema","schema","param","RuleContainer","rule","lazy","isLazy","isRequireRule","getRuleDefinition","ruleName","guardExtend","validator","Error","DEFAULT_CONFIG","defaultMessage","skipOptional","classes","bails","mode","useConstraintAttrs","currentConfig","getConfig","setConfig","newConf","normalizeRules","rules","acc","_$$isNormalized","reduce","prev","curr","buildParams","parsedRule","parseRule","provided","ruleSchema","definedParams","lastDefinedParam_1","options","createLocator","castFn","locator","crossTable","extractLocators","shouldBail","skipIfEmpty","field","errors","failedRules","regenerateMap","forceRequired","names","customMessages","_validate","msg","isInitial","shouldSkip","_d","_shouldSkip","_test","error","requireRules","isEmpty","isEmptyAndOptional","isRequired","normalizedValue","values_1","castValue","fillTargetValues","_field_","_value_","_rule_","_generateFieldError","ruleTargets","_getRuleTargets","_getUserTargets","userTargets","userMessage","_normalizeMessage","numTargets","ruleConfig","index","name_1","targetPart","normalize","aggressive","eager","passive","modes","EVENT_BUS","localeChanged","DICTIONARY","Dictionary","dictionary","format","_f","_g","fieldContainer","fields","messageContainer","messages","hasRule","localize","isEvent","evt","Event","srcElement","normalizeEventValue","input","files","_vModifiers","number","valueAsNumber","parseFloat","trimmedValue","isTextInput","elm","findModel","nonStandardVNodeData","model","directives","d","findValue","findModelConfig","componentOptions","propsData","propsDataWithValue","extractChildren","findInputNodes","nodes","node","candidates","Ctor","mergeVNodeListeners","eventName","handler","fns","invoker","addNativeNodeListener","addComponentNodeListener","addVNodeListener","getInputEventName","event_1","isHTMLNode","resolveTextualRules","pattern","maxlength","minlength","min_value","max_value","resolveRules","htmlTags","normalizeChildren","slotProps","shouldValidate","ctx","_ignoreImmediate","immediate","normalizedEvents","_needsValidation","initialized","createValidationCtx","reset","ariaInput","ariaMsg","onRenderUpdate","vm","initialValue","validateNow","triggerThreadSafeValidation","validateSilent","$once","computeModeSetting","compute","pendingPromise","_pendingValidation","applyResult","createCommonHandlers","$veeOnInput","syncValue","setFlags","onInput","$veeOnBlur","onBlur","onValidate","$veeHandler","$veeDebounce","_pendingReset","addListeners","_inputEventName","PROVIDER_COUNTER","fieldName","defaultValues","isActive","ValidationProvider","inject","$_veeObserver","$vnode","createObserver","vid","Function","slim","detectInput","deep","oldVal","computed","fieldDeps","normalizedRules","deps","dep","depName","watchCrossFieldDep","_resolvedRules","computeClassObj","mounted","onLocaleChanged","_regenerateMap","errors_1","failedRules_1","$off","registerField","inputs","resolved","unobserve","activated","deactivated","flag","createLookup","setErrors","updateRenderingContextRefs","_loop_1","className","cls","providers","refs","reduced","extractId","providedId","observe","withHooks","_veeWatchers","$watch","FLAGS_STRATEGIES","OBSERVER_COUNTER","data$1","createObserverFlags","observers","provideSelf","ValidationObserver","provide","register","onChange","computeObserverState","unregister","prepareSlotProps","$listeners","subscriber","kind","o","splice","provider","$delete","validateWithInfo","silent","results","isValid","all","ref","obs","handleSubmit","cb","errorArr","observer","passes","vms","method","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","content","arrowPadding","BVTooltip","activeTrigger","templateType","computedId","computedDelay","computedTriggers","sort","isWithActiveTrigger","computedTemplateData","newTriggers","oldTriggers","unListen","listen","handleTemplateUpdate","oldValue","disable","enable","_this2","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","getTarget","document","scopeId","updated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","getTemplate","_this3","titleUpdated","fixTitle","createTemplateAndShow","getContainer","Template","$tip","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","$mount","appendChild","createElement","hideTemplate","clearActiveTriggers","localPlacementTarget","_unused","removeAriaDescribedby","restoreTitle","getTemplateElement","$el","_this4","dropdownOpen","showEvt","buildEvent","cancelable","emitEvent","defaultPrevented","addAriaDescribedby","force","tip","hideEvt","prevHoverState","leave","getTargetId","isInModal","isDropdown","clearInterval","desc","_this5","relatedTarget","componentId","vueTarget","bvEvent","emitOnRoot","_this6","setRootListener","_this7","events","$root","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","parentNode","_this9","documentElement","__vue__","enter","eventTarget","currentTarget","toggle","_this10","_this11","validatorPositive","validatorPassword","password","regExp","validPassword","validatorCreditCard","creditnum","cRegExp","validCreditCard","validatorVatPercent","validatorPrice","validatorQty","validatorUrlValidator","rule_required","rule_email","rule_min","rule_confirmed","rule_regex","rule_between","rule_alpha","rule_integer","rule_digits","rule_alpha_dash","rule_alpha_num","rule_length","regexPattern","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","dropleft","dropright","dropup","noFlip","popperOpts","right","dropdownMixin","bvDropdown","bvNavbar","visible","visibleChangePrevented","inNavbar","toggler","$refs","directionClass","boundaryClass","menu","safeId","focusToggler","showMenu","hideMenu","$_popper","$_hideTimeout","whileOpenListen","destroyPopper","clearHideTimeout","createPopper","focusMenu","element","getPopperConfig","destroy","updatePopper","scheduleUpdate","popperConfig","flip","enabled","boundariesElement","preventOverflow","isOpen","rootCloseListener","refocus","_event","keyCode","onMousedown","propagation","onKeydown","onEsc","focusNext","onSplitClick","hideHandler","up","items","getItems","focusItem","plain","formCustomMixin","custom","togglePasswordVisibility","passwordFieldType","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","BFormCheckbox","bvGroup","isChecked","checked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","state","BInputGroupAppend","BInputGroupText","_methods","ariaLabel","ariaLabelledby","button","buttonVariant","formRadioCheckMixin","inheritAttrs","hasFocus","get","set","isBtnMode","buttons","isPlain","isCustom","isSwitch","switches","switch","isInline","isDisabled","computedName","groupName","computedForm","form","computedSize","computedState","computedButtonVariant","buttonClasses","computedAttrs","bvAttrs","_ref2","$content","stateClass","change","handleFocus","$button","for","style","block","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleClass","toggleTag","toggleText","BDropdown","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","hasNormalizedSlot","$split","btnProps","to","href","$toggle","mousedown","keydown","$menu","tabindex","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","BVPopper","attachment","getAttachment","getOffset","behavior","arrow","padding","onCreate","originalPlacement","popperPlacementChange","onUpdate","popperCreate","handleDestroy","beforeMount","destroyed","removeChild","toUpperCase","arrowOffset","width","renderTemplate","appear","beforeEnter","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","extends","templateClasses","noninteractive","templateAttributes","$attrs","scopedStyleAttrs","templateListeners","mouseenter","mouseleave","focusin","focusout","$title","innerHTML","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","constructor","iter","len","arr2","BNavItemDropdown","toggleId","noop","BDropdownDivider","imgUrl","_v","$t","_u","preventDefault","login","callback","$$v","userEmail","expression","passwordToggleIcon","status","loading","BRow","BCol","BLink","BFormGroup","BFormInput","BNavbar","BNavbarBrand","BNavbarToggle","BCollapse","BNavbarNav","BNavItem","BCardText","BCardTitle","BImg","BButton","VuexyLogo","navbarAds","sideImg","require","store","appConfig","layout","skin","mapGetters","loginForm","success","useJwt","grant_type","username","getXsrfToken","response","localStorage","setItem","JSON","stringify","setToken","access_token","setRefreshToken","refresh_token","$router","catch","_error$response","_error$response2","$toast","ToastificationContent","error_description"],"mappings":"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","file":"js/chunk-2993e378.3e0d57f9.js","sourcesContent":["'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar toString = require('../internals/to-string');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (S) {\n var R = anObject(this);\n var string = toString(S);\n var exec = R.exec;\n if (!isCallable(exec)) return call(nativeTest, R, string);\n var result = call(exec, R, string);\n if (result === null) return false;\n anObject(result);\n return true;\n }\n});\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_SPINNER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_LABEL } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n label: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING, 'status'),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n type: makeProp(PROP_TYPE_STRING, 'border'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_SPINNER); // --- Main component ---\n// @vue/component\n\nexport var BSpinner = /*#__PURE__*/Vue.extend({\n name: NAME_SPINNER,\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 $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $label = normalizeSlot(SLOT_NAME_LABEL, {}, $scopedSlots, $slots) || props.label;\n\n if ($label) {\n $label = h('span', {\n staticClass: 'sr-only'\n }, $label);\n }\n\n return h(props.tag, mergeData(data, {\n attrs: {\n role: $label ? props.role || 'status' : null,\n 'aria-hidden': $label ? null : 'true'\n },\n class: (_class = {}, _defineProperty(_class, \"spinner-\".concat(props.type), props.type), _defineProperty(_class, \"spinner-\".concat(props.type, \"-sm\"), props.small), _defineProperty(_class, \"text-\".concat(props.variant), props.variant), _class)\n }), [$label || h()]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toastification\"},[_c('div',{staticClass:\"d-flex align-items-start\"},[_c('b-avatar',{staticClass:\"mr-75 flex-shrink-0\",attrs:{\"variant\":_vm.variant,\"size\":\"1.8rem\"}},[_c('feather-icon',{attrs:{\"icon\":_vm.icon,\"size\":\"15\"}})],1),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',[(_vm.title)?_c('h5',{staticClass:\"mb-0 font-weight-bolder toastification-title\",class:(\"text-\" + _vm.variant),domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e(),(_vm.text)?_c('small',{staticClass:\"d-inline-block text-body\",domProps:{\"textContent\":_vm._s(_vm.text)}}):_vm._e()]),_c('span',{staticClass:\"cursor-pointer toastification-close-icon ml-auto \",on:{\"click\":function($event){return _vm.$emit('close-toast')}}},[(!_vm.hideClose)?_c('feather-icon',{staticClass:\"text-body\",attrs:{\"icon\":\"XIcon\"}}):_vm._e()],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToastificationContent.vue?vue&type=template&id=55dd3057&scoped=true\"\nimport script from \"./ToastificationContent.vue?vue&type=script&lang=js\"\nexport * from \"./ToastificationContent.vue?vue&type=script&lang=js\"\nimport style0 from \"./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&prod&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 \"55dd3057\",\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 { NAME_TOOLTIP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip'; // Key which we use to store tooltip object on element\n\nvar BV_TOOLTIP = '__BV_Tooltip__'; // Default trigger\n\nvar DefaultTrigger = 'hover focus'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noninteractiveRE = /^noninteractive$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Tooltip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'top',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n id: null,\n html: false,\n interactive: true,\n disabled: false,\n delay: getComponentConfig(NAME_TOOLTIP, 'delay', 50),\n boundary: String(getComponentConfig(NAME_TOOLTIP, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_TOOLTIP, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_TOOLTIP, 'variant'),\n customClass: getComponentConfig(NAME_TOOLTIP, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is tooltip content (HTML optionally supported)\n config.title = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Title generator function\n config.title = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (noninteractiveRE.test(mod)) {\n // Noninteractive\n config.interactive = false;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of tooltip\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of tooltip\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n } // Return the config\n\n\n return config;\n}; // Add/update Tooltip on our element\n\n\nvar applyTooltip = function applyTooltip(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_TOOLTIP]) {\n var $parent = vnode.context;\n el[BV_TOOLTIP] = new BVTooltip({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_TOOLTIP].__bv_prev_data__ = {};\n el[BV_TOOLTIP].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the tooltip, we update the title if it is a function\n if (isFunction(config.title)) {\n el[BV_TOOLTIP].updateData({\n title: config.title(el)\n });\n }\n });\n }\n\n var data = {\n title: config.title,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n interactive: config.interactive,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_TOOLTIP].__bv_prev_data__;\n el[BV_TOOLTIP].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // if title is a function, we execute it here\n newData[prop] = prop === 'title' && isFunction(data[prop]) ? data[prop](el) : data[prop];\n }\n });\n el[BV_TOOLTIP].updateData(newData);\n }\n}; // Remove Tooltip on our element\n\n\nvar removeTooltip = function removeTooltip(el) {\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].$destroy();\n el[BV_TOOLTIP] = null;\n }\n\n delete el[BV_TOOLTIP];\n}; // Export our directive\n\n\nexport var VBTooltip = {\n bind: function bind(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent render update loops\n vnode.context.$nextTick(function () {\n applyTooltip(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removeTooltip(el);\n }\n};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&prod&lang=scss&scoped=true\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_PREPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_PREPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupPrepend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_PREPEND,\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 // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: false\n })\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_ADDON } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n isText: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_ADDON); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAddon = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_ADDON,\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 append = props.append;\n return h(props.tag, mergeData(data, {\n class: {\n 'input-group-append': append,\n 'input-group-prepend': !append\n },\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(BInputGroupText, children)] : children);\n }\n});","/**\n * vee-validate v3.4.5\n * (c) 2020 Abdelrahman Awad\n * @license MIT\n */\n/**\r\n * Some Alpha Regex helpers.\r\n * https://github.com/chriso/validator.js/blob/master/src/lib/alpha.js\r\n */\r\n/* eslint-disable no-misleading-character-class */\r\nvar alpha = {\r\n en: /^[A-Z]*$/i,\r\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n da: /^[A-ZÆØÅ]*$/i,\r\n de: /^[A-ZÄÖÜß]*$/i,\r\n es: /^[A-ZÁÉÍÑÓÚÜ]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n it: /^[A-Z\\xC0-\\xFF]*$/i,\r\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n nl: /^[A-ZÉËÏÓÖÜ]*$/i,\r\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n ro: /^[A-ZĂÂÎŞŢ]*$/i,\r\n ru: /^[А-ЯЁ]*$/i,\r\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n sr: /^[A-ZČĆŽŠĐ]*$/i,\r\n sv: /^[A-ZÅÄÖ]*$/i,\r\n tr: /^[A-ZÇĞİıÖŞÜ]*$/i,\r\n uk: /^[А-ЩЬЮЯЄІЇҐ]*$/i,\r\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n az: /^[A-ZÇƏĞİıÖŞÜ]*$/i,\r\n el: /^[Α-ώ]*$/i\r\n};\r\nvar alphaSpaces = {\r\n en: /^[A-Z\\s]*$/i,\r\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ\\s]*$/i,\r\n da: /^[A-ZÆØÅ\\s]*$/i,\r\n de: /^[A-ZÄÖÜß\\s]*$/i,\r\n es: /^[A-ZÁÉÍÑÓÚÜ\\s]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ\\s]*$/i,\r\n it: /^[A-Z\\xC0-\\xFF\\s]*$/i,\r\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ\\s]*$/i,\r\n nl: /^[A-ZÉËÏÓÖÜ\\s]*$/i,\r\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ\\s]*$/i,\r\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ\\s]*$/i,\r\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ\\s]*$/i,\r\n ro: /^[A-ZĂÂÎŞŢ\\s]*$/i,\r\n ru: /^[А-ЯЁ\\s]*$/i,\r\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ\\s]*$/i,\r\n sr: /^[A-ZČĆŽŠĐ\\s]*$/i,\r\n sv: /^[A-ZÅÄÖ\\s]*$/i,\r\n tr: /^[A-ZÇĞİıÖŞÜ\\s]*$/i,\r\n uk: /^[А-ЩЬЮЯЄІЇҐ\\s]*$/i,\r\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\\s]*$/,\r\n az: /^[A-ZÇƏĞİıÖŞÜ\\s]*$/i,\r\n el: /^[Α-ώ\\s]*$/i\r\n};\r\nvar alphanumeric = {\r\n en: /^[0-9A-Z]*$/i,\r\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n da: /^[0-9A-ZÆØÅ]$/i,\r\n de: /^[0-9A-ZÄÖÜß]*$/i,\r\n es: /^[0-9A-ZÁÉÍÑÓÚÜ]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n it: /^[0-9A-Z\\xC0-\\xFF]*$/i,\r\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n nl: /^[0-9A-ZÉËÏÓÖÜ]*$/i,\r\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n ro: /^[0-9A-ZĂÂÎŞŢ]*$/i,\r\n ru: /^[0-9А-ЯЁ]*$/i,\r\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n sr: /^[0-9A-ZČĆŽŠĐ]*$/i,\r\n sv: /^[0-9A-ZÅÄÖ]*$/i,\r\n tr: /^[0-9A-ZÇĞİıÖŞÜ]*$/i,\r\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,\r\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n az: /^[0-9A-ZÇƏĞİıÖŞÜ]*$/i,\r\n el: /^[0-9Α-ώ]*$/i\r\n};\r\nvar alphaDash = {\r\n en: /^[0-9A-Z_-]*$/i,\r\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ_-]*$/i,\r\n da: /^[0-9A-ZÆØÅ_-]*$/i,\r\n de: /^[0-9A-ZÄÖÜß_-]*$/i,\r\n es: /^[0-9A-ZÁÉÍÑÓÚÜ_-]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ_-]*$/i,\r\n it: /^[0-9A-Z\\xC0-\\xFF_-]*$/i,\r\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ_-]*$/i,\r\n nl: /^[0-9A-ZÉËÏÓÖÜ_-]*$/i,\r\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ_-]*$/i,\r\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ_-]*$/i,\r\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ_-]*$/i,\r\n ro: /^[0-9A-ZĂÂÎŞŢ_-]*$/i,\r\n ru: /^[0-9А-ЯЁ_-]*$/i,\r\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ_-]*$/i,\r\n sr: /^[0-9A-ZČĆŽŠĐ_-]*$/i,\r\n sv: /^[0-9A-ZÅÄÖ_-]*$/i,\r\n tr: /^[0-9A-ZÇĞİıÖŞÜ_-]*$/i,\r\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,\r\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,\r\n az: /^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i,\r\n el: /^[0-9Α-ώ_-]*$/i\r\n};\n\nvar validate = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alpha).some(function (loc) { return alpha[loc].test(value); });\r\n }\r\n return (alpha[locale] || alpha.en).test(value);\r\n};\r\nvar params = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha$1 = {\r\n validate: validate,\r\n params: params\r\n};\n\nvar validate$1 = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$1(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphaDash).some(function (loc) { return alphaDash[loc].test(value); });\r\n }\r\n return (alphaDash[locale] || alphaDash.en).test(value);\r\n};\r\nvar params$1 = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha_dash = {\r\n validate: validate$1,\r\n params: params$1\r\n};\n\nvar validate$2 = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$2(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphanumeric).some(function (loc) { return alphanumeric[loc].test(value); });\r\n }\r\n return (alphanumeric[locale] || alphanumeric.en).test(value);\r\n};\r\nvar params$2 = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha_num = {\r\n validate: validate$2,\r\n params: params$2\r\n};\n\nvar validate$3 = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$3(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphaSpaces).some(function (loc) { return alphaSpaces[loc].test(value); });\r\n }\r\n return (alphaSpaces[locale] || alphaSpaces.en).test(value);\r\n};\r\nvar params$3 = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha_spaces = {\r\n validate: validate$3,\r\n params: params$3\r\n};\n\nvar validate$4 = function (value, _a) {\r\n var _b = _a === void 0 ? {} : _a, min = _b.min, max = _b.max;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return !!validate$4(val, { min: min, max: max }); });\r\n }\r\n return Number(min) <= value && Number(max) >= value;\r\n};\r\nvar params$4 = [\r\n {\r\n name: 'min'\r\n },\r\n {\r\n name: 'max'\r\n }\r\n];\r\nvar between = {\r\n validate: validate$4,\r\n params: params$4\r\n};\n\nvar validate$5 = function (value, _a) {\r\n var target = _a.target;\r\n return String(value) === String(target);\r\n};\r\nvar params$5 = [\r\n {\r\n name: 'target',\r\n isTarget: true\r\n }\r\n];\r\nvar confirmed = {\r\n validate: validate$5,\r\n params: params$5\r\n};\n\nvar validate$6 = function (value, _a) {\r\n var length = _a.length;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$6(val, { length: length }); });\r\n }\r\n var strVal = String(value);\r\n return /^[0-9]*$/.test(strVal) && strVal.length === length;\r\n};\r\nvar params$6 = [\r\n {\r\n name: 'length',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar digits = {\r\n validate: validate$6,\r\n params: params$6\r\n};\n\nvar validateImage = function (file, width, height) {\r\n var URL = window.URL || window.webkitURL;\r\n return new Promise(function (resolve) {\r\n var image = new Image();\r\n image.onerror = function () { return resolve(false); };\r\n image.onload = function () { return resolve(image.width === width && image.height === height); };\r\n image.src = URL.createObjectURL(file);\r\n });\r\n};\r\nvar validate$7 = function (files, _a) {\r\n var width = _a.width, height = _a.height;\r\n var list = [];\r\n files = Array.isArray(files) ? files : [files];\r\n for (var i = 0; i < files.length; i++) {\r\n // if file is not an image, reject.\r\n if (!/\\.(jpg|svg|jpeg|png|bmp|gif)$/i.test(files[i].name)) {\r\n return Promise.resolve(false);\r\n }\r\n list.push(files[i]);\r\n }\r\n return Promise.all(list.map(function (file) { return validateImage(file, width, height); })).then(function (values) {\r\n return values.every(function (v) { return v; });\r\n });\r\n};\r\nvar params$7 = [\r\n {\r\n name: 'width',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n },\r\n {\r\n name: 'height',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar dimensions = {\r\n validate: validate$7,\r\n params: params$7\r\n};\n\nvar validate$8 = function (value, _a) {\r\n var multiple = (_a === void 0 ? {} : _a).multiple;\r\n // eslint-disable-next-line\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (multiple && !Array.isArray(value)) {\r\n value = String(value)\r\n .split(',')\r\n .map(function (emailStr) { return emailStr.trim(); });\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return re.test(String(val)); });\r\n }\r\n return re.test(String(value));\r\n};\r\nvar params$8 = [\r\n {\r\n name: 'multiple',\r\n default: false\r\n }\r\n];\r\nvar email = {\r\n validate: validate$8,\r\n params: params$8\r\n};\n\nfunction isNullOrUndefined(value) {\r\n return value === null || value === undefined;\r\n}\r\nfunction isEmptyArray(arr) {\r\n return Array.isArray(arr) && arr.length === 0;\r\n}\r\nfunction isCallable(fn) {\r\n return typeof fn === 'function';\r\n}\n\nfunction includes(collection, item) {\r\n return collection.indexOf(item) !== -1;\r\n}\r\n/**\r\n * Converts an array-like object to array, provides a simple polyfill for Array.from\r\n */\r\nfunction toArray(arrayLike) {\r\n if (isCallable(Array.from)) {\r\n return Array.from(arrayLike);\r\n }\r\n /* istanbul ignore next */\r\n return _copyArray(arrayLike);\r\n}\r\n/* istanbul ignore next */\r\nfunction _copyArray(arrayLike) {\r\n var array = [];\r\n var length = arrayLike.length;\r\n for (var i = 0; i < length; i++) {\r\n array.push(arrayLike[i]);\r\n }\r\n return array;\r\n}\n\nvar validate$9 = function (value, options) {\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$9(val, options); });\r\n }\r\n return toArray(options).some(function (item) {\r\n // eslint-disable-next-line\r\n return item == value;\r\n });\r\n};\r\nvar oneOf = {\r\n validate: validate$9\r\n};\n\nvar validate$a = function (value, args) {\r\n return !validate$9(value, args);\r\n};\r\nvar excluded = {\r\n validate: validate$a\r\n};\n\nvar validate$b = function (files, extensions) {\r\n var regex = new RegExp(\".(\" + extensions.join('|') + \")$\", 'i');\r\n if (Array.isArray(files)) {\r\n return files.every(function (file) { return regex.test(file.name); });\r\n }\r\n return regex.test(files.name);\r\n};\r\nvar ext = {\r\n validate: validate$b\r\n};\n\nvar validate$c = function (files) {\r\n var regex = /\\.(jpg|svg|jpeg|png|bmp|gif|webp)$/i;\r\n if (Array.isArray(files)) {\r\n return files.every(function (file) { return regex.test(file.name); });\r\n }\r\n return regex.test(files.name);\r\n};\r\nvar image = {\r\n validate: validate$c\r\n};\n\nvar validate$d = function (value) {\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return /^-?[0-9]+$/.test(String(val)); });\r\n }\r\n return /^-?[0-9]+$/.test(String(value));\r\n};\r\nvar integer = {\r\n validate: validate$d\r\n};\n\nvar validate$e = function (value, _a) {\r\n var other = _a.other;\r\n return value === other;\r\n};\r\nvar params$9 = [\r\n {\r\n name: 'other'\r\n }\r\n];\r\nvar is = {\r\n validate: validate$e,\r\n params: params$9\r\n};\n\nvar validate$f = function (value, _a) {\r\n var other = _a.other;\r\n return value !== other;\r\n};\r\nvar params$a = [\r\n {\r\n name: 'other'\r\n }\r\n];\r\nvar is_not = {\r\n validate: validate$f,\r\n params: params$a\r\n};\n\nvar validate$g = function (value, _a) {\r\n var length = _a.length;\r\n if (isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n if (typeof value === 'string') {\r\n value = toArray(value);\r\n }\r\n if (typeof value === 'number') {\r\n value = String(value);\r\n }\r\n if (!value.length) {\r\n value = toArray(value);\r\n }\r\n return value.length === length;\r\n};\r\nvar params$b = [\r\n {\r\n name: 'length',\r\n cast: function (value) { return Number(value); }\r\n }\r\n];\r\nvar length = {\r\n validate: validate$g,\r\n params: params$b\r\n};\n\nvar validate$h = function (value, _a) {\r\n var length = _a.length;\r\n if (isNullOrUndefined(value)) {\r\n return length >= 0;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$h(val, { length: length }); });\r\n }\r\n return String(value).length <= length;\r\n};\r\nvar params$c = [\r\n {\r\n name: 'length',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar max = {\r\n validate: validate$h,\r\n params: params$c\r\n};\n\nvar validate$i = function (value, _a) {\r\n var max = _a.max;\r\n if (isNullOrUndefined(value) || value === '') {\r\n return false;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.length > 0 && value.every(function (val) { return validate$i(val, { max: max }); });\r\n }\r\n return Number(value) <= max;\r\n};\r\nvar params$d = [\r\n {\r\n name: 'max',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar max_value = {\r\n validate: validate$i,\r\n params: params$d\r\n};\n\nvar validate$j = function (files, mimes) {\r\n var regex = new RegExp(mimes.join('|').replace('*', '.+') + \"$\", 'i');\r\n if (Array.isArray(files)) {\r\n return files.every(function (file) { return regex.test(file.type); });\r\n }\r\n return regex.test(files.type);\r\n};\r\nvar mimes = {\r\n validate: validate$j\r\n};\n\nvar validate$k = function (value, _a) {\r\n var length = _a.length;\r\n if (isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$k(val, { length: length }); });\r\n }\r\n return String(value).length >= length;\r\n};\r\nvar params$e = [\r\n {\r\n name: 'length',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar min = {\r\n validate: validate$k,\r\n params: params$e\r\n};\n\nvar validate$l = function (value, _a) {\r\n var min = _a.min;\r\n if (isNullOrUndefined(value) || value === '') {\r\n return false;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.length > 0 && value.every(function (val) { return validate$l(val, { min: min }); });\r\n }\r\n return Number(value) >= min;\r\n};\r\nvar params$f = [\r\n {\r\n name: 'min',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar min_value = {\r\n validate: validate$l,\r\n params: params$f\r\n};\n\nvar ar = /^[٠١٢٣٤٥٦٧٨٩]+$/;\r\nvar en = /^[0-9]+$/;\r\nvar validate$m = function (value) {\r\n var testValue = function (val) {\r\n var strValue = String(val);\r\n return en.test(strValue) || ar.test(strValue);\r\n };\r\n if (Array.isArray(value)) {\r\n return value.every(testValue);\r\n }\r\n return testValue(value);\r\n};\r\nvar numeric = {\r\n validate: validate$m\r\n};\n\nvar validate$n = function (value, _a) {\r\n var regex = _a.regex;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$n(val, { regex: regex }); });\r\n }\r\n return regex.test(String(value));\r\n};\r\nvar params$g = [\r\n {\r\n name: 'regex',\r\n cast: function (value) {\r\n if (typeof value === 'string') {\r\n return new RegExp(value);\r\n }\r\n return value;\r\n }\r\n }\r\n];\r\nvar regex = {\r\n validate: validate$n,\r\n params: params$g\r\n};\n\nvar validate$o = function (value, _a) {\r\n var allowFalse = (_a === void 0 ? { allowFalse: true } : _a).allowFalse;\r\n var result = {\r\n valid: false,\r\n required: true\r\n };\r\n if (isNullOrUndefined(value) || isEmptyArray(value)) {\r\n return result;\r\n }\r\n // incase a field considers `false` as an empty value like checkboxes.\r\n if (value === false && !allowFalse) {\r\n return result;\r\n }\r\n result.valid = !!String(value).trim().length;\r\n return result;\r\n};\r\nvar computesRequired = true;\r\nvar params$h = [\r\n {\r\n name: 'allowFalse',\r\n default: true\r\n }\r\n];\r\nvar required = {\r\n validate: validate$o,\r\n params: params$h,\r\n computesRequired: computesRequired\r\n};\n\nvar testEmpty = function (value) {\r\n return isEmptyArray(value) || includes([false, null, undefined], value) || !String(value).trim().length;\r\n};\r\nvar validate$p = function (value, _a) {\r\n var target = _a.target, values = _a.values;\r\n var required;\r\n if (values && values.length) {\r\n if (!Array.isArray(values) && typeof values === 'string') {\r\n values = [values];\r\n }\r\n // eslint-disable-next-line\r\n required = values.some(function (val) { return val == String(target).trim(); });\r\n }\r\n else {\r\n required = !testEmpty(target);\r\n }\r\n if (!required) {\r\n return {\r\n valid: true,\r\n required: required\r\n };\r\n }\r\n return {\r\n valid: !testEmpty(value),\r\n required: required\r\n };\r\n};\r\nvar params$i = [\r\n {\r\n name: 'target',\r\n isTarget: true\r\n },\r\n {\r\n name: 'values'\r\n }\r\n];\r\nvar computesRequired$1 = true;\r\nvar required_if = {\r\n validate: validate$p,\r\n params: params$i,\r\n computesRequired: computesRequired$1\r\n};\n\nvar validate$q = function (files, _a) {\r\n var size = _a.size;\r\n if (isNaN(size)) {\r\n return false;\r\n }\r\n var nSize = size * 1024;\r\n if (!Array.isArray(files)) {\r\n return files.size <= nSize;\r\n }\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].size > nSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\nvar params$j = [\r\n {\r\n name: 'size',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar size = {\r\n validate: validate$q,\r\n params: params$j\r\n};\n\nvar validate$r = function (value, params) {\r\n var _a = params || {}, _b = _a.decimals, decimals = _b === void 0 ? 0 : _b, _c = _a.separator, separator = _c === void 0 ? 'dot' : _c;\r\n var separators = {\r\n dot: '.',\r\n comma: ','\r\n };\r\n var regexPart = +decimals === 0 ? '+' : \"{\" + decimals + \"}\";\r\n var regex = new RegExp(\"^-?\\\\d+\\\\\" + (separators[separator] || '.') + \"\\\\d\" + regexPart + \"$\");\r\n return Array.isArray(value) ? value.every(function (val) { return regex.test(String(val)); }) : regex.test(String(value));\r\n};\r\nvar params$k = [\r\n {\r\n name: 'decimals',\r\n default: 0\r\n },\r\n {\r\n name: 'separator',\r\n default: 'dot'\r\n }\r\n];\r\nvar double = {\r\n validate: validate$r,\r\n params: params$k\r\n};\n\nexport { alpha$1 as alpha, alpha_dash, alpha_num, alpha_spaces, between, confirmed, digits, dimensions, double, email, excluded, ext, image, integer, is, is_not, length, max, max_value, mimes, min, min_value, numeric, oneOf, regex, required, required_if, size };\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_NAV_FORM } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BForm, props as BFormProps } from '../form/form'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BFormProps, ['inline'])), {}, {\n formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})), NAME_NAV_FORM); // --- Main component ---\n// @vue/component\n\nexport var BNavForm = /*#__PURE__*/Vue.extend({\n name: NAME_NAV_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 listeners = _ref.listeners;\n var $form = h(BForm, {\n class: props.formClass,\n props: _objectSpread(_objectSpread({}, props), {}, {\n inline: true\n }),\n attrs: data.attrs,\n on: listeners\n }, children);\n return h('li', mergeData(omit(data, ['attrs', 'on']), {\n staticClass: 'form-inline'\n }), [$form]);\n }\n});","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login-ads.vue?vue&type=style&index=0&id=28eead52&prod&lang=scss\"","module.exports = __webpack_public_path__ + \"img/login-v2.72cd8a26.svg\";","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_INPUT_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_APPEND, SLOT_NAME_DEFAULT, SLOT_NAME_PREPEND } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_STRING),\n appendHtml: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n prepend: makeProp(PROP_TYPE_STRING),\n prependHtml: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BInputGroup = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var prepend = props.prepend,\n prependHtml = props.prependHtml,\n append = props.append,\n appendHtml = props.appendHtml,\n size = props.size;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $prepend = h();\n var hasPrependSlot = hasNormalizedSlot(SLOT_NAME_PREPEND, $scopedSlots, $slots);\n\n if (hasPrependSlot || prepend || prependHtml) {\n $prepend = h(BInputGroupPrepend, [hasPrependSlot ? normalizeSlot(SLOT_NAME_PREPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(prependHtml, prepend)\n })]);\n }\n\n var $append = h();\n var hasAppendSlot = hasNormalizedSlot(SLOT_NAME_APPEND, $scopedSlots, $slots);\n\n if (hasAppendSlot || append || appendHtml) {\n $append = h(BInputGroupAppend, [hasAppendSlot ? normalizeSlot(SLOT_NAME_APPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(appendHtml, append)\n })]);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, \"input-group-\".concat(size), size),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), [$prepend, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots), $append]);\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 { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","/**\n * vee-validate v3.4.5\n * (c) 2020 Abdelrahman Awad\n * @license MIT\n */\nimport Vue from 'vue';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\nfunction isNaN(value) {\r\n // NaN is the one value that does not equal itself.\r\n // eslint-disable-next-line\r\n return value !== value;\r\n}\r\nfunction isNullOrUndefined(value) {\r\n return value === null || value === undefined;\r\n}\r\nfunction isEmptyArray(arr) {\r\n return Array.isArray(arr) && arr.length === 0;\r\n}\r\nvar isObject = function (obj) {\r\n return obj !== null && obj && typeof obj === 'object' && !Array.isArray(obj);\r\n};\r\n/**\r\n * A reference comparison function with NaN support\r\n */\r\nfunction isRefEqual(lhs, rhs) {\r\n if (isNaN(lhs) && isNaN(rhs)) {\r\n return true;\r\n }\r\n return lhs === rhs;\r\n}\r\n/**\r\n * Shallow object comparison.\r\n */\r\nfunction isEqual(lhs, rhs) {\r\n if (lhs instanceof RegExp && rhs instanceof RegExp) {\r\n return isEqual(lhs.source, rhs.source) && isEqual(lhs.flags, rhs.flags);\r\n }\r\n if (Array.isArray(lhs) && Array.isArray(rhs)) {\r\n if (lhs.length !== rhs.length)\r\n return false;\r\n for (var i = 0; i < lhs.length; i++) {\r\n if (!isEqual(lhs[i], rhs[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // if both are objects, compare each key recursively.\r\n if (isObject(lhs) && isObject(rhs)) {\r\n return (Object.keys(lhs).every(function (key) {\r\n return isEqual(lhs[key], rhs[key]);\r\n }) &&\r\n Object.keys(rhs).every(function (key) {\r\n return isEqual(lhs[key], rhs[key]);\r\n }));\r\n }\r\n return isRefEqual(lhs, rhs);\r\n}\r\n// Checks if a given value is not an empty string or null or undefined.\r\nfunction isSpecified(val) {\r\n if (val === '') {\r\n return false;\r\n }\r\n return !isNullOrUndefined(val);\r\n}\r\nfunction isCallable(fn) {\r\n return typeof fn === 'function';\r\n}\r\nfunction isLocator(value) {\r\n return isCallable(value) && !!value.__locatorRef;\r\n}\n\nfunction findIndex(arrayLike, predicate) {\r\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\r\n if (isCallable(array.findIndex)) {\r\n return array.findIndex(predicate);\r\n }\r\n /* istanbul ignore next */\r\n for (var i = 0; i < array.length; i++) {\r\n if (predicate(array[i], i)) {\r\n return i;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n return -1;\r\n}\r\n/**\r\n * finds the first element that satisfies the predicate callback, polyfills array.find\r\n */\r\nfunction find(arrayLike, predicate) {\r\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\r\n var idx = findIndex(array, predicate);\r\n return idx === -1 ? undefined : array[idx];\r\n}\r\nfunction includes(collection, item) {\r\n return collection.indexOf(item) !== -1;\r\n}\r\n/**\r\n * Converts an array-like object to array, provides a simple polyfill for Array.from\r\n */\r\nfunction toArray(arrayLike) {\r\n if (isCallable(Array.from)) {\r\n return Array.from(arrayLike);\r\n }\r\n /* istanbul ignore next */\r\n return _copyArray(arrayLike);\r\n}\r\n/* istanbul ignore next */\r\nfunction _copyArray(arrayLike) {\r\n var array = [];\r\n var length = arrayLike.length;\r\n for (var i = 0; i < length; i++) {\r\n array.push(arrayLike[i]);\r\n }\r\n return array;\r\n}\r\nfunction values(obj) {\r\n if (isCallable(Object.values)) {\r\n return Object.values(obj);\r\n }\r\n // fallback to keys()\r\n /* istanbul ignore next */\r\n return Object.keys(obj).map(function (k) { return obj[k]; });\r\n}\r\nfunction merge(target, source) {\r\n Object.keys(source).forEach(function (key) {\r\n if (isObject(source[key])) {\r\n if (!target[key]) {\r\n target[key] = {};\r\n }\r\n merge(target[key], source[key]);\r\n return;\r\n }\r\n target[key] = source[key];\r\n });\r\n return target;\r\n}\n\nfunction createFlags() {\r\n return {\r\n untouched: true,\r\n touched: false,\r\n dirty: false,\r\n pristine: true,\r\n valid: false,\r\n invalid: false,\r\n validated: false,\r\n pending: false,\r\n required: false,\r\n changed: false,\r\n passed: false,\r\n failed: false\r\n };\r\n}\n\nfunction identity(x) {\r\n return x;\r\n}\r\nfunction debounce(fn, wait, token) {\r\n if (wait === void 0) { wait = 0; }\r\n if (token === void 0) { token = { cancelled: false }; }\r\n if (wait === 0) {\r\n return fn;\r\n }\r\n var timeout;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var later = function () {\r\n timeout = undefined;\r\n // check if the fn call was cancelled.\r\n if (!token.cancelled)\r\n fn.apply(void 0, args);\r\n };\r\n // because we might want to use Node.js setTimout for SSR.\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n };\r\n}\n\n/**\r\n * Emits a warning to the console\r\n */\r\nfunction warn(message) {\r\n console.warn(\"[vee-validate] \" + message);\r\n}\r\n/**\r\n * Replaces placeholder values in a string with their actual values\r\n */\r\nfunction interpolate(template, values) {\r\n return template.replace(/{([^}]+)}/g, function (_, p) {\r\n return p in values ? values[p] : \"{\" + p + \"}\";\r\n });\r\n}\n\nvar RULES = {};\r\nfunction normalizeSchema(schema) {\r\n var _a;\r\n if ((_a = schema.params) === null || _a === void 0 ? void 0 : _a.length) {\r\n schema.params = schema.params.map(function (param) {\r\n if (typeof param === 'string') {\r\n return { name: param };\r\n }\r\n return param;\r\n });\r\n }\r\n return schema;\r\n}\r\nvar RuleContainer = /** @class */ (function () {\r\n function RuleContainer() {\r\n }\r\n RuleContainer.extend = function (name, schema) {\r\n // if rule already exists, overwrite it.\r\n var rule = normalizeSchema(schema);\r\n if (RULES[name]) {\r\n RULES[name] = merge(RULES[name], schema);\r\n return;\r\n }\r\n RULES[name] = __assign({ lazy: false, computesRequired: false }, rule);\r\n };\r\n RuleContainer.isLazy = function (name) {\r\n var _a;\r\n return !!((_a = RULES[name]) === null || _a === void 0 ? void 0 : _a.lazy);\r\n };\r\n RuleContainer.isRequireRule = function (name) {\r\n var _a;\r\n return !!((_a = RULES[name]) === null || _a === void 0 ? void 0 : _a.computesRequired);\r\n };\r\n RuleContainer.getRuleDefinition = function (ruleName) {\r\n return RULES[ruleName];\r\n };\r\n return RuleContainer;\r\n}());\r\n/**\r\n * Adds a custom validator to the list of validation rules.\r\n */\r\nfunction extend(name, schema) {\r\n // makes sure new rules are properly formatted.\r\n guardExtend(name, schema);\r\n // Full schema object.\r\n if (typeof schema === 'object') {\r\n RuleContainer.extend(name, schema);\r\n return;\r\n }\r\n RuleContainer.extend(name, {\r\n validate: schema\r\n });\r\n}\r\n/**\r\n * Guards from extension violations.\r\n */\r\nfunction guardExtend(name, validator) {\r\n if (isCallable(validator)) {\r\n return;\r\n }\r\n if (isCallable(validator.validate)) {\r\n return;\r\n }\r\n if (RuleContainer.getRuleDefinition(name)) {\r\n return;\r\n }\r\n throw new Error(\"Extension Error: The validator '\" + name + \"' must be a function or have a 'validate' method.\");\r\n}\n\nvar DEFAULT_CONFIG = {\r\n defaultMessage: \"{_field_} is not valid.\",\r\n skipOptional: true,\r\n classes: {\r\n touched: 'touched',\r\n untouched: 'untouched',\r\n valid: 'valid',\r\n invalid: 'invalid',\r\n pristine: 'pristine',\r\n dirty: 'dirty' // control has been interacted with\r\n },\r\n bails: true,\r\n mode: 'aggressive',\r\n useConstraintAttrs: true\r\n};\r\nvar currentConfig = __assign({}, DEFAULT_CONFIG);\r\nvar getConfig = function () { return currentConfig; };\r\nvar setConfig = function (newConf) {\r\n currentConfig = __assign(__assign({}, currentConfig), newConf);\r\n};\r\nvar configure = function (cfg) {\r\n setConfig(cfg);\r\n};\n\n/**\r\n * Normalizes the given rules expression.\r\n */\r\nfunction normalizeRules(rules) {\r\n // if falsy value return an empty object.\r\n var acc = {};\r\n Object.defineProperty(acc, '_$$isNormalized', {\r\n value: true,\r\n writable: false,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n if (!rules) {\r\n return acc;\r\n }\r\n // Object is already normalized, skip.\r\n if (isObject(rules) && rules._$$isNormalized) {\r\n return rules;\r\n }\r\n if (isObject(rules)) {\r\n return Object.keys(rules).reduce(function (prev, curr) {\r\n var params = [];\r\n if (rules[curr] === true) {\r\n params = [];\r\n }\r\n else if (Array.isArray(rules[curr])) {\r\n params = rules[curr];\r\n }\r\n else if (isObject(rules[curr])) {\r\n params = rules[curr];\r\n }\r\n else {\r\n params = [rules[curr]];\r\n }\r\n if (rules[curr] !== false) {\r\n prev[curr] = buildParams(curr, params);\r\n }\r\n return prev;\r\n }, acc);\r\n }\r\n /* istanbul ignore if */\r\n if (typeof rules !== 'string') {\r\n warn('rules must be either a string or an object.');\r\n return acc;\r\n }\r\n return rules.split('|').reduce(function (prev, rule) {\r\n var parsedRule = parseRule(rule);\r\n if (!parsedRule.name) {\r\n return prev;\r\n }\r\n prev[parsedRule.name] = buildParams(parsedRule.name, parsedRule.params);\r\n return prev;\r\n }, acc);\r\n}\r\nfunction buildParams(ruleName, provided) {\r\n var ruleSchema = RuleContainer.getRuleDefinition(ruleName);\r\n if (!ruleSchema) {\r\n return provided;\r\n }\r\n var params = {};\r\n if (!ruleSchema.params && !Array.isArray(provided)) {\r\n throw new Error('You provided an object params to a rule that has no defined schema.');\r\n }\r\n // Rule probably uses an array for their args, keep it as is.\r\n if (Array.isArray(provided) && !ruleSchema.params) {\r\n return provided;\r\n }\r\n var definedParams;\r\n // collect the params schema.\r\n if (!ruleSchema.params || (ruleSchema.params.length < provided.length && Array.isArray(provided))) {\r\n var lastDefinedParam_1;\r\n // collect any additional parameters in the last item.\r\n definedParams = provided.map(function (_, idx) {\r\n var _a;\r\n var param = (_a = ruleSchema.params) === null || _a === void 0 ? void 0 : _a[idx];\r\n lastDefinedParam_1 = param || lastDefinedParam_1;\r\n if (!param) {\r\n param = lastDefinedParam_1;\r\n }\r\n return param;\r\n });\r\n }\r\n else {\r\n definedParams = ruleSchema.params;\r\n }\r\n // Match the provided array length with a temporary schema.\r\n for (var i = 0; i < definedParams.length; i++) {\r\n var options = definedParams[i];\r\n var value = options.default;\r\n // if the provided is an array, map element value.\r\n if (Array.isArray(provided)) {\r\n if (i in provided) {\r\n value = provided[i];\r\n }\r\n }\r\n else {\r\n // If the param exists in the provided object.\r\n if (options.name in provided) {\r\n value = provided[options.name];\r\n // if the provided is the first param value.\r\n }\r\n else if (definedParams.length === 1) {\r\n value = provided;\r\n }\r\n }\r\n // if the param is a target, resolve the target value.\r\n if (options.isTarget) {\r\n value = createLocator(value, options.cast);\r\n }\r\n // A target param using interpolation\r\n if (typeof value === 'string' && value[0] === '@') {\r\n value = createLocator(value.slice(1), options.cast);\r\n }\r\n // If there is a transformer defined.\r\n if (!isLocator(value) && options.cast) {\r\n value = options.cast(value);\r\n }\r\n // already been set, probably multiple values.\r\n if (params[options.name]) {\r\n params[options.name] = Array.isArray(params[options.name]) ? params[options.name] : [params[options.name]];\r\n params[options.name].push(value);\r\n }\r\n else {\r\n // set the value.\r\n params[options.name] = value;\r\n }\r\n }\r\n return params;\r\n}\r\n/**\r\n * Parses a rule string expression.\r\n */\r\nvar parseRule = function (rule) {\r\n var params = [];\r\n var name = rule.split(':')[0];\r\n if (includes(rule, ':')) {\r\n params = rule\r\n .split(':')\r\n .slice(1)\r\n .join(':')\r\n .split(',');\r\n }\r\n return { name: name, params: params };\r\n};\r\nfunction createLocator(value, castFn) {\r\n var locator = function (crossTable) {\r\n var val = crossTable[value];\r\n return castFn ? castFn(val) : val;\r\n };\r\n locator.__locatorRef = value;\r\n return locator;\r\n}\r\nfunction extractLocators(params) {\r\n if (Array.isArray(params)) {\r\n return params.filter(function (param) {\r\n return isLocator(param) || (typeof param === 'string' && param[0] === '@');\r\n });\r\n }\r\n return Object.keys(params)\r\n .filter(function (key) { return isLocator(params[key]); })\r\n .map(function (key) { return params[key]; });\r\n}\n\n/**\r\n * Validates a value against the rules.\r\n */\r\nfunction validate(value, rules, options) {\r\n if (options === void 0) { options = {}; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var shouldBail, skipIfEmpty, field, result, errors, failedRules, regenerateMap;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n shouldBail = options === null || options === void 0 ? void 0 : options.bails;\r\n skipIfEmpty = options === null || options === void 0 ? void 0 : options.skipIfEmpty;\r\n field = {\r\n name: (options === null || options === void 0 ? void 0 : options.name) || '{field}',\r\n rules: normalizeRules(rules),\r\n bails: shouldBail !== null && shouldBail !== void 0 ? shouldBail : true,\r\n skipIfEmpty: skipIfEmpty !== null && skipIfEmpty !== void 0 ? skipIfEmpty : true,\r\n forceRequired: false,\r\n crossTable: (options === null || options === void 0 ? void 0 : options.values) || {},\r\n names: (options === null || options === void 0 ? void 0 : options.names) || {},\r\n customMessages: (options === null || options === void 0 ? void 0 : options.customMessages) || {}\r\n };\r\n return [4 /*yield*/, _validate(field, value, options)];\r\n case 1:\r\n result = _a.sent();\r\n errors = [];\r\n failedRules = {};\r\n regenerateMap = {};\r\n result.errors.forEach(function (e) {\r\n var msg = e.msg();\r\n errors.push(msg);\r\n failedRules[e.rule] = msg;\r\n regenerateMap[e.rule] = e.msg;\r\n });\r\n return [2 /*return*/, {\r\n valid: result.valid,\r\n errors: errors,\r\n failedRules: failedRules,\r\n regenerateMap: regenerateMap\r\n }];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Starts the validation process.\r\n */\r\nfunction _validate(field, value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).isInitial, isInitial = _b === void 0 ? false : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _c, shouldSkip, errors, rules, length, i, rule, result;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0: return [4 /*yield*/, _shouldSkip(field, value)];\r\n case 1:\r\n _c = _d.sent(), shouldSkip = _c.shouldSkip, errors = _c.errors;\r\n if (shouldSkip) {\r\n return [2 /*return*/, {\r\n valid: !errors.length,\r\n errors: errors\r\n }];\r\n }\r\n rules = Object.keys(field.rules).filter(function (rule) { return !RuleContainer.isRequireRule(rule); });\r\n length = rules.length;\r\n i = 0;\r\n _d.label = 2;\r\n case 2:\r\n if (!(i < length)) return [3 /*break*/, 5];\r\n if (isInitial && RuleContainer.isLazy(rules[i])) {\r\n return [3 /*break*/, 4];\r\n }\r\n rule = rules[i];\r\n return [4 /*yield*/, _test(field, value, {\r\n name: rule,\r\n params: field.rules[rule]\r\n })];\r\n case 3:\r\n result = _d.sent();\r\n if (!result.valid && result.error) {\r\n errors.push(result.error);\r\n if (field.bails) {\r\n return [2 /*return*/, {\r\n valid: false,\r\n errors: errors\r\n }];\r\n }\r\n }\r\n _d.label = 4;\r\n case 4:\r\n i++;\r\n return [3 /*break*/, 2];\r\n case 5: return [2 /*return*/, {\r\n valid: !errors.length,\r\n errors: errors\r\n }];\r\n }\r\n });\r\n });\r\n}\r\nfunction _shouldSkip(field, value) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var requireRules, length, errors, isEmpty, isEmptyAndOptional, isRequired, i, rule, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n requireRules = Object.keys(field.rules).filter(RuleContainer.isRequireRule);\r\n length = requireRules.length;\r\n errors = [];\r\n isEmpty = isNullOrUndefined(value) || value === '' || isEmptyArray(value);\r\n isEmptyAndOptional = isEmpty && field.skipIfEmpty;\r\n isRequired = false;\r\n i = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(i < length)) return [3 /*break*/, 4];\r\n rule = requireRules[i];\r\n return [4 /*yield*/, _test(field, value, {\r\n name: rule,\r\n params: field.rules[rule]\r\n })];\r\n case 2:\r\n result = _a.sent();\r\n if (!isObject(result)) {\r\n throw new Error('Require rules has to return an object (see docs)');\r\n }\r\n if (result.required) {\r\n isRequired = true;\r\n }\r\n if (!result.valid && result.error) {\r\n errors.push(result.error);\r\n // Exit early as the field is required and failed validation.\r\n if (field.bails) {\r\n return [2 /*return*/, {\r\n shouldSkip: true,\r\n errors: errors\r\n }];\r\n }\r\n }\r\n _a.label = 3;\r\n case 3:\r\n i++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n if (isEmpty && !isRequired && !field.skipIfEmpty) {\r\n return [2 /*return*/, {\r\n shouldSkip: false,\r\n errors: errors\r\n }];\r\n }\r\n // field is configured to run through the pipeline regardless\r\n if (!field.bails && !isEmptyAndOptional) {\r\n return [2 /*return*/, {\r\n shouldSkip: false,\r\n errors: errors\r\n }];\r\n }\r\n // skip if the field is not required and has an empty value.\r\n return [2 /*return*/, {\r\n shouldSkip: !isRequired && isEmpty,\r\n errors: errors\r\n }];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Tests a single input value against a rule.\r\n */\r\nfunction _test(field, value, rule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var ruleSchema, normalizedValue, params, result, values_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ruleSchema = RuleContainer.getRuleDefinition(rule.name);\r\n if (!ruleSchema || !ruleSchema.validate) {\r\n throw new Error(\"No such validator '\" + rule.name + \"' exists.\");\r\n }\r\n normalizedValue = ruleSchema.castValue ? ruleSchema.castValue(value) : value;\r\n params = fillTargetValues(rule.params, field.crossTable);\r\n return [4 /*yield*/, ruleSchema.validate(normalizedValue, params)];\r\n case 1:\r\n result = _a.sent();\r\n if (typeof result === 'string') {\r\n values_1 = __assign(__assign({}, (params || {})), { _field_: field.name, _value_: value, _rule_: rule.name });\r\n return [2 /*return*/, {\r\n valid: false,\r\n error: { rule: rule.name, msg: function () { return interpolate(result, values_1); } }\r\n }];\r\n }\r\n if (!isObject(result)) {\r\n result = { valid: result };\r\n }\r\n return [2 /*return*/, {\r\n valid: result.valid,\r\n required: result.required,\r\n error: result.valid ? undefined : _generateFieldError(field, value, ruleSchema, rule.name, params)\r\n }];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Generates error messages.\r\n */\r\nfunction _generateFieldError(field, value, ruleSchema, ruleName, params) {\r\n var _a;\r\n var message = (_a = field.customMessages[ruleName]) !== null && _a !== void 0 ? _a : ruleSchema.message;\r\n var ruleTargets = _getRuleTargets(field, ruleSchema, ruleName);\r\n var _b = _getUserTargets(field, ruleSchema, ruleName, message), userTargets = _b.userTargets, userMessage = _b.userMessage;\r\n var values = __assign(__assign(__assign(__assign({}, (params || {})), { _field_: field.name, _value_: value, _rule_: ruleName }), ruleTargets), userTargets);\r\n return {\r\n msg: function () { return _normalizeMessage(userMessage || getConfig().defaultMessage, field.name, values); },\r\n rule: ruleName\r\n };\r\n}\r\nfunction _getRuleTargets(field, ruleSchema, ruleName) {\r\n var params = ruleSchema.params;\r\n if (!params) {\r\n return {};\r\n }\r\n var numTargets = params.filter(function (param) { return param.isTarget; }).length;\r\n if (numTargets <= 0) {\r\n return {};\r\n }\r\n var names = {};\r\n var ruleConfig = field.rules[ruleName];\r\n if (!Array.isArray(ruleConfig) && isObject(ruleConfig)) {\r\n ruleConfig = params.map(function (param) {\r\n return ruleConfig[param.name];\r\n });\r\n }\r\n for (var index = 0; index < params.length; index++) {\r\n var param = params[index];\r\n var key = ruleConfig[index];\r\n if (!isLocator(key)) {\r\n continue;\r\n }\r\n key = key.__locatorRef;\r\n var name_1 = field.names[key] || key;\r\n names[param.name] = name_1;\r\n names[\"_\" + param.name + \"_\"] = field.crossTable[key];\r\n }\r\n return names;\r\n}\r\nfunction _getUserTargets(field, ruleSchema, ruleName, userMessage) {\r\n var userTargets = {};\r\n var rules = field.rules[ruleName];\r\n var params = ruleSchema.params || [];\r\n // early return if no rules\r\n if (!rules) {\r\n return {};\r\n }\r\n // check all rules to convert targets\r\n Object.keys(rules).forEach(function (key, index) {\r\n // get the rule\r\n var rule = rules[key];\r\n if (!isLocator(rule)) {\r\n return {};\r\n }\r\n // get associated parameter\r\n var param = params[index];\r\n if (!param) {\r\n return {};\r\n }\r\n // grab the name of the target\r\n var name = rule.__locatorRef;\r\n userTargets[param.name] = field.names[name] || name;\r\n userTargets[\"_\" + param.name + \"_\"] = field.crossTable[name];\r\n });\r\n return {\r\n userTargets: userTargets,\r\n userMessage: userMessage\r\n };\r\n}\r\nfunction _normalizeMessage(template, field, values) {\r\n if (typeof template === 'function') {\r\n return template(field, values);\r\n }\r\n return interpolate(template, __assign(__assign({}, values), { _field_: field }));\r\n}\r\nfunction fillTargetValues(params, crossTable) {\r\n if (Array.isArray(params)) {\r\n return params.map(function (param) {\r\n var targetPart = typeof param === 'string' && param[0] === '@' ? param.slice(1) : param;\r\n if (targetPart in crossTable) {\r\n return crossTable[targetPart];\r\n }\r\n return param;\r\n });\r\n }\r\n var values = {};\r\n var normalize = function (value) {\r\n if (isLocator(value)) {\r\n return value(crossTable);\r\n }\r\n return value;\r\n };\r\n Object.keys(params).forEach(function (param) {\r\n values[param] = normalize(params[param]);\r\n });\r\n return values;\r\n}\n\nvar aggressive = function () { return ({\r\n on: ['input', 'blur']\r\n}); };\r\nvar lazy = function () { return ({\r\n on: ['change', 'blur']\r\n}); };\r\nvar eager = function (_a) {\r\n var errors = _a.errors;\r\n if (errors.length) {\r\n return {\r\n on: ['input', 'change']\r\n };\r\n }\r\n return {\r\n on: ['change', 'blur']\r\n };\r\n};\r\nvar passive = function () { return ({\r\n on: []\r\n}); };\r\nvar modes = {\r\n aggressive: aggressive,\r\n eager: eager,\r\n passive: passive,\r\n lazy: lazy\r\n};\r\nvar setInteractionMode = function (mode, implementation) {\r\n setConfig({ mode: mode });\r\n if (!implementation) {\r\n return;\r\n }\r\n if (!isCallable(implementation)) {\r\n throw new Error('A mode implementation must be a function');\r\n }\r\n modes[mode] = implementation;\r\n};\n\nvar EVENT_BUS = new Vue();\r\nfunction localeChanged() {\r\n EVENT_BUS.$emit('change:locale');\r\n}\n\nvar Dictionary = /** @class */ (function () {\r\n function Dictionary(locale, dictionary) {\r\n this.container = {};\r\n this.locale = locale;\r\n this.merge(dictionary);\r\n }\r\n Dictionary.prototype.resolve = function (field, rule, values) {\r\n return this.format(this.locale, field, rule, values);\r\n };\r\n Dictionary.prototype.format = function (locale, field, rule, values) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n var message;\r\n // find if specific message for that field was specified.\r\n var fieldContainer = (_c = (_b = (_a = this.container[locale]) === null || _a === void 0 ? void 0 : _a.fields) === null || _b === void 0 ? void 0 : _b[field]) === null || _c === void 0 ? void 0 : _c[rule];\r\n var messageContainer = (_e = (_d = this.container[locale]) === null || _d === void 0 ? void 0 : _d.messages) === null || _e === void 0 ? void 0 : _e[rule];\r\n message = fieldContainer || messageContainer || '';\r\n if (!message) {\r\n message = '{_field_} is not valid';\r\n }\r\n field = (_h = (_g = (_f = this.container[locale]) === null || _f === void 0 ? void 0 : _f.names) === null || _g === void 0 ? void 0 : _g[field]) !== null && _h !== void 0 ? _h : field;\r\n return isCallable(message) ? message(field, values) : interpolate(message, __assign(__assign({}, values), { _field_: field }));\r\n };\r\n Dictionary.prototype.merge = function (dictionary) {\r\n merge(this.container, dictionary);\r\n };\r\n Dictionary.prototype.hasRule = function (name) {\r\n var _a, _b;\r\n return !!((_b = (_a = this.container[this.locale]) === null || _a === void 0 ? void 0 : _a.messages) === null || _b === void 0 ? void 0 : _b[name]);\r\n };\r\n return Dictionary;\r\n}());\r\nvar DICTIONARY;\r\nfunction localize(locale, dictionary) {\r\n var _a;\r\n if (!DICTIONARY) {\r\n DICTIONARY = new Dictionary('en', {});\r\n setConfig({\r\n defaultMessage: function (field, values) {\r\n return DICTIONARY.resolve(field, values === null || values === void 0 ? void 0 : values._rule_, values || {});\r\n }\r\n });\r\n }\r\n if (typeof locale === 'string') {\r\n DICTIONARY.locale = locale;\r\n if (dictionary) {\r\n DICTIONARY.merge((_a = {}, _a[locale] = dictionary, _a));\r\n }\r\n localeChanged();\r\n return;\r\n }\r\n DICTIONARY.merge(locale);\r\n}\n\nvar isEvent = function (evt) {\r\n if (!evt) {\r\n return false;\r\n }\r\n if (typeof Event !== 'undefined' && isCallable(Event) && evt instanceof Event) {\r\n return true;\r\n }\r\n // this is for IE\r\n /* istanbul ignore next */\r\n if (evt && evt.srcElement) {\r\n return true;\r\n }\r\n return false;\r\n};\r\nfunction normalizeEventValue(value) {\r\n var _a, _b;\r\n if (!isEvent(value)) {\r\n return value;\r\n }\r\n var input = value.target;\r\n if (input.type === 'file' && input.files) {\r\n return toArray(input.files);\r\n }\r\n // If the input has a `v-model.number` modifier applied.\r\n if ((_a = input._vModifiers) === null || _a === void 0 ? void 0 : _a.number) {\r\n // as per the spec the v-model.number uses parseFloat\r\n var valueAsNumber = parseFloat(input.value);\r\n if (isNaN(valueAsNumber)) {\r\n return input.value;\r\n }\r\n return valueAsNumber;\r\n }\r\n if ((_b = input._vModifiers) === null || _b === void 0 ? void 0 : _b.trim) {\r\n var trimmedValue = typeof input.value === 'string' ? input.value.trim() : input.value;\r\n return trimmedValue;\r\n }\r\n return input.value;\r\n}\n\nvar isTextInput = function (vnode) {\r\n var _a;\r\n var attrs = ((_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs) || vnode.elm;\r\n // it will fallback to being a text input per browsers spec.\r\n if (vnode.tag === 'input' && (!attrs || !attrs.type)) {\r\n return true;\r\n }\r\n if (vnode.tag === 'textarea') {\r\n return true;\r\n }\r\n return includes(['text', 'password', 'search', 'email', 'tel', 'url', 'number'], attrs === null || attrs === void 0 ? void 0 : attrs.type);\r\n};\r\n// export const isCheckboxOrRadioInput = (vnode: VNode): boolean => {\r\n// const attrs = (vnode.data && vnode.data.attrs) || vnode.elm;\r\n// return includes(['radio', 'checkbox'], attrs && attrs.type);\r\n// };\r\n// Gets the model object on the vnode.\r\nfunction findModel(vnode) {\r\n if (!vnode.data) {\r\n return undefined;\r\n }\r\n // Component Model\r\n // THIS IS NOT TYPED IN OFFICIAL VUE TYPINGS\r\n // eslint-disable-next-line\r\n var nonStandardVNodeData = vnode.data;\r\n if ('model' in nonStandardVNodeData) {\r\n return nonStandardVNodeData.model;\r\n }\r\n if (!vnode.data.directives) {\r\n return undefined;\r\n }\r\n return find(vnode.data.directives, function (d) { return d.name === 'model'; });\r\n}\r\nfunction findValue(vnode) {\r\n var _a, _b;\r\n var model = findModel(vnode);\r\n if (model) {\r\n return { value: model.value };\r\n }\r\n var config = findModelConfig(vnode);\r\n var prop = (config === null || config === void 0 ? void 0 : config.prop) || 'value';\r\n if (((_a = vnode.componentOptions) === null || _a === void 0 ? void 0 : _a.propsData) && prop in vnode.componentOptions.propsData) {\r\n var propsDataWithValue = vnode.componentOptions.propsData;\r\n return { value: propsDataWithValue[prop] };\r\n }\r\n if (((_b = vnode.data) === null || _b === void 0 ? void 0 : _b.domProps) && 'value' in vnode.data.domProps) {\r\n return { value: vnode.data.domProps.value };\r\n }\r\n return undefined;\r\n}\r\nfunction extractChildren(vnode) {\r\n if (Array.isArray(vnode)) {\r\n return vnode;\r\n }\r\n if (Array.isArray(vnode.children)) {\r\n return vnode.children;\r\n }\r\n /* istanbul ignore next */\r\n if (vnode.componentOptions && Array.isArray(vnode.componentOptions.children)) {\r\n return vnode.componentOptions.children;\r\n }\r\n return [];\r\n}\r\nfunction findInputNodes(vnode) {\r\n if (!Array.isArray(vnode) && findValue(vnode) !== undefined) {\r\n return [vnode];\r\n }\r\n var children = extractChildren(vnode);\r\n return children.reduce(function (nodes, node) {\r\n var candidates = findInputNodes(node);\r\n if (candidates.length) {\r\n nodes.push.apply(nodes, candidates);\r\n }\r\n return nodes;\r\n }, []);\r\n}\r\n// Resolves v-model config if exists.\r\nfunction findModelConfig(vnode) {\r\n /* istanbul ignore next */\r\n if (!vnode.componentOptions)\r\n return null;\r\n // This is also not typed in the standard Vue TS.\r\n return vnode.componentOptions.Ctor.options.model;\r\n}\r\n// Adds a listener to vnode listener object.\r\nfunction mergeVNodeListeners(obj, eventName, handler) {\r\n // no listener at all.\r\n if (isNullOrUndefined(obj[eventName])) {\r\n obj[eventName] = [handler];\r\n return;\r\n }\r\n // Is an invoker.\r\n if (isCallable(obj[eventName]) && obj[eventName].fns) {\r\n var invoker = obj[eventName];\r\n invoker.fns = Array.isArray(invoker.fns) ? invoker.fns : [invoker.fns];\r\n if (!includes(invoker.fns, handler)) {\r\n invoker.fns.push(handler);\r\n }\r\n return;\r\n }\r\n if (isCallable(obj[eventName])) {\r\n var prev = obj[eventName];\r\n obj[eventName] = [prev];\r\n }\r\n if (Array.isArray(obj[eventName]) && !includes(obj[eventName], handler)) {\r\n obj[eventName].push(handler);\r\n }\r\n}\r\n// Adds a listener to a native HTML vnode.\r\nfunction addNativeNodeListener(node, eventName, handler) {\r\n /* istanbul ignore next */\r\n if (!node.data) {\r\n node.data = {};\r\n }\r\n if (isNullOrUndefined(node.data.on)) {\r\n node.data.on = {};\r\n }\r\n mergeVNodeListeners(node.data.on, eventName, handler);\r\n}\r\n// Adds a listener to a Vue component vnode.\r\nfunction addComponentNodeListener(node, eventName, handler) {\r\n /* istanbul ignore next */\r\n if (!node.componentOptions) {\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!node.componentOptions.listeners) {\r\n node.componentOptions.listeners = {};\r\n }\r\n mergeVNodeListeners(node.componentOptions.listeners, eventName, handler);\r\n}\r\nfunction addVNodeListener(vnode, eventName, handler) {\r\n if (vnode.componentOptions) {\r\n addComponentNodeListener(vnode, eventName, handler);\r\n return;\r\n }\r\n addNativeNodeListener(vnode, eventName, handler);\r\n}\r\n// Determines if `change` should be used over `input` for listeners.\r\nfunction getInputEventName(vnode, model) {\r\n var _a;\r\n // Is a component.\r\n if (vnode.componentOptions) {\r\n var event_1 = (findModelConfig(vnode) || { event: 'input' }).event;\r\n return event_1;\r\n }\r\n // Lazy Models typically use change event\r\n if ((_a = model === null || model === void 0 ? void 0 : model.modifiers) === null || _a === void 0 ? void 0 : _a.lazy) {\r\n return 'change';\r\n }\r\n // is a textual-type input.\r\n if (isTextInput(vnode)) {\r\n return 'input';\r\n }\r\n return 'change';\r\n}\r\nfunction isHTMLNode(node) {\r\n return includes(['input', 'select', 'textarea'], node.tag);\r\n}\r\n// TODO: Type this one properly.\r\nfunction normalizeSlots(slots, ctx) {\r\n var acc = [];\r\n return Object.keys(slots).reduce(function (arr, key) {\r\n slots[key].forEach(function (vnode) {\r\n if (!vnode.context) {\r\n slots[key].context = ctx;\r\n if (!vnode.data) {\r\n vnode.data = {};\r\n }\r\n vnode.data.slot = key;\r\n }\r\n });\r\n return arr.concat(slots[key]);\r\n }, acc);\r\n}\r\nfunction resolveTextualRules(vnode) {\r\n var _a;\r\n var attrs = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs;\r\n var rules = {};\r\n if (!attrs)\r\n return rules;\r\n if (attrs.type === 'email' && RuleContainer.getRuleDefinition('email')) {\r\n rules.email = ['multiple' in attrs];\r\n }\r\n if (attrs.pattern && RuleContainer.getRuleDefinition('regex')) {\r\n rules.regex = attrs.pattern;\r\n }\r\n if (attrs.maxlength >= 0 && RuleContainer.getRuleDefinition('max')) {\r\n rules.max = attrs.maxlength;\r\n }\r\n if (attrs.minlength >= 0 && RuleContainer.getRuleDefinition('min')) {\r\n rules.min = attrs.minlength;\r\n }\r\n if (attrs.type === 'number') {\r\n if (isSpecified(attrs.min) && RuleContainer.getRuleDefinition('min_value')) {\r\n rules.min_value = Number(attrs.min);\r\n }\r\n if (isSpecified(attrs.max) && RuleContainer.getRuleDefinition('max_value')) {\r\n rules.max_value = Number(attrs.max);\r\n }\r\n }\r\n return rules;\r\n}\r\nfunction resolveRules(vnode) {\r\n var _a;\r\n var htmlTags = ['input', 'select', 'textarea'];\r\n var attrs = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs;\r\n if (!includes(htmlTags, vnode.tag) || !attrs) {\r\n return {};\r\n }\r\n var rules = {};\r\n if ('required' in attrs && attrs.required !== false && RuleContainer.getRuleDefinition('required')) {\r\n rules.required = attrs.type === 'checkbox' ? [true] : true;\r\n }\r\n if (isTextInput(vnode)) {\r\n return normalizeRules(__assign(__assign({}, rules), resolveTextualRules(vnode)));\r\n }\r\n return normalizeRules(rules);\r\n}\r\nfunction normalizeChildren(context, slotProps) {\r\n if (context.$scopedSlots.default) {\r\n return context.$scopedSlots.default(slotProps) || [];\r\n }\r\n return context.$slots.default || [];\r\n}\n\n/**\r\n * Determines if a provider needs to run validation.\r\n */\r\nfunction shouldValidate(ctx, value) {\r\n // when an immediate/initial validation is needed and wasn't done before.\r\n if (!ctx._ignoreImmediate && ctx.immediate) {\r\n return true;\r\n }\r\n // when the value changes for whatever reason.\r\n if (!isRefEqual(ctx.value, value) && ctx.normalizedEvents.length) {\r\n return true;\r\n }\r\n // when it needs validation due to props/cross-fields changes.\r\n if (ctx._needsValidation) {\r\n return true;\r\n }\r\n // when the initial value is undefined and the field wasn't rendered yet.\r\n if (!ctx.initialized && value === undefined) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction createValidationCtx(ctx) {\r\n return __assign(__assign({}, ctx.flags), { errors: ctx.errors, classes: ctx.classes, failedRules: ctx.failedRules, reset: function () { return ctx.reset(); }, validate: function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return ctx.validate.apply(ctx, args);\r\n }, ariaInput: {\r\n 'aria-invalid': ctx.flags.invalid ? 'true' : 'false',\r\n 'aria-required': ctx.isRequired ? 'true' : 'false',\r\n 'aria-errormessage': \"vee_\" + ctx.id\r\n }, ariaMsg: {\r\n id: \"vee_\" + ctx.id,\r\n 'aria-live': ctx.errors.length ? 'assertive' : 'off'\r\n } });\r\n}\r\nfunction onRenderUpdate(vm, value) {\r\n if (!vm.initialized) {\r\n vm.initialValue = value;\r\n }\r\n var validateNow = shouldValidate(vm, value);\r\n vm._needsValidation = false;\r\n vm.value = value;\r\n vm._ignoreImmediate = true;\r\n if (!validateNow) {\r\n return;\r\n }\r\n var validate = function () {\r\n if (vm.immediate || vm.flags.validated) {\r\n return triggerThreadSafeValidation(vm);\r\n }\r\n vm.validateSilent();\r\n };\r\n if (vm.initialized) {\r\n validate();\r\n return;\r\n }\r\n vm.$once('hook:mounted', function () { return validate(); });\r\n}\r\nfunction computeModeSetting(ctx) {\r\n var compute = (isCallable(ctx.mode) ? ctx.mode : modes[ctx.mode]);\r\n return compute(ctx);\r\n}\r\nfunction triggerThreadSafeValidation(vm) {\r\n var pendingPromise = vm.validateSilent();\r\n // avoids race conditions between successive validations.\r\n vm._pendingValidation = pendingPromise;\r\n return pendingPromise.then(function (result) {\r\n if (pendingPromise === vm._pendingValidation) {\r\n vm.applyResult(result);\r\n vm._pendingValidation = undefined;\r\n }\r\n return result;\r\n });\r\n}\r\n// Creates the common handlers for a validatable context.\r\nfunction createCommonHandlers(vm) {\r\n if (!vm.$veeOnInput) {\r\n vm.$veeOnInput = function (e) {\r\n vm.syncValue(e); // track and keep the value updated.\r\n vm.setFlags({ dirty: true, pristine: false });\r\n };\r\n }\r\n var onInput = vm.$veeOnInput;\r\n if (!vm.$veeOnBlur) {\r\n vm.$veeOnBlur = function () {\r\n vm.setFlags({ touched: true, untouched: false });\r\n };\r\n }\r\n // Blur event listener.\r\n var onBlur = vm.$veeOnBlur;\r\n var onValidate = vm.$veeHandler;\r\n var mode = computeModeSetting(vm);\r\n // Handle debounce changes.\r\n if (!onValidate || vm.$veeDebounce !== vm.debounce) {\r\n onValidate = debounce(function () {\r\n vm.$nextTick(function () {\r\n if (!vm._pendingReset) {\r\n triggerThreadSafeValidation(vm);\r\n }\r\n vm._pendingReset = false;\r\n });\r\n }, mode.debounce || vm.debounce);\r\n // Cache the handler so we don't create it each time.\r\n vm.$veeHandler = onValidate;\r\n // cache the debounce value so we detect if it was changed.\r\n vm.$veeDebounce = vm.debounce;\r\n }\r\n return { onInput: onInput, onBlur: onBlur, onValidate: onValidate };\r\n}\r\n// Adds all plugin listeners to the vnode.\r\nfunction addListeners(vm, node) {\r\n var value = findValue(node);\r\n // cache the input eventName.\r\n vm._inputEventName = vm._inputEventName || getInputEventName(node, findModel(node));\r\n onRenderUpdate(vm, value === null || value === void 0 ? void 0 : value.value);\r\n var _a = createCommonHandlers(vm), onInput = _a.onInput, onBlur = _a.onBlur, onValidate = _a.onValidate;\r\n addVNodeListener(node, vm._inputEventName, onInput);\r\n addVNodeListener(node, 'blur', onBlur);\r\n // add the validation listeners.\r\n vm.normalizedEvents.forEach(function (evt) {\r\n addVNodeListener(node, evt, onValidate);\r\n });\r\n vm.initialized = true;\r\n}\n\nvar PROVIDER_COUNTER = 0;\r\nfunction data() {\r\n var errors = [];\r\n var fieldName = '';\r\n var defaultValues = {\r\n errors: errors,\r\n value: undefined,\r\n initialized: false,\r\n initialValue: undefined,\r\n flags: createFlags(),\r\n failedRules: {},\r\n isActive: true,\r\n fieldName: fieldName,\r\n id: ''\r\n };\r\n return defaultValues;\r\n}\r\nvar ValidationProvider = Vue.extend({\r\n inject: {\r\n $_veeObserver: {\r\n from: '$_veeObserver',\r\n default: function () {\r\n if (!this.$vnode.context.$_veeObserver) {\r\n this.$vnode.context.$_veeObserver = createObserver();\r\n }\r\n return this.$vnode.context.$_veeObserver;\r\n }\r\n }\r\n },\r\n props: {\r\n vid: {\r\n type: String,\r\n default: ''\r\n },\r\n name: {\r\n type: String,\r\n default: null\r\n },\r\n mode: {\r\n type: [String, Function],\r\n default: function () {\r\n return getConfig().mode;\r\n }\r\n },\r\n rules: {\r\n type: [Object, String],\r\n default: null\r\n },\r\n immediate: {\r\n type: Boolean,\r\n default: false\r\n },\r\n bails: {\r\n type: Boolean,\r\n default: function () { return getConfig().bails; }\r\n },\r\n skipIfEmpty: {\r\n type: Boolean,\r\n default: function () { return getConfig().skipOptional; }\r\n },\r\n debounce: {\r\n type: Number,\r\n default: 0\r\n },\r\n tag: {\r\n type: String,\r\n default: 'span'\r\n },\r\n slim: {\r\n type: Boolean,\r\n default: false\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n customMessages: {\r\n type: Object,\r\n default: function () {\r\n return {};\r\n }\r\n },\r\n detectInput: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n watch: {\r\n rules: {\r\n deep: true,\r\n handler: function (val, oldVal) {\r\n this._needsValidation = !isEqual(val, oldVal);\r\n }\r\n }\r\n },\r\n data: data,\r\n computed: {\r\n fieldDeps: function () {\r\n var _this = this;\r\n return Object.keys(this.normalizedRules).reduce(function (acc, rule) {\r\n var deps = extractLocators(_this.normalizedRules[rule]).map(function (dep) {\r\n return isLocator(dep) ? dep.__locatorRef : dep.slice(1);\r\n });\r\n acc.push.apply(acc, deps);\r\n deps.forEach(function (depName) {\r\n watchCrossFieldDep(_this, depName);\r\n });\r\n return acc;\r\n }, []);\r\n },\r\n normalizedEvents: function () {\r\n var _this = this;\r\n var on = computeModeSetting(this).on;\r\n return (on || []).map(function (e) {\r\n if (e === 'input') {\r\n return _this._inputEventName;\r\n }\r\n return e;\r\n });\r\n },\r\n isRequired: function () {\r\n var rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);\r\n var isRequired = Object.keys(rules).some(RuleContainer.isRequireRule);\r\n this.flags.required = !!isRequired;\r\n return isRequired;\r\n },\r\n classes: function () {\r\n var names = getConfig().classes;\r\n return computeClassObj(names, this.flags);\r\n },\r\n normalizedRules: function () {\r\n return normalizeRules(this.rules);\r\n }\r\n },\r\n mounted: function () {\r\n var _this = this;\r\n var onLocaleChanged = function () {\r\n if (!_this.flags.validated) {\r\n return;\r\n }\r\n var regenerateMap = _this._regenerateMap;\r\n if (regenerateMap) {\r\n var errors_1 = [];\r\n var failedRules_1 = {};\r\n Object.keys(regenerateMap).forEach(function (rule) {\r\n var msg = regenerateMap[rule]();\r\n errors_1.push(msg);\r\n failedRules_1[rule] = msg;\r\n });\r\n _this.applyResult({ errors: errors_1, failedRules: failedRules_1, regenerateMap: regenerateMap });\r\n return;\r\n }\r\n _this.validate();\r\n };\r\n EVENT_BUS.$on('change:locale', onLocaleChanged);\r\n this.$on('hook:beforeDestroy', function () {\r\n EVENT_BUS.$off('change:locale', onLocaleChanged);\r\n });\r\n },\r\n render: function (h) {\r\n var _this = this;\r\n this.registerField();\r\n var ctx = createValidationCtx(this);\r\n var children = normalizeChildren(this, ctx);\r\n // Automatic v-model detection\r\n if (this.detectInput) {\r\n var inputs = findInputNodes(children);\r\n if (inputs.length) {\r\n inputs.forEach(function (input, idx) {\r\n var _a, _b, _c, _d, _e, _f;\r\n // If the elements are not checkboxes and there are more input nodes\r\n if (!includes(['checkbox', 'radio'], (_b = (_a = input.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.type) && idx > 0) {\r\n return;\r\n }\r\n var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};\r\n if (!isEqual(_this._resolvedRules, resolved)) {\r\n _this._needsValidation = true;\r\n }\r\n if (isHTMLNode(input)) {\r\n _this.fieldName = ((_d = (_c = input.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.name) || ((_f = (_e = input.data) === null || _e === void 0 ? void 0 : _e.attrs) === null || _f === void 0 ? void 0 : _f.id);\r\n }\r\n _this._resolvedRules = resolved;\r\n addListeners(_this, input);\r\n });\r\n }\r\n }\r\n return this.slim && children.length <= 1 ? children[0] : h(this.tag, children);\r\n },\r\n beforeDestroy: function () {\r\n // cleanup reference.\r\n this.$_veeObserver.unobserve(this.id);\r\n },\r\n activated: function () {\r\n this.isActive = true;\r\n },\r\n deactivated: function () {\r\n this.isActive = false;\r\n },\r\n methods: {\r\n setFlags: function (flags) {\r\n var _this = this;\r\n Object.keys(flags).forEach(function (flag) {\r\n _this.flags[flag] = flags[flag];\r\n });\r\n },\r\n syncValue: function (v) {\r\n var value = normalizeEventValue(v);\r\n this.value = value;\r\n this.flags.changed = this.initialValue !== value;\r\n },\r\n reset: function () {\r\n var _this = this;\r\n this.errors = [];\r\n this.initialValue = this.value;\r\n var flags = createFlags();\r\n flags.required = this.isRequired;\r\n this.setFlags(flags);\r\n this.failedRules = {};\r\n this.validateSilent();\r\n this._pendingValidation = undefined;\r\n this._pendingReset = true;\r\n setTimeout(function () {\r\n _this._pendingReset = false;\r\n }, this.debounce);\r\n },\r\n validate: function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (args.length > 0) {\r\n this.syncValue(args[0]);\r\n }\r\n return [2 /*return*/, triggerThreadSafeValidation(this)];\r\n });\r\n });\r\n },\r\n validateSilent: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var rules, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.setFlags({ pending: true });\r\n rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);\r\n Object.defineProperty(rules, '_$$isNormalized', {\r\n value: true,\r\n writable: false,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n return [4 /*yield*/, validate(this.value, rules, __assign(__assign({ name: this.name || this.fieldName }, createLookup(this)), { bails: this.bails, skipIfEmpty: this.skipIfEmpty, isInitial: !this.initialized, customMessages: this.customMessages }))];\r\n case 1:\r\n result = _a.sent();\r\n this.setFlags({\r\n pending: false,\r\n valid: result.valid,\r\n invalid: !result.valid\r\n });\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n },\r\n setErrors: function (errors) {\r\n this.applyResult({ errors: errors, failedRules: {} });\r\n },\r\n applyResult: function (_a) {\r\n var errors = _a.errors, failedRules = _a.failedRules, regenerateMap = _a.regenerateMap;\r\n this.errors = errors;\r\n this._regenerateMap = regenerateMap;\r\n this.failedRules = __assign({}, (failedRules || {}));\r\n this.setFlags({\r\n valid: !errors.length,\r\n passed: !errors.length,\r\n invalid: !!errors.length,\r\n failed: !!errors.length,\r\n validated: true,\r\n changed: this.value !== this.initialValue\r\n });\r\n },\r\n registerField: function () {\r\n updateRenderingContextRefs(this);\r\n }\r\n }\r\n});\r\nfunction computeClassObj(names, flags) {\r\n var acc = {};\r\n var keys = Object.keys(flags);\r\n var length = keys.length;\r\n var _loop_1 = function (i) {\r\n var flag = keys[i];\r\n var className = (names && names[flag]) || flag;\r\n var value = flags[flag];\r\n if (isNullOrUndefined(value)) {\r\n return \"continue\";\r\n }\r\n if ((flag === 'valid' || flag === 'invalid') && !flags.validated) {\r\n return \"continue\";\r\n }\r\n if (typeof className === 'string') {\r\n acc[className] = value;\r\n }\r\n else if (Array.isArray(className)) {\r\n className.forEach(function (cls) {\r\n acc[cls] = value;\r\n });\r\n }\r\n };\r\n for (var i = 0; i < length; i++) {\r\n _loop_1(i);\r\n }\r\n return acc;\r\n}\r\nfunction createLookup(vm) {\r\n var providers = vm.$_veeObserver.refs;\r\n var reduced = {\r\n names: {},\r\n values: {}\r\n };\r\n return vm.fieldDeps.reduce(function (acc, depName) {\r\n if (!providers[depName]) {\r\n return acc;\r\n }\r\n acc.values[depName] = providers[depName].value;\r\n acc.names[depName] = providers[depName].name;\r\n return acc;\r\n }, reduced);\r\n}\r\nfunction extractId(vm) {\r\n if (vm.vid) {\r\n return vm.vid;\r\n }\r\n if (vm.name) {\r\n return vm.name;\r\n }\r\n if (vm.id) {\r\n return vm.id;\r\n }\r\n if (vm.fieldName) {\r\n return vm.fieldName;\r\n }\r\n PROVIDER_COUNTER++;\r\n return \"_vee_\" + PROVIDER_COUNTER;\r\n}\r\nfunction updateRenderingContextRefs(vm) {\r\n var providedId = extractId(vm);\r\n var id = vm.id;\r\n // Nothing has changed.\r\n if (!vm.isActive || (id === providedId && vm.$_veeObserver.refs[id])) {\r\n return;\r\n }\r\n // vid was changed.\r\n if (id !== providedId && vm.$_veeObserver.refs[id] === vm) {\r\n vm.$_veeObserver.unobserve(id);\r\n }\r\n vm.id = providedId;\r\n vm.$_veeObserver.observe(vm);\r\n}\r\nfunction createObserver() {\r\n return {\r\n refs: {},\r\n observe: function (vm) {\r\n this.refs[vm.id] = vm;\r\n },\r\n unobserve: function (id) {\r\n delete this.refs[id];\r\n }\r\n };\r\n}\r\nfunction watchCrossFieldDep(ctx, depName, withHooks) {\r\n if (withHooks === void 0) { withHooks = true; }\r\n var providers = ctx.$_veeObserver.refs;\r\n if (!ctx._veeWatchers) {\r\n ctx._veeWatchers = {};\r\n }\r\n if (!providers[depName] && withHooks) {\r\n return ctx.$once('hook:mounted', function () {\r\n watchCrossFieldDep(ctx, depName, false);\r\n });\r\n }\r\n if (!isCallable(ctx._veeWatchers[depName]) && providers[depName]) {\r\n ctx._veeWatchers[depName] = providers[depName].$watch('value', function () {\r\n if (ctx.flags.validated) {\r\n ctx._needsValidation = true;\r\n ctx.validate();\r\n }\r\n });\r\n }\r\n}\n\nvar FLAGS_STRATEGIES = [\r\n ['pristine', 'every'],\r\n ['dirty', 'some'],\r\n ['touched', 'some'],\r\n ['untouched', 'every'],\r\n ['valid', 'every'],\r\n ['invalid', 'some'],\r\n ['pending', 'some'],\r\n ['validated', 'every'],\r\n ['changed', 'some'],\r\n ['passed', 'every'],\r\n ['failed', 'some']\r\n];\r\nvar OBSERVER_COUNTER = 0;\r\nfunction data$1() {\r\n var refs = {};\r\n var errors = {};\r\n var flags = createObserverFlags();\r\n var fields = {};\r\n // FIXME: Not sure of this one can be typed, circular type reference.\r\n var observers = [];\r\n return {\r\n id: '',\r\n refs: refs,\r\n observers: observers,\r\n errors: errors,\r\n flags: flags,\r\n fields: fields\r\n };\r\n}\r\nfunction provideSelf() {\r\n return {\r\n $_veeObserver: this\r\n };\r\n}\r\nvar ValidationObserver = Vue.extend({\r\n name: 'ValidationObserver',\r\n provide: provideSelf,\r\n inject: {\r\n $_veeObserver: {\r\n from: '$_veeObserver',\r\n default: function () {\r\n if (!this.$vnode.context.$_veeObserver) {\r\n return null;\r\n }\r\n return this.$vnode.context.$_veeObserver;\r\n }\r\n }\r\n },\r\n props: {\r\n tag: {\r\n type: String,\r\n default: 'span'\r\n },\r\n vid: {\r\n type: String,\r\n default: function () {\r\n return \"obs_\" + OBSERVER_COUNTER++;\r\n }\r\n },\r\n slim: {\r\n type: Boolean,\r\n default: false\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data: data$1,\r\n created: function () {\r\n var _this = this;\r\n this.id = this.vid;\r\n register(this);\r\n var onChange = debounce(function (_a) {\r\n var errors = _a.errors, flags = _a.flags, fields = _a.fields;\r\n _this.errors = errors;\r\n _this.flags = flags;\r\n _this.fields = fields;\r\n }, 16);\r\n this.$watch(computeObserverState, onChange);\r\n },\r\n activated: function () {\r\n register(this);\r\n },\r\n deactivated: function () {\r\n unregister(this);\r\n },\r\n beforeDestroy: function () {\r\n unregister(this);\r\n },\r\n render: function (h) {\r\n var children = normalizeChildren(this, prepareSlotProps(this));\r\n return this.slim && children.length <= 1 ? children[0] : h(this.tag, { on: this.$listeners }, children);\r\n },\r\n methods: {\r\n observe: function (subscriber, kind) {\r\n var _a;\r\n if (kind === void 0) { kind = 'provider'; }\r\n if (kind === 'observer') {\r\n this.observers.push(subscriber);\r\n return;\r\n }\r\n this.refs = __assign(__assign({}, this.refs), (_a = {}, _a[subscriber.id] = subscriber, _a));\r\n },\r\n unobserve: function (id, kind) {\r\n if (kind === void 0) { kind = 'provider'; }\r\n if (kind === 'provider') {\r\n var provider = this.refs[id];\r\n if (!provider) {\r\n return;\r\n }\r\n this.$delete(this.refs, id);\r\n return;\r\n }\r\n var idx = findIndex(this.observers, function (o) { return o.id === id; });\r\n if (idx !== -1) {\r\n this.observers.splice(idx, 1);\r\n }\r\n },\r\n validateWithInfo: function (_a) {\r\n var _b = (_a === void 0 ? {} : _a).silent, silent = _b === void 0 ? false : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var results, isValid, _c, errors, flags, fields;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0: return [4 /*yield*/, Promise.all(__spreadArrays(values(this.refs)\r\n .filter(function (r) { return !r.disabled; })\r\n .map(function (ref) { return ref[silent ? 'validateSilent' : 'validate']().then(function (r) { return r.valid; }); }), this.observers.filter(function (o) { return !o.disabled; }).map(function (obs) { return obs.validate({ silent: silent }); })))];\r\n case 1:\r\n results = _d.sent();\r\n isValid = results.every(function (r) { return r; });\r\n _c = computeObserverState.call(this), errors = _c.errors, flags = _c.flags, fields = _c.fields;\r\n this.errors = errors;\r\n this.flags = flags;\r\n this.fields = fields;\r\n return [2 /*return*/, {\r\n errors: errors,\r\n flags: flags,\r\n fields: fields,\r\n isValid: isValid\r\n }];\r\n }\r\n });\r\n });\r\n },\r\n validate: function (_a) {\r\n var _b = (_a === void 0 ? {} : _a).silent, silent = _b === void 0 ? false : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isValid;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0: return [4 /*yield*/, this.validateWithInfo({ silent: silent })];\r\n case 1:\r\n isValid = (_c.sent()).isValid;\r\n return [2 /*return*/, isValid];\r\n }\r\n });\r\n });\r\n },\r\n handleSubmit: function (cb) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isValid;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validate()];\r\n case 1:\r\n isValid = _a.sent();\r\n if (!isValid || !cb) {\r\n return [2 /*return*/];\r\n }\r\n return [2 /*return*/, cb()];\r\n }\r\n });\r\n });\r\n },\r\n reset: function () {\r\n return __spreadArrays(values(this.refs), this.observers).forEach(function (ref) { return ref.reset(); });\r\n },\r\n setErrors: function (errors) {\r\n var _this = this;\r\n Object.keys(errors).forEach(function (key) {\r\n var provider = _this.refs[key];\r\n if (!provider)\r\n return;\r\n var errorArr = errors[key] || [];\r\n errorArr = typeof errorArr === 'string' ? [errorArr] : errorArr;\r\n provider.setErrors(errorArr);\r\n });\r\n this.observers.forEach(function (observer) {\r\n observer.setErrors(errors);\r\n });\r\n }\r\n }\r\n});\r\nfunction unregister(vm) {\r\n if (vm.$_veeObserver) {\r\n vm.$_veeObserver.unobserve(vm.id, 'observer');\r\n }\r\n}\r\nfunction register(vm) {\r\n if (vm.$_veeObserver) {\r\n vm.$_veeObserver.observe(vm, 'observer');\r\n }\r\n}\r\nfunction prepareSlotProps(vm) {\r\n return __assign(__assign({}, vm.flags), { errors: vm.errors, fields: vm.fields, validate: vm.validate, validateWithInfo: vm.validateWithInfo, passes: vm.handleSubmit, handleSubmit: vm.handleSubmit, reset: vm.reset });\r\n}\r\n// Creates a modified version of validation flags\r\nfunction createObserverFlags() {\r\n return __assign(__assign({}, createFlags()), { valid: true, invalid: false });\r\n}\r\nfunction computeObserverState() {\r\n var vms = __spreadArrays(values(this.refs), this.observers.filter(function (o) { return !o.disabled; }));\r\n var errors = {};\r\n var flags = createObserverFlags();\r\n var fields = {};\r\n var length = vms.length;\r\n for (var i = 0; i < length; i++) {\r\n var vm = vms[i];\r\n // validation provider\r\n if (Array.isArray(vm.errors)) {\r\n errors[vm.id] = vm.errors;\r\n fields[vm.id] = __assign({ id: vm.id, name: vm.name, failedRules: vm.failedRules }, vm.flags);\r\n continue;\r\n }\r\n // Nested observer, merge errors and fields\r\n errors = __assign(__assign({}, errors), vm.errors);\r\n fields = __assign(__assign({}, fields), vm.fields);\r\n }\r\n FLAGS_STRATEGIES.forEach(function (_a) {\r\n var flag = _a[0], method = _a[1];\r\n flags[flag] = vms[method](function (vm) { return vm.flags[flag]; });\r\n });\r\n return { errors: errors, flags: flags, fields: fields };\r\n}\n\nfunction withValidation(component, mapProps) {\r\n var _a;\r\n if (mapProps === void 0) { mapProps = identity; }\r\n var options = 'options' in component ? component.options : component;\r\n var providerOpts = ValidationProvider.options;\r\n var hoc = {\r\n name: (options.name || 'AnonymousHoc') + \"WithValidation\",\r\n props: __assign({}, providerOpts.props),\r\n data: providerOpts.data,\r\n computed: __assign({}, providerOpts.computed),\r\n methods: __assign({}, providerOpts.methods),\r\n beforeDestroy: providerOpts.beforeDestroy,\r\n inject: providerOpts.inject\r\n };\r\n var eventName = ((_a = options === null || options === void 0 ? void 0 : options.model) === null || _a === void 0 ? void 0 : _a.event) || 'input';\r\n hoc.render = function (h) {\r\n var _a;\r\n this.registerField();\r\n var vctx = createValidationCtx(this);\r\n var listeners = __assign({}, this.$listeners);\r\n var model = findModel(this.$vnode);\r\n this._inputEventName = this._inputEventName || getInputEventName(this.$vnode, model);\r\n var value = findValue(this.$vnode);\r\n onRenderUpdate(this, value === null || value === void 0 ? void 0 : value.value);\r\n var _b = createCommonHandlers(this), onInput = _b.onInput, onBlur = _b.onBlur, onValidate = _b.onValidate;\r\n mergeVNodeListeners(listeners, eventName, onInput);\r\n mergeVNodeListeners(listeners, 'blur', onBlur);\r\n this.normalizedEvents.forEach(function (evt) {\r\n mergeVNodeListeners(listeners, evt, onValidate);\r\n });\r\n // Props are any attrs not associated with ValidationProvider Plus the model prop.\r\n // WARNING: Accidental prop overwrite will probably happen.\r\n var prop = (findModelConfig(this.$vnode) || { prop: 'value' }).prop;\r\n var props = __assign(__assign(__assign({}, this.$attrs), (_a = {}, _a[prop] = model === null || model === void 0 ? void 0 : model.value, _a)), mapProps(vctx));\r\n return h(options, {\r\n attrs: this.$attrs,\r\n props: props,\r\n on: listeners,\r\n scopedSlots: this.$scopedSlots\r\n }, normalizeSlots(this.$slots, this.$vnode.context));\r\n };\r\n return hoc;\r\n}\n\nvar version = '3.4.5';\n\nexport { ValidationObserver, ValidationProvider, configure, extend, localeChanged, localize, normalizeRules, setInteractionMode, validate, version, withValidation };\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\n }\n});","export const validatorPositive = value => {\n if (value >= 0) {\n return true\n }\n return false\n}\n\nexport const validatorPassword = password => {\n /* eslint-disable no-useless-escape */\n const regExp = /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*()]).{8,}/\n /* eslint-enable no-useless-escape */\n const validPassword = regExp.test(password)\n return validPassword\n}\n\nexport const validatorCreditCard = creditnum => {\n /* eslint-disable no-useless-escape */\n const cRegExp = /^(?:3[47][0-9]{13})$/\n /* eslint-enable no-useless-escape */\n const validCreditCard = cRegExp.test(creditnum)\n return validCreditCard\n}\n\nexport const validatorVatPercent = creditnum => {\n /* eslint-disable no-useless-escape */\n const cRegExp = /^0$/\n /* eslint-enable no-useless-escape */\n const validCreditCard = cRegExp.test(parseFloat(creditnum))\n return validCreditCard\n}\n\nexport const validatorPrice = creditnum => {\n /* eslint-disable no-useless-escape */\n const cRegExp = /^(0*[1-9][0-9]*(\\.[0-9]+)?|0+\\.[0-9]*[1-9][0-9]*)$/\n /* eslint-enable no-useless-escape */\n const validCreditCard = cRegExp.test(parseFloat(creditnum))\n return validCreditCard\n}\n\nexport const validatorQty = creditnum => {\n /* eslint-disable no-useless-escape */\n const cRegExp = /^[1-9][0-9]*$/\n /* eslint-enable no-useless-escape */\n const validCreditCard = cRegExp.test(parseFloat(creditnum))\n return validCreditCard\n}\n\nexport const validatorUrlValidator = val => {\n if (val === undefined || val === null || val.length === 0) {\n return true\n }\n /* eslint-disable no-useless-escape */\n const re = /^(http[s]?:\\/\\/){0,1}(www\\.){0,1}[a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,5}[\\.]{0,1}/\n /* eslint-enable no-useless-escape */\n return re.test(val)\n}\n","import { extend, localize } from \"vee-validate\";\nimport {\n required as rule_required,\n email as rule_email,\n min as rule_min,\n confirmed as rule_confirmed,\n regex as rule_regex,\n between as rule_between,\n alpha as rule_alpha,\n integer as rule_integer,\n digits as rule_digits,\n alpha_dash as rule_alpha_dash,\n alpha_num as rule_alpha_num,\n length as rule_length,\n} from \"vee-validate/dist/rules\";\nimport ar from \"vee-validate/dist/locale/ar.json\";\nimport en from \"vee-validate/dist/locale/en.json\";\n\n// eslint-disable-next-line object-curly-newline\nimport {\n validatorPositive,\n validatorUrlValidator,\n validatorPassword,\n validatorCreditCard,\n validatorVatPercent,\n validatorPrice,\n validatorQty,\n} from \"./validators\";\n\n// ////////////////////////////////////////////////////////\n// General\n// ////////////////////////////////////////////////////////\n\nexport const required = extend(\"required\", rule_required);\n\nexport const email = extend(\"email\", rule_email);\n\nexport const min = extend(\"min\", rule_min);\n\nexport const confirmed = extend(\"confirmed\", rule_confirmed);\n\nexport const regex = extend(\"regex\", rule_regex);\n\nexport const between = extend(\"between\", rule_between);\n\nexport const alpha = extend(\"alpha\", rule_alpha);\n\nexport const integer = extend(\"integer\", rule_integer);\n\nexport const digits = extend(\"digits\", rule_digits);\n\nexport const alphaDash = extend(\"alpha-dash\", rule_alpha_dash);\n\nexport const alphaNum = extend(\"alpha-num\", rule_alpha_num);\n\nexport const length = extend(\"length\", rule_length);\n\n\n\nexport const positive = extend(\"positive\", {\n validate: validatorPositive,\n message: \"Please enter positive number!\",\n});\n\nexport const credit = extend(\"credit-card\", {\n validate: validatorCreditCard,\n message: \"It is not valid credit card!\",\n});\n\nexport const password = extend(\"password\", {\n validate: validatorPassword,\n message:\n \"Your {_field_} must contain at least one uppercase, one lowercase, one special character and one digit\",\n});\n\nexport const url = extend(\"url\", {\n validate: validatorUrlValidator,\n message: \"URL is invalid\",\n});\n\nexport const vatPercentValid = extend(\"vatPercentValid\", {\n validate: validatorVatPercent,\n message: `Vat can't be greater than 0`,\n});\n\nexport const singlePriceValid = extend(\"singlePriceValid\", {\n validate: validatorPrice,\n message: `Single Price should be greater than 0`,\n});\n\nexport const qtyValid = extend(\"qtyValid\", {\n validate: validatorQty,\n message: `Qunatity should be greater than 0`,\n});\n\nextend('special_symbols', {\n validate(value) {\n // Regular expression to match any special symbols\n const regexPattern = /[\\!@#\\$%\\^&\\*\\(\\)\\-_=\\+\\\\\\|\\[\\]\\{\\};:'\",\\.<>\\/\\?]/;\n return !regexPattern.test(value);\n },\n message: 'The {_field_} cannot contain special symbols.'\n});\n\n// Install English and Arabic localizations.\nlocalize({\n en: {\n messages: en.messages,\n names: {\n email: \"Email\",\n password: \"Password\",\n },\n fields: {\n password: {\n min: \"{_field_} is too short, you want to get hacked?\",\n },\n },\n },\n ar: {\n messages: ar.messages,\n names: {\n email: \"البريد الإلكتروني\",\n password: \"كلمة السر\",\n },\n fields: {\n password: {\n min: \"كلمة السر قصيرة جداً سيتم اختراقك\",\n },\n },\n },\n});\n// ////////////////////////////////////////////////////////\n// NOTE:\n// Quasar validation for reference only\n// Remove this note once development is finished and make sure to\n// to convert all of them in veevalidate version\n// ////////////////////////////////////////////////////////\n\n// export const required = (val) => {\n// return (val && val.length > 0) || '*Field is required'\n// }\n\n// export const required_obj = (obj) => {\n// if (obj === null || obj === undefined) return '*Field is required'\n// return (Object.entries(obj).length > 0 && obj.constructor === Object) || '*Field is required'\n// }\n\n// export const no_blank_spaces_arr = (arr) => {\n// return arr.every(val => (val.trim() && val.trim().length > 0)) || 'Blank Spaces are not allowed'\n// }\n\n// export const url = val => {\n// // If blank return\n// if (val === undefined || val === null || val.length === 0) return true\n\n// // Used\n// // https://stackoverflow.com/questions/4314741/url-regex-validation\n\n// // Other\n// // https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n// // https://www.w3resource.com/javascript-exercises/javascript-regexp-exercise-9.php\n// // https://www.geeksforgeeks.org/how-to-validate-url-using-regular-expression-in-javascript/\n\n// /* eslint-disable no-useless-escape */\n// const re = /^(http[s]?:\\/\\/){0,1}(www\\.){0,1}[a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,5}[\\.]{0,1}/\n// /* eslint-enable no-useless-escape */\n// return re.test(val) || 'URL is invalid'\n// }\n\n// export const date = val => {\n\n// // If blank return\n// if (val === undefined || val === null || val.length === 0) return true\n\n// // https://github.com/quasarframework/quasar/blob/dev/ui/src/utils/patterns.js\n// return /^-?[\\d]+\\/[0-1]\\d\\/[0-3]\\d$/.test(val) || 'Date is invalid'\n// }\n\n// export const max = (val, max) => {\n\n// // If blank return\n// if (val === undefined || val === null) return true\n\n// return val.length <= max || `More than ${max} characters are not allowed`\n// }\n\n// export const max_arr = (val, max) => {\n// return val.length <= max || `More than ${max} values are not allowed`\n// }\n\n// export const min = (val, min) => {\n\n// // If blank return\n// if (val === undefined || val === null || val.length === 0) return true\n\n// return val.length >= min || `Minimum ${min} characters are required`\n// }\n\n// export const num_range = (val, min, max) => {\n\n// // If blank return\n// if (val === undefined || val === null || val.length === 0) return true\n\n// const msg = 'Value is invalid'\n// if (min === null) return val <= max || msg\n// else if (max === null) return val >= min || msg\n// else return (val >= min && val <= max) || msg\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});","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});","// We haven't added icon's computed property because it makes this mixin coupled with UI\nexport const togglePasswordVisibility = {\n data() {\n return {\n passwordFieldType: 'password',\n }\n },\n methods: {\n togglePasswordVisibility() {\n this.passwordFieldType = this.passwordFieldType === 'password' ? 'text' : 'password'\n },\n },\n}\n\nexport const _ = null\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};","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_INPUT_GROUP_APPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_APPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAppend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_APPEND,\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 // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: true\n })\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_TEXT } 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_INPUT_GROUP_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupText = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_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 staticClass: 'input-group-text'\n }), children);\n }\n});","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});","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});","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\n }\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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_NAV_ITEM_DROPDOWN } from '../../constants/components';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT, SLOT_NAME_TEXT } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { keys, pick, sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as BDropdownProps } from '../dropdown/dropdown';\nimport { BLink } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), pick(BDropdownProps, [].concat(_toConsumableArray(keys(dropdownProps)), ['html', 'lazy', 'menuClass', 'noCaret', 'role', 'text', 'toggleClass'])))), NAME_NAV_ITEM_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BNavItemDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_NAV_ITEM_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n toggleId: function toggleId() {\n return this.safeId('_BV_toggle_');\n },\n dropdownClasses: function dropdownClasses() {\n return [this.directionClass, this.boundaryClass, {\n show: this.visible\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 return [this.toggleClass, {\n 'dropdown-toggle-no-caret': this.noCaret\n }];\n }\n },\n render: function render(h) {\n var toggleId = this.toggleId,\n visible = this.visible,\n hide = this.hide;\n var $toggle = h(BLink, {\n staticClass: 'nav-link dropdown-toggle',\n class: this.toggleClasses,\n props: {\n href: \"#\".concat(this.id || ''),\n disabled: this.disabled\n },\n attrs: {\n id: toggleId,\n role: 'button',\n 'aria-haspopup': 'true',\n 'aria-expanded': visible ? 'true' : 'false'\n },\n on: {\n mousedown: this.onMousedown,\n click: this.toggle,\n keydown: this.toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, [// TODO: The `text` slot is deprecated in favor of the `button-content` slot\n this.normalizeSlot([SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_TEXT]) || h('span', {\n domProps: htmlOrText(this.html, this.text)\n })]);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n tabindex: '-1',\n 'aria-labelledby': toggleId\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('li', {\n staticClass: 'nav-item b-nav-dropdown dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$toggle, $menu]);\n }\n});","export var noop = function noop() {};","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_DROPDOWN_DIVIDER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { omit } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'hr')\n}, NAME_DROPDOWN_DIVIDER); // --- Main component ---\n// @vue/component\n\nexport var BDropdownDivider = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_DIVIDER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(props.tag, {\n staticClass: 'dropdown-divider',\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n role: 'separator',\n 'aria-orientation': 'horizontal'\n }),\n ref: 'divider'\n })]);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"auth-wrapper auth-v2\"},[_c('b-row',{staticClass:\"auth-inner m-0\"},[_c('navbarAds'),_c('b-col',{staticClass:\"d-none d-lg-flex align-items-center p-5\",attrs:{\"lg\":\"8\"}},[_c('div',{staticClass:\"w-100 d-lg-flex align-items-center justify-content-center px-5\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"src\":_vm.imgUrl,\"alt\":\"Login V2\"}})],1)]),_c('b-col',{staticClass:\"d-flex align-items-center auth-bg px-2 p-lg-5\",attrs:{\"lg\":\"4\"}},[_c('b-col',{staticClass:\"px-xl-2 mx-auto\",attrs:{\"sm\":\"8\",\"md\":\"6\",\"lg\":\"12\"}},[_c('b-card-title',{staticClass:\"mb-1 font-weight-bold\",attrs:{\"title-tag\":\"h2\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"login.title\"))+\" \")]),_c('b-card-text',{staticClass:\"mb-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"login.subtitle\"))+\" \")]),_c('validation-observer',{ref:\"loginForm\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar invalid = ref.invalid;\nreturn [_c('b-form',{staticClass:\"auth-login-form mt-2\",on:{\"submit\":function($event){$event.preventDefault();return _vm.login($event)}}},[_c('b-form-group',{attrs:{\"label\":_vm.$t('login.lbl_email'),\"label-for\":\"login-email\"}},[_c('validation-provider',{attrs:{\"name\":_vm.$t('login.lbl_email'),\"vid\":\"email\",\"rules\":\"required|email\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-input',{attrs:{\"id\":\"login-email\",\"state\":errors.length > 0 ? false : null,\"name\":\"login-email\",\"placeholder\":_vm.$t('login.email_placeholder')},model:{value:(_vm.userEmail),callback:function ($$v) {_vm.userEmail=$$v},expression:\"userEmail\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})],1),_c('b-form-group',[_c('div',{staticClass:\"d-flex justify-content-between\"},[_c('label',{attrs:{\"for\":\"login-password\"}},[_vm._v(_vm._s(_vm.$t(\"login.lbl_password\")))]),_c('b-link',{attrs:{\"to\":{ name: 'auth-forgot-password' }}},[_c('small',[_vm._v(_vm._s(_vm.$t(\"login.lnk_forget_password\")))])])],1),_c('validation-provider',{attrs:{\"name\":_vm.$t('login.lbl_password'),\"vid\":\"password\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-input-group',{staticClass:\"input-group-merge\",class:errors.length > 0 ? 'is-invalid' : null},[_c('b-form-input',{staticClass:\"form-control-merge\",attrs:{\"id\":\"login-password\",\"state\":errors.length > 0 ? false : null,\"type\":_vm.passwordFieldType,\"name\":\"login-password\",\"placeholder\":_vm.$t('login.lbl_password')},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('b-input-group-append',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":_vm.passwordToggleIcon},on:{\"click\":_vm.togglePasswordVisibility}})],1)],1),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})],1),_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"remember-me\",\"name\":\"checkbox-1\"},model:{value:(_vm.status),callback:function ($$v) {_vm.status=$$v},expression:\"status\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"login.remember\"))+\" \")])],1),_c('b-button',{attrs:{\"type\":\"submit\",\"variant\":\"primary\",\"block\":\"\",\"disabled\":invalid || _vm.loading}},[(_vm.loading)?_c('b-spinner',{attrs:{\"small\":\"\",\"variant\":\"light\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t(\"login.sign_in\"))+\" \")],1)],1)]}}])}),_c('b-card-text',{staticClass:\"text-center mt-2\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"login.pre_signup_link_txt\"))+\" \")]),_c('b-link',{attrs:{\"to\":{ name: 'register' }}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"login.signup_link_txt\")))])])],1),_c('div',{staticClass:\"divider my-2\"},[_c('div',{staticClass:\"divider-text\"},[_vm._v(\"or\")])])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login-ads.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login-ads.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Login-ads.vue?vue&type=template&id=28eead52\"\nimport script from \"./Login-ads.vue?vue&type=script&lang=js\"\nexport * from \"./Login-ads.vue?vue&type=script&lang=js\"\nimport style0 from \"./Login-ads.vue?vue&type=style&index=0&id=28eead52&prod&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 null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/login-v2-dark.58db2eaf.svg\";"],"sourceRoot":""}