{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox-group.js","webpack:///./node_modules/vue-select/dist/vue-select.js","webpack:///./node_modules/vee-validate/dist/rules.js","webpack:///./src/views/Agent-User/add-coupon.vue?4250","webpack:///src/views/Agent-User/add-coupon.vue","webpack:///./src/views/Agent-User/add-coupon.vue?7494","webpack:///./src/views/Agent-User/add-coupon.vue","webpack:///./src/views/Agent-User/add-coupon.vue?70af","webpack:///./node_modules/vee-validate/dist/vee-validate.esm.js","webpack:///./node_modules/bootstrap-vue/esm/utils/locale.js","webpack:///./src/@core/utils/validations/validators.js","webpack:///./src/@core/utils/validations/validations.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/form-radio.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/esm/constants/date.js","webpack:///./node_modules/bootstrap-vue/esm/utils/date.js","webpack:///./node_modules/bootstrap-vue/esm/components/calendar/calendar.js","webpack:///./node_modules/bootstrap-vue/esm/directives/hover/hover.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-btn-label-control/bv-form-btn-label-control.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-datepicker/form-datepicker.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/form-file/form-file.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/vue-ripple-directive/src/ripple.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-divider.js"],"names":["props","id","inline","novalidate","validated","BForm","extend","name","functional","render","h","_ref","data","children","class","attrs","_watch","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","_objectSpread2","PASS_DOWN_ATTRS","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","ariaInvalid","buttonVariant","buttons","stacked","formRadioCheckGroupMixin","mixins","inheritAttrs","localChecked","this","computed","groupName","safeId","groupClasses","size","classes","concat","watch","newValue","oldValue","$emit","_this","isRadioGroup","$attrs","optionComponent","$inputs","formOptions","map","option","index","disabled","domProps","html","text","computedAriaInvalid","required","role","tabindex","normalizeSlot","BFormCheckboxGroup","provide","bvCheckGroup","t","e","module","exports","self","n","o","l","call","m","c","d","get","r","Symbol","toStringTag","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","iterator","constructor","Array","isArray","toString","from","TypeError","a","autoscroll","type","Boolean","typeAheadPointer","maybeAdjustScroll","methods","$refs","dropdownMenu","getDropdownViewport","getBoundingClientRect","top","bottom","height","scrollTop","offsetTop","u","filteredOptions","selectable","typeAheadUp","typeAheadDown","typeAheadSelect","select","loading","mutableLoading","search","toggleLoading","options","staticRenderFns","_compiled","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","beforeCreate","Deselect","$createElement","_self","_c","xmlns","width","OpenIndicator","f","inserted","context","appendToBody","toggle","left","window","scrollX","pageXOffset","scrollY","pageYOffset","unbindPosition","calculatePosition","document","body","appendChild","unbind","parentNode","removeChild","y","sort","JSON","stringify","b","g","v","_","components","directives","clearable","searchable","multiple","placeholder","String","transition","clearSearchOnSelect","closeOnSelect","label","autocomplete","reduce","Function","getOptionLabel","console","warn","getOptionKey","onTab","selectOnTab","isComposing","taggable","Number","pushTags","filterable","filterBy","toLowerCase","indexOf","createOption","optionList","resetOnOptionsChange","validator","includes","clearSearchOnBlur","noDrop","inputId","dir","selectOnKeyCodes","searchInputQuerySelector","mapKeydown","style","uid","open","pushedTags","_value","selectedValue","clearSelection","isTrackingValues","setInternalValueFromOptions","created","$on","pushTag","$data","findOptionFromReducedValue","isOptionSelected","optionExists","updateValue","onAfterSelect","deselect","optionComparator","searchEl","blur","toggleDropdown","preventDefault","deselectButtons","clearButton","some","contains","focus","find","closeSearchOptions","maybeDeleteValue","slice","normalizeOptionForSlot","onEscape","onSearchBlur","mousedown","searching","onSearchFocus","onMousedown","onMouseUp","onSearchKeyDown","8","9","27","38","40","keyCode","propsData","$scopedSlots","selectedOptions","querySelector","scope","attributes","searchPlaceholder","readonly","ref","dropdownOpen","events","compositionstart","compositionend","keydown","input","spinner","noOptions","openIndicator","listHeader","listFooter","header","footer","childComponents","stateClasses","isValueEmpty","unshift","showClearButton","O","staticClass","_t","_v","on","_l","_s","refInFor","title","click","tag","_e","_g","_b","rawName","expression","mouseup","mouseover","stopPropagation","staticStyle","display","visibility","w","ajax","pointer","pointerScroll","alpha","en","cs","da","de","es","fa","fr","it","lt","nl","hu","pl","pt","ro","ru","sk","sr","sv","tr","uk","ar","az","el","alphanumeric","alphaDash","validate","_a","locale","every","val","test","loc","params","alpha$1","validate$1","params$1","alpha_dash","validate$2","params$2","alpha_num","validate$4","min","max","params$4","between","validate$5","params$5","isTarget","confirmed","validate$6","strVal","params$6","cast","digits","validate$8","re","split","emailStr","trim","params$8","email","isNullOrUndefined","undefined","isEmptyArray","arr","isCallable","fn","toArray","arrayLike","_copyArray","array","validate$c","files","regex","file","image","validate$d","integer","validate$g","params$b","validate$k","params$e","validate$l","params$f","min_value","validate$m","testValue","strValue","numeric","validate$n","params$g","RegExp","validate$o","allowFalse","result","valid","computesRequired","params$h","validate$r","decimals","separator","separators","dot","comma","regexPart","params$k","double","_vm","_h","$event","scopedSlots","_u","errors","model","coupon","callback","$$v","$set","_n","companies","comp","userDisplayName","year","month","day","detailsOptions","selectedFile","isValidating","validationForm","back","ValidationProvider","ValidationObserver","BFormRadio","BDropdown","BDropdownDivider","BDropdownItem","BCardCode","BRow","BCol","BFormGroup","BFormInput","BFormCheckbox","BButton","BFormDatepicker","BFormFile","vSelect","Ripple","editCoupon","price","couponNumber","billNumber","certificateNumber","policyNumber","date","details","companyName","mounted","localize","GetCoupon","response","component","icon","variant","GetCompanies","success","AddCoupon","formData","EditCoupon","$router","__assign","assign","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","rejected","done","then","__generator","sent","trys","ops","verb","op","pop","__spreadArrays","il","k","j","jl","isNaN","isObject","isRefEqual","lhs","rhs","isEqual","flags","isSpecified","isLocator","__locatorRef","findIndex","predicate","idx","collection","item","values","merge","createFlags","untouched","touched","dirty","pristine","invalid","pending","changed","passed","failed","debounce","wait","token","cancelled","args","_i","later","timeout","clearTimeout","setTimeout","message","interpolate","template","replace","RULES","normalizeSchema","schema","param","RuleContainer","rule","lazy","isLazy","isRequireRule","getRuleDefinition","ruleName","guardExtend","Error","DEFAULT_CONFIG","defaultMessage","skipOptional","bails","mode","useConstraintAttrs","currentConfig","getConfig","setConfig","newConf","normalizeRules","rules","acc","_$$isNormalized","prev","curr","buildParams","parsedRule","parseRule","provided","ruleSchema","definedParams","lastDefinedParam_1","createLocator","join","castFn","locator","crossTable","extractLocators","shouldBail","skipIfEmpty","field","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","name_1","targetPart","normalize","aggressive","eager","passive","modes","EVENT_BUS","localeChanged","DICTIONARY","Dictionary","dictionary","container","format","_f","fieldContainer","fields","messageContainer","messages","hasRule","isEvent","evt","Event","srcElement","normalizeEventValue","_vModifiers","number","valueAsNumber","parseFloat","trimmedValue","isTextInput","vnode","elm","findModel","nonStandardVNodeData","findValue","config","findModelConfig","componentOptions","propsDataWithValue","extractChildren","findInputNodes","nodes","node","candidates","Ctor","mergeVNodeListeners","eventName","handler","fns","invoker","addNativeNodeListener","addComponentNodeListener","listeners","addVNodeListener","getInputEventName","event_1","modifiers","isHTMLNode","resolveTextualRules","pattern","maxlength","minlength","max_value","resolveRules","htmlTags","normalizeChildren","slotProps","$slots","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","$nextTick","_pendingReset","addListeners","_inputEventName","PROVIDER_COUNTER","fieldName","defaultValues","isActive","inject","$_veeObserver","createObserver","vid","slim","detectInput","deep","oldVal","fieldDeps","normalizedRules","deps","dep","depName","watchCrossFieldDep","_resolvedRules","computeClassObj","onLocaleChanged","_regenerateMap","errors_1","failedRules_1","$off","registerField","inputs","resolved","beforeDestroy","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","register","onChange","computeObserverState","unregister","prepareSlotProps","$listeners","subscriber","kind","splice","provider","$delete","validateWithInfo","silent","results","isValid","all","obs","handleSubmit","cb","errorArr","observer","passes","vms","method","RTL_LANGS","isLocaleRTL","parts","locale1","locale2","validatorPositive","validatorPassword","password","regExp","validPassword","validatorCreditCard","creditnum","cRegExp","validCreditCard","validatorUrlValidator","rule_required","rule_email","rule_min","rule_min_value","rule_numeric","rule_confirmed","rule_regex","rule_between","rule_alpha","rule_integer","rule_digits","rule_alpha_dash","rule_alpha_num","rule_length","rule_double","bvGroup","computedLocalChecked","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","alignContent","alignH","alignV","noGutters","_classList$push","classList","CALENDAR_GREGORY","CALENDAR_LONG","CALENDAR_NARROW","CALENDAR_SHORT","DATE_FORMAT_2_DIGIT","DATE_FORMAT_NUMERIC","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","len","arr2","_arr","err","_construct","Parent","Class","_isNativeReflectConstruct","Reflect","construct","Constructor","instance","_setPrototypeOf","sham","Proxy","Date","setPrototypeOf","__proto__","createDate","_len","_key","_date$split$map","_date$split$map2","getFullYear","getMonth","getDate","formatYMD","locales","calendar","identity","fmt","Intl","DateTimeFormat","resolvedOptions","createDateFormatter","dtf","datesEqual","date1","date2","firstDateOfMonth","setDate","lastDateOfMonth","setMonth","addYears","numberOfYears","setFullYear","oneMonthAgo","oneMonthAhead","oneYearAgo","oneYearAhead","oneDecadeAgo","oneDecadeAhead","ariaControls","block","dateDisabledFn","dateFormatOptions","weekday","dateInfoFn","direction","hidden","hideHeader","initialDate","labelCalendar","labelCurrentMonth","labelHelp","labelNav","labelNextDecade","labelNextMonth","labelNextYear","labelNoDateSelected","labelPrevDecade","labelPrevMonth","labelPrevYear","labelSelected","labelToday","navButtonVariant","noHighlightToday","noKeyNav","roleDescription","selectedVariant","showDecadeNav","startWeekday","todayVariant","valueAsDate","weekdayHeaderFormat","BCalendar","selected","selectedYMD","activeYMD","getToday","gridHasFocus","isLive","valueId","widgetId","navId","gridId","gridCaptionId","gridHelpId","activeId","selectedDate","activeDate","computedMin","computedMax","computedWeekStarts","math","computedLocale","computedDateDisabledFn","computedDateInfoFn","calendarLocale","calendarYear","calendarMonth","calendarFirstDay","calendarDaysInMonth","computedVariant","computedTodayVariant","computedNavButtonVariant","isRTL","selectedFormatted","formatDateString","activeFormatted","dateDisabled","rtl","dateOutOfRange","rangeFn","ymd","hour","minute","second","formatYearMonth","formatWeekdayName","formatWeekdayNameShort","formatDay","nf","NumberFormat","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","notation","prevDecadeDisabled","prevYearDisabled","prevMonthDisabled","thisMonthDisabled","nextMonthDisabled","nextYearDisabled","nextDecadeDisabled","matrix","firstDay","daysInMonth","startIndex","getDay","weekOffset","currentDay","week","dayYMD","dayDisabled","dateInfo","isThisMonth","isDisabled","info","calendarHeadings","_this2","old","newYMD","oldYMD","constrainDate","setLive","_this3","grid","_this4","emitSelected","_this5","setGridFocusFlag","onKeydownWrapper","altKey","ctrlKey","checkDate","constrainedToday","onKeydownGrid","onClickDay","clickedDate","gotoPrevDecade","gotoPrevYear","gotoPrevMonth","gotoCurrentMonth","gotoNextMonth","gotoNextYear","gotoNextDecade","onHeaderClick","_this6","hideDecadeNav","todayYMD","highlightToday","$header","for","labelSelectedDate","navScope","navProps","shiftV","navPrevProps","flipH","navNextProps","$prevDecadeIcon","$prevYearIcon","$prevMonthIcon","$thisMonthIcon","$nextMonthIcon","$nextYearIcon","$nextDecadeIcon","makeNavBtn","content","btnDisabled","shortcut","$nav","$gridCaption","$gridWeekDays","$gridBody","$cells","dIndex","_class","isSelected","isToday","idCell","$btn","active","pointerEvents","$gridHelp","$grid","$slot","$widget","lang","bvAttrs","PROP","MOUSEENTER","MOUSELEAVE","createListener","listener","_ref$value","hasListener","handlerChanged","VBHover","componentUpdated","dropdown","buttonOnly","formattedValue","menuClass","BVFormBtnLabelControl","isHovered","hasFocus","idButton","idLabel","idMenu","idWrapper","computedDir","setFocus","handleHover","hovered","state","visible","btnScope","opened","$button","hasNormalizedSlot","scale","$hidden","form","$menu","show","right","onKeydown","$label","stateClass","sizeFormClass","directionClass","boundaryClass","calendarProps","formBtnLabelControlProps","calendarWidth","closeButton","closeButtonVariant","dark","labelCloseButton","labelResetButton","labelTodayButton","noCloseOnSelect","resetButton","resetButtonVariant","resetValue","todayButton","todayButtonVariant","localYMD","isVisible","localLocale","calendarYM","computedLang","computedResetValue","control","updatePopper","_unused","setAndClose","hide","onSelected","onContext","onTodayButton","onResetButton","onCloseButton","onShow","onShown","onHidden","defaultButtonFn","$props","$footer","_label","_label2","$calendar","shown","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","isChecked","checked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","isGroup","defaultValue","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","getDataTransferItemEntry","getAsEntry","webkitGetAsEntry","getAllFileEntries","dataTransferItemList","traverseDirectories","entry","isDirectory","getAllFileEntriesInDirectory","createReader","isFile","$path","directoryReader","path","entryPromises","readDirectoryEntries","readEntries","entries","accept","browseText","capture","directory","dropPlaceholder","fileNameFormatter","noDropPlaceholder","noTraverse","dragging","dropAllowed","computedAccept","extOrType","startMatch","endMatch","rx","computedCapture","computedAttrs","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","allowed","filesTraversed","$_form","$form","$el","isFileValid","isFilesArrayValid","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","items","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","plain","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","onDrop","custom","zIndex","change","focusin","focusout","dragenter","dragover","dragleave","drop","_methods","ariaLabel","ariaLabelledby","button","formRadioCheckMixin","set","isBtnMode","isPlain","isCustom","isSwitch","switches","switch","isInline","computedName","computedForm","computedSize","computedState","computedButtonVariant","buttonClasses","_ref2","$content","handleFocus","binding","setProps","addEventListener","rippler","bg","color","targetBorder","parseInt","getComputedStyle","rect","offsetWidth","offsetHeight","dx","clientX","dy","clientY","maxX","Math","maxY","radius","sqrt","border","ripple","createElement","rippleContainer","marginTop","marginLeft","borderRadius","position","backgroundColor","overflow","storedTargetPosition","clearRipple","removeEventListener","clearPosition","childNodes","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],"mappings":"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","file":"js/chunk-aaab4f7c.df6d581f.js","sourcesContent":["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 _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_FIRST } from '../constants/slots';\nimport { htmlOrText } from '../utils/html';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { omit, pick, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { BFormCheckbox } from '../components/form-checkbox/form-checkbox';\nimport { BFormRadio } from '../components/form-radio/form-radio';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formOptionsMixin, props as formOptionsProps } from './form-options';\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// Attributes to pass down to checks/radios instead of applying them to the group\n\nvar PASS_DOWN_ATTRS = ['aria-describedby', 'aria-labelledby'];\n\nvar _makeModelMixin = makeModelMixin('checked'),\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(_objectSpread({}, idProps), modelProps), formControlProps), formOptionsProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n // Render as button style\n buttons: makeProp(PROP_TYPE_BOOLEAN, false),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formRadioCheckGroups'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckGroupMixin = Vue.extend({\n mixins: [idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formOptionsMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this[MODEL_PROP_NAME]\n };\n },\n computed: {\n inline: function inline() {\n return !this.stacked;\n },\n groupName: function groupName() {\n // Checks/Radios tied to the same model must have the same name,\n // especially for ARIA accessibility\n return this.name || this.safeId();\n },\n groupClasses: function groupClasses() {\n var inline = this.inline,\n size = this.size,\n validated = this.validated;\n var classes = {\n 'was-validated': validated\n };\n\n if (this.buttons) {\n classes = [classes, 'btn-group-toggle', _defineProperty({\n 'btn-group': inline,\n 'btn-group-vertical': !inline\n }, \"btn-group-\".concat(size), size)];\n }\n\n return classes;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!looseEqual(newValue, this.localChecked)) {\n this.localChecked = newValue;\n }\n }), _defineProperty(_watch, \"localChecked\", function localChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n render: function render(h) {\n var _this = this;\n\n var isRadioGroup = this.isRadioGroup;\n var attrs = pick(this.$attrs, PASS_DOWN_ATTRS);\n var optionComponent = isRadioGroup ? BFormRadio : BFormCheckbox;\n var $inputs = this.formOptions.map(function (option, index) {\n var key = \"BV_option_\".concat(index);\n return h(optionComponent, {\n props: {\n // Individual radios or checks can be disabled in a group\n disabled: option.disabled || false,\n id: _this.safeId(key),\n value: option.value // We don't need to include these, since the input's will know they are inside here\n // form: this.form || null,\n // name: this.groupName,\n // required: Boolean(this.name && this.required)\n\n },\n attrs: attrs,\n key: key\n }, [h('span', {\n domProps: htmlOrText(option.html, option.text)\n })]);\n });\n return h('div', {\n class: [this.groupClasses, 'bv-no-focus-ring'],\n attrs: _objectSpread(_objectSpread({}, omit(this.$attrs, PASS_DOWN_ATTRS)), {}, {\n 'aria-invalid': this.computedAriaInvalid,\n 'aria-required': this.required ? 'true' : null,\n id: this.safeId(),\n role: isRadioGroup ? 'radiogroup' : 'group',\n // Add `tabindex=\"-1\"` to allow group to be focused if needed by screen readers\n tabindex: '-1'\n })\n }, [this.normalizeSlot(SLOT_NAME_FIRST), $inputs, this.normalizeSlot()]);\n }\n});","var _objectSpread2;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_CHECKBOX_GROUP } from '../../constants/components';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, formRadioCheckGroupMixin, props as formRadioCheckGroupProps } from '../../mixins/form-radio-check-group'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckGroupProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])), _defineProperty(_objectSpread2, \"switches\", makeProp(PROP_TYPE_BOOLEAN, false)), _objectSpread2))), NAME_FORM_CHECKBOX_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckboxGroup = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX_GROUP,\n // Includes render function\n mixins: [formRadioCheckGroupMixin],\n provide: function provide() {\n return {\n bvCheckGroup: this\n };\n },\n props: props,\n computed: {\n isRadioGroup: function isRadioGroup() {\n return false;\n }\n }\n});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueSelect=e():t.VueSelect=e()}(\"undefined\"!=typeof self?self:this,(function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=8)}([function(t,e,n){var o=n(4),i=n(5),s=n(6);t.exports=function(t){return o(t)||i(t)||s()}},function(t,e){function n(e){return\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?t.exports=n=function(t){return typeof t}:t.exports=n=function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},n(e)}t.exports=n},function(t,e,n){},function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e){t.exports=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);en.bottom)return this.$refs.dropdownMenu.scrollTop=e.offsetTop-(n.height-r)}},getDropdownViewport:function(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},u={data:function(){return{typeAheadPointer:-1}},watch:{filteredOptions:function(){for(var t=0;t=0;t--)if(this.selectable(this.filteredOptions[t])){this.typeAheadPointer=t;break}},typeAheadDown:function(){for(var t=this.typeAheadPointer+1;t0&&void 0!==arguments[0]?arguments[0]:null;return this.mutableLoading=null==t?!this.mutableLoading:t}}};function h(t,e,n,o,i,s,r,a){var l,c=\"function\"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),o&&(c.functional=!0),s&&(c._scopeId=\"data-v-\"+s),r?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=l):i&&(l=a?function(){i.call(this,this.$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,l):[l]}return{exports:t,options:c}}var d={Deselect:h({},(function(){var t=this.$createElement,e=this._self._c||t;return e(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"10\",height:\"10\"}},[e(\"path\",{attrs:{d:\"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\"}})])}),[],!1,null,null,null).exports,OpenIndicator:h({},(function(){var t=this.$createElement,e=this._self._c||t;return e(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"14\",height:\"10\"}},[e(\"path\",{attrs:{d:\"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\"}})])}),[],!1,null,null,null).exports},f={inserted:function(t,e,n){var o=n.context;if(o.appendToBody){var i=o.$refs.toggle.getBoundingClientRect(),s=i.height,r=i.top,a=i.left,l=i.width,c=window.scrollX||window.pageXOffset,u=window.scrollY||window.pageYOffset;t.unbindPosition=o.calculatePosition(t,o,{width:l+\"px\",left:c+a+\"px\",top:u+r+s+\"px\"}),document.body.appendChild(t)}},unbind:function(t,e,n){n.context.appendToBody&&(t.unbindPosition&&\"function\"==typeof t.unbindPosition&&t.unbindPosition(),t.parentNode&&t.parentNode.removeChild(t))}};var y=function(t){var e={};return Object.keys(t).sort().forEach((function(n){e[n]=t[n]})),JSON.stringify(e)},b=0;var g=function(){return++b};function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function m(t){for(var e=1;e-1}},filter:{type:Function,default:function(t,e){var n=this;return t.filter((function(t){var o=n.getOptionLabel(t);return\"number\"==typeof o&&(o=o.toString()),n.filterBy(t,o,e)}))}},createOption:{type:Function,default:function(t){return\"object\"===r()(this.optionList[0])?l()({},this.label,t):t}},resetOnOptionsChange:{default:!1,validator:function(t){return[\"function\",\"boolean\"].includes(r()(t))}},clearSearchOnBlur:{type:Function,default:function(t){var e=t.clearSearchOnSelect,n=t.multiple;return e&&!n}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:\"auto\"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:function(){return[13]}},searchInputQuerySelector:{type:String,default:\"[type=search]\"},mapKeydown:{type:Function,default:function(t,e){return t}},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default:function(t,e,n){var o=n.width,i=n.top,s=n.left;t.style.top=i,t.style.left=s,t.style.width=o}}},data:function(){return{uid:g(),search:\"\",open:!1,isComposing:!1,pushedTags:[],_value:[]}},watch:{options:function(t,e){var n=this;!this.taggable&&(\"function\"==typeof n.resetOnOptionsChange?n.resetOnOptionsChange(t,e,n.selectedValue):n.resetOnOptionsChange)&&this.clearSelection(),this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value)},value:function(t){this.isTrackingValues&&this.setInternalValueFromOptions(t)},multiple:function(){this.clearSelection()},open:function(t){this.$emit(t?\"open\":\"close\")}},created:function(){this.mutableLoading=this.loading,void 0!==this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value),this.$on(\"option:created\",this.pushTag)},methods:{setInternalValueFromOptions:function(t){var e=this;Array.isArray(t)?this.$data._value=t.map((function(t){return e.findOptionFromReducedValue(t)})):this.$data._value=this.findOptionFromReducedValue(t)},select:function(t){this.$emit(\"option:selecting\",t),this.isOptionSelected(t)||(this.taggable&&!this.optionExists(t)&&this.$emit(\"option:created\",t),this.multiple&&(t=this.selectedValue.concat(t)),this.updateValue(t),this.$emit(\"option:selected\",t)),this.onAfterSelect(t)},deselect:function(t){var e=this;this.$emit(\"option:deselecting\",t),this.updateValue(this.selectedValue.filter((function(n){return!e.optionComparator(n,t)}))),this.$emit(\"option:deselected\",t)},clearSelection:function(){this.updateValue(this.multiple?[]:null)},onAfterSelect:function(t){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search=\"\")},updateValue:function(t){var e=this;void 0===this.value&&(this.$data._value=t),null!==t&&(t=Array.isArray(t)?t.map((function(t){return e.reduce(t)})):this.reduce(t)),this.$emit(\"input\",t)},toggleDropdown:function(t){var e=t.target!==this.searchEl;e&&t.preventDefault();var n=[].concat(i()(this.$refs.deselectButtons||[]),i()([this.$refs.clearButton]||!1));void 0===this.searchEl||n.filter(Boolean).some((function(e){return e.contains(t.target)||e===t.target}))?t.preventDefault():this.open&&e?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected:function(t){var e=this;return this.selectedValue.some((function(n){return e.optionComparator(n,t)}))},optionComparator:function(t,e){return this.getOptionKey(t)===this.getOptionKey(e)},findOptionFromReducedValue:function(t){var e=this,n=[].concat(i()(this.options),i()(this.pushedTags)).filter((function(n){return JSON.stringify(e.reduce(n))===JSON.stringify(t)}));return 1===n.length?n[0]:n.find((function(t){return e.optionComparator(t,e.$data._value)}))||t},closeSearchOptions:function(){this.open=!1,this.$emit(\"search:blur\")},maybeDeleteValue:function(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){var t=null;this.multiple&&(t=i()(this.selectedValue.slice(0,this.selectedValue.length-1))),this.updateValue(t)}},optionExists:function(t){var e=this;return this.optionList.some((function(n){return e.optionComparator(n,t)}))},normalizeOptionForSlot:function(t){return\"object\"===r()(t)?t:l()({},this.label,t)},pushTag:function(t){this.pushedTags.push(t)},onEscape:function(){this.search.length?this.search=\"\":this.searchEl.blur()},onSearchBlur:function(){if(!this.mousedown||this.searching){var t=this.clearSearchOnSelect,e=this.multiple;return this.clearSearchOnBlur({clearSearchOnSelect:t,multiple:e})&&(this.search=\"\"),void this.closeSearchOptions()}this.mousedown=!1,0!==this.search.length||0!==this.options.length||this.closeSearchOptions()},onSearchFocus:function(){this.open=!0,this.$emit(\"search:focus\")},onMousedown:function(){this.mousedown=!0},onMouseUp:function(){this.mousedown=!1},onSearchKeyDown:function(t){var e=this,n=function(t){return t.preventDefault(),!e.isComposing&&e.typeAheadSelect()},o={8:function(t){return e.maybeDeleteValue()},9:function(t){return e.onTab()},27:function(t){return e.onEscape()},38:function(t){return t.preventDefault(),e.typeAheadUp()},40:function(t){return t.preventDefault(),e.typeAheadDown()}};this.selectOnKeyCodes.forEach((function(t){return o[t]=n}));var i=this.mapKeydown(o,this);if(\"function\"==typeof i[t.keyCode])return i[t.keyCode](t)}},computed:{isTrackingValues:function(){return void 0===this.value||this.$options.propsData.hasOwnProperty(\"reduce\")},selectedValue:function(){var t=this.value;return this.isTrackingValues&&(t=this.$data._value),t?[].concat(t):[]},optionList:function(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl:function(){return this.$scopedSlots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope:function(){var t=this,e={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:m({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,\"aria-autocomplete\":\"list\",\"aria-labelledby\":\"vs\".concat(this.uid,\"__combobox\"),\"aria-controls\":\"vs\".concat(this.uid,\"__listbox\"),ref:\"search\",type:\"search\",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{\"aria-activedescendant\":\"vs\".concat(this.uid,\"__option-\").concat(this.typeAheadPointer)}:{}),events:{compositionstart:function(){return t.isComposing=!0},compositionend:function(){return t.isComposing=!1},keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:function(e){return t.search=e.target.value}}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.loading,searching:this.searching},openIndicator:{attributes:{ref:\"openIndicator\",role:\"presentation\",class:\"vs__open-indicator\"}},listHeader:e,listFooter:e,header:m({},e,{deselect:this.deselect}),footer:m({},e,{deselect:this.deselect})}},childComponents:function(){return m({},d,{},this.components)},stateClasses:function(){return{\"vs--open\":this.dropdownOpen,\"vs--single\":!this.multiple,\"vs--searching\":this.searching&&!this.noDrop,\"vs--searchable\":this.searchable&&!this.noDrop,\"vs--unsearchable\":!this.searchable,\"vs--loading\":this.mutableLoading,\"vs--disabled\":this.disabled}},searching:function(){return!!this.search},dropdownOpen:function(){return!this.noDrop&&(this.open&&!this.mutableLoading)},searchPlaceholder:function(){if(this.isValueEmpty&&this.placeholder)return this.placeholder},filteredOptions:function(){var t=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return t;var e=this.search.length?this.filter(t,this.search,this):t;if(this.taggable&&this.search.length){var n=this.createOption(this.search);this.optionExists(n)||e.unshift(n)}return e},isValueEmpty:function(){return 0===this.selectedValue.length},showClearButton:function(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}}},O=(n(7),h(_,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"v-select\",class:t.stateClasses,attrs:{dir:t.dir}},[t._t(\"header\",null,null,t.scope.header),t._v(\" \"),n(\"div\",{ref:\"toggle\",staticClass:\"vs__dropdown-toggle\",attrs:{id:\"vs\"+t.uid+\"__combobox\",role:\"combobox\",\"aria-expanded\":t.dropdownOpen.toString(),\"aria-owns\":\"vs\"+t.uid+\"__listbox\",\"aria-label\":\"Search for option\"},on:{mousedown:function(e){return t.toggleDropdown(e)}}},[n(\"div\",{ref:\"selectedOptions\",staticClass:\"vs__selected-options\"},[t._l(t.selectedValue,(function(e){return t._t(\"selected-option-container\",[n(\"span\",{key:t.getOptionKey(e),staticClass:\"vs__selected\"},[t._t(\"selected-option\",[t._v(\"\\n \"+t._s(t.getOptionLabel(e))+\"\\n \")],null,t.normalizeOptionForSlot(e)),t._v(\" \"),t.multiple?n(\"button\",{ref:\"deselectButtons\",refInFor:!0,staticClass:\"vs__deselect\",attrs:{disabled:t.disabled,type:\"button\",title:\"Deselect \"+t.getOptionLabel(e),\"aria-label\":\"Deselect \"+t.getOptionLabel(e)},on:{click:function(n){return t.deselect(e)}}},[n(t.childComponents.Deselect,{tag:\"component\"})],1):t._e()],2)],{option:t.normalizeOptionForSlot(e),deselect:t.deselect,multiple:t.multiple,disabled:t.disabled})})),t._v(\" \"),t._t(\"search\",[n(\"input\",t._g(t._b({staticClass:\"vs__search\"},\"input\",t.scope.search.attributes,!1),t.scope.search.events))],null,t.scope.search)],2),t._v(\" \"),n(\"div\",{ref:\"actions\",staticClass:\"vs__actions\"},[n(\"button\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showClearButton,expression:\"showClearButton\"}],ref:\"clearButton\",staticClass:\"vs__clear\",attrs:{disabled:t.disabled,type:\"button\",title:\"Clear Selected\",\"aria-label\":\"Clear Selected\"},on:{click:t.clearSelection}},[n(t.childComponents.Deselect,{tag:\"component\"})],1),t._v(\" \"),t._t(\"open-indicator\",[t.noDrop?t._e():n(t.childComponents.OpenIndicator,t._b({tag:\"component\"},\"component\",t.scope.openIndicator.attributes,!1))],null,t.scope.openIndicator),t._v(\" \"),t._t(\"spinner\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.mutableLoading,expression:\"mutableLoading\"}],staticClass:\"vs__spinner\"},[t._v(\"Loading...\")])],null,t.scope.spinner)],2)]),t._v(\" \"),n(\"transition\",{attrs:{name:t.transition}},[t.dropdownOpen?n(\"ul\",{directives:[{name:\"append-to-body\",rawName:\"v-append-to-body\"}],key:\"vs\"+t.uid+\"__listbox\",ref:\"dropdownMenu\",staticClass:\"vs__dropdown-menu\",attrs:{id:\"vs\"+t.uid+\"__listbox\",role:\"listbox\",tabindex:\"-1\"},on:{mousedown:function(e){return e.preventDefault(),t.onMousedown(e)},mouseup:t.onMouseUp}},[t._t(\"list-header\",null,null,t.scope.listHeader),t._v(\" \"),t._l(t.filteredOptions,(function(e,o){return n(\"li\",{key:t.getOptionKey(e),staticClass:\"vs__dropdown-option\",class:{\"vs__dropdown-option--selected\":t.isOptionSelected(e),\"vs__dropdown-option--highlight\":o===t.typeAheadPointer,\"vs__dropdown-option--disabled\":!t.selectable(e)},attrs:{role:\"option\",id:\"vs\"+t.uid+\"__option-\"+o,\"aria-selected\":o===t.typeAheadPointer||null},on:{mouseover:function(n){t.selectable(e)&&(t.typeAheadPointer=o)},mousedown:function(n){n.preventDefault(),n.stopPropagation(),t.selectable(e)&&t.select(e)}}},[t._t(\"option\",[t._v(\"\\n \"+t._s(t.getOptionLabel(e))+\"\\n \")],null,t.normalizeOptionForSlot(e))],2)})),t._v(\" \"),0===t.filteredOptions.length?n(\"li\",{staticClass:\"vs__no-options\"},[t._t(\"no-options\",[t._v(\"Sorry, no matching options.\")],null,t.scope.noOptions)],2):t._e(),t._v(\" \"),t._t(\"list-footer\",null,null,t.scope.listFooter)],2):n(\"ul\",{staticStyle:{display:\"none\",visibility:\"hidden\"},attrs:{id:\"vs\"+t.uid+\"__listbox\",role:\"listbox\"}})]),t._v(\" \"),t._t(\"footer\",null,null,t.scope.footer)],2)}),[],!1,null,null,null).exports),w={ajax:p,pointer:u,pointerScroll:c};n.d(e,\"VueSelect\",(function(){return O})),n.d(e,\"mixins\",(function(){return w}));e.default=O}])}));\n//# sourceMappingURL=vue-select.js.map","/**\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('KeepAlive',[_c('b-card-code',[_c('validation-observer',{ref:\"simpleRules\"},[_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();}}},[_c('b-row',{attrs:{\"cols\":\"1\",\"cols-sm\":\"1\",\"cols-xsm\":\"1\",\"cols-md\":\"1\",\"cols-lg\":\"2\"}},[_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"المبلغ\",\"label-for\":\"v-price\"}},[_c('validation-provider',{attrs:{\"name\":\"المبلغ\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-input',{attrs:{\"id\":\"v-price\",\"type\":\"number\",\"state\":errors.length > 0 ? false : null,\"placeholder\":\" المبلغ بالجنيه\"},model:{value:(_vm.coupon.price),callback:function ($$v) {_vm.$set(_vm.coupon, \"price\", _vm._n($$v))},expression:\"coupon.price\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1),_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"الشركة\",\"label-for\":\"v-company\"}},[_c('validation-provider',{attrs:{\"name\":\"الشركة\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('v-select',{class:{ 'is-invalid': errors.length > 0 },attrs:{\"options\":_vm.companies,\"getOptionLabel\":function (comp) { return comp.userDisplayName; },\"reduce\":function (comp) { return comp.userDisplayName; },\"state\":errors.length === 0 ? null : false,\"dir\":\"rtl\",\"placeholder\":\"اختر الشركة\"},model:{value:(_vm.coupon.companyName),callback:function ($$v) {_vm.$set(_vm.coupon, \"companyName\", $$v)},expression:\"coupon.companyName\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1),_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"رقم القسيمة\",\"label-for\":\"v-coupon\"}},[_c('validation-provider',{attrs:{\"name\":\"رقم القسيمة\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-input',{attrs:{\"id\":\"v-coupon\",\"placeholder\":\"رقم القسيمة\"},model:{value:(_vm.coupon.couponNumber),callback:function ($$v) {_vm.$set(_vm.coupon, \"couponNumber\", $$v)},expression:\"coupon.couponNumber\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1),_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"رقم البوليصه\",\"label-for\":\"v-policy\"}},[_c('b-form-input',{attrs:{\"id\":\"v-policy\",\"placeholder\":\"رقم البوليصه\"},model:{value:(_vm.coupon.policyNumber),callback:function ($$v) {_vm.$set(_vm.coupon, \"policyNumber\", $$v)},expression:\"coupon.policyNumber\"}})],1)],1),_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"رقم الفاتورة\",\"label-for\":\"v-bill\"}},[_c('b-form-input',{attrs:{\"id\":\"v-coupon\",\"placeholder\":\"رقم الفاتورة\"},model:{value:(_vm.coupon.billNumber),callback:function ($$v) {_vm.$set(_vm.coupon, \"billNumber\", $$v)},expression:\"coupon.billNumber\"}})],1)],1),_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"رقم الشهاده\",\"label-for\":\"v-certificate\"}},[_c('b-form-input',{attrs:{\"id\":\"v-certificate\",\"placeholder\":\"رقم القسيمة\"},model:{value:(_vm.coupon.certificateNumber),callback:function ($$v) {_vm.$set(_vm.coupon, \"certificateNumber\", $$v)},expression:\"coupon.certificateNumber\"}})],1)],1),_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"التاريخ\",\"label-for\":\"v-date\"}},[_c('validation-provider',{attrs:{\"name\":\"التاريخ\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-datepicker',{attrs:{\"date-format-options\":{ year: 'numeric', month: 'numeric', day: 'numeric' },\"locale\":\"ar\",\"placeholder\":\"تاريخ القسيمة\",\"state\":errors.length > 0 ? false : null,\"today-button\":\"\",\"reset-button\":\"\",\"close-button\":\"\"},model:{value:(_vm.coupon.date),callback:function ($$v) {_vm.$set(_vm.coupon, \"date\", $$v)},expression:\"coupon.date\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1),_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"التفاصيل\",\"label-for\":\"v-details\"}},[_c('validation-provider',{attrs:{\"name\":\"التفاصيل\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('v-select',{attrs:{\"options\":_vm.detailsOptions,\"reduce\":function (label) { return label; },\"dir\":\"rtl\",\"placeholder\":\"نوع البيان\",\"state\":errors.length === 0 ? null : false},model:{value:(_vm.coupon.details),callback:function ($$v) {_vm.$set(_vm.coupon, \"details\", $$v)},expression:\"coupon.details\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-form-group',[_c('b-form-file',{attrs:{\"accept\":\"image/*\"},model:{value:(_vm.selectedFile),callback:function ($$v) {_vm.selectedFile=$$v},expression:\"selectedFile\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[(_vm.editCoupon)?_c('b-button',{staticClass:\"mr-1\",attrs:{\"type\":\"submit\",\"variant\":\"primary\",\"disabled\":_vm.isValidating},on:{\"click\":_vm.validationForm}},[_vm._v(\" تعديل \")]):_c('b-button',{staticClass:\"mr-1\",attrs:{\"disabled\":_vm.isValidating,\"type\":\"submit\",\"variant\":\"primary\"},on:{\"click\":_vm.validationForm}},[_vm._v(\" إضافة \")]),_c('b-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"variant\":\"primary\"},on:{\"click\":this.back}},[_vm._v(\" رجوع \")])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./add-coupon.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!./add-coupon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./add-coupon.vue?vue&type=template&id=d82770bc&scoped=true&\"\nimport script from \"./add-coupon.vue?vue&type=script&lang=js&\"\nexport * from \"./add-coupon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./add-coupon.vue?vue&type=style&index=0&id=d82770bc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d82770bc\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add-coupon.vue?vue&type=style&index=0&id=d82770bc&scoped=true&lang=css&\"","/**\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","// Localization utilities\nimport { RX_STRIP_LOCALE_MODS } from '../constants/regex';\nimport { arrayIncludes } from './array';\nimport { toString } from './string'; // Languages that are RTL\n\nvar RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(function (locale) {\n return locale.toLowerCase();\n}); // Returns true if the locale is RTL\n\nexport var isLocaleRTL = function isLocaleRTL(locale) {\n // Determines if the locale is RTL (only single locale supported)\n var parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');\n var locale1 = parts.slice(0, 2).join('-');\n var locale2 = parts[0];\n return arrayIncludes(RTL_LANGS, locale1) || arrayIncludes(RTL_LANGS, locale2);\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 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 min_value as rule_min_value,\n numeric as rule_numeric,\n double as rule_double,\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 { validatorPositive, validatorUrlValidator, validatorPassword, validatorCreditCard } 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 min_value = extend('min_value', rule_min_value)\n\nexport const numeric = extend('numeric', rule_numeric)\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\nexport const double = extend('double', rule_double)\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: '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\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","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_RADIO } from '../../constants/components';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formRadioCheckProps), formSizeProps), formStateProps)), NAME_FORM_RADIO); // --- Main component ---\n// @vue/component\n\nexport var BFormRadio = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO,\n mixins: [idMixin, formRadioCheckMixin, // Includes shared render function\n formControlMixin, formSizeMixin, formStateMixin],\n inject: {\n bvGroup: {\n from: 'bvRadioGroup',\n default: false\n }\n },\n props: props,\n watch: {\n computedLocalChecked: function computedLocalChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\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 { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","export var CALENDAR_GREGORY = 'gregory';\nexport var CALENDAR_LONG = 'long';\nexport var CALENDAR_NARROW = 'narrow';\nexport var CALENDAR_SHORT = 'short';\nexport var DATE_FORMAT_2_DIGIT = '2-digit';\nexport var DATE_FORMAT_NUMERIC = 'numeric';","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure 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 _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 _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n// Date utility functions\nimport { CALENDAR_GREGORY } from '../constants/date';\nimport { RX_DATE, RX_DATE_SPLIT } from '../constants/regex';\nimport { concat } from './array';\nimport { identity } from './identity';\nimport { isDate, isString } from './inspect';\nimport { toInteger } from './number'; // --- Date utility methods ---\n// Create or clone a date (`new Date(...)` shortcut)\n\nexport var createDate = function createDate() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(Date, args);\n}; // Parse a date sting, or Date object, into a Date object (with no time information)\n\nexport var parseYMD = function parseYMD(date) {\n if (isString(date) && RX_DATE.test(date.trim())) {\n var _date$split$map = date.split(RX_DATE_SPLIT).map(function (v) {\n return toInteger(v, 1);\n }),\n _date$split$map2 = _slicedToArray(_date$split$map, 3),\n year = _date$split$map2[0],\n month = _date$split$map2[1],\n day = _date$split$map2[2];\n\n return createDate(year, month - 1, day);\n } else if (isDate(date)) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n return null;\n}; // Format a date object as `YYYY-MM-DD` format\n\nexport var formatYMD = function formatYMD(date) {\n date = parseYMD(date);\n\n if (!date) {\n return null;\n }\n\n var year = date.getFullYear();\n var month = \"0\".concat(date.getMonth() + 1).slice(-2);\n var day = \"0\".concat(date.getDate()).slice(-2);\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n}; // Given a locale (or locales), resolve the browser available locale\n\nexport var resolveLocale = function resolveLocale(locales)\n/* istanbul ignore next */\n{\n var calendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_GREGORY;\n locales = concat(locales).filter(identity);\n var fmt = new Intl.DateTimeFormat(locales, {\n calendar: calendar\n });\n return fmt.resolvedOptions().locale;\n}; // Create a `Intl.DateTimeFormat` formatter function\n\nexport var createDateFormatter = function createDateFormatter(locale, options)\n/* istanbul ignore next */\n{\n var dtf = new Intl.DateTimeFormat(locale, options);\n return dtf.format;\n}; // Determine if two dates are the same date (ignoring time portion)\n\nexport var datesEqual = function datesEqual(date1, date2) {\n // Returns true of the date portion of two date objects are equal\n // We don't compare the time portion\n return formatYMD(date1) === formatYMD(date2);\n}; // --- Date \"math\" utility methods (for BCalendar component mainly) ---\n\nexport var firstDateOfMonth = function firstDateOfMonth(date) {\n date = createDate(date);\n date.setDate(1);\n return date;\n};\nexport var lastDateOfMonth = function lastDateOfMonth(date) {\n date = createDate(date);\n date.setMonth(date.getMonth() + 1);\n date.setDate(0);\n return date;\n};\nexport var addYears = function addYears(date, numberOfYears) {\n date = createDate(date);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear() + numberOfYears); // Handle Feb 29th for leap years\n\n if (date.getMonth() !== month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAgo = function oneMonthAgo(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month - 1); // Handle when days in month are different\n\n if (date.getMonth() === month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAhead = function oneMonthAhead(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month + 1); // Handle when days in month are different\n\n if (date.getMonth() === (month + 2) % 12) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneYearAgo = function oneYearAgo(date) {\n return addYears(date, -1);\n};\nexport var oneYearAhead = function oneYearAhead(date) {\n return addYears(date, 1);\n};\nexport var oneDecadeAgo = function oneDecadeAgo(date) {\n return addYears(date, -10);\n};\nexport var oneDecadeAhead = function oneDecadeAhead(date) {\n return addYears(date, 10);\n}; // Helper function to constrain a date between two values\n// Always returns a `Date` object or `null` if no date passed\n\nexport var constrainDate = function constrainDate(date) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // Ensure values are `Date` objects (or `null`)\n date = parseYMD(date);\n min = parseYMD(min) || date;\n max = parseYMD(max) || date; // Return a new `Date` object (or `null`)\n\n return date ? date < min ? min : date > max ? max : date : null;\n};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_CALENDAR } from '../../constants/components';\nimport { CALENDAR_GREGORY, CALENDAR_LONG, CALENDAR_NARROW, CALENDAR_SHORT, DATE_FORMAT_2_DIGIT, DATE_FORMAT_NUMERIC } from '../../constants/date';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_SELECTED } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_LEFT, CODE_PAGEDOWN, CODE_PAGEUP, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_NAV_NEXT_DECADE, SLOT_NAME_NAV_NEXT_MONTH, SLOT_NAME_NAV_NEXT_YEAR, SLOT_NAME_NAV_PEV_DECADE, SLOT_NAME_NAV_PEV_MONTH, SLOT_NAME_NAV_PEV_YEAR, SLOT_NAME_NAV_THIS_MONTH } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { createDate, createDateFormatter, constrainDate as _constrainDate, datesEqual, firstDateOfMonth, formatYMD, lastDateOfMonth, oneMonthAgo, oneMonthAhead, oneYearAgo, oneYearAhead, oneDecadeAgo, oneDecadeAhead, parseYMD, resolveLocale } from '../../utils/date';\nimport { attemptBlur, attemptFocus, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isPlainObject, isString } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconChevronLeft, BIconChevronDoubleLeft, BIconChevronBarLeft, BIconCircleFill } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n // Makes calendar the full width of its parent container\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n dateDisabledFn: makeProp(PROP_TYPE_FUNCTION),\n // `Intl.DateTimeFormat` object\n dateFormatOptions: makeProp(PROP_TYPE_OBJECT, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n day: DATE_FORMAT_NUMERIC,\n weekday: CALENDAR_LONG\n }),\n // Function to set a class of (classes) on the date cell\n // if passed a string or an array\n // TODO:\n // If the function returns an object, look for class prop for classes,\n // and other props for handling events/details/descriptions\n dateInfoFn: makeProp(PROP_TYPE_FUNCTION),\n // 'ltr', 'rtl', or `null` (for auto detect)\n direction: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true`, renders a comment node, but keeps the component instance active\n // Mainly for , so that we can get the component's value and locale\n // But we might just use separate date formatters, using the resolved locale\n // (adjusted for the gregorian calendar)\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true` makes the selected date header `sr-only`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // This specifies the calendar year/month/day that will be shown when\n // first opening the datepicker if no v-model value is provided\n // Default is the current date (or `min`/`max`)\n initialDate: makeProp(PROP_TYPE_DATE_STRING),\n // Labels for buttons and keyboard shortcuts\n labelCalendar: makeProp(PROP_TYPE_STRING, 'Calendar'),\n labelCurrentMonth: makeProp(PROP_TYPE_STRING, 'Current month'),\n labelHelp: makeProp(PROP_TYPE_STRING, 'Use cursor keys to navigate calendar dates'),\n labelNav: makeProp(PROP_TYPE_STRING, 'Calendar navigation'),\n labelNextDecade: makeProp(PROP_TYPE_STRING, 'Next decade'),\n labelNextMonth: makeProp(PROP_TYPE_STRING, 'Next month'),\n labelNextYear: makeProp(PROP_TYPE_STRING, 'Next year'),\n labelNoDateSelected: makeProp(PROP_TYPE_STRING, 'No date selected'),\n labelPrevDecade: makeProp(PROP_TYPE_STRING, 'Previous decade'),\n labelPrevMonth: makeProp(PROP_TYPE_STRING, 'Previous month'),\n labelPrevYear: makeProp(PROP_TYPE_STRING, 'Previous year'),\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected date'),\n labelToday: makeProp(PROP_TYPE_STRING, 'Today'),\n // Locale(s) to use\n // Default is to use page/browser default setting\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n max: makeProp(PROP_TYPE_DATE_STRING),\n min: makeProp(PROP_TYPE_DATE_STRING),\n // Variant color to use for the navigation buttons\n navButtonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // Disable highlighting today's date\n noHighlightToday: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n roleDescription: makeProp(PROP_TYPE_STRING),\n // Variant color to use for the selected date\n selectedVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // When `true` enables the decade navigation buttons\n showDecadeNav: makeProp(PROP_TYPE_BOOLEAN, false),\n // Day of week to start calendar on\n // `0` (Sunday), `1` (Monday), ... `6` (Saturday)\n startWeekday: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n // Variant color to use for today's date (defaults to `selectedVariant`)\n todayVariant: makeProp(PROP_TYPE_STRING),\n // Always return the `v-model` value as a date object\n valueAsDate: makeProp(PROP_TYPE_BOOLEAN, false),\n // Format of the weekday names at the top of the calendar\n // `short` is typically a 3 letter abbreviation,\n // `narrow` is typically a single letter\n // `long` is the full week day name\n // Although some locales may override this (i.e `ar`, etc.)\n weekdayHeaderFormat: makeProp(PROP_TYPE_STRING, CALENDAR_SHORT, function (value) {\n return arrayIncludes([CALENDAR_LONG, CALENDAR_SHORT, CALENDAR_NARROW], value);\n }),\n // Has no effect if prop `block` is set\n width: makeProp(PROP_TYPE_STRING, '270px')\n})), NAME_CALENDAR); // --- Main component ---\n// @vue/component\n\nexport var BCalendar = Vue.extend({\n name: NAME_CALENDAR,\n // Mixin order is important!\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n var selected = formatYMD(this[MODEL_PROP_NAME]) || '';\n return {\n // Selected date\n selectedYMD: selected,\n // Date in calendar grid that has `tabindex` of `0`\n activeYMD: selected || formatYMD(_constrainDate(this.initialDate || this.getToday()), this.min, this.max),\n // Will be true if the calendar grid has/contains focus\n gridHasFocus: false,\n // Flag to enable the `aria-live` region(s) after mount\n // to prevent screen reader \"outbursts\" when mounting\n isLive: false\n };\n },\n computed: {\n valueId: function valueId() {\n return this.safeId();\n },\n widgetId: function widgetId() {\n return this.safeId('_calendar-wrapper_');\n },\n navId: function navId() {\n return this.safeId('_calendar-nav_');\n },\n gridId: function gridId() {\n return this.safeId('_calendar-grid_');\n },\n gridCaptionId: function gridCaptionId() {\n return this.safeId('_calendar-grid-caption_');\n },\n gridHelpId: function gridHelpId() {\n return this.safeId('_calendar-grid-help_');\n },\n activeId: function activeId() {\n return this.activeYMD ? this.safeId(\"_cell-\".concat(this.activeYMD, \"_\")) : null;\n },\n // TODO: Use computed props to convert `YYYY-MM-DD` to `Date` object\n selectedDate: function selectedDate() {\n // Selected as a `Date` object\n return parseYMD(this.selectedYMD);\n },\n activeDate: function activeDate() {\n // Active as a `Date` object\n return parseYMD(this.activeYMD);\n },\n computedMin: function computedMin() {\n return parseYMD(this.min);\n },\n computedMax: function computedMax() {\n return parseYMD(this.max);\n },\n computedWeekStarts: function computedWeekStarts() {\n // `startWeekday` is a prop (constrained to `0` through `6`)\n return mathMax(toInteger(this.startWeekday, 0), 0) % 7;\n },\n computedLocale: function computedLocale() {\n // Returns the resolved locale used by the calendar\n return resolveLocale(concat(this.locale).filter(identity), CALENDAR_GREGORY);\n },\n computedDateDisabledFn: function computedDateDisabledFn() {\n var dateDisabledFn = this.dateDisabledFn;\n return hasPropFunction(dateDisabledFn) ? dateDisabledFn : function () {\n return false;\n };\n },\n // TODO: Change `dateInfoFn` to handle events and notes as well as classes\n computedDateInfoFn: function computedDateInfoFn() {\n var dateInfoFn = this.dateInfoFn;\n return hasPropFunction(dateInfoFn) ? dateInfoFn : function () {\n return {};\n };\n },\n calendarLocale: function calendarLocale() {\n // This locale enforces the gregorian calendar (for use in formatter functions)\n // Needed because IE 11 resolves `ar-IR` as islamic-civil calendar\n // and IE 11 (and some other browsers) do not support the `calendar` option\n // And we currently only support the gregorian calendar\n var fmt = new Intl.DateTimeFormat(this.computedLocale, {\n calendar: CALENDAR_GREGORY\n });\n var calendar = fmt.resolvedOptions().calendar;\n var locale = fmt.resolvedOptions().locale;\n /* istanbul ignore if: mainly for IE 11 and a few other browsers, hard to test in JSDOM */\n\n if (calendar !== CALENDAR_GREGORY) {\n // Ensure the locale requests the gregorian calendar\n // Mainly for IE 11, and currently we can't handle non-gregorian calendars\n // TODO: Should we always return this value?\n locale = locale.replace(/-u-.+$/i, '').concat('-u-ca-gregory');\n }\n\n return locale;\n },\n calendarYear: function calendarYear() {\n return this.activeDate.getFullYear();\n },\n calendarMonth: function calendarMonth() {\n return this.activeDate.getMonth();\n },\n calendarFirstDay: function calendarFirstDay() {\n // We set the time for this date to 12pm to work around\n // date formatting issues in Firefox and Safari\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/5818\n return createDate(this.calendarYear, this.calendarMonth, 1, 12);\n },\n calendarDaysInMonth: function calendarDaysInMonth() {\n // We create a new date as to not mutate the original\n var date = createDate(this.calendarFirstDay);\n date.setMonth(date.getMonth() + 1, 0);\n return date.getDate();\n },\n computedVariant: function computedVariant() {\n return \"btn-\".concat(this.selectedVariant || 'primary');\n },\n computedTodayVariant: function computedTodayVariant() {\n return \"btn-outline-\".concat(this.todayVariant || this.selectedVariant || 'primary');\n },\n computedNavButtonVariant: function computedNavButtonVariant() {\n return \"btn-outline-\".concat(this.navButtonVariant || 'primary');\n },\n isRTL: function isRTL() {\n // `true` if the language requested is RTL\n var dir = toString(this.direction).toLowerCase();\n\n if (dir === 'rtl') {\n /* istanbul ignore next */\n return true;\n } else if (dir === 'ltr') {\n /* istanbul ignore next */\n return false;\n }\n\n return isLocaleRTL(this.computedLocale);\n },\n context: function context() {\n var selectedYMD = this.selectedYMD,\n activeYMD = this.activeYMD;\n var selectedDate = parseYMD(selectedYMD);\n var activeDate = parseYMD(activeYMD);\n return {\n // The current value of the `v-model`\n selectedYMD: selectedYMD,\n selectedDate: selectedDate,\n selectedFormatted: selectedDate ? this.formatDateString(selectedDate) : this.labelNoDateSelected,\n // Which date cell is considered active due to navigation\n activeYMD: activeYMD,\n activeDate: activeDate,\n activeFormatted: activeDate ? this.formatDateString(activeDate) : '',\n // `true` if the date is disabled (when using keyboard navigation)\n disabled: this.dateDisabled(activeDate),\n // Locales used in formatting dates\n locale: this.computedLocale,\n calendarLocale: this.calendarLocale,\n rtl: this.isRTL\n };\n },\n // Computed props that return a function reference\n dateOutOfRange: function dateOutOfRange() {\n // Check whether a date is within the min/max range\n // Returns a new function ref if the pops change\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var min = this.computedMin,\n max = this.computedMax;\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n return min && date < min || max && date > max;\n };\n },\n dateDisabled: function dateDisabled() {\n var _this = this;\n\n // Returns a function for validating if a date is within range\n // We grab this variables first to ensure a new function ref\n // is generated when the props value changes\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var rangeFn = this.dateOutOfRange; // Return the function ref\n\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n var ymd = formatYMD(date);\n return !!(rangeFn(date) || _this.computedDateDisabledFn(ymd, date));\n };\n },\n // Computed props that return date formatter functions\n formatDateString: function formatDateString() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, _objectSpread(_objectSpread({\n // Ensure we have year, month, day shown for screen readers/ARIA\n // If users really want to leave one of these out, they can\n // pass `undefined` for the property value\n year: DATE_FORMAT_NUMERIC,\n month: DATE_FORMAT_2_DIGIT,\n day: DATE_FORMAT_2_DIGIT\n }, this.dateFormatOptions), {}, {\n // Ensure hours/minutes/seconds are not shown\n // As we do not support the time portion (yet)\n hour: undefined,\n minute: undefined,\n second: undefined,\n // Ensure calendar is gregorian\n calendar: CALENDAR_GREGORY\n }));\n },\n formatYearMonth: function formatYearMonth() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayName: function formatWeekdayName() {\n // Long weekday name for weekday header aria-label\n return createDateFormatter(this.calendarLocale, {\n weekday: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayNameShort: function formatWeekdayNameShort() {\n // Weekday header cell format\n // defaults to 'short' 3 letter days, where possible\n return createDateFormatter(this.calendarLocale, {\n weekday: this.weekdayHeaderFormat || CALENDAR_SHORT,\n calendar: CALENDAR_GREGORY\n });\n },\n formatDay: function formatDay() {\n // Calendar grid day number formatter\n // We don't use DateTimeFormatter here as it can place extra\n // character(s) after the number (i.e the `zh` locale)\n var nf = new Intl.NumberFormat([this.computedLocale], {\n style: 'decimal',\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard'\n }); // Return a formatter function instance\n\n return function (date) {\n return nf.format(date.getDate());\n };\n },\n // Disabled states for the nav buttons\n prevDecadeDisabled: function prevDecadeDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneDecadeAgo(this.activeDate)) < min;\n },\n prevYearDisabled: function prevYearDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneYearAgo(this.activeDate)) < min;\n },\n prevMonthDisabled: function prevMonthDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneMonthAgo(this.activeDate)) < min;\n },\n thisMonthDisabled: function thisMonthDisabled() {\n // TODO: We could/should check if today is out of range\n return this.disabled;\n },\n nextMonthDisabled: function nextMonthDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneMonthAhead(this.activeDate)) > max;\n },\n nextYearDisabled: function nextYearDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneYearAhead(this.activeDate)) > max;\n },\n nextDecadeDisabled: function nextDecadeDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneDecadeAhead(this.activeDate)) > max;\n },\n // Calendar dates generation\n calendar: function calendar() {\n var matrix = [];\n var firstDay = this.calendarFirstDay;\n var calendarYear = firstDay.getFullYear();\n var calendarMonth = firstDay.getMonth();\n var daysInMonth = this.calendarDaysInMonth;\n var startIndex = firstDay.getDay(); // `0`..`6`\n\n var weekOffset = (this.computedWeekStarts > startIndex ? 7 : 0) - this.computedWeekStarts; // Build the calendar matrix\n\n var currentDay = 0 - weekOffset - startIndex;\n\n for (var week = 0; week < 6 && currentDay < daysInMonth; week++) {\n // For each week\n matrix[week] = []; // The following could be a map function\n\n for (var j = 0; j < 7; j++) {\n // For each day in week\n currentDay++;\n var date = createDate(calendarYear, calendarMonth, currentDay);\n var month = date.getMonth();\n var dayYMD = formatYMD(date);\n var dayDisabled = this.dateDisabled(date); // TODO: This could be a normalizer method\n\n var dateInfo = this.computedDateInfoFn(dayYMD, parseYMD(dayYMD));\n dateInfo = isString(dateInfo) || isArray(dateInfo) ?\n /* istanbul ignore next */\n {\n class: dateInfo\n } : isPlainObject(dateInfo) ? _objectSpread({\n class: ''\n }, dateInfo) :\n /* istanbul ignore next */\n {\n class: ''\n };\n matrix[week].push({\n ymd: dayYMD,\n // Cell content\n day: this.formatDay(date),\n label: this.formatDateString(date),\n // Flags for styling\n isThisMonth: month === calendarMonth,\n isDisabled: dayDisabled,\n // TODO: Handle other dateInfo properties such as notes/events\n info: dateInfo\n });\n }\n }\n\n return matrix;\n },\n calendarHeadings: function calendarHeadings() {\n var _this2 = this;\n\n return this.calendar[0].map(function (d) {\n return {\n text: _this2.formatWeekdayNameShort(parseYMD(d.ymd)),\n label: _this2.formatWeekdayName(parseYMD(d.ymd))\n };\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n var selected = formatYMD(newValue) || '';\n var old = formatYMD(oldValue) || '';\n\n if (!datesEqual(selected, old)) {\n this.activeYMD = selected || this.activeYMD;\n this.selectedYMD = selected;\n }\n }), _defineProperty(_watch, \"selectedYMD\", function selectedYMD(newYMD, oldYMD) {\n // TODO:\n // Should we compare to `formatYMD(this.value)` and emit\n // only if they are different?\n if (newYMD !== oldYMD) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newYMD) || null : newYMD || '');\n }\n }), _defineProperty(_watch, \"context\", function context(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT, newValue);\n }\n }), _defineProperty(_watch, \"hidden\", function hidden(newValue) {\n // Reset the active focused day when hidden\n this.activeYMD = this.selectedYMD || formatYMD(this[MODEL_PROP_NAME] || this.constrainDate(this.initialDate || this.getToday())); // Enable/disable the live regions\n\n this.setLive(!newValue);\n }), _watch),\n created: function created() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.$emit(EVENT_NAME_CONTEXT, _this3.context);\n });\n },\n mounted: function mounted() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.setLive(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.setLive(false);\n },\n methods: {\n // Public method(s)\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.grid);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.grid);\n }\n },\n // Private methods\n setLive: function setLive(on) {\n var _this4 = this;\n\n if (on) {\n this.$nextTick(function () {\n requestAF(function () {\n _this4.isLive = true;\n });\n });\n } else {\n this.isLive = false;\n }\n },\n getToday: function getToday() {\n return parseYMD(createDate());\n },\n constrainDate: function constrainDate(date) {\n // Constrains a date between min and max\n // returns a new `Date` object instance\n return _constrainDate(date, this.computedMin, this.computedMax);\n },\n emitSelected: function emitSelected(date) {\n var _this5 = this;\n\n // Performed in a `$nextTick()` to (probably) ensure\n // the input event has emitted first\n this.$nextTick(function () {\n _this5.$emit(EVENT_NAME_SELECTED, formatYMD(date) || '', parseYMD(date) || null);\n });\n },\n // Event handlers\n setGridFocusFlag: function setGridFocusFlag(event) {\n // Sets the gridHasFocus flag to make date \"button\" look focused\n this.gridHasFocus = !this.disabled && event.type === 'focus';\n },\n onKeydownWrapper: function onKeydownWrapper(event) {\n // Calendar keyboard navigation\n // Handles PAGEUP/PAGEDOWN/END/HOME/LEFT/UP/RIGHT/DOWN\n // Focuses grid after updating\n if (this.noKeyNav) {\n /* istanbul ignore next */\n return;\n }\n\n var altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n keyCode = event.keyCode;\n\n if (!arrayIncludes([CODE_PAGEUP, CODE_PAGEDOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_UP, CODE_RIGHT, CODE_DOWN], keyCode)) {\n /* istanbul ignore next */\n return;\n }\n\n stopEvent(event);\n var activeDate = createDate(this.activeDate);\n var checkDate = createDate(this.activeDate);\n var day = activeDate.getDate();\n var constrainedToday = this.constrainDate(this.getToday());\n var isRTL = this.isRTL;\n\n if (keyCode === CODE_PAGEUP) {\n // PAGEUP - Previous month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAgo : oneYearAgo : oneMonthAgo)(activeDate); // We check the first day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setDate(1);\n } else if (keyCode === CODE_PAGEDOWN) {\n // PAGEDOWN - Next month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAhead : oneYearAhead : oneMonthAhead)(activeDate); // We check the last day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setMonth(checkDate.getMonth() + 1);\n checkDate.setDate(0);\n } else if (keyCode === CODE_LEFT) {\n // LEFT - Previous day (or next day for RTL)\n activeDate.setDate(day + (isRTL ? 1 : -1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_RIGHT) {\n // RIGHT - Next day (or previous day for RTL)\n activeDate.setDate(day + (isRTL ? -1 : 1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_UP) {\n // UP - Previous week\n activeDate.setDate(day - 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_DOWN) {\n // DOWN - Next week\n activeDate.setDate(day + 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_HOME) {\n // HOME - Today\n activeDate = constrainedToday;\n checkDate = activeDate;\n } else if (keyCode === CODE_END) {\n // END - Selected date, or today if no selected date\n activeDate = parseYMD(this.selectedDate) || constrainedToday;\n checkDate = activeDate;\n }\n\n if (!this.dateOutOfRange(checkDate) && !datesEqual(activeDate, this.activeDate)) {\n // We only jump to date if within min/max\n // We don't check for individual disabled dates though (via user function)\n this.activeYMD = formatYMD(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n },\n onKeydownGrid: function onKeydownGrid(event) {\n // Pressing enter/space on grid to select active date\n var keyCode = event.keyCode;\n var activeDate = this.activeDate;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n stopEvent(event);\n\n if (!this.disabled && !this.readonly && !this.dateDisabled(activeDate)) {\n this.selectedYMD = formatYMD(activeDate);\n this.emitSelected(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n }\n },\n onClickDay: function onClickDay(day) {\n // Clicking on a date \"button\" to select it\n var selectedDate = this.selectedDate,\n activeDate = this.activeDate;\n var clickedDate = parseYMD(day.ymd);\n\n if (!this.disabled && !day.isDisabled && !this.dateDisabled(clickedDate)) {\n if (!this.readonly) {\n // If readonly mode, we don't set the selected date, just the active date\n // If the clicked date is equal to the already selected date, we don't update the model\n this.selectedYMD = formatYMD(datesEqual(clickedDate, selectedDate) ? selectedDate : clickedDate);\n this.emitSelected(clickedDate);\n }\n\n this.activeYMD = formatYMD(datesEqual(clickedDate, activeDate) ? activeDate : createDate(clickedDate)); // Ensure grid is focused\n\n this.focus();\n }\n },\n gotoPrevDecade: function gotoPrevDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAgo(this.activeDate)));\n },\n gotoPrevYear: function gotoPrevYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAgo(this.activeDate)));\n },\n gotoPrevMonth: function gotoPrevMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAgo(this.activeDate)));\n },\n gotoCurrentMonth: function gotoCurrentMonth() {\n // TODO: Maybe this goto date should be configurable?\n this.activeYMD = formatYMD(this.constrainDate(this.getToday()));\n },\n gotoNextMonth: function gotoNextMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAhead(this.activeDate)));\n },\n gotoNextYear: function gotoNextYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAhead(this.activeDate)));\n },\n gotoNextDecade: function gotoNextDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAhead(this.activeDate)));\n },\n onHeaderClick: function onHeaderClick() {\n if (!this.disabled) {\n this.activeYMD = this.selectedYMD || formatYMD(this.getToday());\n this.focus();\n }\n }\n },\n render: function render(h) {\n var _this6 = this;\n\n // If `hidden` prop is set, render just a placeholder node\n if (this.hidden) {\n return h();\n }\n\n var valueId = this.valueId,\n widgetId = this.widgetId,\n navId = this.navId,\n gridId = this.gridId,\n gridCaptionId = this.gridCaptionId,\n gridHelpId = this.gridHelpId,\n activeId = this.activeId,\n disabled = this.disabled,\n noKeyNav = this.noKeyNav,\n isLive = this.isLive,\n isRTL = this.isRTL,\n activeYMD = this.activeYMD,\n selectedYMD = this.selectedYMD,\n safeId = this.safeId;\n var hideDecadeNav = !this.showDecadeNav;\n var todayYMD = formatYMD(this.getToday());\n var highlightToday = !this.noHighlightToday; // Header showing current selected date\n\n var $header = h('output', {\n staticClass: 'form-control form-control-sm text-center',\n class: {\n 'text-muted': disabled,\n readonly: this.readonly || disabled\n },\n attrs: {\n id: valueId,\n for: gridId,\n role: 'status',\n tabindex: disabled ? null : '-1',\n // Mainly for testing purposes, as we do not know\n // the exact format `Intl` will format the date string\n 'data-selected': toString(selectedYMD),\n // We wait until after mount to enable `aria-live`\n // to prevent initial announcement on page render\n 'aria-live': isLive ? 'polite' : 'off',\n 'aria-atomic': isLive ? 'true' : null\n },\n on: {\n // Transfer focus/click to focus grid\n // and focus active date (or today if no selection)\n click: this.onHeaderClick,\n focus: this.onHeaderClick\n }\n }, this.selectedDate ? [// We use `bdi` elements here in case the label doesn't match the locale\n // Although IE 11 does not deal with at all (equivalent to a span)\n h('bdi', {\n staticClass: 'sr-only'\n }, \" (\".concat(toString(this.labelSelected), \") \")), h('bdi', this.formatDateString(this.selectedDate))] : this.labelNoDateSelected || \"\\xA0\" // ' '\n );\n $header = h('header', {\n staticClass: 'b-calendar-header',\n class: {\n 'sr-only': this.hideHeader\n },\n attrs: {\n title: this.selectedDate ? this.labelSelectedDate || null : null\n }\n }, [$header]); // Content for the date navigation buttons\n\n var navScope = {\n isRTL: isRTL\n };\n var navProps = {\n shiftV: 0.5\n };\n\n var navPrevProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: isRTL\n });\n\n var navNextProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: !isRTL\n });\n\n var $prevDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navPrevProps\n });\n var $prevYearIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navPrevProps\n });\n var $prevMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_MONTH, navScope) || h(BIconChevronLeft, {\n props: navPrevProps\n });\n var $thisMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_THIS_MONTH, navScope) || h(BIconCircleFill, {\n props: navProps\n });\n var $nextMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_MONTH, navScope) || h(BIconChevronLeft, {\n props: navNextProps\n });\n var $nextYearIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navNextProps\n });\n var $nextDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navNextProps\n }); // Utility to create the date navigation buttons\n\n var makeNavBtn = function makeNavBtn(content, label, handler, btnDisabled, shortcut) {\n return h('button', {\n staticClass: 'btn btn-sm border-0 flex-fill',\n class: [_this6.computedNavButtonVariant, {\n disabled: btnDisabled\n }],\n attrs: {\n title: label || null,\n type: 'button',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-label': label || null,\n 'aria-disabled': btnDisabled ? 'true' : null,\n 'aria-keyshortcuts': shortcut || null\n },\n on: btnDisabled ? {} : {\n click: handler\n }\n }, [h('div', {\n attrs: {\n 'aria-hidden': 'true'\n }\n }, [content])]);\n }; // Generate the date navigation buttons\n\n\n var $nav = h('div', {\n staticClass: 'b-calendar-nav d-flex',\n attrs: {\n id: navId,\n role: 'group',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-hidden': disabled ? 'true' : null,\n 'aria-label': this.labelNav || null,\n 'aria-controls': gridId\n }\n }, [hideDecadeNav ? h() : makeNavBtn($prevDecadeIcon, this.labelPrevDecade, this.gotoPrevDecade, this.prevDecadeDisabled, 'Ctrl+Alt+PageDown'), makeNavBtn($prevYearIcon, this.labelPrevYear, this.gotoPrevYear, this.prevYearDisabled, 'Alt+PageDown'), makeNavBtn($prevMonthIcon, this.labelPrevMonth, this.gotoPrevMonth, this.prevMonthDisabled, 'PageDown'), makeNavBtn($thisMonthIcon, this.labelCurrentMonth, this.gotoCurrentMonth, this.thisMonthDisabled, 'Home'), makeNavBtn($nextMonthIcon, this.labelNextMonth, this.gotoNextMonth, this.nextMonthDisabled, 'PageUp'), makeNavBtn($nextYearIcon, this.labelNextYear, this.gotoNextYear, this.nextYearDisabled, 'Alt+PageUp'), hideDecadeNav ? h() : makeNavBtn($nextDecadeIcon, this.labelNextDecade, this.gotoNextDecade, this.nextDecadeDisabled, 'Ctrl+Alt+PageUp')]); // Caption for calendar grid\n\n var $gridCaption = h('header', {\n staticClass: 'b-calendar-grid-caption text-center font-weight-bold',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n id: gridCaptionId,\n 'aria-live': isLive ? 'polite' : null,\n 'aria-atomic': isLive ? 'true' : null\n },\n key: 'grid-caption'\n }, this.formatYearMonth(this.calendarFirstDay)); // Calendar weekday headings\n\n var $gridWeekDays = h('div', {\n staticClass: 'b-calendar-grid-weekdays row no-gutters border-bottom',\n attrs: {\n 'aria-hidden': 'true'\n }\n }, this.calendarHeadings.map(function (d, idx) {\n return h('small', {\n staticClass: 'col text-truncate',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n title: d.label === d.text ? null : d.label,\n 'aria-label': d.label\n },\n key: idx\n }, d.text);\n })); // Calendar day grid\n\n var $gridBody = this.calendar.map(function (week) {\n var $cells = week.map(function (day, dIndex) {\n var _class;\n\n var isSelected = day.ymd === selectedYMD;\n var isActive = day.ymd === activeYMD;\n var isToday = day.ymd === todayYMD;\n var idCell = safeId(\"_cell-\".concat(day.ymd, \"_\")); // \"fake\" button\n\n var $btn = h('span', {\n staticClass: 'btn border-0 rounded-circle text-nowrap',\n // Should we add some classes to signify if today/selected/etc?\n class: (_class = {\n // Give the fake button a focus ring\n focus: isActive && _this6.gridHasFocus,\n // Styling\n disabled: day.isDisabled || disabled,\n active: isSelected\n }, _defineProperty(_class, _this6.computedVariant, isSelected), _defineProperty(_class, _this6.computedTodayVariant, isToday && highlightToday && !isSelected && day.isThisMonth), _defineProperty(_class, 'btn-outline-light', !(isToday && highlightToday) && !isSelected && !isActive), _defineProperty(_class, 'btn-light', !(isToday && highlightToday) && !isSelected && isActive), _defineProperty(_class, 'text-muted', !day.isThisMonth && !isSelected), _defineProperty(_class, 'text-dark', !(isToday && highlightToday) && !isSelected && !isActive && day.isThisMonth), _defineProperty(_class, 'font-weight-bold', (isSelected || day.isThisMonth) && !day.isDisabled), _class),\n on: {\n click: function click() {\n return _this6.onClickDay(day);\n }\n }\n }, day.day);\n return h('div', // Cell with button\n {\n staticClass: 'col p-0',\n class: day.isDisabled ? 'bg-light' : day.info.class || '',\n attrs: {\n id: idCell,\n role: 'button',\n 'data-date': day.ymd,\n // Primarily for testing purposes\n // Only days in the month are presented as buttons to screen readers\n 'aria-hidden': day.isThisMonth ? null : 'true',\n 'aria-disabled': day.isDisabled || disabled ? 'true' : null,\n 'aria-label': [day.label, isSelected ? \"(\".concat(_this6.labelSelected, \")\") : null, isToday ? \"(\".concat(_this6.labelToday, \")\") : null].filter(identity).join(' '),\n // NVDA doesn't convey `aria-selected`, but does `aria-current`,\n // ChromeVox doesn't convey `aria-current`, but does `aria-selected`,\n // so we set both attributes for robustness\n 'aria-selected': isSelected ? 'true' : null,\n 'aria-current': isSelected ? 'date' : null\n },\n key: dIndex\n }, [$btn]);\n }); // Return the week \"row\"\n // We use the first day of the weeks YMD value as a\n // key for efficient DOM patching / element re-use\n\n return h('div', {\n staticClass: 'row no-gutters',\n key: week[0].ymd\n }, $cells);\n });\n $gridBody = h('div', {\n // A key is only required on the body if we add in transition support\n staticClass: 'b-calendar-grid-body',\n style: disabled ? {\n pointerEvents: 'none'\n } : {} // key: this.activeYMD.slice(0, -3)\n\n }, $gridBody);\n var $gridHelp = h('footer', {\n staticClass: 'b-calendar-grid-help border-top small text-muted text-center bg-light',\n attrs: {\n id: gridHelpId\n }\n }, [h('div', {\n staticClass: 'small'\n }, this.labelHelp)]);\n var $grid = h('div', {\n staticClass: 'b-calendar-grid form-control h-auto text-center',\n attrs: {\n id: gridId,\n role: 'application',\n tabindex: noKeyNav ? '-1' : disabled ? null : '0',\n 'data-month': activeYMD.slice(0, -3),\n // `YYYY-MM`, mainly for testing\n 'aria-roledescription': this.labelCalendar || null,\n 'aria-labelledby': gridCaptionId,\n 'aria-describedby': gridHelpId,\n // `aria-readonly` is not considered valid on `role=\"application\"`\n // https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\n // 'aria-readonly': this.readonly && !disabled ? 'true' : null,\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-activedescendant': activeId\n },\n on: {\n keydown: this.onKeydownGrid,\n focus: this.setGridFocusFlag,\n blur: this.setGridFocusFlag\n },\n ref: 'grid'\n }, [$gridCaption, $gridWeekDays, $gridBody, $gridHelp]); // Optional bottom slot\n\n var $slot = this.normalizeSlot();\n $slot = $slot ? h('footer', {\n staticClass: 'b-calendar-footer'\n }, $slot) : h();\n var $widget = h('div', {\n staticClass: 'b-calendar-inner',\n style: this.block ? {} : {\n width: this.width\n },\n attrs: {\n id: widgetId,\n dir: isRTL ? 'rtl' : 'ltr',\n lang: this.computedLocale || null,\n role: 'group',\n 'aria-disabled': disabled ? 'true' : null,\n // If datepicker controls an input, this will specify the ID of the input\n 'aria-controls': this.ariaControls || null,\n // This should be a prop (so it can be changed to Date picker, etc, localized\n 'aria-roledescription': this.roleDescription || null,\n 'aria-describedby': [// Should the attr (if present) go last?\n // Or should this attr be a prop?\n this.bvAttrs['aria-describedby'], valueId, gridHelpId].filter(identity).join(' ')\n },\n on: {\n keydown: this.onKeydownWrapper\n }\n }, [$header, $nav, $grid, $slot]); // Wrap in an outer div that can be styled\n\n return h('div', {\n staticClass: 'b-calendar',\n class: {\n 'd-block': this.block\n }\n }, [$widget]);\n }\n});","// v-b-hover directive\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { eventOnOff } from '../../utils/events';\nimport { isFunction } from '../../utils/inspect'; // --- Constants ---\n\nvar PROP = '__BV_hover_handler__';\nvar MOUSEENTER = 'mouseenter';\nvar MOUSELEAVE = 'mouseleave'; // --- Helper methods ---\n\nvar createListener = function createListener(handler) {\n var listener = function listener(event) {\n handler(event.type === MOUSEENTER, event);\n };\n\n listener.fn = handler;\n return listener;\n};\n\nvar updateListeners = function updateListeners(on, el, listener) {\n eventOnOff(on, el, MOUSEENTER, listener, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, el, MOUSELEAVE, listener, EVENT_OPTIONS_NO_CAPTURE);\n}; // --- Directive bind/unbind/update handler ---\n\n\nvar directive = function directive(el, _ref) {\n var _ref$value = _ref.value,\n handler = _ref$value === void 0 ? null : _ref$value;\n\n if (IS_BROWSER) {\n var listener = el[PROP];\n var hasListener = isFunction(listener);\n var handlerChanged = !(hasListener && listener.fn === handler);\n\n if (hasListener && handlerChanged) {\n updateListeners(false, el, listener);\n delete el[PROP];\n }\n\n if (isFunction(handler) && handlerChanged) {\n el[PROP] = createListener(handler);\n updateListeners(true, el, el[PROP]);\n }\n }\n}; // VBHover directive\n\n\nexport var VBHover = {\n bind: directive,\n componentUpdated: directive,\n unbind: function unbind(el) {\n directive(el, {\n value: null\n });\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n// Private component used by `b-form-datepicker` and `b-form-timepicker`\n//\nimport { Vue } from '../../vue';\nimport { NAME_FORM_BUTTON_LABEL_CONTROL } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { props as formControlProps } from '../../mixins/form-control';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { VBHover } from '../../directives/hover/hover';\nimport { BIconChevronDown } from '../../icons/icons'; // --- Props ---\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formSizeProps), formStateProps), omit(dropdownProps, ['disabled'])), omit(formControlProps, ['autofocus'])), {}, {\n // When `true`, renders a `btn-group` wrapper and visually hides the label\n buttonOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Applicable in button mode only\n buttonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // This is the value shown in the label\n // Defaults back to `value`\n formattedValue: makeProp(PROP_TYPE_STRING),\n // Value placed in `.sr-only` span inside label when value is present\n labelSelected: makeProp(PROP_TYPE_STRING),\n lang: makeProp(PROP_TYPE_STRING),\n // Extra classes to apply to the `dropdown-menu` div\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // This is the value placed on the hidden input when no value selected\n placeholder: makeProp(PROP_TYPE_STRING),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Tri-state prop: `true`, `false` or `null`\n rtl: makeProp(PROP_TYPE_BOOLEAN, null),\n value: makeProp(PROP_TYPE_STRING, '')\n})); // --- Main component ---\n// @vue/component\n\nexport var BVFormBtnLabelControl = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_BUTTON_LABEL_CONTROL,\n directives: {\n 'b-hover': VBHover\n },\n mixins: [idMixin, formSizeMixin, formStateMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n isHovered: false,\n hasFocus: false\n };\n },\n computed: {\n idButton: function idButton() {\n return this.safeId();\n },\n idLabel: function idLabel() {\n return this.safeId('_value_');\n },\n idMenu: function idMenu() {\n return this.safeId('_dialog_');\n },\n idWrapper: function idWrapper() {\n return this.safeId('_outer_');\n },\n computedDir: function computedDir() {\n return this.rtl === true ? 'rtl' : this.rtl === false ? 'ltr' : null;\n }\n },\n methods: {\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.toggle);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.toggle);\n }\n },\n setFocus: function setFocus(event) {\n this.hasFocus = event.type === 'focus';\n },\n handleHover: function handleHover(hovered) {\n this.isHovered = hovered;\n }\n },\n render: function render(h) {\n var _class;\n\n var idButton = this.idButton,\n idLabel = this.idLabel,\n idMenu = this.idMenu,\n idWrapper = this.idWrapper,\n disabled = this.disabled,\n readonly = this.readonly,\n required = this.required,\n name = this.name,\n state = this.state,\n visible = this.visible,\n size = this.size,\n isHovered = this.isHovered,\n hasFocus = this.hasFocus,\n labelSelected = this.labelSelected,\n buttonVariant = this.buttonVariant,\n buttonOnly = this.buttonOnly;\n var value = toString(this.value) || '';\n var invalid = state === false || required && !value;\n var btnScope = {\n isHovered: isHovered,\n hasFocus: hasFocus,\n state: state,\n opened: visible\n };\n var $button = h('button', {\n staticClass: 'btn',\n class: (_class = {}, _defineProperty(_class, \"btn-\".concat(buttonVariant), buttonOnly), _defineProperty(_class, \"btn-\".concat(size), size), _defineProperty(_class, 'h-auto', !buttonOnly), _defineProperty(_class, 'dropdown-toggle', buttonOnly), _defineProperty(_class, 'dropdown-toggle-no-caret', buttonOnly), _class),\n attrs: {\n id: idButton,\n type: 'button',\n disabled: disabled,\n 'aria-haspopup': 'dialog',\n 'aria-expanded': visible ? 'true' : 'false',\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n mousedown: this.onMousedown,\n click: this.toggle,\n keydown: this.toggle,\n // Handle ENTER, SPACE and DOWN\n '!focus': this.setFocus,\n '!blur': this.setFocus\n },\n ref: 'toggle'\n }, [this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT, btnScope) :\n /* istanbul ignore next */\n h(BIconChevronDown, {\n props: {\n scale: 1.25\n }\n })]); // Hidden input\n\n var $hidden = h();\n\n if (name && !disabled) {\n $hidden = h('input', {\n attrs: {\n type: 'hidden',\n name: name || null,\n form: this.form || null,\n value: value\n }\n });\n } // Dropdown content\n\n\n var $menu = h('div', {\n staticClass: 'dropdown-menu',\n class: [this.menuClass, {\n show: visible,\n 'dropdown-menu-right': this.right\n }],\n attrs: {\n id: idMenu,\n role: 'dialog',\n tabindex: '-1',\n 'aria-modal': 'false',\n 'aria-labelledby': idLabel\n },\n on: {\n keydown: this.onKeydown // Handle ESC\n\n },\n ref: 'menu'\n }, [this.normalizeSlot(SLOT_NAME_DEFAULT, {\n opened: visible\n })]); // Value label\n\n var $label = h('label', {\n class: buttonOnly ? 'sr-only' // Hidden in button only mode\n : ['form-control', 'text-break', 'text-wrap', 'bg-transparent', // Mute the text if showing the placeholder\n {\n 'text-muted': !value\n }, this.stateClass, this.sizeFormClass],\n attrs: {\n id: idLabel,\n for: idButton,\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n // Disable bubbling of the click event to\n // prevent menu from closing and re-opening\n '!click':\n /* istanbul ignore next */\n function click(event) {\n stopEvent(event, {\n preventDefault: false\n });\n }\n }\n }, [value ? this.formattedValue || value : this.placeholder || '', // Add the selected label for screen readers when a value is provided\n value && labelSelected ? h('bdi', {\n staticClass: 'sr-only'\n }, labelSelected) : '']); // Return the custom form control wrapper\n\n return h('div', {\n staticClass: 'b-form-btn-label-control dropdown',\n class: [this.directionClass, this.boundaryClass, [{\n 'btn-group': buttonOnly,\n 'form-control': !buttonOnly,\n 'd-flex': !buttonOnly,\n 'h-auto': !buttonOnly,\n 'align-items-stretch': !buttonOnly,\n focus: hasFocus && !buttonOnly,\n show: visible,\n 'is-valid': state === true,\n 'is-invalid': state === false\n }, buttonOnly ? null : this.sizeFormClass]],\n attrs: {\n id: idWrapper,\n role: buttonOnly ? null : 'group',\n lang: this.lang || null,\n dir: this.computedDir,\n 'aria-disabled': disabled,\n 'aria-readonly': readonly && !disabled,\n 'aria-labelledby': idLabel,\n 'aria-invalid': state === false || required && !value ? 'true' : null,\n 'aria-required': required ? 'true' : null\n }\n }, [$button, $hidden, $menu, $label]);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_DATEPICKER } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT } from '../../constants/slots';\nimport { createDate, constrainDate, formatYMD, parseYMD } from '../../utils/date';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { omit, pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { BIconCalendar, BIconCalendarFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BCalendar, props as BCalendarProps } from '../calendar/calendar';\nimport { BVFormBtnLabelControl, props as BVFormBtnLabelControlProps } from '../form-btn-label-control/bv-form-btn-label-control'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nvar calendarProps = omit(BCalendarProps, ['block', 'hidden', 'id', 'noKeyNav', 'roleDescription', 'value', 'width']);\nvar formBtnLabelControlProps = omit(BVFormBtnLabelControlProps, ['formattedValue', 'id', 'lang', 'rtl', 'value']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), calendarProps), formBtnLabelControlProps), {}, {\n // Width of the calendar dropdown\n calendarWidth: makeProp(PROP_TYPE_STRING, '270px'),\n closeButton: makeProp(PROP_TYPE_BOOLEAN, false),\n closeButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-secondary'),\n // Dark mode\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n labelCloseButton: makeProp(PROP_TYPE_STRING, 'Close'),\n labelResetButton: makeProp(PROP_TYPE_STRING, 'Reset'),\n labelTodayButton: makeProp(PROP_TYPE_STRING, 'Select today'),\n noCloseOnSelect: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButton: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-danger'),\n resetValue: makeProp(PROP_TYPE_DATE_STRING),\n todayButton: makeProp(PROP_TYPE_BOOLEAN, false),\n todayButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-primary')\n})), NAME_FORM_DATEPICKER); // --- Main component ---\n// @vue/component\n\nexport var BFormDatepicker = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_DATEPICKER,\n mixins: [idMixin, modelMixin],\n props: props,\n data: function data() {\n return {\n // We always use `YYYY-MM-DD` value internally\n localYMD: formatYMD(this[MODEL_PROP_NAME]) || '',\n // If the popup is open\n isVisible: false,\n // Context data from BCalendar\n localLocale: null,\n isRTL: false,\n formattedValue: '',\n activeYMD: ''\n };\n },\n computed: {\n calendarYM: function calendarYM() {\n // Returns the calendar year/month\n // Returns the `YYYY-MM` portion of the active calendar date\n return this.activeYMD.slice(0, -3);\n },\n computedLang: function computedLang() {\n return (this.localLocale || '').replace(/-u-.*$/i, '') || null;\n },\n computedResetValue: function computedResetValue() {\n return formatYMD(constrainDate(this.resetValue)) || '';\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.localYMD = formatYMD(newValue) || '';\n }), _defineProperty(_watch, \"localYMD\", function localYMD(newValue) {\n // We only update the v-model when the datepicker is open\n if (this.isVisible) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newValue) || null : newValue || '');\n }\n }), _defineProperty(_watch, \"calendarYM\", function calendarYM(newValue, oldValue) {\n // Displayed calendar month has changed\n // So possibly the calendar height has changed...\n // We need to update popper computed position\n if (newValue !== oldValue && oldValue) {\n try {\n this.$refs.control.updatePopper();\n } catch (_unused) {}\n }\n }), _watch),\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.control);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.control);\n }\n },\n // Private methods\n setAndClose: function setAndClose(ymd) {\n var _this = this;\n\n this.localYMD = ymd; // Close calendar popup, unless `noCloseOnSelect`\n\n if (!this.noCloseOnSelect) {\n this.$nextTick(function () {\n _this.$refs.control.hide(true);\n });\n }\n },\n onSelected: function onSelected(ymd) {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setAndClose(ymd);\n });\n },\n onInput: function onInput(ymd) {\n if (this.localYMD !== ymd) {\n this.localYMD = ymd;\n }\n },\n onContext: function onContext(ctx) {\n var activeYMD = ctx.activeYMD,\n isRTL = ctx.isRTL,\n locale = ctx.locale,\n selectedYMD = ctx.selectedYMD,\n selectedFormatted = ctx.selectedFormatted;\n this.isRTL = isRTL;\n this.localLocale = locale;\n this.formattedValue = selectedFormatted;\n this.localYMD = selectedYMD;\n this.activeYMD = activeYMD; // Re-emit the context event\n\n this.$emit(EVENT_NAME_CONTEXT, ctx);\n },\n onTodayButton: function onTodayButton() {\n // Set to today (or min/max if today is out of range)\n this.setAndClose(formatYMD(constrainDate(createDate(), this.min, this.max)));\n },\n onResetButton: function onResetButton() {\n this.setAndClose(this.computedResetValue);\n },\n onCloseButton: function onCloseButton() {\n this.$refs.control.hide(true);\n },\n // Menu handlers\n onShow: function onShow() {\n this.isVisible = true;\n },\n onShown: function onShown() {\n var _this3 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this3.$refs.calendar);\n\n _this3.$emit(EVENT_NAME_SHOWN);\n });\n },\n onHidden: function onHidden() {\n this.isVisible = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n // Render helpers\n defaultButtonFn: function defaultButtonFn(_ref) {\n var isHovered = _ref.isHovered,\n hasFocus = _ref.hasFocus;\n return this.$createElement(isHovered || hasFocus ? BIconCalendarFill : BIconCalendar, {\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n },\n render: function render(h) {\n var localYMD = this.localYMD,\n disabled = this.disabled,\n readonly = this.readonly,\n dark = this.dark,\n $props = this.$props,\n $scopedSlots = this.$scopedSlots;\n var placeholder = isUndefinedOrNull(this.placeholder) ? this.labelNoDateSelected : this.placeholder; // Optional footer buttons\n\n var $footer = [];\n\n if (this.todayButton) {\n var label = this.labelTodayButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.todayButtonVariant\n },\n attrs: {\n 'aria-label': label || null\n },\n on: {\n click: this.onTodayButton\n }\n }, label));\n }\n\n if (this.resetButton) {\n var _label = this.labelResetButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.resetButtonVariant\n },\n attrs: {\n 'aria-label': _label || null\n },\n on: {\n click: this.onResetButton\n }\n }, _label));\n }\n\n if (this.closeButton) {\n var _label2 = this.labelCloseButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled,\n size: 'sm',\n variant: this.closeButtonVariant\n },\n attrs: {\n 'aria-label': _label2 || null\n },\n on: {\n click: this.onCloseButton\n }\n }, _label2));\n }\n\n if ($footer.length > 0) {\n $footer = [h('div', {\n staticClass: 'b-form-date-controls d-flex flex-wrap',\n class: {\n 'justify-content-between': $footer.length > 1,\n 'justify-content-end': $footer.length < 2\n }\n }, $footer)];\n }\n\n var $calendar = h(BCalendar, {\n staticClass: 'b-form-date-calendar w-100',\n props: _objectSpread(_objectSpread({}, pluckProps(calendarProps, $props)), {}, {\n hidden: !this.isVisible,\n value: localYMD,\n valueAsDate: false,\n width: this.calendarWidth\n }),\n on: {\n selected: this.onSelected,\n input: this.onInput,\n context: this.onContext\n },\n scopedSlots: pick($scopedSlots, ['nav-prev-decade', 'nav-prev-year', 'nav-prev-month', 'nav-this-month', 'nav-next-month', 'nav-next-year', 'nav-next-decade']),\n key: 'calendar',\n ref: 'calendar'\n }, $footer);\n return h(BVFormBtnLabelControl, {\n staticClass: 'b-form-datepicker',\n props: _objectSpread(_objectSpread({}, pluckProps(formBtnLabelControlProps, $props)), {}, {\n formattedValue: localYMD ? this.formattedValue : '',\n id: this.safeId(),\n lang: this.computedLang,\n menuClass: [{\n 'bg-dark': dark,\n 'text-light': dark\n }, this.menuClass],\n placeholder: placeholder,\n rtl: this.isRTL,\n value: localYMD\n }),\n on: {\n show: this.onShow,\n shown: this.onShown,\n hidden: this.onHidden\n },\n scopedSlots: _defineProperty({}, SLOT_NAME_BUTTON_CONTENT, $scopedSlots[SLOT_NAME_BUTTON_CONTENT] || this.defaultButtonFn),\n ref: 'control'\n }, [$calendar]);\n }\n});","var _objectSpread2;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_CHECKBOX } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Constants ---\n\nvar MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nvar MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_INDETERMINATE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"switch\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"uncheckedValue\", makeProp(PROP_TYPE_ANY, false)), _defineProperty(_objectSpread2, \"value\", makeProp(PROP_TYPE_ANY, true)), _objectSpread2))), NAME_FORM_CHECKBOX); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckbox = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: null\n }\n },\n props: props,\n computed: {\n isChecked: function isChecked() {\n var value = this.value,\n checked = this.computedLocalChecked;\n return isArray(checked) ? looseIndexOf(checked, value) > -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\n};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_FILE } from '../../constants/components';\nimport { HAS_PROMISE_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DROP_PLACEHOLDER, SLOT_NAME_FILE_NAME, SLOT_NAME_PLACEHOLDER } from '../../constants/slots';\nimport { RX_EXTENSION, RX_STAR } from '../../constants/regex';\nimport { File } from '../../constants/safe-types';\nimport { from as arrayFrom, flatten, flattenDeep } from '../../utils/array';\nimport { cloneDeep } from '../../utils/clone-deep';\nimport { closest } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isFile, isFunction, isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { escapeRegExp } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formSizeProps } from '../../mixins/form-size'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: [PROP_TYPE_ARRAY, File],\n defaultValue: null,\n validator: function validator(value) {\n /* istanbul ignore next */\n if (value === '') {\n warn(VALUE_EMPTY_DEPRECATED_MSG, NAME_FORM_FILE);\n return true;\n }\n\n return isUndefinedOrNull(value) || isValidValue(value);\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar VALUE_EMPTY_DEPRECATED_MSG = 'Setting \"value\"/\"v-model\" to an empty string for reset is deprecated. Set to \"null\" instead.'; // --- Helper methods ---\n\nvar isValidValue = function isValidValue(value) {\n return isFile(value) || isArray(value) && value.every(function (v) {\n return isValidValue(v);\n });\n}; // Helper method to \"safely\" get the entry from a data-transfer item\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getDataTransferItemEntry = function getDataTransferItemEntry(item) {\n return isFunction(item.getAsEntry) ? item.getAsEntry() : isFunction(item.webkitGetAsEntry) ? item.webkitGetAsEntry() : null;\n}; // Drop handler function to get all files\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntries = function getAllFileEntries(dataTransferItemList) {\n var traverseDirectories = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return Promise.all(arrayFrom(dataTransferItemList).filter(function (item) {\n return item.kind === 'file';\n }).map(function (item) {\n var entry = getDataTransferItemEntry(item);\n\n if (entry) {\n if (entry.isDirectory && traverseDirectories) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = '';\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity));\n}; // Get all the file entries (recursive) in a directory\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntriesInDirectory = function getAllFileEntriesInDirectory(directoryReader) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return new Promise(function (resolve) {\n var entryPromises = [];\n\n var readDirectoryEntries = function readDirectoryEntries() {\n directoryReader.readEntries(function (entries) {\n if (entries.length === 0) {\n resolve(Promise.all(entryPromises).then(function (entries) {\n return flatten(entries);\n }));\n } else {\n entryPromises.push(Promise.all(entries.map(function (entry) {\n if (entry) {\n if (entry.isDirectory) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(path).concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = \"\".concat(path).concat(file.name);\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity)));\n readDirectoryEntries();\n }\n });\n };\n\n readDirectoryEntries();\n });\n}; // --- Props ---\n\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formCustomProps), formStateProps), formSizeProps), {}, {\n accept: makeProp(PROP_TYPE_STRING, ''),\n browseText: makeProp(PROP_TYPE_STRING, 'Browse'),\n // Instruct input to capture from camera\n capture: makeProp(PROP_TYPE_BOOLEAN, false),\n directory: makeProp(PROP_TYPE_BOOLEAN, false),\n dropPlaceholder: makeProp(PROP_TYPE_STRING, 'Drop files here'),\n fileNameFormatter: makeProp(PROP_TYPE_FUNCTION),\n multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n noDrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noDropPlaceholder: makeProp(PROP_TYPE_STRING, 'Not allowed'),\n // TODO:\n // Should we deprecate this and only support flat file structures?\n // Nested file structures are only supported when files are dropped\n // A Chromium \"bug\" prevents `webkitEntries` from being populated\n // on the file input's `change` event and is marked as \"WontFix\"\n // Mozilla implemented the behavior the same way as Chromium\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=138987\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1326031\n noTraverse: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING, 'No file chosen')\n})), NAME_FORM_FILE); // --- Main component ---\n// @vue/component\n\nexport var BFormFile = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_FILE,\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n files: [],\n dragging: false,\n // IE 11 doesn't respect setting `event.dataTransfer.dropEffect`,\n // so we handle it ourselves as well\n // https://stackoverflow.com/a/46915971/2744776\n dropAllowed: !this.noDrop,\n hasFocus: false\n };\n },\n computed: {\n // Convert `accept` to an array of `[{ RegExpr, isMime }, ...]`\n computedAccept: function computedAccept() {\n var accept = this.accept;\n accept = (accept || '').trim().split(/[,\\s]+/).filter(identity); // Allow any file type/extension\n\n if (accept.length === 0) {\n return null;\n }\n\n return accept.map(function (extOrType) {\n var prop = 'name';\n var startMatch = '^';\n var endMatch = '$';\n\n if (RX_EXTENSION.test(extOrType)) {\n // File extension /\\.ext$/\n startMatch = '';\n } else {\n // MIME type /^mime\\/.+$/ or /^mime\\/type$/\n prop = 'type';\n\n if (RX_STAR.test(extOrType)) {\n endMatch = '.+$'; // Remove trailing `*`\n\n extOrType = extOrType.slice(0, -1);\n }\n } // Escape all RegExp special chars\n\n\n extOrType = escapeRegExp(extOrType);\n var rx = new RegExp(\"\".concat(startMatch).concat(extOrType).concat(endMatch));\n return {\n rx: rx,\n prop: prop\n };\n });\n },\n computedCapture: function computedCapture() {\n var capture = this.capture;\n return capture === true || capture === '' ? true : capture || null;\n },\n computedAttrs: function computedAttrs() {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n form = this.form,\n computedCapture = this.computedCapture,\n accept = this.accept,\n multiple = this.multiple,\n directory = this.directory;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n type: 'file',\n id: this.safeId(),\n name: name,\n disabled: disabled,\n required: required,\n form: form || null,\n capture: computedCapture,\n accept: accept || null,\n multiple: multiple,\n directory: directory,\n webkitdirectory: directory,\n 'aria-required': required ? 'true' : null\n });\n },\n computedFileNameFormatter: function computedFileNameFormatter() {\n var fileNameFormatter = this.fileNameFormatter;\n return hasPropFunction(fileNameFormatter) ? fileNameFormatter : this.defaultFileNameFormatter;\n },\n clonedFiles: function clonedFiles() {\n return cloneDeep(this.files);\n },\n flattenedFiles: function flattenedFiles() {\n return flattenDeep(this.files);\n },\n fileNames: function fileNames() {\n return this.flattenedFiles.map(function (file) {\n return file.name;\n });\n },\n labelContent: function labelContent() {\n // Draging active\n\n /* istanbul ignore next: used by drag/drop which can't be tested easily */\n if (this.dragging && !this.noDrop) {\n return (// TODO: Add additional scope with file count, and other not-allowed reasons\n this.normalizeSlot(SLOT_NAME_DROP_PLACEHOLDER, {\n allowed: this.dropAllowed\n }) || (this.dropAllowed ? this.dropPlaceholder : this.$createElement('span', {\n staticClass: 'text-danger'\n }, this.noDropPlaceholder))\n );\n } // No file chosen\n\n\n if (this.files.length === 0) {\n return this.normalizeSlot(SLOT_NAME_PLACEHOLDER) || this.placeholder;\n }\n\n var flattenedFiles = this.flattenedFiles,\n clonedFiles = this.clonedFiles,\n fileNames = this.fileNames,\n computedFileNameFormatter = this.computedFileNameFormatter; // There is a slot for formatting the files/names\n\n if (this.hasNormalizedSlot(SLOT_NAME_FILE_NAME)) {\n return this.normalizeSlot(SLOT_NAME_FILE_NAME, {\n files: flattenedFiles,\n filesTraversed: clonedFiles,\n names: fileNames\n });\n }\n\n return computedFileNameFormatter(flattenedFiles, clonedFiles, fileNames);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!newValue || isArray(newValue) && newValue.length === 0) {\n this.reset();\n }\n }), _defineProperty(_watch, \"files\", function files(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n var multiple = this.multiple,\n noTraverse = this.noTraverse;\n var files = !multiple || noTraverse ? flattenDeep(newValue) : newValue;\n this.$emit(MODEL_EVENT_NAME, multiple ? files : files[0] || null);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_form = null;\n },\n mounted: function mounted() {\n // Listen for form reset events, to reset the file input\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOn($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n this.$_form = $form;\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $form = this.$_form;\n\n if ($form) {\n eventOff($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n methods: {\n isFileValid: function isFileValid(file) {\n if (!file) {\n return false;\n }\n\n var accept = this.computedAccept;\n return accept ? accept.some(function (a) {\n return a.rx.test(file[a.prop]);\n }) : true;\n },\n isFilesArrayValid: function isFilesArrayValid(files) {\n var _this = this;\n\n return isArray(files) ? files.every(function (file) {\n return _this.isFileValid(file);\n }) : this.isFileValid(files);\n },\n defaultFileNameFormatter: function defaultFileNameFormatter(flattenedFiles, clonedFiles, fileNames) {\n return fileNames.join(', ');\n },\n setFiles: function setFiles(files) {\n // Reset the dragging flags\n this.dropAllowed = !this.noDrop;\n this.dragging = false; // Set the selected files\n\n this.files = this.multiple ? this.directory ? files : flattenDeep(files) : flattenDeep(files).slice(0, 1);\n },\n\n /* istanbul ignore next: used by Drag/Drop */\n setInputFiles: function setInputFiles(files) {\n // Try an set the file input files array so that `required`\n // constraint works for dropped files (will fail in IE11 though)\n // To be used only when dropping files\n try {\n // Firefox < 62 workaround exploiting https://bugzilla.mozilla.org/show_bug.cgi?id=1422655\n var dataTransfer = new ClipboardEvent('').clipboardData || new DataTransfer(); // Add flattened files to temp `dataTransfer` object to get a true `FileList` array\n\n flattenDeep(cloneDeep(files)).forEach(function (file) {\n // Make sure to remove the custom `$path` attribute\n delete file.$path;\n dataTransfer.items.add(file);\n });\n this.$refs.input.files = dataTransfer.files;\n } catch (_unused) {}\n },\n reset: function reset() {\n // IE 11 doesn't support setting `$input.value` to `''` or `null`\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well\n // Wrapped in try in case IE 11 or mobile Safari crap out\n try {\n var $input = this.$refs.input;\n $input.value = '';\n $input.type = '';\n $input.type = 'file';\n } catch (_unused2) {}\n\n this.files = [];\n },\n handleFiles: function handleFiles(files) {\n var isDrop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isDrop) {\n // When dropped, make sure to filter files with the internal `accept` logic\n var filteredFiles = files.filter(this.isFilesArrayValid); // Only update files when we have any after filtering\n\n if (filteredFiles.length > 0) {\n this.setFiles(filteredFiles); // Try an set the file input's files array so that `required`\n // constraint works for dropped files (will fail in IE 11 though)\n\n this.setInputFiles(filteredFiles);\n }\n } else {\n // We always update the files from the `change` event\n this.setFiles(files);\n }\n },\n focusHandler: function focusHandler(event) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a `[type=file]:focus ~ sibling` selector issue,\n // so we add a `focus` class to get around these bugs\n if (this.plain || event.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n onChange: function onChange(event) {\n var _this2 = this;\n\n var type = event.type,\n target = event.target,\n _event$dataTransfer = event.dataTransfer,\n dataTransfer = _event$dataTransfer === void 0 ? {} : _event$dataTransfer;\n var isDrop = type === 'drop'; // Always emit original event\n\n this.$emit(EVENT_NAME_CHANGE, event);\n var items = arrayFrom(dataTransfer.items || []);\n\n if (HAS_PROMISE_SUPPORT && items.length > 0 && !isNull(getDataTransferItemEntry(items[0]))) {\n // Drop handling for modern browsers\n // Supports nested directory structures in `directory` mode\n\n /* istanbul ignore next: not supported in JSDOM */\n getAllFileEntries(items, this.directory).then(function (files) {\n return _this2.handleFiles(files, isDrop);\n });\n } else {\n // Standard file input handling (native file input change event),\n // or fallback drop mode (IE 11 / Opera) which don't support `directory` mode\n var files = arrayFrom(target.files || dataTransfer.files || []).map(function (file) {\n // Add custom `$path` property to each file (to be consistent with drop mode)\n file.$path = file.webkitRelativePath || '';\n return file;\n });\n this.handleFiles(files, isDrop);\n }\n },\n onDragenter: function onDragenter(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer2 = event.dataTransfer,\n dataTransfer = _event$dataTransfer2 === void 0 ? {} : _event$dataTransfer2; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n // Note this event fires repeatedly while the mouse is over the dropzone at\n // intervals in the milliseconds, so avoid doing much processing in here\n onDragover: function onDragover(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer3 = event.dataTransfer,\n dataTransfer = _event$dataTransfer3 === void 0 ? {} : _event$dataTransfer3; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n onDragleave: function onDragleave(event) {\n var _this3 = this;\n\n stopEvent(event);\n this.$nextTick(function () {\n _this3.dragging = false; // Reset `dropAllowed` to default\n\n _this3.dropAllowed = !_this3.noDrop;\n });\n },\n // Triggered by a file drop onto drop target\n onDrop: function onDrop(event) {\n var _this4 = this;\n\n stopEvent(event);\n this.dragging = false; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n this.$nextTick(function () {\n // Reset `dropAllowed` to default\n _this4.dropAllowed = !_this4.noDrop;\n });\n return;\n }\n\n this.onChange(event);\n }\n },\n render: function render(h) {\n var custom = this.custom,\n plain = this.plain,\n size = this.size,\n dragging = this.dragging,\n stateClass = this.stateClass,\n bvAttrs = this.bvAttrs; // Form Input\n\n var $input = h('input', {\n class: [{\n 'form-control-file': plain,\n 'custom-file-input': custom,\n focus: custom && this.hasFocus\n }, stateClass],\n // With IE 11, the input gets in the \"way\" of the drop events,\n // so we move it out of the way by putting it behind the label\n // Bootstrap v4 has it in front\n style: custom ? {\n zIndex: -5\n } : {},\n attrs: this.computedAttrs,\n on: {\n change: this.onChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.reset\n },\n ref: 'input'\n });\n\n if (plain) {\n return $input;\n } // Overlay label\n\n\n var $label = h('label', {\n staticClass: 'custom-file-label',\n class: {\n dragging: dragging\n },\n attrs: {\n for: this.safeId(),\n // This goes away in Bootstrap v5\n 'data-browse': this.browseText || null\n }\n }, [h('span', {\n staticClass: 'd-block form-file-text',\n // `pointer-events: none` is used to make sure\n // the drag events fire only on the label\n style: {\n pointerEvents: 'none'\n }\n }, [this.labelContent])]); // Return rendered custom file input\n\n return h('div', {\n staticClass: 'custom-file b-form-file',\n class: [_defineProperty({}, \"b-custom-control-\".concat(size), size), stateClass, bvAttrs.class],\n style: bvAttrs.style,\n attrs: {\n id: this.safeId('_BV_file_outer_')\n },\n on: {\n dragenter: this.onDragenter,\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n }, [$input, $label]);\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});","var Ripple = {\n bind: function(el, binding){\n\n // Default values.\n var props = {\n event: 'mousedown',\n transition: 600\n };\n\n setProps(Object.keys(binding.modifiers),props);\n\n el.addEventListener(props.event, function(event) {\n rippler(event, el, binding.value);\n });\n\n var bg = binding.value || Ripple.color || 'rgba(0, 0, 0, 0.35)';\n var zIndex = Ripple.zIndex || '9999';\n\n function rippler(event, el) {\n var target = el;\n // Get border to avoid offsetting on ripple container position\n var targetBorder = parseInt((getComputedStyle(target).borderWidth).replace('px', ''));\n\n // Get necessary variables\n var rect = target.getBoundingClientRect(),\n left = rect.left,\n top = rect.top,\n width = target.offsetWidth,\n height = target.offsetHeight,\n dx = event.clientX - left,\n dy = event.clientY - top,\n maxX = Math.max(dx, width - dx),\n maxY = Math.max(dy, height - dy),\n style = window.getComputedStyle(target),\n radius = Math.sqrt((maxX * maxX) + (maxY * maxY)),\n border = (targetBorder > 0 ) ? targetBorder : 0;\n\n // Create the ripple and its container\n var ripple = document.createElement(\"div\"),\n rippleContainer = document.createElement(\"div\");\n rippleContainer.className = 'ripple-container';\n ripple.className = 'ripple';\n\n //Styles for ripple\n ripple.style.marginTop= '0px';\n ripple.style.marginLeft= '0px';\n ripple.style.width= '1px';\n ripple.style.height= '1px';\n ripple.style.transition= 'all ' + props.transition + 'ms cubic-bezier(0.4, 0, 0.2, 1)';\n ripple.style.borderRadius= '50%';\n ripple.style.pointerEvents= 'none';\n ripple.style.position= 'relative';\n ripple.style.zIndex= zIndex;\n ripple.style.backgroundColor = bg;\n\n //Styles for rippleContainer\n rippleContainer.style.position= 'absolute';\n rippleContainer.style.left = 0 - border + 'px';\n rippleContainer.style.top = 0 - border + 'px';\n rippleContainer.style.height = '0';\n rippleContainer.style.width = '0';\n rippleContainer.style.pointerEvents = 'none';\n rippleContainer.style.overflow = 'hidden';\n\n // Store target position to change it after\n var storedTargetPosition = ((target.style.position).length > 0) ? target.style.position : getComputedStyle(target).position;\n // Change target position to relative to guarantee ripples correct positioning\n if (storedTargetPosition !== 'relative') {\n target.style.position = 'relative';\n }\n\n rippleContainer.appendChild(ripple);\n target.appendChild(rippleContainer);\n\n ripple.style.marginLeft = dx + \"px\";\n ripple.style.marginTop = dy + \"px\";\n\n // No need to set positioning because ripple should be child of target and to it's relative position.\n // rippleContainer.style.left = left + (((window.pageXOffset || document.scrollLeft) - (document.clientLeft || 0)) || 0) + \"px\";\n // rippleContainer.style.top = top + (((window.pageYOffset || document.scrollTop) - (document.clientTop || 0)) || 0) + \"px\";\n rippleContainer.style.width = width + \"px\";\n rippleContainer.style.height = height + \"px\";\n rippleContainer.style.borderTopLeftRadius = style.borderTopLeftRadius;\n rippleContainer.style.borderTopRightRadius = style.borderTopRightRadius;\n rippleContainer.style.borderBottomLeftRadius = style.borderBottomLeftRadius;\n rippleContainer.style.borderBottomRightRadius = style.borderBottomRightRadius;\n\n rippleContainer.style.direction = 'ltr';\n\n setTimeout(function() {\n ripple.style.width = radius * 2 + \"px\";\n ripple.style.height = radius * 2 + \"px\";\n ripple.style.marginLeft = dx - radius + \"px\";\n ripple.style.marginTop = dy - radius + \"px\";\n }, 0);\n\n function clearRipple() {\n setTimeout(function() {\n ripple.style.backgroundColor = \"rgba(0, 0, 0, 0)\";\n }, 250);\n\n // Timeout set to get a smooth removal of the ripple\n setTimeout(function() {\n rippleContainer.parentNode.removeChild(rippleContainer);\n }, 850);\n\n el.removeEventListener('mouseup', clearRipple, false);\n\n // After removing event set position to target to it's original one\n // Timeout it's needed to avoid jerky effect of ripple jumping out parent target\n setTimeout(function () {\n\n var clearPosition = true;\n for(var i = 0; i < target.childNodes.length; i++) {\n if(target.childNodes[i].className === 'ripple-container') {\n clearPosition = false;\n }\n }\n\n if(clearPosition) {\n if(storedTargetPosition !== 'static') {\n target.style.position = storedTargetPosition;\n } else {\n target.style.position = '';\n }\n }\n\n }, props.transition + 250)\n }\n\n if(event.type === 'mousedown') {\n el.addEventListener('mouseup', clearRipple, false);\n } else {\n clearRipple();\n }\n }\n }\n};\n\nfunction setProps(modifiers,props) {\n modifiers.forEach(function(item) {\n if(isNaN(Number(item)))\n props.event = item;\n else\n props.transition = item;\n });\n}\n\nexport default Ripple;","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});"],"sourceRoot":""}