{"version":3,"sources":["webpack:///./src/Entity/BaseModel.ts","webpack:///./src/Entity/weixin/WxText.ts","webpack:///./src/Entity/weixin/WxTextImg.ts","webpack:///./src/Entity/weixin/WxImg.ts","webpack:///./src/Entity/weixin/WxVoid.ts","webpack:///./src/Entity/weixin/WxGroup.ts","webpack:///./src/Entity/weixin/WxMenu.ts","webpack:///./src/Entity/weixin/ReplyHelp.ts","webpack:///./src/Entity/weixin/DataElement.ts","webpack:///./src/views/tenants/tenantsView/weChat-graphic_edit2.vue?c68c","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/vuedraggable/dist/vuedraggable.common.js","webpack:///./node_modules/vuedraggable/node_modules/sortablejs/modular/sortable.esm.js","webpack:///./node_modules/tinymce/plugins/insertdatetime/index.js","webpack:///./src/components/editor/tinymce.vue?bc8d","webpack:///./src/components/editor/tinymce.vue?95ee","webpack:///src/components/editor/tinymce.vue","webpack:///./src/components/editor/tinymce.vue?0f11","webpack:///./src/components/editor/tinymce.vue","webpack:///./src/Entity/weixin/WxCard.ts","webpack:///./src/assets/images/import-word.svg","webpack:///./node_modules/tinymce/plugins/insertdatetime/plugin.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./src/JS/Bus.ts","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./src/assets/images/qr-code.svg","webpack:///./src/views/tenants/tenantsView/weChat-graphic_edit2.vue?51f5","webpack:///./src/views/tenants/tenantsView/weChat-graphic_edit2.vue?d31d","webpack:///./src/views/tenants/tenantsView/weChat-graphic_edit2.vue?d9df","webpack:///./src/views/tenants/tenantsView/weChat-graphic_edit2.vue"],"names":["ActionName","ApplicationId","TenantId","TextId","Type","Contents","Keyword","State","GraphicId","Nature","GraphicTitle","UpdaterName","CoverImage","Reward","SortId","Comment","FollowDisplay","DetailImage","OnlyFansCanComment","ThumbMediaId","Synchronize","ContentSourceUrl","switchType","switchDetailImage","switchReward","switchComment","switchFollowDisplay","switchState","switchOnlyFansCanComment","ImageId","JumpLink","UploadImage","MediaId","VoiceId","VoiceTitle","VoiceLink","HighLink","Description","ReallyImage","GatherId","Title","MsgType","SendType","Sex","Provide","City","Area","SetSendDate","IsSetSendDate","Status","SendStatus","peopleList","Id","Aid","ParentId","TypeCode","TypeCodeTwo","TypeName","MenuName","Url","AppId","Remark","Enable","TableName","menuData","Individuation","IndividuationName","sub_button","momentDataArr","TimeSlot","ReplyTypeId","Remarks","LinkUrl","ImgUrl","AppReplyId","AppReplyType","AppReplyName","MultipleReplies","ElementCode","ElementName","SortNumber","DomainCode","Object","create","module","exports","ctor","superCtor","super_","prototype","constructor","value","enumerable","writable","configurable","TempCtor","isRegExp","anObject","speciesConstructor","advanceStringIndex","toLength","callRegExpExec","regexpExec","fails","$min","Math","min","$push","push","$SPLIT","LENGTH","LAST_INDEX","MAX_UINT32","SUPPORTS_Y","RegExp","defined","SPLIT","$split","maybeCallNative","internalSplit","separator","limit","string","String","this","undefined","call","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","splitLimit","separatorCopy","source","slice","index","apply","test","O","splitter","regexp","res","done","rx","S","C","unicodeMatching","lim","length","p","q","A","e","z","i","getOwnPropertyDescriptors","obj","keys","descriptors","getOwnPropertyDescriptor","formatRegExp","format","f","isString","objects","arguments","inspect","join","args","len","str","replace","x","Number","JSON","stringify","_","isNull","isObject","deprecate","fn","msg","process","noDeprecation","warned","deprecated","throwDeprecation","Error","traceDeprecation","console","trace","error","debugEnviron","debugs","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","arrayToHash","array","hash","forEach","val","idx","recurseTimes","isFunction","ret","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","indexOf","formatError","name","toString","isDate","Date","base","braces","isArray","n","toUTCString","formatArray","map","key","formatProperty","pop","reduceToSingleString","simple","isNumber","l","hasOwnProperty","desc","get","set","split","line","substr","reduce","prev","cur","numLinesEst","ar","Array","arg","isNullOrUndefined","isSymbol","re","objectToString","d","isPrimitive","o","pad","debuglog","NODE_DEBUG","toUpperCase","pid","isBuffer","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","prop","log","inherits","origin","add","kCustomPromisifiedSymbol","Symbol","callbackifyOnRejected","reason","cb","newReason","callbackify","original","TypeError","callbackified","maybeCb","self","then","nextTick","rej","setPrototypeOf","getPrototypeOf","defineProperties","promisify","defineProperty","promiseResolve","promiseReject","promise","Promise","resolve","reject","err","custom","modules","installedModules","__webpack_require__","moduleId","m","c","getter","r","toStringTag","t","mode","__esModule","ns","bind","object","property","s","toInteger","TO_STRING","that","pos","a","b","charCodeAt","charAt","at","it","result","global","max","$at","iterated","_t","_i","point","$export","valueOf","document","is","createElement","$defineProperty","createDesc","redefine","hide","wks","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","arg2","forceStringMethod","strfn","rxfn","cof","TAG","ARG","tryGet","T","B","callee","has","SRC","$toString","TPL","inspectSource","safe","Function","store","uid","USE_SYMBOL","$exports","context","INCLUDES","P","F","includes","searchString","LIBRARY","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","toObject","$keys","dP","documentElement","propertyIsEnumerable","IObject","ArrayProto","ceil","floor","isNaN","def","tag","stat","bitmap","SAFE_CLOSING","riter","from","skipClosing","arr","iter","MATCH","assign","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","IE_PROTO","ObjectProto","isArrayIter","createProperty","getIterFn","arrayLike","step","iterator","aLen","mapfn","mapping","iterFn","core","SHARED","version","copyright","shared","__e","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","PROTOTYPE","type","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","target","expProto","U","W","R","classof","builtinExec","id","px","random","concat","IS_WRAP","virtual","$includes","TO_STRING_TAG","DOMIterables","Collection","window","__g","getIteratorMethod","getIterator","getKeys","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","descriptor","gOPS","pIE","$assign","K","k","getSymbols","isEnum","j","isIterable","getOwnPropertySymbols","aFunction","UNSCOPABLES","dPs","enumBugKeys","Empty","createDict","iframeDocument","iframe","lt","gt","display","appendChild","src","contentWindow","open","write","close","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","capture","forced","addToUnscopables","_k","Arguments","__webpack_exports__","insertNodeAt","camelize","removeNode","F_source_Vue_Draggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1__","F_source_Vue_Draggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1___default","getConsole","cached","cache","hit","regex","node","parentElement","removeChild","fatherNode","refNode","children","nextSibling","insertBefore","g","$Object","D","arrayIndexOf","names","STARTS_WITH","$startsWith","startsWith","search","setPublicPath_i","currentScript","object_assign","assign_default","keys_default","is_array","is_array_default","_arrayWithHoles","get_iterator","get_iterator_default","_iterableToArrayLimit","_arr","_n","_d","_e","_s","_nonIterableRest","_slicedToArray","_arrayWithoutHoles","arr2","from_default","is_iterable","is_iterable_default","_iterableToArray","_nonIterableSpread","_toConsumableArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","buildAttribute","propName","computeVmIndex","vnodes","element","elt","elm","_computeIndexes","slots","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","filter","ind","emit","evtName","evtData","_this","$nextTick","$emit","toLowerCase","delegateAndEmit","_this2","realList","isTransitionName","vuedraggable_isTransition","_slots","componentOptions","getSlot","slot","scopedSlot","computeChildrenAndOffsets","headerOffset","header","footer","getComponentAttributes","$attrs","componentData","attributes","update","attrs","on","props","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","evt","draggingElement","vuedraggable_props","options","list","required","default","noTransitionOnDrag","Boolean","clone","move","draggableComponent","inheritAttrs","data","transitionMode","noneFunctionalComponentMode","render","h","$slots","_computeChildrenAndOf","$scopedSlots","getTag","created","warn","mounted","_this3","$el","nodeName","getIsFunctional","optionsAdded","onMove","originalEvent","onDragMove","draggable","_sortable","rootContainer","computeIndexes","beforeDestroy","destroy","computed","watch","handler","newOptionValue","updateOptions","deep","fnOptions","_vnode","functional","option","getChildrenNodes","$children","rawNodes","child","_this4","visibleIndexes","getUnderlyingVm","htmlElt","getUnderlyingPotencialDraggableComponent","_ref","vue","__vue__","$options","_componentTag","$parent","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","splice","updatePosition","oldIndex","newIndex","getRelatedContextFromMoveEvent","_ref2","to","related","component","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","nodes","transitionContainer","kept","onDragStart","item","_underlying_vm_","onDragAdd","added","onDragRemove","pullMode","removed","onDragUpdate","moved","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","currentIndex","draggedInList","willInsertAfter","draggedContext","futureIndex","sendEvt","onDragEnd","Vue","vuedraggable","_typeof","_defineProperty","_extends","_objectSpread","ownKeys","sym","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","userAgent","pattern","navigator","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","passive","event","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","nodeType","parentNode","closest","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","classList","className","css","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","find","tagName","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","height","width","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","visible","getChild","childNum","currentChild","Sortable","ghost","dragged","lastChild","last","lastElementChild","previousElementSibling","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","indexOfObject","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","extend","dst","isRectEqual","rect1","rect2","round","throttle","callback","ms","setTimeout","cancelThrottle","clearTimeout","scrollBy","y","Polymer","$","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","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","pluginEvent","eventName","sortable","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","rootEl","targetEl","cloneEl","toEl","fromEl","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","CustomEvent","createEvent","initEvent","bubbles","cancelable","lastPutMode","allEventProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","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","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","sort","disabled","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","retVal","onMoveFn","draggedRect","relatedRect","_disableDraggable","_unsilent","_ghostIsLast","spacer","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","href","sum","_saveInputCheckedState","root","inputs","checked","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","path","composedPath","button","isContentEditable","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","setInterval","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","save","handleEvent","toArray","order","getAttribute","items","querySelectorAll","removeAttribute","utils","cancelNextTick","detectDirection","_len","_key","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","AutoScrollPlugin","AutoScroll","scroll","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","drop","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","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","multiDragIndex","nullingGlobal","destroyGlobal","shift","select","deselect","oldIndicies","newIndicies","clones","clonesInserted","elementsInserted","_vm","_h","$createElement","_c","_self","init","onClick","model","$$v","myValue","expression","staticRenderFns","components","Editor","menubar","templates","toolbar","language_url","language","skin_url","dialog_width","images_upload_url","inline","statusbar","toolbar_drawer","fontsize_formats","font_formats","emoticons_database_url","setup","Bus","wxVideoitems","Item","wxVoiceitems","editor","ui","registry","addButton","text","tooltip","onAction","title","tabs","buttons","initialData","videoUrl","onChange","api","getData","isUrl","tempUrlLen","arry","listData","attryStr","arrtay","temp","tempArry","onSubmit","page1Config","wxCarditems","pageCardConfig","musicKey","musicpageSize","musicpages","Name","page2Config","size","Fruit","musicpage","details","dialogApi","redial","resultData","insertMusic","txtCardVal","insertCard","domain","location","resList","logo_url","brand_name","color","cardid","images_upload_handler","loademoticons","selectMusic","newValue","loadData","tempData","wxcardItems","html","errcode","card","card_type","baseInfo","discount","base_info","CardVal","label","cardDataTimeFormat","date_info","sku","quantity","CardStatus","status","cash","gift","groupon","general_coupon","member_card","primary","dateinfo","fixed_term","fixed_begin_term","begin_timestamp","formatDate","end_timestamp","encodeURIComponent","date","getFullYear","MM","MMstr","dstr","tinymce","util","Tools","getDateFormat","getParam","translate","getTimeFormat","getFormats","getDefaultDateTime","formats","shouldInsertTimeElement","Settings","daysShort","daysLong","monthsShort","monthsLong","addZeros","getDateTime","fmt","getYear","getDay","updateElement","timeElm","computerTime","userTime","newTimeElm","datetime","remove","collapse","insertDateTime","getParent","getStart","insertContent","Actions","register","addCommand","Commands","global$1","Cell","initial","v","register$1","defaultFormat","addSplitButton","icon","fetch","onItemAction","makeMenuItemHandler","addNestedMenuItem","getSubmenuItems","Buttons","Plugin","bus","copy","fill","readUInt8","staticClass","staticStyle","_v","$event","ImportArticleShow","fontSize","ImportWordShow","_m","dialogVisible","switchStyle","class","currentStyleIndex","changeStyleIndex","_l","tagHotListSelct","tagHotList","GetAppData","TenantID","domProps","addContents","LoadMaterialListData","Searchkey","tagType","TagidData","elTag","addContentsAll","totalItem","viewContentsAll","inboxTabData","textAlign","zIndex","AddMaterialList","ArticleList","articleClicked","selectContents","delarticle","addarticle","ClearContent","ref","AddaccountForm","$set","maxWidth","minWidth","tinymceOnClick","stockEditShow","onBeforeUploadImage","stockImagesShow","stockcontentShow","SavaTextData","cancle","loadImages","imageKey","selectImgClicked","float","margin","border","cursor","selectImg","selectImgcancle","selectEditClicked","insertImg","editImge","MaterialListShowTitle","MaterialListShow","MaterialListForm","rulesMaterialList","TagidDataSelect","handleChange","MaterialListFormType","nativeOn","number","saveMaterialList","directives","rawName","gatherArticleBylink","ImportArticle","onBeforeUploadWord","UploadWord","Ueditor","WeiXinArticleMaterialSortData","loading","loadingDialog","leftShow","rightStyle","pagesize","pageIndex","tabsType","stringType","count","editContents","editorInstance","modlekeys","ListModelData","tagHotListData","ModelData","loadModelCount","ModelListData","clicked","stockImagesData","stockcontentData","insertImgData","CoverImagewidth","CoverImageheight","modfiyId","isClear","wxwxdomain","imgReg","mediaIdReg","qqmusicReg","mpvoiceReg","labelReg","iframeReg","qqVideoRegSrc","wxCradRegSrc","classRegSrc","srcReg","dataSrcReg","Review","Sort","message","trigger","multiple","LoadMaterialSortData","wxmodel","$route","query","GetWxAppReplyGraphicListAsync","$message","warning","$on","loadMediaList","GetWeiXinCardListAsync","params","Input","ErrorCode","parse","strType","Getvoid","videoItems","vid","tempUrl","GetHtmlStr","tempVal","content","author","image","linkurl","description","mediaid","mediaId","temFile","suffix","ErrorMessage","GetImgText","activeEditor","setContent","$router","arraylabel","iframeStr","iframeData","iframeClass","classData","ele","dataSrcData","SrcData","wxVideoData","tempArrySrc","tempA","GetHtmlUrl","wxVideoArry","url_info","wxVideoUrlData","url","qqVideoData","wxCardData","kdf","urlpaes","arrmusic","tempdata","musicSrc","arrmpvoice","tempImg","isData","AppReplyGraphicUpdatesAsync","success","file","isIMAGE","isLt1M","param","reader","FileReader","readAsDataURL","onload","GetUpload","media_id","Value","GetWeiXinArticleMaterialNumberAsync","ojb","backgroundObj","background","execCommand","$confirm","confirmButtonText","cancelButtonText","$forceUpdate","GetWeiXinArticleMaterialListModelAsync","tempType","typeMultiple","tempResult","GetSaveWeiXinArticleMaterialListAsync","unique","GetWeiXinArticleMaterialListHotAsync","$refs","validate","valid","GetWeiXinArticleMaterialSortAsync","Pid","childrenData","getTreeData","GetWeiXinArticleMaterialListModel","page","rows","GetWeiXinArticleMaterialListAsync","maxHeight","objImg","hRatio","wRatio","img","Image","Ratio","w"],"mappings":"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KAAlB,4BAQYC,QAAS,CACrB,CACc,KAAd,SACc,KAAd,cACc,KAAd,WAGYC,YAAa,CACXiB,SAAU,GACVC,cAAe,GACfC,WAAY,GAEdvB,SAAU,WAAtB,sLAGA,cAGA,2BACA,KACA,8BACA,yBACA,sBAEA,eACA,uBAEA,mBACA,aACA,cACA,gBAWA,uBACA,uBACA,EACA,4IACA,KACA,yHACA,yBACA,gEACA,KACA,6EACA,6BACA,oBACA,EACA,MAGA,WAEA,+BA/CA,oBAgDA,eAhDA,gBAiDA,qCACA,gBAlDA,8BAsDA,GACA,OAEA,CACA,WACA,MACA,6EACA,WACA,eA9DA,UAmEA,qBAnEA,WAmEA,EAnEA,OAoEA,eApEA,oBAqEA,4BACA,YACA,IAEA,4BACA,gBAEA,UA5EA,iBA6EA,qCACA,mBA9EA,+BAiFA,gBAEA,mBAMA,GAEA,KACA,uBACA,qBAGA,uBACA,GACA,KACA,kCACA,wBACA,qCAEA,OACA,4BACA,oBACA,OACA,OACA,UACA,aACA,QACA,YACA,gBAGA,uCAEA,oBACA,wBAGA,GACA,OAE0B,CACEwB,KAAM,MACNv1C,MAC5B,kMACA,KAhIA,UAqIA,qBArIA,QAqIA,EArIA,OAuIA,iBACA,aACA,mBAEA,gBAEA,uBAGA,MACA,+CACA,UACA,oBAEA,cACA,wBAKA,YACA,EACA,EACA,yFACA,UACA,kBAIA,kCACA,mBACA,gBACA,KACA,UACA,IACA,WACA,IACA,+BACA,IACA,4BACA,IACA,gCACA,IACA,UACA,aA2BA,QACA,0BAGA,0BAEA,wBACA,mBACA,iBACA,KACA,yDACA,WACA,UACA,WACA,iBAGA,YA/NA,gCAkOA,qCACA,wBAnOA,oGAAsB,IA8ORw1C,EAAc,CAChBxB,MAAO,YACPyB,KAAM,SACNzhB,KAAM,CACJ9a,KAAM,QACNiwB,MAAO,IAaT+K,QAAS,CACrB,CACc,KAAd,SACc,KAAd,aACc,KAAd,MAEA,CACc,KAAd,SACc,KAAd,WACc,KAAd,KACc,UAAd,IAGYC,YAAa,CACXuB,MAAO,GACPC,UAAW,KAMbtB,SAAU,WAAtB,wKAEA,oBAF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","file":"js/chunk-17fcd45b.76de923a.js","sourcesContent":["import { ActionNameType } from \"./Type/ActionNameType\";\r\n\r\nexport class BaseModel{\r\n ActionName:ActionNameType=\"CREATE\"\r\n ApplicationId:string=\"\"\r\n TenantId:string=\"\"\r\n}","/**文本回复的字段 */\r\nimport { BaseModel } from '../BaseModel';\r\n\r\nexport class WXText extends BaseModel{ \r\n TextId:number=0 \r\n Type:number=1\r\n Contents:string=\"\"\r\n Keyword:string=\"\"\r\n State:number=1 \r\n}","/**图文回复的字段 */\r\nimport { BaseModel } from '../BaseModel';\r\n\r\nexport class WxTextImg extends BaseModel {\r\n GraphicId: number = 0\r\n Type: number = 1\r\n Nature:number=1\r\n Contents: string = \"\"\r\n Keyword: string = \"\"\r\n GraphicTitle: string = \"\"\r\n UpdaterName: string = \"\"\r\n CoverImage: string = \"\"\r\n Reward:number=0\r\n SortId:number=0\r\n Comment:number=0\r\n FollowDisplay:number=0\r\n DetailImage:number=0\r\n OnlyFansCanComment:number=0\r\n State:number=1//审核状态\r\n ThumbMediaId:string=\"\"\r\n Synchronize:number=0\r\n ContentSourceUrl:string=\"\"\r\n switchType:boolean=false\r\n switchDetailImage:boolean=false\r\n switchReward:boolean=false\r\n switchComment:boolean=false\r\n switchFollowDisplay:boolean=true\r\n switchState:boolean=true\r\n switchOnlyFansCanComment:boolean=false;\r\n}","/**图片回复的字段 */\r\nimport { BaseModel } from '../BaseModel';\r\n\r\nexport class WxImg extends BaseModel{ \r\n ImageId:number=0 \r\n Type:number=1\r\n JumpLink:string=\"\"\r\n UploadImage:string=\"\"\r\n Keyword:string=\"\"\r\n State:number=1\r\n Nature:number=0\r\n MediaId:string=\"\" \r\n}","/**语音回复的字段 */\r\nimport { BaseModel } from '../BaseModel';\r\n\r\nexport class WxVoid extends BaseModel {\r\n VoiceId: number = 0\r\n Type: number = 1\r\n VoiceTitle: string = \"\"\r\n VoiceLink: string = \"\"\r\n HighLink: string = \"\"\r\n Description: string = \"\"\r\n Keyword: string = \"\"\r\n ReallyImage: string = \"\"\r\n State: number = 1\r\n Nature:number=0\r\n MediaId:string=\"\"\r\n}","/**图片回复的字段 */\r\nimport { BaseModel } from '../BaseModel';\r\n\r\nexport class WxGroup extends BaseModel{ \r\n GatherId:number=0 \r\n Title:string=\"\"\r\n MsgType:number=99\r\n SendType:any=1\r\n Sex:number=-1\r\n Provide:any=[]\r\n City:any=[]\r\n Area:any=[]\r\n SetSendDate:string=\"\"\r\n IsSetSendDate:number=1\r\n txtImportFans:any\r\n Status:number=1\r\n SendStatus:any=0;\r\n peopleList:any=[];\r\n}","/*微信菜单 */\r\nimport { BaseModel } from '../BaseModel';\r\n\r\nexport class WxMenu extends BaseModel {\r\n Id:Number=0\r\n Aid:Number=0\r\n ParentId:Number=0\r\n TypeCode:string=\"click\"\r\n TypeCodeTwo:string=\"wx-text\"\r\n TypeName:string=\"\"\r\n MenuName:string= \"\"\r\n Url:string=\"\"\r\n AppId:string=\"\"\r\n Remark:string=\"\"\r\n SortId:string=\"10\"\r\n Enable:string=\"1\"\r\n TableName:string=\"\"\r\n menuData:any = ''\r\n Individuation:Number=0\r\n IndividuationName:string=\"\"\r\n sub_button:any= []\r\n momentDataArr:string=\"\"\r\n}","// 关注时回复与帮助\r\nimport { BaseModel } from '../BaseModel';\r\nexport class ReplyHelp extends BaseModel{ \r\n TimeSlot:any= []//时段\r\n Type:number=0//0、自定义;1、选择关键词\r\n ReplyTypeId:number= 2//回复类型:0、非定义时段回复,1、单图片;2、文本回复;3、外链图文;4、多媒体\r\n Title:string= \"\"//回复标题:\r\n Remarks:string= \"\"//回复简介\r\n LinkUrl:string= \"\"//选择外链图文\r\n ImgUrl:string= \"\"//回复图片\r\n Contents:string= \"\"//回复内容:\r\n AppReplyId:number=0//TA_AppReplyGraphic、TA_AppReplyImage、TA_AppReplyText、TA_AppReplyVoice表的ID\r\n AppReplyType:string=\"\"//AppReplyText 文本,AppReplyImage 图片,AppReplyGraphic 图文、AppReplyVoice 多媒体\r\n AppReplyName:string=\"\"\r\n MediaId:string=\"\"\r\n Keyword:string=\"\"\r\n State:number=1\r\n MultipleReplies:string=\"0\" \r\n}","// 数据字典\r\nimport { BaseModel } from '../BaseModel';\r\nexport class DataElement extends BaseModel{ \r\n ElementCode:string= \"\"\r\n ElementName:string= \"\"\r\n SortNumber:string= \"10\"\r\n Remark: string=\"\"\r\n DomainCode: string=\"\"\r\n Status:number= 1\r\n}","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/style-resources-loader/lib/index.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./weChat-graphic_edit2.vue?vue&type=style&index=0&id=e6985306&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/style-resources-loader/lib/index.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./weChat-graphic_edit2.vue?vue&type=style&index=0&id=e6985306&lang=less&scoped=true&\"","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, 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(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\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 var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 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[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // 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] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\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 = defined(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 !== $split);\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});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","module.exports =\n/******/ (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/***/ \"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/***/ \"07e3\":\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/***/ \"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/***/ \"0fc9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"3a38\");\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/***/ \"1654\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(\"71c1\")(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(\"30f1\")(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"1691\":\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/***/ \"1af6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = __webpack_require__(\"63b6\");\n\n$export($export.S, 'Array', { isArray: __webpack_require__(\"9003\") });\n\n\n/***/ }),\n\n/***/ \"1bc3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"f772\");\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/***/ \"1ec9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"f772\");\nvar document = __webpack_require__(\"e53d\").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/***/ \"20fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $defineProperty = __webpack_require__(\"d9f6\");\nvar createDesc = __webpack_require__(\"aebd\");\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\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/***/ \"241e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"25eb\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"25eb\":\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/***/ \"294c\":\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/***/ \"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/***/ \"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/***/ \"30f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"b8e3\");\nvar $export = __webpack_require__(\"63b6\");\nvar redefine = __webpack_require__(\"9138\");\nvar hide = __webpack_require__(\"35e8\");\nvar Iterators = __webpack_require__(\"481b\");\nvar $iterCreate = __webpack_require__(\"8f60\");\nvar setToStringTag = __webpack_require__(\"45f2\");\nvar getPrototypeOf = __webpack_require__(\"53e2\");\nvar ITERATOR = __webpack_require__(\"5168\")('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/***/ \"32a6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"241e\");\nvar $keys = __webpack_require__(\"c3a1\");\n\n__webpack_require__(\"ce7e\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\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/***/ \"32fc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"e53d\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"335c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"6b4c\");\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/***/ \"355d\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"35e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"d9f6\");\nvar createDesc = __webpack_require__(\"aebd\");\nmodule.exports = __webpack_require__(\"8e60\") ? 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/***/ \"36c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"335c\");\nvar defined = __webpack_require__(\"25eb\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"3702\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators = __webpack_require__(\"481b\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/***/ }),\n\n/***/ \"3a38\":\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/***/ \"40c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"6b4c\");\nvar TAG = __webpack_require__(\"5168\")('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/***/ \"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/***/ \"45f2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"d9f6\").f;\nvar has = __webpack_require__(\"07e3\");\nvar TAG = __webpack_require__(\"5168\")('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/***/ \"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/***/ \"469f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"6c1c\");\n__webpack_require__(\"1654\");\nmodule.exports = __webpack_require__(\"7d7b\");\n\n\n/***/ }),\n\n/***/ \"481b\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"4aa6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"dc62\");\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/***/ \"4ee1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n/***/ }),\n\n/***/ \"50ed\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\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/***/ \"5168\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"dbdb\")('wks');\nvar uid = __webpack_require__(\"62a0\");\nvar Symbol = __webpack_require__(\"e53d\").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/***/ \"5176\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"51b6\");\n\n/***/ }),\n\n/***/ \"51b6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"a3c3\");\nmodule.exports = __webpack_require__(\"584a\").Object.assign;\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/***/ \"53e2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"07e3\");\nvar toObject = __webpack_require__(\"241e\");\nvar IE_PROTO = __webpack_require__(\"5559\")('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/***/ \"549b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx = __webpack_require__(\"d864\");\nvar $export = __webpack_require__(\"63b6\");\nvar toObject = __webpack_require__(\"241e\");\nvar call = __webpack_require__(\"b0dc\");\nvar isArrayIter = __webpack_require__(\"3702\");\nvar toLength = __webpack_require__(\"b447\");\nvar createProperty = __webpack_require__(\"20fd\");\nvar getIterFn = __webpack_require__(\"7cd6\");\n\n$export($export.S + $export.F * !__webpack_require__(\"4ee1\")(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n/***/ }),\n\n/***/ \"54a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"6c1c\");\n__webpack_require__(\"1654\");\nmodule.exports = __webpack_require__(\"95d5\");\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/***/ \"5559\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"dbdb\")('keys');\nvar uid = __webpack_require__(\"62a0\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"584a\":\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/***/ \"5b4e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"36c3\");\nvar toLength = __webpack_require__(\"b447\");\nvar toAbsoluteIndex = __webpack_require__(\"0fc9\");\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/***/ \"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/***/ \"5d73\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"469f\");\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/***/ \"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/***/ \"62a0\":\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/***/ \"63b6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"e53d\");\nvar core = __webpack_require__(\"584a\");\nvar ctx = __webpack_require__(\"d864\");\nvar hide = __webpack_require__(\"35e8\");\nvar has = __webpack_require__(\"07e3\");\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 IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\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/***/ \"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/***/ \"6b4c\":\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/***/ \"6c1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"c367\");\nvar global = __webpack_require__(\"e53d\");\nvar hide = __webpack_require__(\"35e8\");\nvar Iterators = __webpack_require__(\"481b\");\nvar TO_STRING_TAG = __webpack_require__(\"5168\")('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n/***/ }),\n\n/***/ \"71c1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"3a38\");\nvar defined = __webpack_require__(\"25eb\");\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/***/ \"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/***/ \"774e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"d2d5\");\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/***/ \"794b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"8e60\") && !__webpack_require__(\"294c\")(function () {\n return Object.defineProperty(__webpack_require__(\"1ec9\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"79aa\":\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/***/ \"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/***/ \"7cd6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"40c3\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar Iterators = __webpack_require__(\"481b\");\nmodule.exports = __webpack_require__(\"584a\").getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ \"7d7b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"e4ae\");\nvar get = __webpack_require__(\"7cd6\");\nmodule.exports = __webpack_require__(\"584a\").getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n/***/ }),\n\n/***/ \"7e90\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"d9f6\");\nvar anObject = __webpack_require__(\"e4ae\");\nvar getKeys = __webpack_require__(\"c3a1\");\n\nmodule.exports = __webpack_require__(\"8e60\") ? 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/***/ \"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/***/ \"8436\":\n/***/ (function(module, exports) {\n\nmodule.exports = function () { /* empty */ };\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/***/ \"8aae\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"32a6\");\nmodule.exports = __webpack_require__(\"584a\").Object.keys;\n\n\n/***/ }),\n\n/***/ \"8e60\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"294c\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"8f60\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"a159\");\nvar descriptor = __webpack_require__(\"aebd\");\nvar setToStringTag = __webpack_require__(\"45f2\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"35e8\")(IteratorPrototype, __webpack_require__(\"5168\")('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/***/ \"9003\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(\"6b4c\");\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ \"9138\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"35e8\");\n\n\n/***/ }),\n\n/***/ \"9306\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"c3a1\");\nvar gOPS = __webpack_require__(\"9aa9\");\nvar pIE = __webpack_require__(\"355d\");\nvar toObject = __webpack_require__(\"241e\");\nvar IObject = __webpack_require__(\"335c\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"294c\")(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/***/ \"9427\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(\"63b6\");\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(\"a159\") });\n\n\n/***/ }),\n\n/***/ \"95d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"40c3\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar Iterators = __webpack_require__(\"481b\");\nmodule.exports = __webpack_require__(\"584a\").isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n/***/ }),\n\n/***/ \"9aa9\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\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/***/ \"a159\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"e4ae\");\nvar dPs = __webpack_require__(\"7e90\");\nvar enumBugKeys = __webpack_require__(\"1691\");\nvar IE_PROTO = __webpack_require__(\"5559\")('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__(\"1ec9\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"32fc\").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/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"sortablejs\");\n\n/***/ }),\n\n/***/ \"a3c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"63b6\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"9306\") });\n\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/***/ \"a4bb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"8aae\");\n\n/***/ }),\n\n/***/ \"a745\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"f410\");\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/***/ \"aebd\":\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/***/ \"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/***/ \"b0dc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(\"e4ae\");\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/***/ }),\n\n/***/ \"b447\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"3a38\");\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/***/ \"b8e3\":\n/***/ (function(module, exports) {\n\nmodule.exports = true;\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/***/ \"c367\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"8436\");\nvar step = __webpack_require__(\"50ed\");\nvar Iterators = __webpack_require__(\"481b\");\nvar toIObject = __webpack_require__(\"36c3\");\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__(\"30f1\")(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/***/ \"c3a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"e6f3\");\nvar enumBugKeys = __webpack_require__(\"1691\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\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/* harmony import */ var F_source_Vue_Draggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"4aa6\");\n/* harmony import */ var F_source_Vue_Draggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(F_source_Vue_Draggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1__);\n\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 = F_source_Vue_Draggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1___default()(null);\n\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/***/ \"c8bb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"54a1\");\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/***/ \"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/***/ \"ce7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"63b6\");\nvar core = __webpack_require__(\"584a\");\nvar fails = __webpack_require__(\"294c\");\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/***/ \"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/***/ \"d2d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"1654\");\n__webpack_require__(\"549b\");\nmodule.exports = __webpack_require__(\"584a\").Array.from;\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/***/ \"d864\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"79aa\");\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/***/ \"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/***/ \"d9f6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"e4ae\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"794b\");\nvar toPrimitive = __webpack_require__(\"1bc3\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"8e60\") ? 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/***/ \"dbdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"584a\");\nvar global = __webpack_require__(\"e53d\");\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__(\"b8e3\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"dc62\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"9427\");\nvar $Object = __webpack_require__(\"584a\").Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n\n\n/***/ }),\n\n/***/ \"e4ae\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"f772\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e53d\":\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/***/ \"e6f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"07e3\");\nvar toIObject = __webpack_require__(\"36c3\");\nvar arrayIndexOf = __webpack_require__(\"5b4e\")(false);\nvar IE_PROTO = __webpack_require__(\"5559\")('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/***/ \"f410\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"1af6\");\nmodule.exports = __webpack_require__(\"584a\").Array.isArray;\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/***/ \"f772\":\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/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\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 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/@babel/runtime-corejs2/core-js/object/assign.js\nvar object_assign = __webpack_require__(\"5176\");\nvar assign_default = /*#__PURE__*/__webpack_require__.n(object_assign);\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/@babel/runtime-corejs2/core-js/object/keys.js\nvar keys = __webpack_require__(\"a4bb\");\nvar keys_default = /*#__PURE__*/__webpack_require__.n(keys);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js\nvar is_array = __webpack_require__(\"a745\");\nvar is_array_default = /*#__PURE__*/__webpack_require__.n(is_array);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithHoles.js\n\nfunction _arrayWithHoles(arr) {\n if (is_array_default()(arr)) return arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/get-iterator.js\nvar get_iterator = __webpack_require__(\"5d73\");\nvar get_iterator_default = /*#__PURE__*/__webpack_require__.n(get_iterator);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArrayLimit.js\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = get_iterator_default()(arr), _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-corejs2/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray.js\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(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-corejs2/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (is_array_default()(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/array/from.js\nvar from = __webpack_require__(\"774e\");\nvar from_default = /*#__PURE__*/__webpack_require__.n(from);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/is-iterable.js\nvar is_iterable = __webpack_require__(\"c8bb\");\nvar is_iterable_default = /*#__PURE__*/__webpack_require__.n(is_iterable);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArray.js\n\n\nfunction _iterableToArray(iter) {\n if (is_iterable_default()(Object(iter)) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return from_default()(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray.js\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(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\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 = keys_default()($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\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\n assign_default()(attributes.attrs, componentDataAttrs);\n\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 vuedraggable_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: vuedraggable_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\n var attributes = keys_default()(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n\n var options = assign_default()({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\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 assign_default()(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\n assign_default()(draggedContext, {\n futureIndex: futureIndex\n });\n\n var sendEvt = assign_default()({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\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//# sourceMappingURL=vuedraggable.common.js.map","/**!\n * Sortable 1.10.1\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.1\";\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;\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 if (IE11OrLess) {\n return document.documentElement;\n } else {\n return document.scrollingElement;\n }\n}\n/**\n * Returns the \"bounding client rect\" of given element\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\n * @param {[HTMLElement]} container The parent the element will be placed in\n * @return {Object} The boundingClientRect of el, with specified adjustments\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/**\n * Checks if a side of an element is scrolled past a side of its parents\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\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/**\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\n * and non-draggable elements\n * @param {HTMLElement} el The parent element\n * @param {Number} childNum The index of the child\n * @param {Object} options Parent Sortable's options\n * @return {HTMLElement} The child at index childNum, or null if not found\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/**\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\n * @param {HTMLElement} el Parent element\n * @param {selector} selector Any other elements that should be ignored\n * @return {HTMLElement} The last child, ignoring ghostEl\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/**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\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/**\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\n * The value is returned in real pixels.\n * @param {HTMLElement} el\n * @return {Array} Offsets in the format of [left, top]\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/**\n * Returns the index of the object within the given array\n * @param {Array} arr Array that may or may not hold the object\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\n * @return {Number} The index of the object in the array, or -1\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),\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 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 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 (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 /**\n * Selects the provided multi-drag item\n * @param {HTMLElement} el The element to be selected\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 /**\n * Deselects the provided multi-drag item\n * @param {HTMLElement} el The element to be deselected\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/**\n * Insert multi-drag clones\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\n * @param {HTMLElement} rootEl\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","// Exports the \"insertdatetime\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/insertdatetime')\n// ES2015:\n// import 'tinymce/plugins/insertdatetime'\nrequire('./plugin.js');","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tinymce.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tinymce.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',[_c('editor',{attrs:{\"init\":_vm.init,\"disabled\":_vm.disabled},on:{\"onClick\":_vm.onClick},model:{value:(_vm.myValue),callback:function ($$v) {_vm.myValue=$$v},expression:\"myValue\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./tinymce.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!./tinymce.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./tinymce.vue?vue&type=template&id=093ee963&\"\nimport script from \"./tinymce.vue?vue&type=script&lang=js&\"\nexport * from \"./tinymce.vue?vue&type=script&lang=js&\"\nimport style0 from \"./tinymce.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","export default {\r\n //处理卡券方法\r\n loadData(tempData: any) {\r\n let wxcardItems: any = [];\r\n wxcardItems.push({\r\n type: \"htmlpanel\", // A HTML panel component\r\n html:\r\n \"
 卡券类型卡券名称卡券有效期库存微信价(元)卡券状态
\"\r\n });\r\n if (!tempData || tempData.length == 0) {\r\n wxcardItems.push({\r\n type: \"htmlpanel\", // A HTML panel component\r\n html: \"
暂无卡券
\"\r\n });\r\n } else {\r\n //console.log(tempData);\r\n tempData.forEach((e: any) => {\r\n //console.log(e);\r\n if (e.errcode == 0) {\r\n var temp = e.card;\r\n //折扣券\r\n if (temp.card_type == \"DISCOUNT\") {\r\n var baseInfo = temp.discount.base_info;\r\n wxcardItems.push({\r\n type: \"checkbox\",\r\n name: this.CardVal(baseInfo,temp),\r\n label:\r\n \"折扣券\" +\r\n baseInfo.title +\r\n \"\" +\r\n this.cardDataTimeFormat(baseInfo.date_info) +\r\n \"\" +\r\n baseInfo.sku.quantity +\r\n \"--\" +\r\n this.CardStatus(baseInfo.status) +\r\n \"\"\r\n });\r\n // console.log(baseInfo); \r\n }\r\n //代金券\r\n if (temp.card_type == \"CASH\") {\r\n var baseInfo = temp.cash.base_info;\r\n wxcardItems.push({\r\n type: \"checkbox\",\r\n name: this.CardVal(baseInfo,temp),\r\n label:\r\n \"代金券\" +\r\n baseInfo.title +\r\n \"\" +\r\n this.cardDataTimeFormat(baseInfo.date_info) +\r\n \"\" +\r\n baseInfo.sku.quantity +\r\n \"--\" +\r\n this.CardStatus(baseInfo.status) +\r\n \"\"\r\n });\r\n }\r\n //兑换券\r\n if (temp.card_type == \"GIFT\") {\r\n var baseInfo = temp.gift.base_info;\r\n wxcardItems.push({\r\n type: \"checkbox\",\r\n name: this.CardVal(baseInfo,temp),\r\n label:\r\n \"兑换券\" +\r\n baseInfo.title +\r\n \"\" +\r\n this.cardDataTimeFormat(baseInfo.date_info) +\r\n \"\" +\r\n baseInfo.sku.quantity +\r\n \"--\" +\r\n this.CardStatus(baseInfo.status) +\r\n \"\"\r\n });\r\n }\r\n //团购券\r\n if (temp.card_type == \"GROUPON\") {\r\n var baseInfo = temp.groupon.base_info;\r\n wxcardItems.push({\r\n type: \"checkbox\",\r\n name: this.CardVal(baseInfo,temp),\r\n label:\r\n \"团购券\" +\r\n baseInfo.title +\r\n \"\" +\r\n this.cardDataTimeFormat(baseInfo.date_info) +\r\n \"\" +\r\n baseInfo.sku.quantity +\r\n \"--\" +\r\n this.CardStatus(baseInfo.status) +\r\n \"\"\r\n });\r\n }\r\n //优惠券\r\n if (temp.card_type == \"GENERAL_COUPON\") {\r\n var baseInfo = temp.general_coupon.base_info;\r\n wxcardItems.push({\r\n type: \"checkbox\",\r\n name: this.CardVal(baseInfo,temp),\r\n label:\r\n \"优惠券\" +\r\n baseInfo.title +\r\n \"\" +\r\n this.cardDataTimeFormat(baseInfo.date_info) +\r\n \"\" +\r\n baseInfo.sku.quantity +\r\n \"--\" +\r\n this.CardStatus(baseInfo.status) +\r\n \"\"\r\n });\r\n }\r\n //会员卡:MEMBER_CARD;\r\n if (temp.card_type == \"MEMBER_CARD\") {\r\n var baseInfo = temp.member_card.base_info;\r\n wxcardItems.push({\r\n type: \"checkbox\",\r\n name: this.CardVal(baseInfo,temp),\r\n label:\r\n \"会员卡\" +\r\n baseInfo.title +\r\n \"\" +\r\n this.cardDataTimeFormat(baseInfo.date_info) +\r\n \"----\" +\r\n this.CardStatus(baseInfo.status) +\r\n \"\"\r\n });\r\n //console.log(baseInfo); \r\n }\r\n // 景点门票:SCENIC_TICKET ; 电影票:MOVIE_TICKET; 飞机票:BOARDING_PASS; 会议门票:MEETING_TICKET; 汽车票:BUS_TICKET;\r\n }\r\n });\r\n }\r\n //wxCardHtml = wxCardHtml + \"只能投放普通券\";\r\n wxcardItems.push(\r\n {\r\n type: \"htmlpanel\", // component type\r\n html: \"
注意:因微信有防盗链限制可能会出现无法显示LOGO,但发布后可以正常显示!
\"\r\n\r\n },\r\n {\r\n type: \"button\", // component type\r\n text: \"获取最新卡券信息\",\r\n primary: true,\r\n name: \"wxCard-button\"\r\n // disabled: true,\r\n //borderless: false\r\n }\r\n );\r\n return wxcardItems;\r\n },\r\n //卡券有效时间格式化\r\n cardDataTimeFormat(dateinfo: any) {\r\n if (dateinfo.fixed_term != 0) {\r\n if (dateinfo.fixed_begin_term == 0) {\r\n return \"领取后当天生效\" + dateinfo.fixed_term + \"天有效\";\r\n } else {\r\n return (\r\n \"领取后\" +\r\n dateinfo.fixed_begin_term +\r\n \"天生效\" +\r\n dateinfo.fixed_term +\r\n \"天有效\"\r\n );\r\n }\r\n }\r\n if (dateinfo.begin_timestamp != 0) {\r\n return (\r\n this.formatDate(dateinfo.begin_timestamp * 1000) +\r\n \"至\" +\r\n this.formatDate(dateinfo.end_timestamp * 1000)\r\n );\r\n }\r\n return \" \";\r\n },\r\n //卡券状态格式化 “CARD_STATUS_NOT_VERIFY”,待审核 ; “CARD_STATUS_VERIFY_FAIL”,审核失败; “CARD_STATUS_VERIFY_OK”,通过审核; “CARD_STATUS_DELETE”,卡券被商户删除; “CARD_STATUS_DISPATCH”,在公众平台投放过的卡券 ;\r\n CardStatus(val: any) {\r\n switch (val) {\r\n case \"CARD_STATUS_VERIFY_OK\":\r\n return \"待投放\";\r\n case \"CARD_STATUS_DISPATCH\":\r\n return \"投放过\";\r\n }\r\n },\r\n //选择卡券内容\r\n CardVal(baseInfo: any,info:any) {\r\n let val =\r\n \"logo_url|$|\" +\r\n encodeURIComponent(baseInfo.logo_url) +\r\n \"|$$|brand_name|$|\" +\r\n encodeURIComponent(baseInfo.brand_name) +\r\n \"|$$|title|$|\" +\r\n encodeURIComponent(baseInfo.title) +\r\n \"|$$|color|$|\" +\r\n encodeURIComponent(baseInfo.color) +\r\n \"|$$|cardid|$|\" +\r\n baseInfo.id+\r\n \"|$$|card_type|$|\" +info.card_type;\r\n return val;\r\n },\r\n //时间戳转时间\r\n formatDate(value: any) {\r\n let date = new Date(value);\r\n let y = date.getFullYear();\r\n let MM = date.getMonth() + 1;\r\n let MMstr = MM < 10 ? \"0\" + MM : MM;\r\n let d = date.getDate();\r\n let dstr = d < 10 ? \"0\" + d : d;\r\n let h = date.getHours();\r\n let hstr = h < 10 ? \"0\" + h : h;\r\n let m = date.getMinutes();\r\n let mstr = m < 10 ? \"0\" + m : m;\r\n let s = date.getSeconds();\r\n let sstr = s < 10 ? \"0\" + s : s;\r\n //return y + \"-\" + MMstr + \"-\" + dstr + \" \" + hstr + \":\" + mstr + \":\" + sstr;\r\n return y + \"-\" + MMstr + \"-\" + dstr;\r\n }\r\n \r\n}\r\n","module.exports = __webpack_public_path__ + \"img/import-word.ec8093af.svg\";","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.2.2 (2020-04-23)\n */\n(function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var getDateFormat = function (editor) {\n return editor.getParam('insertdatetime_dateformat', editor.translate('%Y-%m-%d'));\n };\n var getTimeFormat = function (editor) {\n return editor.getParam('insertdatetime_timeformat', editor.translate('%H:%M:%S'));\n };\n var getFormats = function (editor) {\n return editor.getParam('insertdatetime_formats', [\n '%H:%M:%S',\n '%Y-%m-%d',\n '%I:%M:%S %p',\n '%D'\n ]);\n };\n var getDefaultDateTime = function (editor) {\n var formats = getFormats(editor);\n return formats.length > 0 ? formats[0] : getTimeFormat(editor);\n };\n var shouldInsertTimeElement = function (editor) {\n return editor.getParam('insertdatetime_element', false);\n };\n var Settings = {\n getDateFormat: getDateFormat,\n getTimeFormat: getTimeFormat,\n getFormats: getFormats,\n getDefaultDateTime: getDefaultDateTime,\n shouldInsertTimeElement: shouldInsertTimeElement\n };\n\n var daysShort = 'Sun Mon Tue Wed Thu Fri Sat Sun'.split(' ');\n var daysLong = 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split(' ');\n var monthsShort = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' ');\n var monthsLong = 'January February March April May June July August September October November December'.split(' ');\n var addZeros = function (value, len) {\n value = '' + value;\n if (value.length < len) {\n for (var i = 0; i < len - value.length; i++) {\n value = '0' + value;\n }\n }\n return value;\n };\n var getDateTime = function (editor, fmt, date) {\n date = date || new Date();\n fmt = fmt.replace('%D', '%m/%d/%Y');\n fmt = fmt.replace('%r', '%I:%M:%S %p');\n fmt = fmt.replace('%Y', '' + date.getFullYear());\n fmt = fmt.replace('%y', '' + date.getYear());\n fmt = fmt.replace('%m', addZeros(date.getMonth() + 1, 2));\n fmt = fmt.replace('%d', addZeros(date.getDate(), 2));\n fmt = fmt.replace('%H', '' + addZeros(date.getHours(), 2));\n fmt = fmt.replace('%M', '' + addZeros(date.getMinutes(), 2));\n fmt = fmt.replace('%S', '' + addZeros(date.getSeconds(), 2));\n fmt = fmt.replace('%I', '' + ((date.getHours() + 11) % 12 + 1));\n fmt = fmt.replace('%p', '' + (date.getHours() < 12 ? 'AM' : 'PM'));\n fmt = fmt.replace('%B', '' + editor.translate(monthsLong[date.getMonth()]));\n fmt = fmt.replace('%b', '' + editor.translate(monthsShort[date.getMonth()]));\n fmt = fmt.replace('%A', '' + editor.translate(daysLong[date.getDay()]));\n fmt = fmt.replace('%a', '' + editor.translate(daysShort[date.getDay()]));\n fmt = fmt.replace('%%', '%');\n return fmt;\n };\n var updateElement = function (editor, timeElm, computerTime, userTime) {\n var newTimeElm = editor.dom.create('time', { datetime: computerTime }, userTime);\n timeElm.parentNode.insertBefore(newTimeElm, timeElm);\n editor.dom.remove(timeElm);\n editor.selection.select(newTimeElm, true);\n editor.selection.collapse(false);\n };\n var insertDateTime = function (editor, format) {\n if (Settings.shouldInsertTimeElement(editor)) {\n var userTime = getDateTime(editor, format);\n var computerTime = void 0;\n if (/%[HMSIp]/.test(format)) {\n computerTime = getDateTime(editor, '%Y-%m-%dT%H:%M');\n } else {\n computerTime = getDateTime(editor, '%Y-%m-%d');\n }\n var timeElm = editor.dom.getParent(editor.selection.getStart(), 'time');\n if (timeElm) {\n updateElement(editor, timeElm, computerTime, userTime);\n } else {\n editor.insertContent('');\n }\n } else {\n editor.insertContent(getDateTime(editor, format));\n }\n };\n var Actions = {\n insertDateTime: insertDateTime,\n getDateTime: getDateTime\n };\n\n var register = function (editor) {\n editor.addCommand('mceInsertDate', function () {\n Actions.insertDateTime(editor, Settings.getDateFormat(editor));\n });\n editor.addCommand('mceInsertTime', function () {\n Actions.insertDateTime(editor, Settings.getTimeFormat(editor));\n });\n };\n var Commands = { register: register };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var register$1 = function (editor) {\n var formats = Settings.getFormats(editor);\n var defaultFormat = Cell(Settings.getDefaultDateTime(editor));\n editor.ui.registry.addSplitButton('insertdatetime', {\n icon: 'insert-time',\n tooltip: 'Insert date/time',\n select: function (value) {\n return value === defaultFormat.get();\n },\n fetch: function (done) {\n done(global$1.map(formats, function (format) {\n return {\n type: 'choiceitem',\n text: Actions.getDateTime(editor, format),\n value: format\n };\n }));\n },\n onAction: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n Actions.insertDateTime(editor, defaultFormat.get());\n },\n onItemAction: function (_, value) {\n defaultFormat.set(value);\n Actions.insertDateTime(editor, value);\n }\n });\n var makeMenuItemHandler = function (format) {\n return function () {\n defaultFormat.set(format);\n Actions.insertDateTime(editor, format);\n };\n };\n editor.ui.registry.addNestedMenuItem('insertdatetime', {\n icon: 'insert-time',\n text: 'Date/time',\n getSubmenuItems: function () {\n return global$1.map(formats, function (format) {\n return {\n type: 'menuitem',\n text: Actions.getDateTime(editor, format),\n onAction: makeMenuItemHandler(format)\n };\n });\n }\n });\n };\n var Buttons = { register: register$1 };\n\n function Plugin () {\n global.add('insertdatetime', function (editor) {\n Commands.register(editor);\n Buttons.register(editor);\n });\n }\n\n Plugin();\n\n}());\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\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\nrequire('./_fix-re-wks')('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","import Vue from 'vue';\r\n\r\n// 使用 Event Bus\r\nconst bus = new Vue();\r\n\r\nexport default bus;\r\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","module.exports = __webpack_public_path__ + \"img/qr-code.12a999c1.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"commonMain\",staticStyle:{\"background-color\":\"#FFF\"}},[_c('ul',{staticClass:\"used-tools\"},[_c('li',[_vm._v(\"常用工具:\")]),_c('li',{on:{\"click\":function($event){_vm.ImportArticleShow=true}}},[_c('div',{staticClass:\"icon-box\"},[_c('i',{staticClass:\"el-icon-download\",style:({fontSize:'26px'})})]),_c('p',[_vm._v(\"导入文章\")])]),_c('li',{on:{\"click\":function($event){_vm.ImportWordShow=true}}},[_vm._m(0),_c('p',[_vm._v(\"导入Word\")])]),_c('li',{on:{\"click\":function($event){_vm.dialogVisible=true}}},[_vm._m(1),_c('p',[_vm._v(\"生成二维码\")])])]),_c('div',{staticClass:\"main-wrap\"},[_c('div',{staticClass:\"style-group\"},[_c('div',{staticClass:\"style-top\"},[_c('div',[_vm._v(\"样式管理\")]),_c('div',[_c('el-switch',{model:{value:(_vm.switchStyle),callback:function ($$v) {_vm.switchStyle=$$v},expression:\"switchStyle\"}}),(_vm.switchStyle)?_c('span',[_vm._v(\"开启\")]):_c('span',[_vm._v(\"关闭\")])],1)]),(_vm.switchStyle)?_c('div',{staticClass:\"style-open-box\"},[_c('ul',{staticClass:\"tabs-menu\"},[_c('li',{class:{'active':_vm.currentStyleIndex==-1},on:{\"click\":function($event){return _vm.changeStyleIndex(-1)}}},[_vm._v(\"热门\")]),_vm._l((_vm.TagidData),function(item,index){return _c('li',{key:index,class:{'active':_vm.currentStyleIndex==index},on:{\"click\":function($event){return _vm.changeStyleIndex(index)}}},[_vm._v(_vm._s(item.label))])})],2),_c('el-scrollbar',{staticClass:\"li-content\"},[(_vm.currentStyleIndex==-1)?_c('div',[_c('div',[_c('el-button',{staticStyle:{\"margin\":\"2px\",\"cursor\":\"pointer\"},attrs:{\"size\":\"mini\",\"type\":_vm.tagHotListSelct==0?'success':''},on:{\"click\":function($event){return _vm.tagHotList(0);}}},[_vm._v(\"通用标签\")]),_c('el-button',{staticStyle:{\"margin\":\"2px\",\"cursor\":\"pointer\"},attrs:{\"size\":\"mini\",\"type\":_vm.tagHotListSelct==_vm.GetAppData.TenantID?'success':''},on:{\"click\":function($event){return _vm.tagHotList(_vm.GetAppData.TenantID);}}},[_vm._v(\"自定义标签\")])],1),_c('ul',_vm._l((_vm.tagHotListData),function(item,index){return _c('li',{key:index,attrs:{\"title\":item.Title}},[_c('div',{staticClass:\"template-item-cover\",attrs:{\"title\":'【'+item.Type+'】'+item.Title+'【使用次数:'+item.Number+'】'},domProps:{\"innerHTML\":_vm._s(item.Contents)},on:{\"click\":function($event){return _vm.addContents(item)}}})])}),0)]):_c('div',[_c('el-input',{attrs:{\"placeholder\":\"请输入关键词\",\"size\":\"mini\"},on:{\"blur\":_vm.LoadMaterialListData},model:{value:(_vm.Searchkey),callback:function ($$v) {_vm.Searchkey=$$v},expression:\"Searchkey\"}},[_c('i',{staticClass:\"el-input__icon el-icon-search\",attrs:{\"slot\":\"prefix\"},slot:\"prefix\"})]),(_vm.currentStyleIndex==0)?_c('div',[(_vm.tagType!='')?_c('div',[_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){_vm.tagType=''}}},[_vm._v(\"《返回\")]),_vm._v(\"\\n 当前:\"+_vm._s(_vm.tagType)+\"\\n \")],1):_vm._e(),_c('div',[(_vm.tagType=='')?_c('div',_vm._l((_vm.TagidData[_vm.currentStyleIndex].children),function(e,index){return _c('ul',{key:index},[_c('li',[_c('span',[_c('div',{staticClass:\"modelList\",attrs:{\"title\":e.label}},[_c('div',{staticStyle:{\"padding\":\"10px\"}},[_c('el-button',{on:{\"click\":function($event){return _vm.elTag(e.label)}}},[_vm._v(\"分开使用\")])],1),_c('div',{staticStyle:{\"padding\":\"10px\"}},[_c('el-button',{on:{\"click\":function($event){return _vm.addContentsAll(e.label)}}},[_vm._v(\"整体使用\")])],1)]),(_vm.totalItem>0)?_c('div',{staticClass:\"template-item-cover modelListShow\",style:({height:'300px'}),domProps:{\"innerHTML\":_vm._s(_vm.viewContentsAll(e.label))}}):_vm._e()])])])}),0):_vm._e()])]):_c('div',_vm._l((_vm.TagidData[_vm.currentStyleIndex].children),function(i,index){return _c('div',{key:index,staticClass:\"template-item-cover\",attrs:{\"title\":_vm.inboxTabData[index].Title},domProps:{\"innerHTML\":_vm._s(_vm.inboxTabData[index].Contents)},on:{\"click\":function($event){return _vm.addContents(_vm.inboxTabData[index])}}},[(_vm.GetAppData.TenantID==_vm.inboxTabData[index].TenantID)?_c('div',{staticClass:\"imgtextedit-btns\",style:({position:'absolute',textAlign:'right',right:'5px',bottom:'5px',zIndex:'100',display:'none'})},[_c('el-button',{attrs:{\"circle\":\"\",\"plain\":\"\",\"icon\":\"el-icon-edit\",\"size\":\"mini\",\"title\":\"修改\"},on:{\"click\":function($event){return _vm.AddMaterialList(_vm.inboxTabData[index]);}}})],1):_vm._e()])}),0)],1)])],1):_c('div',{staticClass:\"style-close-box\"},[_c('div',{staticClass:\"tips\"},[_vm._v(\"提示:点着鼠标不放上下拖动可以实现排序!\")]),_c('draggable',{model:{value:(_vm.ArticleList),callback:function ($$v) {_vm.ArticleList=$$v},expression:\"ArticleList\"}},[_c('transition-group',{staticClass:\"list-ul\",attrs:{\"tag\":\"ul\"}},_vm._l((_vm.ArticleList),function(item,index){return _c('li',{key:index,staticClass:\"delArticle\",class:{'activeTow':_vm.articleClicked==index},on:{\"click\":function($event){return _vm.selectContents(item,index)}}},[(index>0)?_c('div',{staticClass:\"del\"},[_c('el-button',{attrs:{\"icon\":\"el-icon-delete\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delarticle(index)}}},[_vm._v(\"删除\")])],1):_vm._e(),_c('div',{staticClass:\"item-box\"},[(item.GraphicTitle)?_c('div',{staticClass:\"title-box\"},[_vm._v(_vm._s(item.GraphicTitle))]):_vm._e(),_c('el-image',{attrs:{\"src\":item.CoverImage,\"fit\":\"cover\"}},[_c('div',{attrs:{\"slot\":\"error\"},slot:\"error\"},[_vm._v(\"右侧上传\")])])],1)])}),0)],1),(_vm.ArticleList.length<8)?_c('div',{staticClass:\"add-box\",on:{\"click\":_vm.addarticle}},[_c('i',{staticClass:\"el-icon-plus\"}),_vm._v(\" 新建消息\\n \")]):_vm._e()],1)]),(_vm.switchStyle)?_c('div',{staticClass:\"center-group\"},[_c('el-button',{attrs:{\"type\":\"text\",\"icon\":\"el-icon-upload\"},on:{\"click\":function($event){return _vm.AddMaterialList('')}}},[_c('br'),_vm._v(\"导\\n \"),_c('br'),_vm._v(\"入\\n \"),_c('br'),_vm._v(\"样\\n \"),_c('br'),_vm._v(\"式\\n \")]),_c('el-button',{attrs:{\"type\":\"text\",\"icon\":\"el-icon-delete\"},on:{\"click\":_vm.ClearContent}},[_c('br'),_vm._v(\"清\\n \"),_c('br'),_vm._v(\"空\\n \"),_c('br'),_vm._v(\"文\\n \"),_c('br'),_vm._v(\"章\\n \")])],1):_vm._e(),_c('el-scrollbar',{staticClass:\"right-wrap\",attrs:{\"id\":\"ImgTxtEdit\"}},[_c('el-form',{ref:\"AddaccountForm\",staticClass:\"demo-commonForm\",attrs:{\"model\":_vm.AddaccountForm,\"inline\":true}},[(!_vm.disabled)?_c('el-form-item',[_c('el-input',{style:({width:'60%',marginRight:'3%'}),attrs:{\"type\":\"text\",\"maxlength\":\"50\",\"show-word-limit\":\"\",\"placeholder\":\"请输入标题\"},model:{value:(_vm.AddaccountForm.GraphicTitle),callback:function ($$v) {_vm.$set(_vm.AddaccountForm, \"GraphicTitle\", $$v)},expression:\"AddaccountForm.GraphicTitle\"}}),_c('el-input',{style:({width:'37%',height: '50px'}),attrs:{\"maxlength\":\"20\",\"show-word-limit\":\"\",\"placeholder\":\"请输入作者\"},model:{value:(_vm.AddaccountForm.UpdaterName),callback:function ($$v) {_vm.$set(_vm.AddaccountForm, \"UpdaterName\", $$v)},expression:\"AddaccountForm.UpdaterName\"}})],1):_vm._e(),_c('el-form-item',[_c('tinymce',{ref:\"tinymceeditor\",style:({zIndex:'0',position:'relative',maxWidth:'800px',minWidth:'700px'}),attrs:{\"disabled\":_vm.disabled},on:{\"onClick\":_vm.tinymceOnClick},model:{value:(_vm.AddaccountForm.Contents),callback:function ($$v) {_vm.$set(_vm.AddaccountForm, \"Contents\", $$v)},expression:\"AddaccountForm.Contents\"}})],1),(!_vm.disabled)?_c('el-form-item',[_c('el-button',{attrs:{\"size\":\"mini\",\"disabled\":_vm.disabled},on:{\"click\":function($event){_vm.stockEditShow=!_vm.stockEditShow}}},[_vm._v(\"素材库选择图片\")])],1):_vm._e(),(!_vm.disabled)?_c('div',{staticClass:\"cover-abs\"},[_c('div',{staticClass:\"cover\"},[_c('h4',[_vm._v(\"封面和摘要\")]),_c('el-upload',{staticClass:\"avatar-uploader\",attrs:{\"accept\":\"image/jpeg, image/png, image/bmp\",\"show-file-list\":false,\"before-upload\":_vm.onBeforeUploadImage,\"http-request\":_vm.UploadImage,\"action\":_vm.UploadImage}},[(_vm.AddaccountForm.CoverImage)?_c('div',[(_vm.articleClicked==0)?_c('img',{attrs:{\"src\":_vm.AddaccountForm.CoverImage,\"width\":\"235\",\"height\":\"100\"}}):_c('img',{attrs:{\"src\":_vm.AddaccountForm.CoverImage,\"width\":\"175\",\"height\":\"175\"}})]):_c('i',{staticClass:\"el-icon-plus avatar-uploader-icon-upload\"})]),_c('div',{staticClass:\"avatar-uploader-icon-upload_div\"},[_c('el-button',{attrs:{\"type\":\"success\",\"size\":\"mini\",\"disabled\":_vm.disabled},on:{\"click\":function($event){_vm.stockImagesShow=!_vm.stockImagesShow}}},[_vm._v(\"素材库选\")]),_c('el-button',{attrs:{\"type\":\"success\",\"size\":\"mini\"},on:{\"click\":function($event){_vm.stockcontentShow=!_vm.stockcontentShow}}},[_vm._v(\"内容中选\")])],1)],1),_c('div',{staticClass:\"abs\"},[(_vm.articleClicked==0)?_c('h4',[_vm._v(\"图文封面(2.35:1)\")]):_c('h4',[_vm._v(\"图文封面(1:1)\")]),_c('el-input',{style:({width:'100%',height:'180px'}),attrs:{\"type\":\"textarea\",\"placeholder\":\"请输入摘要\",\"size\":\"small\",\"rows\":6,\"maxlength\":\"120\",\"show-word-limit\":\"\"},model:{value:(_vm.AddaccountForm.Remarks),callback:function ($$v) {_vm.$set(_vm.AddaccountForm, \"Remarks\", $$v)},expression:\"AddaccountForm.Remarks\"}}),(_vm.articleClicked==0)?_c('p',[_vm._v(\"你的星标、常读用户将在订阅号消息列表里,看到此封面,图片大小不超过700K。\")]):_c('p',[_vm._v(\"其他用户将在订阅号消息列表里,看到此封面,图片大小不超过700K。\")])],1)]):_vm._e(),(!_vm.disabled)?_c('div',{staticClass:\"switch-group\"},[_c('div',{staticClass:\"item-switch\"},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#DCDFE6\"},model:{value:(_vm.AddaccountForm.switchDetailImage),callback:function ($$v) {_vm.$set(_vm.AddaccountForm, \"switchDetailImage\", $$v)},expression:\"AddaccountForm.switchDetailImage\"}}),_vm._v(\"详细页是否显示封面\\n \")],1),_c('div',{staticClass:\"item-switch\"},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#DCDFE6\"},model:{value:(_vm.AddaccountForm.switchFollowDisplay),callback:function ($$v) {_vm.$set(_vm.AddaccountForm, \"switchFollowDisplay\", $$v)},expression:\"AddaccountForm.switchFollowDisplay\"}}),_vm._v(\"关注、查看原文\\n \")],1)]):_vm._e(),(!_vm.disabled)?_c('el-form-item',{attrs:{\"label\":\"图文外链网址:\"}},[_c('el-input',{staticStyle:{\"width\":\"100% !important\"},attrs:{\"placeholder\":\"为微信文章底部查看原文地址!\"},model:{value:(_vm.AddaccountForm.ContentSourceUrl),callback:function ($$v) {_vm.$set(_vm.AddaccountForm, \"ContentSourceUrl\", $$v)},expression:\"AddaccountForm.ContentSourceUrl\"}})],1):_vm._e(),(!_vm.disabled)?_c('el-form-item',[_c('el-button',{attrs:{\"icon\":\"el-icon-check\",\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.SavaTextData}},[_vm._v(\"保存\")]),_c('el-button',{attrs:{\"icon\":\"el-icon-close\",\"size\":\"small\"},on:{\"click\":_vm.cancle}},[_vm._v(\"取消\")])],1):_vm._e()],1)],1)],1),_c('div',[_c('el-dialog',{attrs:{\"title\":\"选择素材库图片\",\"visible\":_vm.stockImagesShow,\"center\":\"\",\"close-on-click-modal\":false,\"width\":\"50%\",\"show-close\":false,\"close-on-press-escape\":false},on:{\"update:visible\":function($event){_vm.stockImagesShow=$event}}},[_c('el-input',{attrs:{\"placeholder\":\"输入图片关键词!\",\"size\":\"mini\",\"prefix-icon\":\"el-icon-search\"},on:{\"blur\":_vm.loadImages},model:{value:(_vm.imageKey),callback:function ($$v) {_vm.imageKey=$$v},expression:\"imageKey\"}}),_c('div',{style:({overflowY:'auto',height: '300px'})},_vm._l((_vm.stockImagesData),function(item,index){return _c('div',{key:index,staticClass:\"block\",class:{'selectImg':_vm.selectImgClicked==index},style:({float:'left',margin:'10px',border: '1px solid #ccc',cursor:'pointer'}),on:{\"click\":function($event){return _vm.selectImg(item,index)}}},[_c('el-image',{staticStyle:{\"width\":\"100px\",\"height\":\"100px\"},attrs:{\"src\":item.UploadImage,\"fit\":\"cover\"}})],1)}),0),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{attrs:{\"icon\":\"el-icon-check\",\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":function($event){_vm.stockImagesShow=!_vm.stockImagesShow}}},[_vm._v(\"确定\")]),_c('el-button',{attrs:{\"icon\":\"el-icon-close\",\"size\":\"small\"},on:{\"click\":_vm.selectImgcancle}},[_vm._v(\"取消\")])],1)],1),_c('el-dialog',{attrs:{\"title\":\"选择内容中图片\",\"visible\":_vm.stockcontentShow,\"center\":\"\",\"close-on-click-modal\":false,\"width\":\"50%\",\"show-close\":false,\"close-on-press-escape\":false},on:{\"update:visible\":function($event){_vm.stockcontentShow=$event}}},[_c('div',{style:({overflowY:'auto',height: '300px'})},_vm._l((_vm.stockcontentData),function(item,index){return _c('div',{key:index,staticClass:\"block\",class:{'selectImg':_vm.selectImgClicked==index},style:({float:'left',margin:'10px',border: '1px solid #ccc',cursor:'pointer'}),on:{\"click\":function($event){return _vm.selectImg(item,index)}}},[_c('el-image',{staticStyle:{\"width\":\"100px\",\"height\":\"100px\"},attrs:{\"src\":item.UploadImage,\"fit\":\"cover\"}})],1)}),0),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{attrs:{\"icon\":\"el-icon-check\",\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":function($event){_vm.stockcontentShow=!_vm.stockcontentShow}}},[_vm._v(\"确定\")]),_c('el-button',{attrs:{\"icon\":\"el-icon-close\",\"size\":\"small\"},on:{\"click\":_vm.selectImgcancle}},[_vm._v(\"取消\")])],1)]),_c('el-dialog',{attrs:{\"title\":\"选择素材库图片\",\"visible\":_vm.stockEditShow,\"center\":\"\",\"close-on-click-modal\":false,\"width\":\"50%\",\"show-close\":false,\"close-on-press-escape\":false},on:{\"update:visible\":function($event){_vm.stockEditShow=$event}}},[_c('div',{style:({overflowY:'auto',height: '300px'})},_vm._l((_vm.stockImagesData),function(item,index){return _c('div',{key:index,staticClass:\"block\",class:{'selectImg':_vm.selectEditClicked==index},style:({float:'left',margin:'10px',border: '1px solid #ccc',cursor:'pointer'}),on:{\"click\":function($event){return _vm.insertImg(item,index)}}},[_c('el-image',{staticStyle:{\"width\":\"100px\",\"height\":\"100px\"},attrs:{\"src\":item.UploadImage,\"fit\":\"cover\"}})],1)}),0),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{attrs:{\"icon\":\"el-icon-check\",\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.editImge}},[_vm._v(\"确定\")]),_c('el-button',{attrs:{\"icon\":\"el-icon-close\",\"size\":\"small\"},on:{\"click\":function($event){_vm.stockEditShow=!_vm.stockEditShow}}},[_vm._v(\"取消\")])],1)]),_c('div',{staticClass:\"weicode-dialog-wrap\"},[_c('el-dialog',{attrs:{\"title\":_vm.MaterialListShowTitle,\"visible\":_vm.MaterialListShow,\"center\":\"\",\"close-on-click-modal\":false,\"width\":\"660px\"},on:{\"update:visible\":function($event){_vm.MaterialListShow=$event}}},[_c('el-scrollbar',{staticStyle:{\"height\":\"400px\"}},[_c('el-form',{ref:\"MaterialListForm\",style:({width:'97%'}),attrs:{\"model\":_vm.MaterialListForm,\"label-width\":\"100px\",\"rules\":_vm.rulesMaterialList}},[_c('el-form-item',{attrs:{\"label\":\"选择标签\",\"size\":\"small\",\"prop\":\"MaterialListFormType\"}},[_c('el-cascader',{ref:\"cascader\",style:({width:'100%'}),attrs:{\"options\":_vm.TagidDataSelect,\"props\":_vm.props,\"change-on-select\":true,\"filterable\":true,\"clearable\":\"\",\"size\":\"small\"},on:{\"change\":_vm.handleChange},model:{value:(_vm.MaterialListFormType),callback:function ($$v) {_vm.MaterialListFormType=$$v},expression:\"MaterialListFormType\"}})],1),_c('el-form-item',{attrs:{\"label\":\"模板名称\",\"size\":\"small\",\"prop\":\"Title\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入模板名称\",\"maxlength\":\"20\",\"show-word-limit\":\"\",\"size\":\"small \"},model:{value:(_vm.MaterialListForm.Title),callback:function ($$v) {_vm.$set(_vm.MaterialListForm, \"Title\", $$v)},expression:\"MaterialListForm.Title\"}})],1),_c('el-form-item',{style:({marginLeft:'-90px'}),attrs:{\"size\":\"small\",\"prop\":\"Contents\"}},[_c('Ueditor',{ref:\"wangEditor\",style:({width:'100%'}),model:{value:(_vm.MaterialListForm.Contents),callback:function ($$v) {_vm.$set(_vm.MaterialListForm, \"Contents\", $$v)},expression:\"MaterialListForm.Contents\"}})],1),_c('el-form-item',{attrs:{\"label\":\"模板排序\",\"size\":\"small\",\"prop\":\"Sort\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入模板排序\",\"size\":\"small\",\"type\":\"text\",\"maxlength\":\"2\",\"show-word-limit\":\"\",\"min\":\"0\",\"max\":\"99\",\"oninput\":\"if(value.length>2)value=value.slice(0,2)\"},nativeOn:{\"keyup\":function($event){return _vm.number($event)}},model:{value:(_vm.MaterialListForm.Sort),callback:function ($$v) {_vm.$set(_vm.MaterialListForm, \"Sort\", $$v)},expression:\"MaterialListForm.Sort\"}})],1),_c('el-form-item',{attrs:{\"label\":\"模板备注\",\"size\":\"small\",\"prop\":\"Remarks\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"placeholder\":\"请输入备注\",\"maxlength\":\"200\",\"rows\":\"6\",\"show-word-limit\":\"\"},model:{value:(_vm.MaterialListForm.Remarks),callback:function ($$v) {_vm.$set(_vm.MaterialListForm, \"Remarks\", $$v)},expression:\"MaterialListForm.Remarks\"}})],1)],1)],1),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{attrs:{\"icon\":\"el-icon-check\",\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.saveMaterialList}},[_vm._v(\"保存\")]),_c('el-button',{attrs:{\"icon\":\"el-icon-close\",\"size\":\"small\"},on:{\"click\":function($event){_vm.MaterialListShow=!_vm.MaterialListShow}}},[_vm._v(\"取消\")])],1)],1)],1),_c('div',{staticClass:\"clcode-dialog\"},[_c('el-dialog',{staticStyle:{\"padding\":\"0\",\"margin\":\"0\"},attrs:{\"title\":\"生成二维码\",\"visible\":_vm.dialogVisible,\"width\":\"980px\"},on:{\"update:visible\":function($event){_vm.dialogVisible=$event}}},[_c('iframe',{attrs:{\"src\":\"https://mh.cli.im/?isdialog=1\",\"width\":\"100%\",\"frameborder\":\"0\",\"height\":\"550\",\"scrolling\":\"no\"}})])],1),_c('el-dialog',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loadingDialog),expression:\"loadingDialog\"}],attrs:{\"title\":\"导入微信公众号文章\",\"visible\":_vm.ImportArticleShow,\"center\":\"\",\"close-on-click-modal\":false,\"width\":\"650px\",\"element-loading-text\":\"文章正在导入中...... 请稍后!\",\"element-loading-spinner\":\"el-icon-loading\",\"element-loading-background\":\"rgba(0, 0, 0, 0.8)\"},on:{\"update:visible\":function($event){_vm.ImportArticleShow=$event}}},[_c('el-form',[_c('el-form-item',{attrs:{\"label\":\"请把需要采集的文章链接粘贴在下方的输入框中:\",\"size\":\"small\",\"prop\":\"Remarks\"}},[_c('el-input',{attrs:{\"placeholder\":\"微信公众号图文链接地址(以https://mp.weixin.qq.com开头)\"},model:{value:(_vm.gatherArticleBylink),callback:function ($$v) {_vm.gatherArticleBylink=$$v},expression:\"gatherArticleBylink\"}})],1)],1),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{attrs:{\"icon\":\"el-icon-check\",\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.ImportArticle}},[_vm._v(\"文章采集\")]),_c('el-button',{attrs:{\"icon\":\"el-icon-close\",\"size\":\"small\"},on:{\"click\":function($event){_vm.ImportArticleShow=!_vm.ImportArticleShow}}},[_vm._v(\"取消\")])],1)],1),_c('el-dialog',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loadingDialog),expression:\"loadingDialog\"}],attrs:{\"title\":\"导入Word文章\",\"visible\":_vm.ImportWordShow,\"center\":\"\",\"width\":\"420px\",\"element-loading-text\":\"文章正在导入中...... 请稍后!\",\"element-loading-spinner\":\"el-icon-loading\",\"element-loading-background\":\"rgba(0, 0, 0, 0.8)\"},on:{\"update:visible\":function($event){_vm.ImportWordShow=$event}}},[_c('el-button',{attrs:{\"type\":\"warning\",\"size\":\"mini\",\"icon\":\"el-icon-warning\",\"plain\":\"\"}},[_vm._v(\"导入内容将自动覆盖当前文章,使用前请自行保存。\")]),_c('el-divider'),_c('el-upload',{staticClass:\"upload-demo\",attrs:{\"drag\":\"\",\"accept\":\"application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\"show-file-list\":false,\"before-upload\":_vm.onBeforeUploadWord,\"http-request\":_vm.UploadWord,\"action\":_vm.UploadWord}},[_c('i',{staticClass:\"el-icon-upload\"}),_c('div',{staticClass:\"el-upload__text\"},[_vm._v(\"\\n 将word文件拖到此处,或\\n \"),_c('em',[_vm._v(\"点击上传\")])]),_c('div',{staticClass:\"el-upload__tip\",attrs:{\"slot\":\"tip\"},slot:\"tip\"},[_vm._v(\"只能上传word文件,且不超过10M,支持图片(png,jpg,gif,bmg)\")])])],1)],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"icon-box\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/import-word.svg\")}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"icon-box\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/qr-code.svg\")}})])}]\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Provide, Vue, Watch, Prop } from \"vue-property-decorator\";\r\nimport httpApi from \"@/API/Tenant/Weixin\";\r\nimport { DataElement } from \"@/Entity\"; //全局常量\r\nimport { getCookie } from \"@/JS/cookie\"; //使用getCookie方法\r\nimport { WxTextImg } from \"@/Entity\"; //全局常量\r\nimport HttpClient from \"@/API/HttpClient\";\r\nimport Bus from \"@/JS/Bus\";\r\nimport wxCard from \"@/Entity/weixin/WxCard\"; //微信卡券处理方法\r\n//import EditorBar from \"@/components/editor/wangEditor.vue\";\r\n//import CKEditor from \"@/components/editor/CKEditor.vue\";\r\nimport tinymce from \"@/components/editor/tinymce.vue\";\r\n//import froalaEditor from \"@/components/editor/froala-editor.vue\";\r\nimport { join } from \"path\";\r\nconst Ueditor = require(\"vue-ueditor-wrap\"); // 引用百度编辑器\r\nconst draggable = require(\"vuedraggable\"); //引入拖动排序插件\r\n@Component({\r\n components: { draggable, tinymce, Ueditor }\r\n})\r\nexport default class weChatgraphicedit extends Vue {\r\n //注入数据 @Provide()\r\n @Prop()\r\n private AddaccountForm: WxTextImg | any = new WxTextImg(); //定义数据在WxTextImg里\r\n private myValue: any;\r\n //注入数据 @Provide()\r\n @Provide()\r\n private scrollHeight = 500; //当前高度\r\n private WeiXinArticleMaterialSortData: any = [];\r\n private switchStyle = true;\r\n private loading = false;\r\n private loadingDialog = false;\r\n private leftShow = true;\r\n private rightStyle: any = {};\r\n private TagidData: any = [];\r\n private TagidDataSelect: any = [];\r\n private pagesize = 500; //每页的数据条数\r\n private pageIndex = 1; // 默认第一页\r\n private totalItem = 0;\r\n private inboxTabData: any = [];\r\n private tabsType = \"\";\r\n private tagType = \"\";\r\n private stringType = \"\";\r\n private count: number = 10;\r\n private editContents = \"\";\r\n private editorInstance: any = []; //实例化编辑器\r\n private modlekeys: any = []; //模板类型数据\r\n private ListModelData: any = []; //加载模板数据\r\n private tagHotListData: any = []; //读取热门前100条\r\n private tagHotListSelct: any = 0; //当前选中\r\n private ModelData: any = []; //加载模板关键词数据\r\n private loadModelCount: any = [];\r\n private ModelListData: any = [];\r\n private clicked: number = 0; //选择的背景图片\r\n private articleClicked: number = 0; //选择第几篇文章\r\n private Searchkey = \"\";\r\n private dialogVisible = false; //\r\n private stockImagesShow = false; //素材库图片对话框\r\n private stockcontentShow = false; //内容中选择图片对话框\r\n private stockImagesData: any = []; //素材库图片数据源\r\n private imageKey: any = \"\";\r\n private stockcontentData: any = []; //内容的图片\r\n private selectImgClicked: number = -1; //选中的样式\r\n\r\n private stockEditShow = false; //插入图片\r\n private insertImgData: any = []; //当前选择中的图片\r\n private selectEditClicked: number = -1; //选中的样式\r\n\r\n private MaterialListShowTitle = \"\";\r\n private MaterialListShow = false;\r\n private MaterialListFormType: any = []; //当前选中的标签\r\n\r\n private CoverImagewidth = 235;\r\n private CoverImageheight = 100;\r\n private GetAppData: any = [];\r\n private ArticleList: any = []; //左侧文章列表\r\n\r\n private modfiyId: any = 0; //修改的id\r\n\r\n private ImportArticleShow = false;\r\n private gatherArticleBylink: any = \"\"; //微信公众号导入的文章地址\r\n\r\n private ImportWordShow = false;\r\n\r\n private disabled = false;\r\n\r\n private isClear = false;\r\n //匹配图片(g表示匹配所有结果i表示区分大小写)\r\n private wxwxdomain: any = \"\";\r\n private imgReg = /|\\/>)/gi;\r\n\r\n //匹配media_id属性\r\n private mediaIdReg = /media_id=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i;\r\n //匹配音乐标签\r\n private qqmusicReg = //gi;\r\n //匹配语音标签\r\n private mpvoiceReg = //gi;\r\n //匹配标签地址 https:\\/\\/v.qq.com.*?(?:)[\\'\\\"]\r\n private labelReg = /<.*?(?:)<\\/.*.>/gi;\r\n //匹配iframes标签\r\n private iframeReg = //gi;\r\n //腾讯视频匹配标签\r\n private qqVideoRegSrc = /https:\\/\\/v.qq.com.*?(?:)[\\'\\\"]/gi;\r\n //微信卡券标签\r\n private wxCradRegSrc = /data-display-src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/gi;\r\n //匹配class标签\r\n private classRegSrc = /class=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i;\r\n //提取src地址\r\n private srcReg = /src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i;\r\n //提取data-src地址\r\n private dataSrcReg = /data-src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i;\r\n private MaterialListForm: any = {\r\n ActionName: \"CREATE\",\r\n Id: 0,\r\n Title: \"\",\r\n TenantID: 0,\r\n Aid: 0,\r\n Type: \"\",\r\n Contents: \"\",\r\n Review: 1,\r\n Sort: 10,\r\n Remarks: \"\"\r\n };\r\n\r\n private quill: any;\r\n private currentStyleIndex:any = 0;\r\n\r\n data() {\r\n return {\r\n //tabsType: \"热门\",\r\n //stringType: \"热门\",\r\n rulesMaterialList: {\r\n // MaterialListFormType: [\r\n // { required: true, message: \"请输入名称\", trigger: \"blur\" }\r\n // ],\r\n Title: [\r\n { required: true, message: \"请输入名称\", trigger: \"blur\" },\r\n { min: 2, max: 20, message: \"长度在 1 到 50 个字符\", trigger: \"blur\" }\r\n ],\r\n Contents: [\r\n { required: true, message: \"请输入模板内容\", trigger: \"blur\" },\r\n {\r\n min: 10,\r\n max: 20000,\r\n message: \"长度在 1 到 20000 个字符\",\r\n trigger: \"blur\"\r\n }\r\n ],\r\n Sort: [\r\n { required: true, message: \"请输入排序号\", trigger: \"blur\" }\r\n //{ min: 0, max: 2, message: \"长度在 1 到 50 个字符\", trigger: \"blur\" }\r\n ]\r\n },\r\n props: { multiple: true }\r\n };\r\n } //初始化\r\n created() {\r\n // this.quill = new Quill(\".editor\");\r\n //this.quill.insertText(0, \"Hello\", \"bold\", true);\r\n this.scrollHeight = document.body.scrollHeight - 450;\r\n let Aid = getCookie(\"Aid\");\r\n let TenantID = getCookie(\"TenantID\");\r\n this.GetAppData = {\r\n Aid: Aid,\r\n TenantID: TenantID\r\n };\r\n this.LoadMaterialSortData();\r\n this.LoadMaterialListData();\r\n\r\n this.tagHotListSelct = this.GetAppData.TenantID;\r\n this.tagHotList(this.GetAppData.TenantID);\r\n\r\n this.loadImages(); //加载素材库图片\r\n //console.log(this.AddaccountForm);\r\n let i = 0;\r\n for (i; i < 1; i++) {\r\n let wxmodel = new WxTextImg();\r\n wxmodel.ApplicationId = this.GetAppData.Aid;\r\n wxmodel.TenantId = this.GetAppData.TenantID;\r\n this.ArticleList.push(wxmodel);\r\n }\r\n // debugger\r\n //加载修改的数据\r\n if (this.$route.query.id) {\r\n this.modfiyId = this.$route.query.id;\r\n this.GetWxAppReplyGraphicListAsync();\r\n this.switchStyle = false;\r\n this.$message.warning(\"请从左侧选择要编辑文章!\");\r\n // this.disabled = true;\r\n } else {\r\n this.AddaccountForm = this.ArticleList[0];\r\n }\r\n //let quill = (this as any).$refs.myQuillEditor.quill;\r\n //console.log(this.quill);\r\n // this.quill.setText(\"Hello\\n\");\r\n }\r\n mounted() {\r\n //let content = this.AddaccountForm.Contents; // 请求后台返回的内容字符串\r\n //this.AddaccountForm.Contents = this.escapeStringHTML(content);\r\n Bus.$on(\"tinymceValue\", (Item: any) => {\r\n this.AddaccountForm.Contents = Item;\r\n });\r\n Bus.$on(\"wxdomain\", (Item: any) => {\r\n this.wxwxdomain = Item;\r\n });\r\n this.loadMediaList(2).then(result => {\r\n //加载素材库视频\r\n Bus.$emit(\"wxVideo\", result);\r\n });\r\n this.loadMediaList(1).then(result => {\r\n //加载素材库语音\r\n // console.log(result);\r\n Bus.$emit(\"wxVoice\", result);\r\n });\r\n //加载微信卡券数据\r\n this.GetWeiXinCardListAsync();\r\n }\r\n //加载微信卡券数据\r\n async GetWeiXinCardListAsync() {\r\n let Aid = getCookie(\"Aid\");\r\n let TenantID = getCookie(\"TenantID\");\r\n let params = {\r\n Input: [\r\n {\r\n Name: \"account\",\r\n value: {\r\n TenantID: TenantID,\r\n Aid: Aid\r\n }\r\n },\r\n {\r\n Name: \"statusList\",\r\n value: \"CARD_STATUS_VERIFY_OK,CARD_STATUS_DISPATCH\"\r\n },\r\n //分页参数\r\n { Name: \"offset\", value: 0 }, //跳过数量\r\n { Name: \"count\", value: 50 }\r\n ]\r\n };\r\n // console.log(params);\r\n var res = await httpApi.GetWeiXinCardListAsync(params);\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n let wxcardItems: any = [];\r\n let tempData = JSON.parse(res.output[0].value);\r\n //console.log(res.output[0].value);\r\n //console.log(res.output[1].value);\r\n Bus.$emit(\"wxBiz\", res.output[1].value);\r\n wxcardItems = wxCard.loadData(tempData);\r\n Bus.$emit(\"wxCardData\", wxcardItems);\r\n }\r\n }\r\n \r\n changeStyleIndex(index:any){\r\n this.currentStyleIndex = index;\r\n }\r\n //显示隐藏左侧\r\n leftShowHide() {\r\n if (this.leftShow) {\r\n this.rightStyle = { width: \"calc(100% - 286px)\" };\r\n } else {\r\n this.rightStyle = { width: \"100%\" };\r\n }\r\n }\r\n //加载多媒体数据\r\n async loadMediaList(strType: number) {\r\n //console.log(strType);\r\n\r\n let Aid = getCookie(\"Aid\");\r\n let TenantID = getCookie(\"TenantID\");\r\n let params = {\r\n Input: [\r\n { Name: \"Aid\", value: Aid },\r\n { Name: \"type\", value: 0 },\r\n { Name: \"keyword\", value: \"\" },\r\n { Name: \"Nature\", value: \"1\" },\r\n //分页参数\r\n { Name: \"page\", value: 0 },\r\n { Name: \"rows\", value: 1000 }\r\n ]\r\n };\r\n //console.log(params);\r\n var res = await httpApi.Getvoid(params);\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n let tempData = res.output[0].value;\r\n //console.log(tempData);\r\n //视频素材\r\n let videoItems: any = [];\r\n tempData.forEach((e: any) => {\r\n if (\r\n e.Type == strType &&\r\n e.State == 1 &&\r\n e.Nature == 1 &&\r\n e.Review == 1\r\n ) {\r\n // console.log(e);\r\n let vid = \"\";\r\n if (strType == 2) {\r\n var tempArry = e.VoiceLink.split(\"&\");\r\n tempArry.forEach((a: any) => {\r\n var tempUrl = a.split(\"=\");\r\n //console.log(tempUrl);\r\n if (tempUrl[0] == \"vid\") {\r\n //console.log(tempUrl[1]);\r\n vid = tempUrl[1];\r\n }\r\n });\r\n\r\n videoItems.push(\r\n {\r\n type: \"checkbox\",\r\n name:\r\n e.MediaId +\r\n \"%_%_%\" +\r\n e.VoiceLink +\r\n \"%_%_%\" +\r\n encodeURIComponent(e.VoiceTitle),\r\n label:\r\n e.VoiceTitle +\r\n \"(\" +\r\n e.Keyword +\r\n \") \",\r\n value: e.HighLink,\r\n vid: vid\r\n }\r\n // {\r\n // type: \"htmlpanel\", // component type\r\n // html: e.VoiceTitle\r\n // }\r\n );\r\n } else {\r\n videoItems.push(\r\n {\r\n type: \"checkbox\",\r\n name:\r\n e.MediaId +\r\n \"%_%_%\" +\r\n encodeURIComponent(e.VoiceTitle) +\r\n \"%_%_%\" +\r\n e.HighLink,\r\n label:\r\n e.VoiceTitle +\r\n \"(\" +\r\n e.Keyword +\r\n \") \",\r\n value: e.MediaId\r\n }\r\n // {\r\n // type: \"htmlpanel\", // component type\r\n // html: e.VoiceTitle\r\n // }\r\n );\r\n }\r\n }\r\n });\r\n //console.log(videoItems);\r\n return videoItems;\r\n }\r\n }\r\n //加载微信公众号文章\r\n async ImportArticle() {\r\n let params: any = {\r\n Input: [\r\n //{ Name: \"aid\", value: this.GetAppData.Aid },\r\n { Name: \"url\", value: this.gatherArticleBylink },\r\n {\r\n Name: \"aid\",\r\n value: this.GetAppData.Aid\r\n }\r\n ]\r\n };\r\n this.loadingDialog = true;\r\n //console.log(params);\r\n var res: any = await httpApi.GetHtmlStr(params);\r\n this.loadingDialog = false;\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n let tempVal = res.output[0].value;\r\n //console.log(tempVal);\r\n this.AddaccountForm.GraphicTitle = tempVal.title;\r\n this.AddaccountForm.Contents = tempVal.content;\r\n this.AddaccountForm.UpdaterName = tempVal.author;\r\n this.AddaccountForm.CoverImage = tempVal.image;\r\n this.AddaccountForm.ContentSourceUrl = tempVal.linkurl;\r\n this.AddaccountForm.Remarks = tempVal.description;\r\n this.AddaccountForm.ThumbMediaId = tempVal.mediaid;\r\n this.ImportArticleShow = false;\r\n this.gatherArticleBylink = \"\";\r\n //提取图片\r\n this.stockcontentData = [];\r\n this.stockcontentData.push({\r\n MediaId: this.AddaccountForm.ThumbMediaId,\r\n UploadImage: this.AddaccountForm.CoverImage\r\n });\r\n this.selectContents(this.AddaccountForm, 0);\r\n // arrmusic.forEach((e: any) => {\r\n // console.log(e);\r\n // });\r\n //图片匹配\r\n var arr = this.AddaccountForm.Contents.match(this.imgReg);\r\n for (var i = 0; i < arr.length; i++) {\r\n var src = arr[i].match(this.srcReg);\r\n var mediaId = arr[i].match(this.mediaIdReg);\r\n if (src[1]) {\r\n var temFile = src[1].length;\r\n var suffix = src[1].substr(temFile - 3, temFile - 1); //取最后三位\r\n if (suffix.toLowerCase() != \"gif\") {\r\n if (mediaId) {\r\n if (src[1] && mediaId[1]) {\r\n this.stockcontentData.push({\r\n MediaId: mediaId[1],\r\n UploadImage: src[1]\r\n });\r\n }\r\n } else {\r\n this.stockcontentData.push({\r\n MediaId: \"\",\r\n UploadImage: src[1]\r\n });\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n this.gatherArticleBylink = \"\";\r\n this.$message.error(res.ErrorMessage);\r\n }\r\n }\r\n //查询微信文章列表\r\n async GetWxAppReplyGraphicListAsync() {\r\n let params: any = {\r\n Input: [\r\n //{ Name: \"aid\", value: this.GetAppData.Aid },\r\n { Name: \"id\", value: this.modfiyId }\r\n ]\r\n };\r\n //console.log(params);\r\n var res: any = await httpApi.GetWxAppReplyGraphicListAsync(params);\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n this.ArticleList = res.output[0].value;\r\n //console.log(res.output[1].value);\r\n //this.selectContents(res.output[1].value, res.output[1].value.SortId);\r\n // this.$forceUpdate();\r\n // this.AddaccountForm = res.output[1].value;\r\n this.articleClicked = -1; //res.output[1].value.SortId;\r\n } else {\r\n this.$message.error(res.ErrorMessage);\r\n }\r\n }\r\n //加载素材库图片\r\n async loadImages() {\r\n let params: any = {\r\n Input: [\r\n { Name: \"Aid\", value: this.GetAppData.Aid },\r\n { Name: \"Nature\", value: 1 },\r\n { Name: \"Key\", value: this.imageKey },\r\n { Name: \"filetype\", value: \"gif\" },\r\n //分页参数\r\n { Name: \"page\", value: this.pageIndex },\r\n { Name: \"rows\", value: this.pagesize },\r\n { Name: \"rows\", State: 1 }\r\n ]\r\n };\r\n //console.log(params);\r\n var res: any = await httpApi.GetImgText(params);\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n this.stockImagesData = res.output[0].value;\r\n } else {\r\n this.$message.error(res.ErrorMessage);\r\n }\r\n }\r\n //选择中的图片\r\n selectImg(item: any, index: number) {\r\n // console.log(item);\r\n this.selectImgClicked = index;\r\n this.AddaccountForm.ThumbMediaId = item.MediaId;\r\n this.AddaccountForm.CoverImage = item.UploadImage;\r\n }\r\n //当前选中的图片\r\n insertImg(item: any, index: number) {\r\n this.insertImgData = item;\r\n this.selectEditClicked = index;\r\n }\r\n //确认的时候选择图片\r\n editImge() {\r\n //console.log(this.insertImgData);\r\n\r\n if (this.insertImgData.UploadImage) {\r\n // this.editorInstance.execCommand(\r\n // \"insertHtml\",\r\n // \"\",\r\n // Ueditor\r\n // );\r\n //(this as any).$refs.wangEditor.editor.cmd.do(\r\n // \"insertHTML\",\r\n // \"\"\r\n //);\r\n if (this.editorInstance.length == 0) {\r\n this.$message.error(\"请先选择右侧编辑器需要插入的位置\");\r\n return;\r\n }\r\n this.editorInstance.activeEditor.selection.setContent(\r\n \"\"\r\n );\r\n this.stockEditShow = false;\r\n this.selectEditClicked = -1;\r\n this.insertImgData = [];\r\n } else {\r\n this.$message.warning(\"请选择需要插入的图片!\");\r\n }\r\n }\r\n //取消选择\r\n selectImgcancle() {\r\n this.stockImagesShow = false;\r\n this.stockcontentShow = false;\r\n this.selectImgClicked = -1;\r\n this.AddaccountForm.ThumbMediaId = \"\";\r\n this.AddaccountForm.CoverImage = \"\";\r\n }\r\n //取消方法\r\n cancle() {\r\n if (this.modfiyId) {\r\n this.$router.push(\"/tenants/wx-message?activeName=third\");\r\n }\r\n this.$emit(\"refresh\");\r\n }\r\n //选择内容\r\n selectContents(item: any, index: number) {\r\n //this.disabled = false;\r\n this.articleClicked = index;\r\n this.AddaccountForm = item;\r\n //提取图片\r\n this.stockcontentData = [];\r\n this.stockcontentData.push({\r\n MediaId: item.ThumbMediaId,\r\n UploadImage: item.CoverImage\r\n });\r\n if (item.Contents) {\r\n //console.log(item.Contents);\r\n item.Contents = item.Contents.replace(/data-honesrc/g, \"src\");\r\n item.Contents = item.Contents.replace(/data-honedata-src/g, \"data-src\");\r\n //查找标签\r\n var arraylabel = item.Contents.match(this.labelReg);\r\n // console.log(arrqqvideo.length);\r\n if (arraylabel) {\r\n arraylabel.forEach((e: any) => {\r\n //console.log(e);\r\n //οnlοad=\"AutoResizeImage(0,0,this)\r\n //iframe开始\r\n var iframeStr = e.match(this.iframeReg);\r\n if (iframeStr) {\r\n iframeStr.forEach((iframeData: any) => {\r\n //console.log(iframeData);\r\n\r\n var iframeClass = iframeData.match(this.classRegSrc);\r\n //console.log(iframeClass);\r\n if (iframeClass) {\r\n if (iframeClass.length == 2) {\r\n //console.log(iframeClass[1]);\r\n let classData = iframeClass[1].split(\" \");\r\n classData.forEach((ele: any) => {\r\n if (ele == \"video_iframe\") {\r\n // console.log(\"视频\"+iframeData);\r\n let videoUrl = \"\";\r\n //提取地址取data-src\r\n var dataSrcData = iframeData.match(this.dataSrcReg);\r\n //console.log(dataSrcData);\r\n if (dataSrcData) {\r\n videoUrl = dataSrcData[1];\r\n }\r\n\r\n if (!videoUrl) {\r\n //data-src没有提取src地址\r\n var SrcData = iframeData.match(this.srcReg);\r\n if (SrcData) {\r\n videoUrl = SrcData[1];\r\n }\r\n }\r\n if (!videoUrl) {\r\n console.log(\"提取视频地址错误!\");\r\n } else {\r\n //console.log(videoUrl);\r\n\r\n //微信公众号视频开始\r\n //视频播放地址 https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&vid=wxv_1006129096096710656&auto=1\r\n //视频默认图片地址:https://mp.weixin.qq.com/mp/videoplayer?action=get_mp_video_cover&vid=wxv_1135310187033755648\r\n //请求公众号视频资源地址:https://mp.weixin.qq.com/mp/videoplayer?action=get_mp_video_play_url&preview=0&__biz=&mid=&idx=&vid=wxv_1006129096096710656&uin=&key=&pass_ticket=&wxtoken=&appmsg_token=&x5=0&f=json\r\n var wxVideoData = videoUrl.indexOf(\"mp.weixin.qq.com\");\r\n // console.log(wxVideoData);\r\n if (wxVideoData > -1) {\r\n var tempArrySrc = videoUrl.split(\"&\");\r\n tempArrySrc.forEach(async (a: any) => {\r\n a = a.replace(\"amp;\", \"\");\r\n // console.log(a);\r\n var tempA = a.split(\"=\");\r\n if (tempA.length == 2) {\r\n if (tempA[0] == \"vid\") {\r\n //console.log(tempA[1]);\r\n let vid = tempA[1];\r\n //if (iframeData.indexOf(\" src=\") == -1) {\r\n //提取公众号视频资源地址\r\n var params = {\r\n Input: [\r\n //{ Name: \"aid\", value: this.GetAppData.Aid },\r\n {\r\n Name: \"url\",\r\n value:\r\n \"https://mp.weixin.qq.com/mp/videoplayer?action=get_mp_video_play_url&preview=0&__biz=&mid=&idx=&vid=\" +\r\n vid +\r\n \"&uin=&key=&pass_ticket=&wxtoken=&appmsg_token=&x5=0&f=json\"\r\n }\r\n ]\r\n };\r\n\r\n // console.log(params);\r\n var res = await httpApi.GetHtmlUrl(params);\r\n if (res.ErrorCode == 0) {\r\n let wxVideoArry = JSON.parse(\r\n res.output[0].value\r\n ).url_info;\r\n var wxVideoUrlData = wxVideoArry[1];\r\n console.log(wxVideoUrlData.url);\r\n let html = iframeData.replace(\r\n \" data-src\",\r\n \"src='\" +\r\n wxVideoUrlData.url +\r\n \"' width='\" +\r\n wxVideoUrlData.width +\r\n \"' height='\" +\r\n wxVideoUrlData.height +\r\n \"' data-src\"\r\n );\r\n\r\n //.replace(/amp;/g, \"\")\r\n //.replace(/data-hone/g, \"\")\r\n // .replace(\r\n // \"data-src\",\r\n // \"style=\\\"background-image: url('https://mp.weixin.qq.com/mp/videoplayer?action=get_mp_video_cover&vid=\" +\r\n // tempA[1] +\r\n // \"')\\\" width='574' height='323' data-src\"\r\n // );\r\n //console.log(html);\r\n //src='https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=\" + tempA[1] + \"'\r\n // html =\r\n // html +\r\n // \"
播放视频\";\r\n item.Contents = item.Contents.replace(\r\n iframeData,\r\n html\r\n );\r\n }\r\n }\r\n }\r\n //}\r\n });\r\n }\r\n }\r\n\r\n //微信公众号视频结束\r\n //腾讯视频开始\r\n var qqVideoData = iframeData.match(this.qqVideoRegSrc);\r\n if (qqVideoData) {\r\n //console.log(df);\r\n qqVideoData.forEach((element: any) => {\r\n var tempArrySrc = element.split(\"&\");\r\n tempArrySrc.forEach((a: any) => {\r\n a = a.replace(\"amp;\", \"\");\r\n // console.log(a);\r\n var tempA = a.split(\"=\");\r\n if (tempA.length == 2) {\r\n if (tempA[0] == \"vid\") {\r\n let html =\r\n '';\r\n // console.log(html);\r\n item.Contents = item.Contents.replace(\r\n iframeData,\r\n html\r\n );\r\n }\r\n }\r\n });\r\n });\r\n }\r\n //腾讯视频结束\r\n }\r\n //公众号卡券开始\r\n if (ele == \"js_editor_card\") {\r\n //console.log(iframeData);\r\n item.Contents = item.Contents.replace(\r\n 'src=\"..',\r\n 'src=\"http://' + window.location.host\r\n );\r\n //console.log(window.location.host);\r\n\r\n //wxCradRegSrc\r\n let wxCardData = iframeData.match(this.wxCradRegSrc);\r\n //console.log(wxCardData);\r\n wxCardData.forEach((e: any) => {\r\n //console.log(e);\r\n let temp = e\r\n .replace(\"data-display-src=\", \"\")\r\n .replace(/\"/g, \"\")\r\n .replace(/amp;/g, \"\");\r\n //console.log(temp);\r\n let b = temp.split(\"&\");\r\n console.log(b);\r\n let logo_url = \"\";\r\n let cardid = \"\";\r\n let brand_name = \"\";\r\n let title = \"\";\r\n let color = \"\";\r\n b.forEach((c: any) => {\r\n // console.log(c);\r\n var kdf = c.split(\"=\");\r\n if (kdf[0] == \"cardid\") {\r\n cardid = kdf[1];\r\n }\r\n if (kdf[0] == \"logo_url\") {\r\n logo_url = kdf[1];\r\n }\r\n if (kdf[0] == \"brand_name\") {\r\n brand_name = kdf[1];\r\n }\r\n if (kdf[0] == \"title\") {\r\n title = kdf[1];\r\n }\r\n if (kdf[0] == \"color\") {\r\n color = kdf[1];\r\n }\r\n });\r\n //console.log(cardid);\r\n let urlpaes =\r\n \"logo_url=\" +\r\n logo_url +\r\n \"&brand_name=\" +\r\n brand_name +\r\n \"&title=\" +\r\n title +\r\n \"&color=\" +\r\n color;\r\n let html =\r\n '';\r\n console.log(html);\r\n item.Contents = item.Contents.replace(iframeData, html);\r\n });\r\n }\r\n //公众号卡券结束\r\n });\r\n }\r\n }\r\n });\r\n }\r\n //iframe结束\r\n });\r\n /*for (var i = 0; i < arrqqvideo.length; i++) {\r\n var e = arrqqvideo[i];\r\n console.log(e);\r\n var df = e.match(this.videoRegSrc);\r\n df.forEach((element: any) => {\r\n var tempArrySrc = element.split(\"&\");\r\n tempArrySrc.forEach((a: any) => {\r\n a = a.replace(\"amp;\", \"\");\r\n // console.log(a);\r\n var tempA = a.split(\"=\");\r\n if (tempA.length == 2) {\r\n if (tempA[0] == \"vid\") {\r\n let html =\r\n '';\r\n console.log(html);\r\n item.Contents = item.Contents.replace(e, html);\r\n }\r\n }\r\n });\r\n });\r\n // https://v.qq.com/txp/iframe/player.html?vid=b30437v4uwh\r\n }*/\r\n }\r\n //音乐匹配\r\n var arrmusic = item.Contents.match(this.qqmusicReg);\r\n if (arrmusic) {\r\n arrmusic.forEach((e: any) => {\r\n var tempdata = e.replace(\r\n \"\", \"iframe>\");\r\n //提取src\r\n console.log(tempdata);\r\n var musicSrc = tempdata.match(this.srcReg);\r\n console.log(musicSrc);\r\n // tempdata = tempdata.replace(\r\n // musicSrc[1],\r\n // musicSrc[1].replace(\"src=\\\"..\", \"src=\\\"http://\" + window.location.host)\r\n // );\r\n // console.log(tempdata);\r\n\r\n item.Contents = item.Contents.replace(e, tempdata);\r\n });\r\n }\r\n //语音\r\n var arrmpvoice = item.Contents.match(this.mpvoiceReg);\r\n //console.log(arrmpvoice);\r\n if (arrmpvoice) {\r\n arrmpvoice.forEach((e: any) => {\r\n var tempdata = e.replace(\"\", \"iframe>\");\r\n //提取src\r\n var musicSrc = tempdata.match(this.srcReg);\r\n tempdata = tempdata.replace(\r\n musicSrc[1],\r\n \"https://mp.weixin.qq.com/\" + musicSrc[1]\r\n );\r\n //console.log(tempdata);\r\n item.Contents = item.Contents.replace(e, tempdata);\r\n });\r\n }\r\n\r\n //提取图片\r\n var arr = item.Contents.match(this.imgReg);\r\n if (arr) {\r\n for (var i = 0; i < arr.length; i++) {\r\n // debugger;\r\n let tempImg = arr[i];\r\n if (tempImg.indexOf(\"src\") == -1) {\r\n tempImg = tempImg.replace(\"data-src\", \"src\");\r\n item.Contents = item.Contents.replace(arr[i], tempImg);\r\n }\r\n let src = tempImg.match(this.srcReg);\r\n let mediaId = arr[i].match(this.mediaIdReg);\r\n if (src[1]) {\r\n let temFile = src[1].length;\r\n let suffix = src[1].substr(temFile - 3, temFile - 1); //取最后三位\r\n if (suffix.toLowerCase() != \"gif\") {\r\n // console.log(mediaId);\r\n if (mediaId) {\r\n if (src[1] && mediaId[1]) {\r\n this.stockcontentData.push({\r\n MediaId: mediaId[1],\r\n UploadImage: src[1]\r\n });\r\n }\r\n } else {\r\n this.stockcontentData.push({\r\n MediaId: \"\",\r\n UploadImage: src[1]\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (index == 0) {\r\n this.CoverImagewidth = 235;\r\n this.CoverImageheight = 100;\r\n } else {\r\n this.CoverImagewidth = 175;\r\n this.CoverImageheight = 175;\r\n }\r\n }\r\n //删除左侧数据\r\n delarticle(index: number) {\r\n //console.log(index);\r\n this.ArticleList.splice(index, 1);\r\n this.articleClicked = 0;\r\n this.AddaccountForm = this.ArticleList[0];\r\n //this.$forceUpdate();\r\n this.$emit(\"refresh\");\r\n //console.log(this.AddaccountForm);\r\n }\r\n //左侧增加\r\n addarticle() {\r\n let wxmodel = new WxTextImg();\r\n wxmodel.ApplicationId = this.GetAppData.Aid;\r\n wxmodel.TenantId = this.GetAppData.TenantID;\r\n this.ArticleList.push(wxmodel);\r\n }\r\n //保存数据(文章多条)\r\n async SavaTextData() {\r\n let isData = true;\r\n //验证数据\r\n if (this.ArticleList.length == 0) {\r\n this.$message.warning(\"请至少保证有一篇文章!\");\r\n return;\r\n }\r\n if (!this.ArticleList[0]) {\r\n this.$message.warning(\"请保证主文章(第一篇文章)有数据!\");\r\n return;\r\n }\r\n //console.log(this.ArticleList);\r\n this.ArticleList.forEach((e: any) => {\r\n if (!e.GraphicTitle || !e.Contents || !e.CoverImage) {\r\n this.$message.warning(\"标题,内容,封面图片不能为空!\");\r\n isData = false;\r\n return;\r\n }\r\n });\r\n\r\n if (isData) {\r\n let params: any = {\r\n Input: [\r\n { Name: \"AppReplyGraphicDTO\", value: this.ArticleList },\r\n { Name: \"action\", value: \"\" }\r\n ]\r\n };\r\n // console.log(params);\r\n this.loading = true;\r\n // console.log(params);\r\n var res: any = await httpApi.AppReplyGraphicUpdatesAsync(params);\r\n this.loading = false;\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n this.$message.success(\"保存成功!\");\r\n this.ArticleList = [];\r\n this.stockImagesData = [];\r\n let wxmodel = new WxTextImg();\r\n wxmodel.ApplicationId = this.GetAppData.Aid;\r\n wxmodel.TenantId = this.GetAppData.TenantID;\r\n this.ArticleList.push(wxmodel);\r\n this.AddaccountForm = wxmodel;\r\n this.articleClicked = 0;\r\n if (this.$route.query.id) {\r\n this.modfiyId = this.$route.query.id;\r\n this.GetWxAppReplyGraphicListAsync();\r\n }\r\n this.loadImages();\r\n //this.$router.push(\"/tenants/wx-echarts\");\r\n } else {\r\n this.$message.error(res.ErrorMessage);\r\n }\r\n }\r\n }\r\n //上传之前的校验\r\n async onBeforeUploadImage(file: any) {\r\n const isIMAGE = file.type === \"image/jpeg\" || \"image/jpg\" || \"image/png\";\r\n const isLt1M = file.size / 1024 / 1024 < 2;\r\n if (!isIMAGE) {\r\n this.$message.error(\"上传文件只能是图片格式!\");\r\n return;\r\n }\r\n if (!isLt1M) {\r\n this.$message.error(\"上传文件大小不能超过 1MB!\");\r\n return;\r\n }\r\n return isIMAGE && isLt1M;\r\n }\r\n //上传之前的校验\r\n async onBeforeUploadWord(file: any) {\r\n const isIMAGE =\r\n file.type === \"application/msword\" ||\r\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\r\n const isLt1M = file.size / 1024 / 1024 < 10;\r\n if (!isIMAGE) {\r\n this.$message.error(\"上传文件只能是doc,docx格式!\");\r\n return;\r\n }\r\n if (!isLt1M) {\r\n this.$message.error(\"上传文件大小不能超过 10MB!\");\r\n return;\r\n }\r\n return isIMAGE && isLt1M;\r\n }\r\n //编辑器上传图片\r\n async UploadImageTwo(param: any) {\r\n let reader = new FileReader();\r\n // let that = this\r\n reader.readAsDataURL(param.file);\r\n //console.log(param);\r\n reader.onload = async e => {\r\n if (e.target) {\r\n let obj: any = (e.target as any).result;\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"Type\",\r\n value: \"AppReplyImage\"\r\n },\r\n {\r\n Name: \"FileName\",\r\n value: param.file.name\r\n },\r\n {\r\n Name: \"FileBase64\",\r\n value: obj\r\n },\r\n {\r\n Name: \"uploadWx\",\r\n value: 1\r\n },\r\n {\r\n Name: \"aid\",\r\n value: this.GetAppData.Aid\r\n }\r\n ]\r\n };\r\n //console.log(params);\r\n var res: any = await httpApi.GetUpload(params);\r\n //console.log(res);\r\n\r\n if (res.ErrorCode == 0) {\r\n //console.log(res.output[0].value.url);\r\n /* this.editorInstance.execCommand(\r\n \"insertHtml\",\r\n \"\",\r\n Ueditor\r\n );*/\r\n // (this as any).$refs.wangEditor.editor.cmd.do(\r\n // \"insertHTML\",\r\n // \"\"\r\n // );\r\n // var range = this.quill.getSelection(true);\r\n // this.quill.insertEmbed(range.index, \"image\", res.output[0].value.url);\r\n if (this.editorInstance.length == 0) {\r\n this.$message.error(\"请先选择右侧编辑器需要插入的位置\");\r\n return;\r\n }\r\n this.editorInstance.activeEditor.selection.setContent(\r\n \"\"\r\n );\r\n this.stockcontentData.push({\r\n MediaId: res.output[0].value.media_id,\r\n UploadImage: res.output[0].value.url\r\n });\r\n this.$message.success(\"上传图片成功\");\r\n } else {\r\n this.$message.error(\"保存失败:\" + res.ErrorMessage);\r\n }\r\n }\r\n };\r\n }\r\n\r\n //上传图片\r\n async UploadImage(param: any) {\r\n let vm = this;\r\n let reader = new FileReader();\r\n // let that = this\r\n reader.readAsDataURL(param.file);\r\n //console.log(param);\r\n reader.onload = async e => {\r\n if (e.target) {\r\n let obj: any = (e.target as any).result;\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"Type\",\r\n value: \"AppReplyImage\"\r\n },\r\n {\r\n Name: \"FileName\",\r\n value: param.file.name\r\n },\r\n {\r\n Name: \"FileBase64\",\r\n value: obj\r\n },\r\n {\r\n Name: \"uploadWx\",\r\n value: 1\r\n },\r\n {\r\n Name: \"aid\",\r\n value: this.GetAppData.Aid\r\n }\r\n ]\r\n };\r\n //console.log(params);\r\n var res: any = await httpApi.GetUpload(params);\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n this.AddaccountForm.CoverImage = res.output[0].value.url;\r\n this.AddaccountForm.ThumbMediaId = res.output[0].value.media_id;\r\n } else {\r\n this.$message.error(\"保存失败:\" + res.ErrorMessage);\r\n }\r\n }\r\n };\r\n }\r\n //上传word文件\r\n async UploadWord(param: any) {\r\n let reader = new FileReader();\r\n // let that = this\r\n reader.readAsDataURL(param.file);\r\n //console.log(param);\r\n reader.onload = async e => {\r\n if (e.target) {\r\n let obj: any = (e.target as any).result;\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"Type\",\r\n value: \"uploadfileWord\"\r\n },\r\n {\r\n Name: \"FileName\",\r\n value: param.file.name\r\n },\r\n {\r\n Name: \"FileBase64\",\r\n value: obj\r\n },\r\n {\r\n Name: \"aid\",\r\n value: this.GetAppData.Aid\r\n }\r\n ]\r\n };\r\n this.loadingDialog = true;\r\n //console.log(JSON.stringify(params));\r\n var res: any = await httpApi.UploadWord(params);\r\n this.loadingDialog = false;\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n this.AddaccountForm.Contents = res.output[0].value;\r\n this.ImportWordShow = false;\r\n //提取图片\r\n var arr = this.AddaccountForm.Contents.match(this.imgReg);\r\n for (var i = 0; i < arr.length; i++) {\r\n var src = arr[i].match(this.srcReg);\r\n var mediaId = arr[i].match(this.mediaIdReg);\r\n if (mediaId) {\r\n if (src[1] && mediaId[1]) {\r\n this.stockcontentData.push({\r\n MediaId: mediaId[1],\r\n UploadImage: src[1]\r\n });\r\n }\r\n } else {\r\n this.stockcontentData.push({\r\n MediaId: \"\",\r\n UploadImage: src[1]\r\n });\r\n }\r\n }\r\n } else {\r\n this.$message.error(\"上传word文件失败:\" + res.ErrorMessage);\r\n }\r\n }\r\n };\r\n }\r\n method() {}\r\n //实例化编辑器\r\n ready(editorInstance: any) {\r\n //console.log(`编辑器实例${editorInstance.key}: `, editorInstance);\r\n // this.editorInstance = editorInstance;\r\n //console.log(editorInstance);\r\n }\r\n //加载内容\r\n async addContents(item: any) {\r\n // console.log(this.editorInstance.length);\r\n\r\n if (this.editorInstance.length == 0) {\r\n this.$message.error(\"请先选择右侧编辑器需要插入的位置\");\r\n return;\r\n }\r\n this.editorInstance.activeEditor.selection.setContent(item.Contents);\r\n //console.log((this as any).$refs.tinymceeditor);\r\n // (this as any).$refs.tinymceeditor.execCommand(\"insertHTML\", item.Contents);\r\n //(this as any).$refs.tinymceeditor.myValue= item.Contents;\r\n //this.AddaccountForm.Contents = item.Contents;\r\n //this.editorInstance.execCommand(\"insertHtml\", item.Contents, Ueditor);\r\n //this.AddaccountForm.Contents=item.Contents;\r\n\r\n //console.log(this.$refs.wangEditor);\r\n\r\n // (this as any).$refs.wangEditor.editor.cmd.do(\"insertHTML\", item.Contents);\r\n //debugger;\r\n //var ojb = (this as any).$refs.myQuillEditor.quill;\r\n // console.log(ojb);\r\n\r\n //console.log(this.$refs.myQuillEditor);\r\n //this.quill.setText(item.Contents);\r\n //this.quill.insertEmbed(10, 'image', 'http://quilljs.com/images/cloud.png');\r\n // this.quill.setContents([{ insert: item.Contents }]);\r\n /* var range = this.quill.getSelection();\r\n console.log(range);\r\n\r\n if (range) {\r\n if (range.length == 0) {\r\n this.quill.insertText(0, item.Contents);\r\n // console.log('User cursor is at index', range.index);\r\n } else {\r\n this.quill.insertText(range.index, item.Contents);\r\n var text = this.quill.getText(range.index, range.length);\r\n console.log(\"User has highlighted: \", text);\r\n }\r\n } else {\r\n this.quill.insertText(0, item.Contents);\r\n //console.log('User cursor is not in editor');\r\n }*/\r\n //this.$refs.myQuillEditor.appendChild(item.Contents)\r\n //( this as any).$refs.myQuillEditor.value=item.Contents;\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"TenantID\",\r\n Value: item.TenantID\r\n },\r\n {\r\n Name: \"id\",\r\n Value: item.Id\r\n }\r\n ]\r\n };\r\n //console.log(params);\r\n var res: any = await httpApi.GetWeiXinArticleMaterialNumberAsync(params);\r\n //console.log(res);\r\n\r\n //this.editContents = item;\r\n }\r\n //加载背景颜色\r\n async addBackground(item: any, ojb: any) {\r\n let backgroundObj = {\r\n \"background-position\": \"center center\",\r\n background: item.Contents\r\n };\r\n this.clicked = ojb;\r\n this.editorInstance.execCommand(\"background\", backgroundObj);\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"TenantID\",\r\n Value: item.TenantID\r\n },\r\n {\r\n Name: \"id\",\r\n Value: item.Id\r\n }\r\n ]\r\n };\r\n //console.log(params);\r\n var res: any = await httpApi.GetWeiXinArticleMaterialNumberAsync(params);\r\n //console.log(res);\r\n }\r\n //加载全部内容\r\n addContentsAll(item: any) {\r\n let result = this.ListModelData.filter(\r\n (d: { Type: any }) => d.Type == item\r\n );\r\n if (this.editorInstance.length == 0) {\r\n this.$message.error(\"请先选择右侧编辑器需要插入的位置\");\r\n return;\r\n }\r\n result.forEach((e: any) => {\r\n if (e.Contents) {\r\n this.addContents(e);\r\n }\r\n });\r\n }\r\n //加载第一条\r\n viewContentsAll(item: any) {\r\n if (this.ListModelData) {\r\n let result = this.ListModelData.filter(\r\n (d: { Type: any }) => d.Type == item\r\n );\r\n if (result) {\r\n if (result.length > 0) {\r\n return result[0].Contents;\r\n }\r\n }\r\n }\r\n }\r\n //清空内容\r\n ClearContent() {\r\n if (this.AddaccountForm.Contents) {\r\n this.$confirm(\r\n \"是否确认清空当前文章,清空后内容将无法恢复,请自行保存内容\",\r\n \"清空当前文章\",\r\n {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\"\r\n }\r\n ).then(async () => {\r\n this.AddaccountForm.Contents = \"\";\r\n // console.log(this.$refs.tinymceeditor);\r\n\r\n this.$forceUpdate();\r\n });\r\n } else {\r\n this.$message.warning(\"内容已经清空,无需再清空\");\r\n }\r\n }\r\n //查询模板数据\r\n async GetWeiXinArticleMaterialListModel() {\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"model\",\r\n Value: { TenantID: 0, Aid: 0 }\r\n },\r\n {\r\n Name: \"keys\",\r\n Value: this.modlekeys\r\n }\r\n ]\r\n };\r\n //console.log(params);\r\n var res: any = await httpApi.GetWeiXinArticleMaterialListModelAsync(params);\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n this.ListModelData = res.output[0].value;\r\n } else {\r\n this.$message.error(\"加载模板内容失败:\" + res.ErrorMessage);\r\n }\r\n }\r\n //通过类型加载模板数据\r\n loadModelData(item: string) {\r\n let result = this.ListModelData.filter(\r\n (d: { Type: any }) => d.Type == item\r\n );\r\n this.loadModelCount = result.length;\r\n this.ModelListData = result;\r\n // return result;\r\n\r\n //return result[0].Contents;\r\n }\r\n //增加\\修改模板内容\r\n AddMaterialList(item: any) {\r\n this.MaterialListShow = true;\r\n this.MaterialListShowTitle = \"增加模板内容\";\r\n this.MaterialListForm.ActionName = \"CREATE\";\r\n if (item) {\r\n this.MaterialListForm = item;\r\n this.MaterialListForm.ActionName = \"UPDATE\";\r\n this.MaterialListShowTitle = \"修改《\" + item.Title + \"》模板内容\";\r\n // console.log(item);\r\n\r\n let tempType = item.Type.split(\"|\");\r\n this.MaterialListFormType = [];\r\n this.MaterialListForm.typeMultiple = [];\r\n tempType.forEach((e: string) => {\r\n if (e) {\r\n this.MaterialListForm.typeMultiple.push(e);\r\n let tempResult = this.TagidData.filter((d: { children: any }) =>\r\n d.children.filter((a: { label: any }) => a.label == e)\r\n );\r\n if (tempResult) {\r\n // console.log(tempResult);\r\n this.MaterialListFormType.push([tempResult[0].label, e]);\r\n }\r\n }\r\n });\r\n } else {\r\n this.MaterialListForm = {\r\n ActionName: \"CREATE\",\r\n Id: 0,\r\n Title: \"\",\r\n TenantID: 0,\r\n Aid: 0,\r\n Type: \"\",\r\n Contents: \"\",\r\n Review: 1,\r\n Sort: 10,\r\n Remarks: \"\"\r\n };\r\n }\r\n }\r\n //删除模板内容\r\n DelMaterialList(item: any) {\r\n this.$confirm(\"选中的模板数据删除后无法恢复,确定要删除吗?\", \"提示\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\"\r\n }).then(async () => {\r\n this.MaterialListForm = item;\r\n this.MaterialListForm.ActionName = \"DELETE\";\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"model\",\r\n Value: this.MaterialListForm\r\n }\r\n ]\r\n };\r\n var res: any = await httpApi.GetSaveWeiXinArticleMaterialListAsync(\r\n params\r\n );\r\n if (res.ErrorCode == 0) {\r\n this.$message.success(\"删除成功\");\r\n this.MaterialListShow = false;\r\n this.MaterialListForm = {\r\n ActionName: \"CREATE\",\r\n Id: 0,\r\n Title: \"\",\r\n TenantID: 0,\r\n Aid: 0,\r\n Type: \"\",\r\n Contents: \"\",\r\n Review: 1,\r\n Sort: 10,\r\n Remarks: \"\"\r\n };\r\n this.LoadMaterialListData();\r\n } else {\r\n this.$message.error(res.ErrorMessage);\r\n }\r\n //console.log(params);\r\n });\r\n }\r\n // 这里拿到的 selectedOptions 就是一级一级选到的 value, 取最后一个传给后端\r\n handleChange(value: any) {\r\n //console.log(value);\r\n this.MaterialListForm.typeMultiple = [];\r\n value.forEach((element: any) => {\r\n if (element.length > 0) {\r\n this.MaterialListForm.typeMultiple.push(element[0]);\r\n }\r\n if (element.length > 1) {\r\n this.MaterialListForm.typeMultiple.push(element[1]);\r\n }\r\n });\r\n //console.log(this.MaterialListForm.typeMultiple);\r\n this.MaterialListForm.typeMultiple = this.unique(\r\n this.MaterialListForm.typeMultiple\r\n );\r\n //console.log(this.MaterialListForm.typeMultiple);\r\n }\r\n unique(arr: any) {\r\n for (var i = 0; i < arr.length; i++) {\r\n for (var j = i + 1; j < arr.length; j++) {\r\n if (arr[i] == arr[j]) {\r\n //第一个等同于第二个,splice方法删除第二个\r\n arr.splice(j, 1);\r\n j--;\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n //读热门标签前100条\r\n async tagHotList(item: number) {\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"TenantID\",\r\n Value: item\r\n }\r\n ]\r\n };\r\n this.tagHotListSelct = item;\r\n var res: any = await httpApi.GetWeiXinArticleMaterialListHotAsync(params);\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n this.tagHotListData = res.output[0].value;\r\n } else {\r\n this.$message.error(\"加载热门模板错误:\" + res.ErrorMessage);\r\n }\r\n // console.log(this.tagHotListData);\r\n }\r\n //保存数据\r\n async saveMaterialList() {\r\n (this as any).$refs[\"MaterialListForm\"].validate(async (valid: boolean) => {\r\n if (valid) {\r\n //\r\n\r\n if (!this.MaterialListForm.typeMultiple) {\r\n this.$message.warning(\"请选择标签\");\r\n return;\r\n }\r\n if (this.MaterialListForm.typeMultiple.length < 1) {\r\n this.$message.warning(\"请至少选择一项标签!\");\r\n return;\r\n }\r\n this.MaterialListForm.Type = \"|\";\r\n this.MaterialListForm.typeMultiple.forEach((e: string) => {\r\n this.MaterialListForm.Type += e + \"|\";\r\n });\r\n //this.MaterialListForm.Type=JSON.stringify(this.MaterialListForm.Type);\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"model\",\r\n Value: this.MaterialListForm\r\n }\r\n ]\r\n };\r\n this.loading = true;\r\n var res: any = await httpApi.GetSaveWeiXinArticleMaterialListAsync(\r\n params\r\n );\r\n this.loading = false;\r\n //console.log(params);\r\n if (res.ErrorCode == 0) {\r\n this.$message.success(\"保存成功\");\r\n this.MaterialListShow = false;\r\n this.MaterialListFormType = [];\r\n this.LoadMaterialListData();\r\n } else {\r\n this.$message.error(res.ErrorMessage);\r\n }\r\n }\r\n });\r\n }\r\n //从数据库加载分组\r\n async LoadMaterialSortData() {\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"model\",\r\n Value: { TenantID: 0, Aid: 0 }\r\n }\r\n ]\r\n };\r\n //console.log(params);\r\n var res: any = await httpApi.GetWeiXinArticleMaterialSortAsync(params);\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n this.TagidData = [];\r\n this.modlekeys = [];\r\n this.WeiXinArticleMaterialSortData = res.output[0].value.filter(\r\n (d: { Review: any }) => d.Review == 1\r\n );\r\n let result = this.WeiXinArticleMaterialSortData.filter(\r\n (d: { Pid: any }) => d.Pid == 0\r\n );\r\n if (result.length > 0) {\r\n result.forEach((e: any) => {\r\n //加载左侧树\r\n let childrenData: any = [];\r\n let tempResult = this.WeiXinArticleMaterialSortData.filter(\r\n (d: { Pid: any }) => d.Pid == e.Id\r\n );\r\n if (tempResult.length > 0) {\r\n tempResult.forEach((k: any) => {\r\n if (e.Name == \"模板\") {\r\n this.modlekeys.push(k.Name);\r\n }\r\n childrenData.push({\r\n key: k.Id,\r\n label: k.Name,\r\n value: k.Name,\r\n children: []\r\n });\r\n });\r\n }\r\n //合成主级\r\n this.TagidData.push({\r\n key: e.Id,\r\n label: e.Name,\r\n value: e.Name,\r\n children: childrenData\r\n });\r\n });\r\n let tempResult = this.TagidData.filter((d: { key: any }) => d.key != 1);\r\n this.TagidDataSelect = this.getTreeData(tempResult);\r\n }\r\n //console.log(this.TagidData);\r\n } else {\r\n //异常\r\n }\r\n }\r\n //去最后一级\r\n getTreeData(data: any) {\r\n // 循环遍历json数据\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i].children.length < 1) {\r\n // children若为空数组,则将children设为undefined\r\n data[i].children = undefined;\r\n } else {\r\n // children若不为空数组,则继续 递归调用 本方法\r\n this.getTreeData(data[i].children);\r\n }\r\n }\r\n return data;\r\n }\r\n\r\n elTag(item: any) {\r\n this.stringType = item;\r\n this.tagType = item;\r\n\r\n //this.stringType+=','+item\r\n // this.stringType=item;\r\n this.LoadMaterialListData();\r\n }\r\n elTabs() {\r\n this.Searchkey = \"\";\r\n this.tagType = \"\";\r\n this.stringType = this.tabsType;\r\n this.inboxTabData = [];\r\n //console.log(this.tagType);\r\n this.LoadMaterialListData();\r\n if (this.modlekeys.length > 0 && this.tabsType == \"模板\") {\r\n this.GetWeiXinArticleMaterialListModel();\r\n }\r\n }\r\n //加载模板内容\r\n async LoadMaterialListData() {\r\n let params: any = {\r\n Input: [\r\n {\r\n Name: \"model\",\r\n Value: {\r\n TenantID: 0,\r\n Aid: 0,\r\n page: this.pageIndex,\r\n rows: this.pagesize,\r\n Title: this.Searchkey,\r\n Type: this.stringType,\r\n Review: 1\r\n }\r\n }\r\n ]\r\n };\r\n //console.log(params);\r\n var res: any = await httpApi.GetWeiXinArticleMaterialListAsync(params);\r\n //console.log(res);\r\n if (res.ErrorCode == 0) {\r\n this.inboxTabData = res.output[0].value;\r\n this.totalItem = res.output[1].value;\r\n } else {\r\n this.$message.error(\"加载模板内容失败:\" + res.ErrorMessage);\r\n }\r\n }\r\n\r\n handleSizeChange(val: number) {\r\n this.pagesize = val;\r\n this.LoadMaterialListData();\r\n }\r\n handleCurrentChange(val: number) {\r\n this.pageIndex = val;\r\n this.LoadMaterialListData();\r\n }\r\n /*\r\n onReadystatechange(item: any) {\r\n console.log(item);\r\n }\r\n // 失去焦点事件\r\n onEditorBlur() {} // 获得焦点事件\r\n onEditorFocus() {} // 内容改变事件\r\n onEditorChange(editor: any) {\r\n //console.log(editor);\r\n let content = this.AddaccountForm.Contents; // 请求后台返回的内容字符串\r\n this.AddaccountForm.Contents = this.escapeStringHTML(content);\r\n }\r\n //初始化编辑器\r\n onEditorReady(editor: any) {\r\n this.quill = editor;\r\n //this.quill.setText('Hello\\n');\r\n //console.log(\"editor ready!\", editor);\r\n //console.log(this.quill);\r\n }\r\n // 转码\r\n escapeStringHTML(str: any) {\r\n str = str.replace(/</g, \"<\");\r\n str = str.replace(/>/g, \">\");\r\n return str;\r\n }\r\n onReady(editor: any) {\r\n console.log(editor);\r\n }*/\r\n tinymceOnClick(e: any, editor: any) {\r\n // console.log(e);\r\n //console.log(editor);\r\n //editor.activeEditor.selection.setContent(\"test\");\r\n this.editorInstance = editor;\r\n }\r\n AutoResizeImage(maxWidth: any, maxHeight: any, objImg: any) {\r\n var img = new Image();\r\n img.src = objImg.src;\r\n var hRatio;\r\n var wRatio;\r\n var Ratio = 1;\r\n var w = img.width;\r\n var h = img.height;\r\n wRatio = maxWidth / w;\r\n hRatio = maxHeight / h;\r\n if (maxWidth == 0 && maxHeight == 0) {\r\n Ratio = 1;\r\n } else if (maxWidth == 0) {\r\n //\r\n if (hRatio < 1) Ratio = hRatio;\r\n } else if (maxHeight == 0) {\r\n if (wRatio < 1) Ratio = wRatio;\r\n } else if (wRatio < 1 || hRatio < 1) {\r\n Ratio = wRatio <= hRatio ? wRatio : hRatio;\r\n }\r\n if (Ratio < 1) {\r\n let ww = w * Ratio;\r\n let hh = h * Ratio;\r\n }\r\n objImg.height = h;\r\n objImg.width = w;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./weChat-graphic_edit2.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./weChat-graphic_edit2.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./weChat-graphic_edit2.vue?vue&type=template&id=e6985306&scoped=true&\"\nimport script from \"./weChat-graphic_edit2.vue?vue&type=script&lang=ts&\"\nexport * from \"./weChat-graphic_edit2.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./weChat-graphic_edit2.vue?vue&type=style&index=0&id=e6985306&lang=less&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 \"e6985306\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}