{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./src/views/system/SystemForm.vue?26a3","webpack:///./src/@core/components/toastification/ToastificationContent.vue?5fbb","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?3fc5","webpack:///./src/@core/components/toastification/ToastificationContent.vue","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./src/@core/comp-functions/forms/form-validation.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./src/views/system/SystemForm.vue?c0e7","webpack:///./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover.js","webpack:///./node_modules/bootstrap-vue/esm/directives/popover/popover.js","webpack:///./src/views/system/useSystemForm.js","webpack:///src/views/system/SystemForm.vue","webpack:///./src/views/system/SystemForm.vue?6e8c","webpack:///./src/views/system/SystemForm.vue","webpack:///./node_modules/vee-validate/dist/vee-validate.esm.js","webpack:///./node_modules/bootstrap-vue/esm/utils/css-escape.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/form-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack:///./node_modules/vee-validate/dist/rules.js","webpack:///./src/@core/utils/validations/validators.js","webpack:///./src/@core/utils/validations/validations.js","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?6534","webpack:///./node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack:///./node_modules/vue-ripple-directive/src/ripple.js"],"names":["props","id","inline","novalidate","validated","BForm","extend","name","functional","render","h","_ref","data","children","class","attrs","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","callRegExpExec","regexpExec","fails","arrayPush","push","min","Math","MAX_UINT32","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","maybeCallNative","internalSplit","split","length","separator","limit","string","String","this","lim","undefined","call","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","slice","index","apply","test","O","splitter","regexp","res","done","value","rx","S","C","unicodeMatching","p","q","A","e","z","i","_vm","_h","$createElement","_c","_self","staticClass","variant","icon","domProps","_s","title","_e","text","on","$event","$emit","hideClose","staticRenderFns","components","BAvatar","type","default","Boolean","component","$","notARegExp","correctIsRegExpLogic","target","proto","forced","includes","searchString","indexOf","arguments","isObject","classof","wellKnownSymbol","MATCH","module","exports","it","formValidation","resetFormData","clearFormData","refFormObserver","ref","resetObserver","reset","getValidationState","dirty","fieldRequired","required","changed","valid","result","resetForm","nextTick","clearForm","TypeError","systemId","scopedSlots","_u","key","fn","handleSubmit","preventDefault","fncSubmit","$store","state","app","windowWidth","_v","proxy","validationContext","model","callback","$$v","systemName","expression","errors","isLocalServer","systemAlias","fncAddSystemParent","_l","item","style","dataSystemParent","Number","staticStyle","$set","directives","rawName","modifiers","splice","overlaySubmit","path","BVPopoverTemplate","extends","computed","templateType","methods","renderTemplate","content","$title","$content","titleDomProps","html","innerHTML","contentDomProps","templateClasses","templateAttributes","templateListeners","BVPopover","getTemplate","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","BV_POPOVER","DefaultTrigger","validTriggers","focus","hover","click","blur","manual","htmlRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","bindings","vnode","config","trigger","placement","fallbackPlacement","container","animation","offset","disabled","delay","boundary","boundaryPadding","customClass","arg","concat","show","hide","mod","selectedTriggers","identity","join","trim","toLowerCase","el","$parent","context","parent","_scopeId","__bv_prev_data__","$on","updateData","triggers","noFade","oldData","newData","prop","removePopover","$destroy","VBPopover","bind","componentUpdated","$nextTick","unbind","useSystemForm","toast","useToast","router","currentRoute","params","tableTitle","payload","system_id","system_name","system_alias","system_parent","axios","put","requestData","then","ToastificationContent","catch","error","post","system_parent_id","system_parent_name","system_parent_alias","getServerName","window","location","host","fncFetchDataEdit","get","response","responseData","status","system_detail","detail","onMounted","BCard","BRow","BCol","BFormGroup","BFormInput","BOverlay","BButton","BTableSimple","BThead","BTr","BTh","BTd","draggable","ValidationProvider","ValidationObserver","Ripple","setup","__assign","assign","t","s","n","prototype","hasOwnProperty","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","rejected","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","__spreadArrays","il","r","Array","k","a","j","jl","isNaN","isNullOrUndefined","isEmptyArray","arr","isArray","isRefEqual","lhs","rhs","isEqual","every","isSpecified","val","isCallable","isLocator","__locatorRef","findIndex","arrayLike","predicate","array","toArray","find","idx","collection","from","_copyArray","values","map","merge","createFlags","untouched","touched","pristine","invalid","pending","passed","failed","debounce","wait","token","cancelled","args","_i","later","timeout","clearTimeout","setTimeout","warn","message","console","interpolate","template","replace","RULES","normalizeSchema","schema","_a","param","RuleContainer","rule","lazy","computesRequired","isLazy","isRequireRule","getRuleDefinition","ruleName","guardExtend","validate","validator","Error","DEFAULT_CONFIG","defaultMessage","skipOptional","classes","bails","mode","useConstraintAttrs","currentConfig","getConfig","setConfig","newConf","normalizeRules","rules","acc","_$$isNormalized","reduce","prev","curr","buildParams","parsedRule","parseRule","provided","ruleSchema","definedParams","lastDefinedParam_1","options","isTarget","createLocator","cast","castFn","locator","crossTable","extractLocators","shouldBail","skipIfEmpty","field","failedRules","regenerateMap","forceRequired","names","customMessages","_validate","msg","_b","isInitial","shouldSkip","_d","_shouldSkip","_test","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","locale","dictionary","format","_f","_g","fieldContainer","fields","messageContainer","messages","hasRule","localize","isEvent","evt","Event","srcElement","normalizeEventValue","input","files","_vModifiers","number","valueAsNumber","parseFloat","trimmedValue","isTextInput","elm","tag","findModel","nonStandardVNodeData","d","findValue","findModelConfig","componentOptions","propsData","propsDataWithValue","extractChildren","findInputNodes","nodes","node","candidates","Ctor","mergeVNodeListeners","eventName","handler","fns","invoker","addNativeNodeListener","addComponentNodeListener","listeners","addVNodeListener","getInputEventName","event_1","event","isHTMLNode","resolveTextualRules","email","pattern","regex","maxlength","max","minlength","min_value","max_value","resolveRules","htmlTags","normalizeChildren","slotProps","$scopedSlots","$slots","shouldValidate","ctx","_ignoreImmediate","immediate","normalizedEvents","_needsValidation","initialized","createValidationCtx","ariaInput","ariaMsg","onRenderUpdate","vm","initialValue","validateNow","triggerThreadSafeValidation","validateSilent","$once","computeModeSetting","compute","pendingPromise","_pendingValidation","applyResult","createCommonHandlers","$veeOnInput","syncValue","setFlags","onInput","$veeOnBlur","onBlur","onValidate","$veeHandler","$veeDebounce","_pendingReset","addListeners","_inputEventName","PROVIDER_COUNTER","fieldName","defaultValues","isActive","inject","$_veeObserver","$vnode","createObserver","vid","Function","slim","detectInput","watch","deep","oldVal","fieldDeps","_this","normalizedRules","deps","dep","depName","watchCrossFieldDep","_resolvedRules","some","computeClassObj","mounted","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","provide","created","register","onChange","computeObserverState","unregister","prepareSlotProps","$listeners","subscriber","kind","o","provider","$delete","validateWithInfo","silent","results","isValid","all","obs","cb","errorArr","observer","passes","vms","method","escapeChar","firstCharCode","charCodeAt","char","charCode","toString","BFormRow","textVariant","BFormText","ariaLive","forceShow","role","tooltip","BFormInvalidFeedback","BFormValidFeedback","INPUTS","INPUT_SELECTOR","LEGEND_INTERACTIVE_ELEMENTS","breakpoint","description","feedbackAriaLive","invalidFeedback","labelClass","labelFor","labelSize","labelSrOnly","validFeedback","mixins","ariaDescribedby","contentColProps","getColProps","$props","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","newValue","oldValue","updateAriaDescribedby","prefix","propValue","$input","$refs","attr","newIds","oldIds","ids","onLegendClick","tagName","computedState","normalizeSlot","safeId","isFieldset","$label","labelContent","labelId","labelTag","for","tabindex","$invalidFeedback","invalidFeedbackContent","invalidFeedbackId","$validFeedback","validFeedbackContent","validFeedbackId","$description","descriptionContent","descriptionId","stateClass","computedAriaInvalid","noop","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","arrowPadding","interactive","BVTooltip","activeTrigger","localShow","computedId","computedDelay","math","computedTriggers","sort","isWithActiveTrigger","computedTemplateData","newTriggers","oldTriggers","unListen","listen","handleTemplateUpdate","disable","enable","_this2","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","getTarget","document","scopeId","updated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","_this3","titleUpdated","fixTitle","createTemplateAndShow","getContainer","Template","$tip","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","$mount","appendChild","createElement","hideTemplate","clearActiveTriggers","localPlacementTarget","_unused","removeAriaDescribedby","restoreTitle","getTemplateElement","$el","_this4","dropdownOpen","showEvt","buildEvent","cancelable","emitEvent","defaultPrevented","addAriaDescribedby","force","tip","hideEvt","prevHoverState","leave","getTargetId","isInModal","isDropdown","clearInterval","desc","_this5","relatedTarget","componentId","vueTarget","bvEvent","emitOnRoot","_this6","setRootListener","_this7","events","$root","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","parentNode","_this9","documentElement","__vue__","enter","eventTarget","currentTarget","toggle","_this10","_this11","alpha","en","cs","da","de","es","fa","fr","lt","nl","hu","pl","pt","ro","ru","sk","sr","sv","tr","uk","ar","az","alphanumeric","alphaDash","loc","alpha$1","validate$1","params$1","alpha_dash","validate$2","params$2","alpha_num","validate$4","params$4","between","validate$5","params$5","confirmed","validate$6","strVal","params$6","digits","validate$8","multiple","re","emailStr","params$8","validate$d","integer","validate$g","params$b","validate$k","params$e","validate$n","params$g","validate$o","allowFalse","params$h","validatorPositive","validatorPassword","password","regExp","validPassword","validatorCreditCard","creditnum","cRegExp","validCreditCard","validatorUrlValidator","rule_required","rule_email","rule_min","rule_confirmed","rule_regex","rule_between","rule_alpha","rule_integer","rule_digits","rule_alpha_dash","rule_alpha_num","rule_length","_typeof","constructor","_extends","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arr2","iter","version","userAgent","navigator","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","getParentOrHost","nodeType","closest","includeCTX","_throttleTimeout","R_SPACE","toggleClass","classList","css","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","list","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","getBoundingClientRect","elRect","top","left","bottom","right","height","width","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","visible","getChild","childNum","currentChild","display","Sortable","ghost","dragged","lastChild","last","lastElementChild","previousElementSibling","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","indexOfObject","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","dst","src","isRectEqual","rect1","rect2","round","throttle","ms","cancelThrottle","scrollBy","x","Polymer","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","Date","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","child","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animate","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","repaint","easing","animated","offsetWidth","sqrt","pow","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","sortable","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","to","pullMode","lastPutMode","allEventProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","clear","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","ret","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","revertClone","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","store","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsLast","spacer","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","str","href","sum","_saveInputCheckedState","root","checked","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","dx","dy","b","c","cssMatrix","_hideClone","cloneId","insertBefore","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","removeChild","save","order","getAttribute","items","set","destroy","querySelectorAll","removeAttribute","utils","is","cancelNextTick","detectDirection","element","_len","_key","create","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","AutoScrollPlugin","AutoScroll","scroll","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","_ref2","dragOverBubble","drop","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","pid","lastSwapEl","isFallback","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","swap","prevSwapEl","_ref3","swapNodes","swapItem","n1","n2","i1","i2","p1","p2","isEqualNode","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","removeMultiDragElements","dragOver","_ref8","_ref9","insertMultiDragElements","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","currentIndex","multiDragIndex","update","nullingGlobal","destroyGlobal","shift","select","deselect","oldIndicies","newIndicies","clones","clonesInserted","elementsInserted","METHOD_NAME","error1","error2","factory","self","__WEBPACK_EXTERNAL_MODULE_a352__","modules","installedModules","__webpack_require__","moduleId","l","m","getter","toStringTag","__esModule","ns","property","LIBRARY","$export","redefine","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","F","toInteger","defined","TO_STRING","that","pos","at","global","$keys","enumBugKeys","dP","getKeys","Properties","wks","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","strfn","rxfn","cof","ARG","tryGet","T","B","callee","has","SRC","$toString","TPL","inspectSource","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","gt","contentWindow","open","write","close","uid","USE_SYMBOL","$exports","INCLUDES","createDesc","toObject","ObjectProto","descriptor","ceil","bitmap","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","core","SHARED","copyright","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","builtinExec","shared","$includes","IObject","valueOf","gOPS","pIE","$assign","K","aLen","getSymbols","isEnum","__g","def","stat","__e","IE8_DOM_DEFINE","toPrimitive","Attributes","aFunction","UNSCOPABLES","ArrayProto","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","fullUnicode","matchStr","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","ch","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","__webpack_exports__","insertNodeAt","camelize","removeNode","getConsole","cached","cache","hit","parentElement","fatherNode","refNode","px","random","addToUnscopables","iterated","_t","_k","Arguments","arrayIndexOf","STARTS_WITH","$startsWith","startsWith","search","currentScript","scripts","stack","readyState","setPublicPath_i","_arrayWithHoles","_iterableToArrayLimit","_arr","_n","_arrayLikeToArray","len","_unsupportedIterableToArray","minLen","_nonIterableRest","_slicedToArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","buildAttribute","propName","computeVmIndex","vnodes","elt","_computeIndexes","slots","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","ind","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","vuedraggable_isTransition","_slots","getSlot","slot","scopedSlot","computeChildrenAndOffsets","headerOffset","header","footer","getComponentAttributes","$attrs","componentData","attributes","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","draggingElement","noTransitionOnDrag","original","move","draggableComponent","inheritAttrs","transitionMode","noneFunctionalComponentMode","_computeChildrenAndOf","getTag","getIsFunctional","optionsAdded","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","fnOptions","_vnode","getChildrenNodes","$children","rawNodes","visibleIndexes","getUnderlyingVm","htmlElt","getUnderlyingPotencialDraggableComponent","vue","$options","_componentTag","emitChanges","alterList","onList","newList","spliceList","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedInList","draggedContext","futureIndex","sendEvt","onDragEnd","Vue","vuedraggable","arrayMethodUsesToLength","USES_TO_LENGTH","ACCESSORS","1","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","BVPopper","attachment","getAttachment","popperConfig","getOffset","flip","behavior","arrow","preventOverflow","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","$_popper","popperCreate","handleDestroy","beforeMount","updatePopper","destroyPopper","destroyed","arrowOffset","scheduleUpdate","appear","beforeEnter","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","noninteractive","scopedStyleAttrs","mouseenter","mouseleave","focusin","focusout","binding","transition","setProps","rippler","bg","color","zIndex","targetBorder","offsetHeight","maxX","maxY","radius","border","ripple","rippleContainer","marginTop","borderRadius","backgroundColor","overflow","storedTargetPosition","clearRipple","clearPosition","childNodes","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],"mappings":"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","file":"js/chunk-6996763a.0f09699e.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});","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemForm.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toastification\"},[_c('div',{staticClass:\"d-flex align-items-start\"},[_c('b-avatar',{staticClass:\"mr-75 flex-shrink-0\",attrs:{\"variant\":_vm.variant,\"size\":\"1.8rem\"}},[_c('feather-icon',{attrs:{\"icon\":_vm.icon,\"size\":\"15\"}})],1),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',[(_vm.title)?_c('h5',{staticClass:\"mb-0 font-weight-bolder toastification-title\",class:(\"text-\" + _vm.variant),domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e(),(_vm.text)?_c('small',{staticClass:\"d-inline-block text-body\",domProps:{\"textContent\":_vm._s(_vm.text)}}):_vm._e()]),_c('span',{staticClass:\"cursor-pointer toastification-close-icon ml-auto \",on:{\"click\":function($event){return _vm.$emit('close-toast')}}},[(!_vm.hideClose)?_c('feather-icon',{staticClass:\"text-body\",attrs:{\"icon\":\"XIcon\"}}):_vm._e()],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToastificationContent.vue?vue&type=template&id=55dd3057&scoped=true&\"\nimport script from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nexport * from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55dd3057\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","import { ref, nextTick } from '@vue/composition-api'\n\n// ===========================================================\n// ! This is coupled with \"veeValidate\" plugin\n// ===========================================================\n\nexport default function formValidation(resetFormData, clearFormData = () => {}) {\n // ------------------------------------------------\n // refFormObserver\n // ! This is for veeValidate Observer\n // * Used for veeValidate form observer\n // ------------------------------------------------\n const refFormObserver = ref(null)\n\n // ------------------------------------------------\n // resetObserver\n // ! This function is coupled with veeValidate\n // * It resets form observer\n // ------------------------------------------------\n const resetObserver = () => {\n refFormObserver.value.reset()\n }\n\n // ------------------------------------------------\n // getValidationState\n // ! This function is coupled with veeValidate\n // * It returns true/false based on validation\n // ------------------------------------------------\n // eslint-disable-next-line object-curly-newline\n const getValidationState = ({ dirty, validated, required: fieldRequired, changed, valid = null }) => {\n const result = dirty || validated ? valid : null\n return !fieldRequired && !changed ? null : result\n }\n\n // ------------------------------------------------\n // resetForm\n // ! This function is coupled with veeValidate\n // * This uses resetFormData arg to reset form data\n // ------------------------------------------------\n const resetForm = () => {\n resetFormData()\n nextTick(() => {\n resetObserver()\n })\n }\n\n // ------------------------------------------------\n // clearForm\n // ! This function is coupled with veeValidate\n // * This uses clearFormData arg to reset form data\n // ------------------------------------------------\n const clearForm = () => {\n clearFormData()\n nextTick(() => {\n resetObserver()\n })\n }\n\n return {\n refFormObserver,\n resetObserver,\n getValidationState,\n resetForm,\n clearForm,\n }\n}\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{staticClass:\"form-system\",attrs:{\"title\":[!_vm.systemId ? 'เพิ่ม' : 'แก้ไข'] + 'ข้อมูลระบบ'}},[_c('validation-observer',{ref:\"refFormObserver\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar handleSubmit = ref.handleSubmit;\nreturn [_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.fncSubmit)},\"reset\":function($event){$event.preventDefault();return _vm.resetForm.apply(null, arguments)}}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-row',{staticClass:\"justify-content-md-center\"},[_c('b-col',{attrs:{\"cols\":_vm.$store.state.app.windowWidth >= 1360 ? 8 : 12}},[_c('b-form-group',{attrs:{\"label-cols-md\":\"2\",\"label-cols-sm\":\"3\",\"label-align-md\":\"right\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" ชื่อระบบ \"),_c('span',{staticClass:\"text-danger required-font-style\"},[_vm._v(\"*\")])]},proxy:true}],null,true)},[_c('validation-provider',{attrs:{\"name\":\"systemName\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-input',{attrs:{\"id\":\"systemName\",\"trim\":\"\",\"placeholder\":\"ชื่อระบบ\",\"autocomplete\":\"off\",\"state\":_vm.getValidationState(validationContext)},model:{value:(_vm.systemName),callback:function ($$v) {_vm.systemName=$$v},expression:\"systemName\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(validationContext.errors[0] ? 'กรุณากรอกชื่อระบบ' : '')+\" \")])]}}],null,true)})],1)],1)],1),_c('b-row',{class:(\"justify-content-md-center \" + (_vm.isLocalServer ? 'delete-margin' : ''))},[_c('b-col',{attrs:{\"cols\":_vm.$store.state.app.windowWidth >= 1360 ? 8 : 12}},[_c('b-form-group',{attrs:{\"label-cols-md\":\"2\",\"label-cols-sm\":\"3\",\"label-align-md\":\"right\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" นามแฝง \"),_c('span',{staticClass:\"text-danger required-font-style\"},[_vm._v(\"*\")])]},proxy:true}],null,true)},[_c('validation-provider',{attrs:{\"name\":\"systemAlias\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-input',{attrs:{\"id\":\"systemAlias\",\"trim\":\"\",\"placeholder\":\"นามแฝง\",\"autocomplete\":\"off\",\"state\":_vm.getValidationState(validationContext)},model:{value:(_vm.systemAlias),callback:function ($$v) {_vm.systemAlias=$$v},expression:\"systemAlias\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(validationContext.errors[0] ? 'กรุณากรอกนามแฝง' : '')+\" \")])]}}],null,true)})],1)],1)],1),_c('b-row',{class:(\"justify-content-md-center \" + (_vm.isLocalServer ? 'delete-margin' : ''))},[_c('b-col',{attrs:{\"cols\":_vm.$store.state.app.windowWidth >= 1360 ? 8 : 12}},[_c('b-form-group',{attrs:{\"label-cols-md\":\"2\",\"label-cols-sm\":\"3\",\"label-align-md\":\"right\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" ระบบย่อย \")]},proxy:true}],null,true)},[_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\"},on:{\"click\":function($event){return _vm.fncAddSystemParent()}}},[_vm._v(\" เพิ่มระบบย่อย \")]),_c('b-table-simple',{staticClass:\"position-relative mt-1\",attrs:{\"small\":\"\",\"caption-top\":\"\",\"responsive\":\"\"}},[_c('b-thead',{attrs:{\"head-variant\":\"light\"}},[_c('b-tr',_vm._l((_vm.tableTitle),function(item,index){return _c('b-th',{key:index,style:(item.style ? item.style : '')},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1)],1),_c('draggable',{attrs:{\"tag\":\"tbody\"},model:{value:(_vm.dataSystemParent),callback:function ($$v) {_vm.dataSystemParent=$$v},expression:\"dataSystemParent\"}},[(_vm.dataSystemParent.length)?_vm._l((_vm.dataSystemParent),function(item,index){return _c('b-tr',{key:index},[_c('b-td',[_vm._v(\" \"+_vm._s(Number(index) + 1)+\" \")]),_c('b-td',{staticStyle:{\"padding-left\":\"0rem\"}},[_c('b-form-input',{attrs:{\"placeholder\":\"ชื่อระบบย่อย\"},model:{value:(item.system_parent_name),callback:function ($$v) {_vm.$set(item, \"system_parent_name\", $$v)},expression:\"item.system_parent_name\"}})],1),_c('b-td',{staticStyle:{\"padding-left\":\"0rem\"}},[_c('b-form-input',{attrs:{\"placeholder\":\"นามแฝงระบบย่อย\"},model:{value:(item.system_parent_alias),callback:function ($$v) {_vm.$set(item, \"system_parent_alias\", $$v)},expression:\"item.system_parent_alias\"}})],1),_c('b-td',[_c('feather-icon',{directives:[{name:\"b-popover\",rawName:\"v-b-popover.hover.top\",value:('ลบข้อมูล'),expression:\"'ลบข้อมูล'\",modifiers:{\"hover\":true,\"top\":true}},{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"cursor-pointer\",attrs:{\"icon\":\"TrashIcon\",\"size\":\"16\"},on:{\"click\":function($event){return _vm.dataSystemParent.splice(index, 1)}}})],1)],1)}):_vm._e()],2)],1)],1)],1)],1),_c('b-row',{class:(\"justify-content-md-center \" + (_vm.isLocalServer ? 'delete-margin' : ''))},[_c('b-col',{attrs:{\"cols\":_vm.$store.state.app.windowWidth >= 1360 ? 8 : 12}},[_c('b-form-group',{attrs:{\"label-cols-md\":\"2\",\"label-cols-sm\":\"3\",\"label-align-md\":\"right\"}},[_c('div',{staticClass:\"d-flex mt-2\"},[_c('b-overlay',{staticClass:\"d-inline-block\",attrs:{\"show\":_vm.overlaySubmit,\"rounded\":\"\",\"opacity\":\"0.6\",\"spinner-small\":\"\",\"spinner-variant\":\"primary\"}},[_c('b-button',{staticClass:\"mr-2\",attrs:{\"variant\":\"primary\",\"type\":\"submit\"}},[_c('feather-icon',{attrs:{\"icon\":\"SaveIcon\"}}),_vm._v(\" บันทึกข้อมูล \")],1)],1),_c('b-button',{attrs:{\"type\":\"button\",\"variant\":\"outline-secondary\",\"to\":{ path: '/system' }}},[_vm._v(\" ยกเลิก \")])],1)])],1)],1)],1)],1)],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue } from '../../../vue';\nimport { NAME_POPOVER_TEMPLATE } from '../../../constants/components';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { BVTooltipTemplate } from '../../tooltip/helpers/bv-tooltip-template'; // @vue/component\n\nexport var BVPopoverTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_TEMPLATE,\n extends: BVTooltipTemplate,\n computed: {\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title,\n content = this.content; // Title and content could be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title;\n var $content = isFunction(content) ? content({}) : content; // Directive usage only\n\n var titleDomProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n var contentDomProps = this.html && !isFunction(content) ? {\n innerHTML: content\n } : {};\n return h('div', {\n staticClass: 'popover b-popover',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), isUndefinedOrNull($title) || $title === '' ?\n /* istanbul ignore next */\n h() : h('h3', {\n staticClass: 'popover-header',\n domProps: titleDomProps\n }, [$title]), isUndefinedOrNull($content) || $content === '' ?\n /* istanbul ignore next */\n h() : h('div', {\n staticClass: 'popover-body',\n domProps: contentDomProps\n }, [$content])]);\n }\n }\n});","// Popover \"Class\" (Built as a renderless Vue instance)\n// Inherits from BVTooltip\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { Vue } from '../../../vue';\nimport { NAME_POPOVER_HELPER } from '../../../constants/components';\nimport { BVTooltip } from '../../tooltip/helpers/bv-tooltip';\nimport { BVPopoverTemplate } from './bv-popover-template'; // @vue/component\n\nexport var BVPopover = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_HELPER,\n extends: BVTooltip,\n computed: {\n // Overwrites BVTooltip\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n getTemplate: function getTemplate() {\n // Overwrites BVTooltip\n return BVPopoverTemplate;\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 { NAME_POPOVER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVPopover } from '../../components/popover/helpers/bv-popover'; // Key which we use to store tooltip object on element\n\nvar BV_POPOVER = '__BV_Popover__'; // Default trigger\n\nvar DefaultTrigger = 'click'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Popover config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n content: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'right',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n disabled: false,\n id: null,\n html: false,\n delay: getComponentConfig(NAME_POPOVER, 'delay', 50),\n boundary: String(getComponentConfig(NAME_POPOVER, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_POPOVER, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_POPOVER, 'variant'),\n customClass: getComponentConfig(NAME_POPOVER, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is popover content (html optionally supported)\n config.content = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Content generator function\n config.content = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title/content allows HTML\n config.html = true;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of popover\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of popover\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n }\n\n return config;\n}; // Add or update Popover on our element\n\n\nvar applyPopover = function applyPopover(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_POPOVER]) {\n var $parent = vnode.context;\n el[BV_POPOVER] = new BVPopover({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_POPOVER].__bv_prev_data__ = {};\n el[BV_POPOVER].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the popover, we update the title\n // and content if they are functions\n var data = {};\n\n if (isFunction(config.title)) {\n data.title = config.title(el);\n }\n\n if (isFunction(config.content)) {\n data.content = config.content(el);\n }\n\n if (keys(data).length > 0) {\n el[BV_POPOVER].updateData(data);\n }\n });\n }\n\n var data = {\n title: config.title,\n content: config.content,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_POPOVER].__bv_prev_data__;\n el[BV_POPOVER].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // If title/content is a function, we execute it here\n newData[prop] = (prop === 'title' || prop === 'content') && isFunction(data[prop]) ?\n /* istanbul ignore next */\n data[prop](el) : data[prop];\n }\n });\n el[BV_POPOVER].updateData(newData);\n }\n}; // Remove Popover from our element\n\n\nvar removePopover = function removePopover(el) {\n if (el[BV_POPOVER]) {\n el[BV_POPOVER].$destroy();\n el[BV_POPOVER] = null;\n }\n\n delete el[BV_POPOVER];\n}; // Export our directive\n\n\nexport var VBPopover = {\n bind: function bind(el, bindings, vnode) {\n applyPopover(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent endless render/update loops\n vnode.context.$nextTick(function () {\n applyPopover(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removePopover(el);\n }\n};","import { ref, computed, onMounted } from '@vue/composition-api'\r\nimport router from '@/router'\r\nimport axios from '@axios'\r\n\r\n// Notification\r\nimport { useToast } from 'vue-toastification/composition'\r\nimport ToastificationContent from '@core/components/toastification/ToastificationContent.vue'\r\n\r\nexport default function useSystemForm() {\r\n // Notification\r\n const toast = useToast()\r\n\r\n // vairable index\r\n const systemId = router.currentRoute.params.id\r\n\r\n // variable table\r\n const tableTitle = [\r\n { title: 'ลำดับ', style: 'min-width: 80px; width:80px;' },\r\n { title: 'ชื่อระบบย่อย', style: 'min-width: 300px;' },\r\n { title: 'นามแฝงย่อย', style: 'min-width: 280px; width:280px;' },\r\n { title: 'เครื่องมือ', style: 'min-width: 80px; width:80px;' },\r\n ]\r\n\r\n // variable input\r\n const systemName = ref(null)\r\n const systemAlias = ref(null)\r\n\r\n // variable data\r\n const dataSystemParent = ref([])\r\n\r\n // loading animation\r\n const overlaySubmit = ref(false)\r\n\r\n const fncSubmit = () => {\r\n overlaySubmit.value = true\r\n\r\n const payload = {\r\n system_id: systemId,\r\n system_name: systemName.value,\r\n system_alias: systemAlias.value,\r\n system_parent: dataSystemParent.value,\r\n }\r\n\r\n if (!systemId) delete payload.system_id\r\n\r\n if (!systemId) {\r\n axios\r\n .post('/System', { requestData: payload })\r\n .then(() => {\r\n router.push('/system')\r\n\r\n toast({\r\n component: ToastificationContent,\r\n props: {\r\n title: 'แจ้งเตือน',\r\n icon: 'CheckCircleIcon',\r\n variant: 'success',\r\n text: 'บันทึกข้อมูลระบบสำเร็จ',\r\n },\r\n })\r\n\r\n overlaySubmit.value = false\r\n })\r\n .catch(error => {\r\n toast({\r\n component: ToastificationContent,\r\n props: {\r\n title: 'แจ้งเตือน',\r\n text: `พบข้อผิดพลาดในการบันทึกข้อมูล [${error}]`,\r\n icon: 'AlertTriangleIcon',\r\n variant: 'danger',\r\n },\r\n })\r\n\r\n overlaySubmit.value = false\r\n })\r\n } else {\r\n axios\r\n .put('/System', { requestData: payload })\r\n .then(() => {\r\n router.push('/system')\r\n\r\n toast({\r\n component: ToastificationContent,\r\n props: {\r\n title: 'แจ้งเตือน',\r\n icon: 'CheckCircleIcon',\r\n variant: 'success',\r\n text: 'แก้ไขข้อมูลระบบสำเร็จ',\r\n },\r\n })\r\n\r\n overlaySubmit.value = false\r\n })\r\n .catch(error => {\r\n toast({\r\n component: ToastificationContent,\r\n props: {\r\n title: 'แจ้งเตือน',\r\n text: `พบข้อผิดพลาดในการแก้ไขข้อมูล [${error}]`,\r\n icon: 'AlertTriangleIcon',\r\n variant: 'danger',\r\n },\r\n })\r\n\r\n overlaySubmit.value = false\r\n })\r\n }\r\n }\r\n\r\n const fncAddSystemParent = () => {\r\n dataSystemParent.value.push({\r\n system_parent_id: null,\r\n system_parent_name: null,\r\n system_parent_alias: null,\r\n })\r\n }\r\n\r\n // helper\r\n const isLocalServer = computed(() => {\r\n const getServerName = window.location.host.includes(':') ? window.location.host.split(':')[0] : window.location.host\r\n return getServerName === 'localhost'\r\n })\r\n\r\n const fncFetchDataEdit = () => {\r\n axios\r\n .get(`/System/${systemId}`)\r\n .then(response => {\r\n const { responseData } = response.data\r\n\r\n if (response.data.status) {\r\n systemName.value = responseData.system_name\r\n systemAlias.value = responseData.system_alias\r\n dataSystemParent.value = responseData.system_detail\r\n } else {\r\n toast({\r\n component: ToastificationContent,\r\n props: {\r\n title: 'แจ้งเตือน',\r\n text: `พบข้อผิดพลาด [${responseData.detail}]`,\r\n icon: 'AlertTriangleIcon',\r\n variant: 'danger',\r\n },\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n toast({\r\n component: ToastificationContent,\r\n props: {\r\n title: 'แจ้งเตือน',\r\n text: `พบข้อผิดพลาด [${error}]`,\r\n icon: 'AlertTriangleIcon',\r\n variant: 'danger',\r\n },\r\n })\r\n })\r\n }\r\n\r\n onMounted(() => {\r\n if (systemId) fncFetchDataEdit()\r\n })\r\n\r\n return {\r\n // variable index\r\n systemId,\r\n\r\n // variable table\r\n tableTitle,\r\n\r\n // variable input\r\n systemName,\r\n systemAlias,\r\n\r\n // variable data\r\n dataSystemParent,\r\n\r\n // loading animation\r\n overlaySubmit,\r\n\r\n // function\r\n fncSubmit,\r\n fncAddSystemParent,\r\n\r\n // helper\r\n isLocalServer,\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n = 1360 ? 8 : 12\"\r\n >\r\n \r\n \r\n ชื่อระบบ *\r\n \r\n \r\n \r\n \r\n {{ validationContext.errors[0] ? 'กรุณากรอกชื่อระบบ' : '' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n = 1360 ? 8 : 12\"\r\n >\r\n \r\n \r\n นามแฝง *\r\n \r\n \r\n \r\n \r\n {{ validationContext.errors[0] ? 'กรุณากรอกนามแฝง' : '' }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n = 1360 ? 8 : 12\"\r\n >\r\n \r\n \r\n ระบบย่อย\r\n \r\n \r\n เพิ่มระบบย่อย\r\n \r\n \r\n \r\n \r\n \r\n {{ item.title }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ Number(index) + 1 }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n = 1360 ? 8 : 12\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n บันทึกข้อมูล\r\n \r\n \r\n \r\n ยกเลิก\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SystemForm.vue?vue&type=template&id=1ceeccc7&\"\nimport script from \"./SystemForm.vue?vue&type=script&lang=js&\"\nexport * from \"./SystemForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SystemForm.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","/**\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","import { toString } from './string';\n\nvar escapeChar = function escapeChar(value) {\n return '\\\\' + value;\n}; // The `cssEscape()` util is based on this `CSS.escape()` polyfill:\n// https://github.com/mathiasbynens/CSS.escape\n\n\nexport var cssEscape = function cssEscape(value) {\n value = toString(value);\n var length = value.length;\n var firstCharCode = value.charCodeAt(0);\n return value.split('').reduce(function (result, char, index) {\n var charCode = value.charCodeAt(index); // If the character is NULL (U+0000), use (U+FFFD) as replacement\n\n if (charCode === 0x0000) {\n return result + \"\\uFFFD\";\n } // If the character ...\n\n\n if ( // ... is U+007F OR\n charCode === 0x007f || // ... is in the range [\\1-\\1F] (U+0001 to U+001F) OR ...\n charCode >= 0x0001 && charCode <= 0x001f || // ... is the first character and is in the range [0-9] (U+0030 to U+0039) OR ...\n index === 0 && charCode >= 0x0030 && charCode <= 0x0039 || // ... is the second character and is in the range [0-9] (U+0030 to U+0039)\n // and the first character is a `-` (U+002D) ...\n index === 1 && charCode >= 0x0030 && charCode <= 0x0039 && firstCharCode === 0x002d) {\n // ... https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n return result + escapeChar(\"\".concat(charCode.toString(16), \" \"));\n } // If the character ...\n\n\n if ( // ... is the first character AND ...\n index === 0 && // ... is a `-` (U+002D) AND ...\n charCode === 0x002d && // ... there is no second character ...\n length === 1) {\n // ... use the escaped character\n return result + escapeChar(char);\n } // If the character ...\n\n\n if ( // ... is greater than or equal to U+0080 OR ...\n charCode >= 0x0080 || // ... is `-` (U+002D) OR ...\n charCode === 0x002d || // ... is `_` (U+005F) OR ...\n charCode === 0x005f || // ... is in the range [0-9] (U+0030 to U+0039) OR ...\n charCode >= 0x0030 && charCode <= 0x0039 || // ... is in the range [A-Z] (U+0041 to U+005A) OR ...\n charCode >= 0x0041 && charCode <= 0x005a || // ... is in the range [a-z] (U+0061 to U+007A) ...\n charCode >= 0x0061 && charCode <= 0x007a) {\n // ... use the character itself\n return result + char;\n } // Otherwise use the escaped character\n // See: https://drafts.csswg.org/cssom/#escape-a-character\n\n\n return result + escapeChar(char);\n }, '');\n};","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_ROW } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_FORM_ROW); // --- Main component ---\n// @vue/component\n\nexport var BFormRow = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_ROW,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'form-row'\n }), children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_TEXT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'small'),\n textVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_FORM_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BFormText = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'form-text': !props.inline\n }, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n id: props.id\n }\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_INVALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_INVALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormInvalidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INVALID_FEEDBACK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === false;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'invalid-feedback': !tooltip,\n 'invalid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_VALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_VALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormValidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_VALID_FEEDBACK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === true;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'valid-feedback': !tooltip,\n 'valid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NAME_FORM_GROUP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_SPACE_SPLIT } from '../../constants/regex';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_DESCRIPTION, SLOT_NAME_INVALID_FEEDBACK, SLOT_NAME_LABEL, SLOT_NAME_VALID_FEEDBACK } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { cssEscape } from '../../utils/css-escape';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr, attemptFocus } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isBoolean } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BCol } from '../layout/col';\nimport { BFormRow } from '../layout/form-row';\nimport { BFormText } from '../form/form-text';\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback';\nimport { BFormValidFeedback } from '../form/form-valid-feedback'; // --- Constants ---\n\nvar INPUTS = ['input', 'select', 'textarea']; // Selector for finding first input in the form group\n\nvar INPUT_SELECTOR = INPUTS.map(function (v) {\n return \"\".concat(v, \":not([disabled])\");\n}).join(); // A list of interactive elements (tag names) inside ``'s legend\n\nvar LEGEND_INTERACTIVE_ELEMENTS = [].concat(INPUTS, ['a', 'button', 'label']); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formStateProps), getBreakpointsUpCached().reduce(function (props, breakpoint) {\n // i.e. 'content-cols', 'content-cols-sm', 'content-cols-md', ...\n props[suffixPropName(breakpoint, 'contentCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING); // i.e. 'label-align', 'label-align-sm', 'label-align-md', ...\n\n props[suffixPropName(breakpoint, 'labelAlign')] = makeProp(PROP_TYPE_STRING); // i.e. 'label-cols', 'label-cols-sm', 'label-cols-md', ...\n\n props[suffixPropName(breakpoint, 'labelCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null))), {}, {\n description: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),\n invalidFeedback: makeProp(PROP_TYPE_STRING),\n label: makeProp(PROP_TYPE_STRING),\n labelClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n labelFor: makeProp(PROP_TYPE_STRING),\n labelSize: makeProp(PROP_TYPE_STRING),\n labelSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false),\n validFeedback: makeProp(PROP_TYPE_STRING),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n })), NAME_FORM_GROUP);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BFormGroup = {\n name: NAME_FORM_GROUP,\n mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n data: function data() {\n return {\n ariaDescribedby: null\n };\n },\n computed: {\n contentColProps: function contentColProps() {\n return this.getColProps(this.$props, 'content');\n },\n labelAlignClasses: function labelAlignClasses() {\n return this.getAlignClasses(this.$props, 'label');\n },\n labelColProps: function labelColProps() {\n return this.getColProps(this.$props, 'label');\n },\n isHorizontal: function isHorizontal() {\n // Determine if the form group will be rendered horizontal\n // based on the existence of 'content-col' or 'label-col' props\n return keys(this.contentColProps).length > 0 || keys(this.labelColProps).length > 0;\n }\n },\n watch: {\n ariaDescribedby: function ariaDescribedby(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.updateAriaDescribedby(newValue, oldValue);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Set `aria-describedby` on the input specified by `labelFor`\n // We do this in a `$nextTick()` to ensure the children have finished rendering\n _this.updateAriaDescribedby(_this.ariaDescribedby);\n });\n },\n methods: {\n getAlignClasses: function getAlignClasses(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Align\"))] || null;\n\n if (propValue) {\n result.push(['text', breakpoint, propValue].filter(identity).join('-'));\n }\n\n return result;\n }, []);\n },\n getColProps: function getColProps(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Cols\"))]; // Handle case where the prop's value is an empty string,\n // which represents `true`\n\n propValue = propValue === '' ? true : propValue || false;\n\n if (!isBoolean(propValue) && propValue !== 'auto') {\n // Convert to column size to number\n propValue = toInteger(propValue, 0); // Ensure column size is greater than `0`\n\n propValue = propValue > 0 ? propValue : false;\n } // Add the prop to the list of props to give to ``\n // If breakpoint is '' (`${prefix}Cols` is `true`), then we use\n // the 'col' prop to make equal width at 'xs'\n\n\n if (propValue) {\n result[breakpoint || (isBoolean(propValue) ? 'col' : 'cols')] = propValue;\n }\n\n return result;\n }, {});\n },\n // Sets the `aria-describedby` attribute on the input if `labelFor` is set\n // Optionally accepts a string of IDs to remove as the second parameter\n // Preserves any `aria-describedby` value(s) user may have on input\n updateAriaDescribedby: function updateAriaDescribedby(newValue, oldValue) {\n var labelFor = this.labelFor;\n\n if (IS_BROWSER && labelFor) {\n // We need to escape `labelFor` since it can be user-provided\n var $input = select(\"#\".concat(cssEscape(labelFor)), this.$refs.content);\n\n if ($input) {\n var attr = 'aria-describedby';\n var newIds = (newValue || '').split(RX_SPACE_SPLIT);\n var oldIds = (oldValue || '').split(RX_SPACE_SPLIT); // Update ID list, preserving any original IDs\n // and ensuring the ID's are unique\n\n var ids = (getAttr($input, attr) || '').split(RX_SPACE_SPLIT).filter(function (id) {\n return !arrayIncludes(oldIds, id);\n }).concat(newIds).filter(function (id, index, ids) {\n return ids.indexOf(id) === index;\n }).filter(identity).join(' ').trim();\n\n if (ids) {\n setAttr($input, attr, ids);\n } else {\n removeAttr($input, attr);\n }\n }\n }\n },\n onLegendClick: function onLegendClick(event) {\n // Don't do anything if `labelFor` is set\n\n /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n if (this.labelFor) {\n return;\n }\n\n var target = event.target;\n var tagName = target ? target.tagName : ''; // If clicked an interactive element inside legend,\n // we just let the default happen\n\n /* istanbul ignore next */\n\n if (LEGEND_INTERACTIVE_ELEMENTS.indexOf(tagName) !== -1) {\n return;\n } // If only a single input, focus it, emulating label behaviour\n\n\n var inputs = selectAll(INPUT_SELECTOR, this.$refs.content).filter(isVisible);\n\n if (inputs.length === 1) {\n attemptFocus(inputs[0]);\n }\n }\n },\n render: function render(h) {\n var state = this.computedState,\n feedbackAriaLive = this.feedbackAriaLive,\n isHorizontal = this.isHorizontal,\n labelFor = this.labelFor,\n normalizeSlot = this.normalizeSlot,\n safeId = this.safeId,\n tooltip = this.tooltip;\n var id = safeId();\n var isFieldset = !labelFor;\n var $label = h();\n var labelContent = normalizeSlot(SLOT_NAME_LABEL) || this.label;\n var labelId = labelContent ? safeId('_BV_label_') : null;\n\n if (labelContent || isHorizontal) {\n var labelSize = this.labelSize,\n labelColProps = this.labelColProps;\n var labelTag = isFieldset ? 'legend' : 'label';\n\n if (this.labelSrOnly) {\n if (labelContent) {\n $label = h(labelTag, {\n class: 'sr-only',\n attrs: {\n id: labelId,\n for: labelFor || null\n }\n }, [labelContent]);\n }\n\n $label = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? labelColProps : {}\n }, [$label]);\n } else {\n $label = h(isHorizontal ? BCol : labelTag, {\n on: isFieldset ? {\n click: this.onLegendClick\n } : {},\n props: isHorizontal ? _objectSpread(_objectSpread({}, labelColProps), {}, {\n tag: labelTag\n }) : {},\n attrs: {\n id: labelId,\n for: labelFor || null,\n // We add a `tabindex` to legend so that screen readers\n // will properly read the `aria-labelledby` in IE\n tabindex: isFieldset ? '-1' : null\n },\n class: [// Hide the focus ring on the legend\n isFieldset ? 'bv-no-focus-ring' : '', // When horizontal or if a legend is rendered, add 'col-form-label' class\n // for correct sizing as Bootstrap has inconsistent font styling for\n // legend in non-horizontal form groups\n // See: https://github.com/twbs/bootstrap/issues/27805\n isHorizontal || isFieldset ? 'col-form-label' : '', // Emulate label padding top of `0` on legend when not horizontal\n !isHorizontal && isFieldset ? 'pt-0' : '', // If not horizontal and not a legend, we add 'd-block' class to label\n // so that label-align works\n !isHorizontal && !isFieldset ? 'd-block' : '', labelSize ? \"col-form-label-\".concat(labelSize) : '', this.labelAlignClasses, this.labelClass]\n }, [labelContent]);\n }\n }\n\n var $invalidFeedback = h();\n var invalidFeedbackContent = normalizeSlot(SLOT_NAME_INVALID_FEEDBACK) || this.invalidFeedback;\n var invalidFeedbackId = invalidFeedbackContent ? safeId('_BV_feedback_invalid_') : null;\n\n if (invalidFeedbackContent) {\n $invalidFeedback = h(BFormInvalidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: invalidFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `false`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: invalidFeedbackContent ? '-1' : null\n }\n }, [invalidFeedbackContent]);\n }\n\n var $validFeedback = h();\n var validFeedbackContent = normalizeSlot(SLOT_NAME_VALID_FEEDBACK) || this.validFeedback;\n var validFeedbackId = validFeedbackContent ? safeId('_BV_feedback_valid_') : null;\n\n if (validFeedbackContent) {\n $validFeedback = h(BFormValidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: validFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `true`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: validFeedbackContent ? '-1' : null\n }\n }, [validFeedbackContent]);\n }\n\n var $description = h();\n var descriptionContent = normalizeSlot(SLOT_NAME_DESCRIPTION) || this.description;\n var descriptionId = descriptionContent ? safeId('_BV_description_') : null;\n\n if (descriptionContent) {\n $description = h(BFormText, {\n attrs: {\n id: descriptionId,\n tabindex: '-1'\n }\n }, [descriptionContent]);\n } // Update `ariaDescribedby`\n // Screen readers will read out any content linked to by `aria-describedby`\n // even if the content is hidden with `display: none;`, hence we only include\n // feedback IDs if the form group's state is explicitly valid or invalid\n\n\n var ariaDescribedby = this.ariaDescribedby = [descriptionId, state === false ? invalidFeedbackId : null, state === true ? validFeedbackId : null].filter(identity).join(' ') || null;\n var $content = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? this.contentColProps : {},\n ref: 'content'\n }, [normalizeSlot(SLOT_NAME_DEFAULT, {\n ariaDescribedby: ariaDescribedby,\n descriptionId: descriptionId,\n id: id,\n labelId: labelId\n }) || h(), $invalidFeedback, $validFeedback, $description]); // Return it wrapped in a form group\n // Note: Fieldsets do not support adding `row` or `form-row` directly\n // to them due to browser specific render issues, so we move the `form-row`\n // to an inner wrapper div when horizontal and using a fieldset\n\n return h(isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div', {\n staticClass: 'form-group',\n class: [{\n 'was-validated': this.validated\n }, this.stateClass],\n attrs: {\n id: id,\n disabled: isFieldset ? this.disabled : null,\n role: isFieldset ? null : 'group',\n 'aria-invalid': this.computedAriaInvalid,\n // Only apply `aria-labelledby` if we are a horizontal fieldset\n // as the legend is no longer a direct child of fieldset\n 'aria-labelledby': isFieldset && isHorizontal ? labelId : null\n }\n }, isHorizontal && isFieldset ? [h(BFormRow, [$label, $content])] : [$label, $content]);\n }\n};","export var noop = function noop() {};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\n }\n});","/**\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","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} 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 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 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","/**!\n * Sortable 1.10.2\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&lang=scss&scoped=true&\"","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n 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}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\n }\n});","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;"],"sourceRoot":""}