{"version":3,"sources":["../../src/js/main.js","../../src/js/vendor/Sortable.js"],"names":["toogleExDemoPriceDiv","s","Number","$","this","val","slideDown","slideUp","checkTable","remove","each","find","width","before","previous","factory","define","amd","module","exports","Package","Sortable","window","el","options","nodeType","toString","call","_extend","expando","defaults","group","Math","random","sort","disabled","store","handle","scroll","scrollSensitivity","scrollSpeed","draggable","test","nodeName","ghostClass","chosenClass","ignore","filter","animation","setData","dataTransfer","dragEl","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","forceFallback","fallbackClass","fallbackOnBody","name","_prepareGroup","fn","charAt","bind","nativeDraggable","supportDraggable","_on","_onTapStart","touchDragOverListeners","push","_onDragOver","get","_cloneHide","state","cloneEl","_css","rootEl","insertBefore","_closest","selector","ctx","document","parentNode","_matches","host","_globalDragOver","evt","dropEffect","preventDefault","event","addEventListener","_off","removeEventListener","_toggleClass","classList","className","replace","RSPACE","prop","style","defaultView","getComputedStyle","currentStyle","_find","tagName","iterator","list","getElementsByTagName","i","n","length","_dispatchEvent","sortable","targetEl","fromEl","startIndex","newIndex","createEvent","onName","toUpperCase","substr","initEvent","to","from","item","clone","oldIndex","dispatchEvent","_onMove","toEl","dragRect","targetRect","retVal","onMoveFn","onMove","dragged","draggedRect","related","relatedRect","getBoundingClientRect","_disableDraggable","_unsilent","_silent","_ghostIsLast","lastEl","lastElementChild","rect","clientY","top","height","clientX","right","_generateId","str","src","href","sum","charCodeAt","_index","index","previousElementSibling","split","tag","shift","re","RegExp","join","match","_throttle","callback","ms","args","_this","arguments","setTimeout","apply","dst","key","hasOwnProperty","Error","parentEl","ghostEl","nextEl","scrollEl","scrollParentEl","lastCSS","lastParentCSS","activeGroup","tapEvt","touchEvt","moved","autoScroll","Date","getTime","win","parseInt","createElement","supportCssPointerEvents","cssText","pointerEvents","abs","slice","_autoScroll","vx","vy","sens","speed","x","y","winWidth","innerWidth","winHeight","innerHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","left","bottom","clearInterval","pid","setInterval","scrollTo","pageXOffset","pageYOffset","scrollTop","scrollLeft","forEach","groups","put","prototype","constructor","type","touch","touches","target","originalTarget","shadowRoot","path","button","some","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_disableDelayedDrag","_triggerDragStart","_onDrop","_dragStartTimer","clearTimeout","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","active","_emulateDragOver","_lastX","_lastY","elementFromPoint","parent","groupName","indexOf","_onTouchMove","_appendGhost","dx","dy","translate3d","ghostRect","css","cloneNode","marginTop","marginLeft","body","appendChild","useFallback","_offUpEvents","pull","_loopId","effectAllowed","revert","groupPut","isOwner","canSort","stopPropagation","contains","children","animated","_animate","after","floating","cssFloat","display","isWide","isLong","halfway","nextElementSibling","moveVector","elTop","offsetTop","tgTop","prevRect","currentRect","removeChild","save","_nulling","handleEvent","toArray","order","getAttribute","items","id","set","closest","option","value","destroy","Array","querySelectorAll","removeAttribute","splice","utils","on","off","is","extend","throttle","toggleClass","create","version","ready","e","next","slideToggle","attr","siblings","initial","hide","change"],"mappings":";;AAAA,QAASA,wBACR,GAAIC,GAAIC,OAAMC,EAAGC,MAAMC,MACb,KAANJ,GACG,IAANA,EACAE,EAAA,cAAgBG,UAAS,QAEzBH,EAAA,cAAgBI,QAAO,QAIzB,QAASC,cACRL,EAAA,sBAAwBM,SACxBN,EAAA,eAAiBO,KAAK,WAClBP,EAAGC,MAAMO,KAAI,SAAUC,QAAUT,EAAEC,MAAMQ,QAC3CT,EAAEC,MAAMS,OAAM,wDAEdV,EAAEC,MAAMU,SAAQ,sBAAuBL,YCT1C,SAAWM,GACV,YAEsB,mBAAXC,SAAyBA,OAAOC,IAC1CD,OAAOD,GAEkB,mBAAVG,SAAkD,mBAAlBA,QAAOC,QACtDD,OAAOC,QAAUJ,IAEU,mBAAZK,SACfC,SAAWN,IAIXO,OAAgB,SAAKP,KAEpB,WACF,YA2JA,SAASM,GAASE,EAAIC,GACrB,IAAMD,IAAMA,EAAGE,UAA4B,IAAhBF,EAAGE,SAC7B,KAAM,kDAAoDC,SAASC,KAAKJ,EAGzEnB,MAAKmB,GAAKA,EACVnB,KAAKoB,QAAUA,EAAUI,KAAYJ,GAIrCD,EAAGM,GAAWzB,IAId,IAAI0B,IACHC,MAAOC,KAAKC,SACZC,MAAM,EACNC,UAAU,EACVC,MAAO,KACPC,OAAQ,KACRC,QAAQ,EACRC,kBAAmB,GACnBC,YAAa,GACbC,UAAW,SAASC,KAAKnB,EAAGoB,UAAY,KAAO,KAC/CC,WAAY,iBACZC,YAAa,kBACbC,OAAQ,SACRC,OAAQ,KACRC,UAAW,EACXC,QAAS,SAAUC,EAAcC,GAChCD,EAAaD,QAAO,OAASE,EAAOC,cAErCC,YAAY,EACZC,gBAAgB,EAChBC,WAAY,UACZC,MAAO,EACPC,eAAe,EACfC,cAAe,oBACfC,gBAAgB,EAKjB,KAAK,GAAIC,KAAQ9B,KACd8B,IAAQpC,MAAaA,EAAQoC,GAAQ9B,EAAS8B,GAGjDC,GAAcrC,EAGd,KAAK,GAAIsC,KAAM1D,MACO,MAAjB0D,EAAGC,OAAO,KACb3D,KAAK0D,GAAM1D,KAAK0D,GAAIE,KAAK5D,MAK3BA,MAAK6D,iBAAkBzC,EAAQiC,eAAwBS,EAGvDC,EAAI5C,EAAI,YAAanB,KAAKgE,aAC1BD,EAAI5C,EAAI,aAAcnB,KAAKgE,aAEvBhE,KAAK6D,kBACRE,EAAI5C,EAAI,WAAYnB,MACpB+D,EAAI5C,EAAI,YAAanB,OAGtBiE,EAAuBC,KAAKlE,KAAKmE,aAGjC/C,EAAQY,OAAShC,KAAK8B,KAAKV,EAAQY,MAAMoC,IAAIpE,OA6tB9C,QAASqE,GAAWC,GACfC,GAAYA,EAAQD,QAAUA,IACjCE,EAAKD,EAAS,UAAWD,EAAQ,OAAS,KACzCA,GAASC,EAAQD,OAASG,EAAOC,aAAaH,EAASxB,GACxDwB,EAAQD,MAAQA,GAKlB,QAASK,GAAyBxD,EAAeyD,EAA0BC,GAC1E,GAAI1D,EAAI,CACP0D,EAAMA,GAAOC,CAEb,GACC,IACe,OAAbF,GAAqBzD,EAAG4D,aAAeF,GACrCG,EAAS7D,EAAIyD,GAEhB,MAAOzD,SAGFA,EAAK,QAAWA,GAAMA,EAAG8D,KAAO9D,EAAG4D,YAG3C,MAAO,MAMR,QAASG,GAA0BC,GAC9BA,EAAIrC,eACPqC,EAAIrC,aAAasC,WAAa,QAE/BD,EAAIE,iBAIL,QAAStB,GAAI5C,EAAImE,EAAO5B,GACvBvC,EAAGoE,iBAAiBD,EAAO5B,GAAI,GAIhC,QAAS8B,GAAKrE,EAAImE,EAAO5B,GACxBvC,EAAGsE,oBAAoBH,EAAO5B,GAAI,GAInC,QAASgC,GAAavE,EAAIqC,EAAMc,GAC/B,GAAInD,EACH,GAAIA,EAAGwE,UACNxE,EAAGwE,UAAUrB,EAAQ,MAAQ,UAAUd,OAEnC,CACJ,GAAIoC,IAAY,IAAOzE,EAAGyE,UAAY,KAAKC,QAAQC,EAAQ,KAAKD,QAAO,IAAOrC,EAAO,IAAK,IAC1FrC,GAAGyE,WAAaA,GAAatB,EAAQ,IAAMd,EAAO,KAAKqC,QAAQC,EAAQ,MAM1E,QAAStB,GAAKrD,EAAI4E,EAAM9F,GACvB,GAAI+F,GAAQ7E,GAAMA,EAAG6E,KAErB,IAAIA,EAAO,CACV,GAAY,SAAR/F,EAQH,MAPI6E,GAASmB,aAAenB,EAASmB,YAAYC,iBAChDjG,EAAM6E,EAASmB,YAAYC,iBAAiB/E,EAAI,IAExCA,EAAGgF,eACXlG,EAAMkB,EAAGgF,cAGM,SAATJ,EAAkB9F,EAAMA,EAAI8F,EAG7BA,KAAQC,KACbD,EAAO,WAAaA,GAGrBC,EAAMD,GAAQ9F,GAAsB,gBAARA,GAAmB,GAAK,OAMvD,QAASmG,GAAMvB,EAAKwB,EAASC,GAC5B,GAAIzB,EAAK,CACR,GAAI0B,GAAO1B,EAAI2B,qBAAqBH,GAAUI,EAAI,EAAGC,EAAIH,EAAKI,MAE9D,IAAIL,EACH,KAAOG,EAAIC,EAAGD,IACbH,EAASC,EAAKE,GAAIA,EAIpB,OAAOF,GAGR,SAKD,QAASK,GAAeC,EAAUpC,EAAQjB,EAAMsD,EAAUC,EAAQC,EAAYC,GAC7E,GAAI9B,GAAML,EAASoC,YAAW,SAC7B9F,GAAWyF,GAAYpC,EAAOhD,IAAUL,QACxC+F,EAAS,KAAO3D,EAAKG,OAAO,GAAGyD,cAAgB5D,EAAK6D,OAAO,EAE5DlC,GAAImC,UAAU9D,GAAM,GAAM,GAE1B2B,EAAIoC,GAAK9C,EACTU,EAAIqC,KAAOT,GAAUtC,EACrBU,EAAIsC,KAAOX,GAAYrC,EACvBU,EAAIuC,MAAQnD,EAEZY,EAAIwC,SAAWX,EACf7B,EAAI8B,SAAWA,EAEfxC,EAAOmD,cAAczC,GAEjB/D,EAAQ+F,IACX/F,EAAQ+F,GAAQ5F,KAAKsF,EAAU1B,GAKjC,QAAS0C,GAAQd,EAAQe,EAAM/E,EAAQgF,EAAUjB,EAAUkB,GAC1D,GAAI7C,GAGH8C,EAFApB,EAAWE,EAAOtF,GAClByG,EAAWrB,EAASzF,QAAQ+G,MAmB7B,OAhBAhD,GAAML,EAASoC,YAAW,SAC1B/B,EAAImC,UAAS,QAAS,GAAM,GAE5BnC,EAAIoC,GAAKO,EACT3C,EAAIqC,KAAOT,EACX5B,EAAIiD,QAAUrF,EACdoC,EAAIkD,YAAcN,EAClB5C,EAAImD,QAAUxB,GAAYgB,EAC1B3C,EAAIoD,YAAcP,GAAcF,EAAKU,wBAErCzB,EAAOa,cAAczC,GAEjB+C,IACHD,EAASC,EAAS3G,KAAKsF,EAAU1B,IAG3B8C,EAIR,QAASQ,GAAkBtH,GAC1BA,EAAGkB,WAAY,EAIhB,QAASqG,KACRC,GAAU,EAKX,QAASC,GAAazH,EAAIgE,GACzB,GAAI0D,GAAS1H,EAAG2H,iBACdC,EAAOF,EAAOL,uBAEhB,QAASrD,EAAI6D,SAAWD,EAAKE,IAAMF,EAAKG,QAAU,GAAO/D,EAAIgE,SAAWJ,EAAKK,MAAQL,EAAKvI,OAAS,IAAOqI,EAU3G,QAASQ,GAAYlI,GAKpB,IAJA,GAAImI,GAAMnI,EAAGkF,QAAUlF,EAAGyE,UAAYzE,EAAGoI,IAAMpI,EAAGqI,KAAOrI,EAAG6B,YAC3DyD,EAAI6C,EAAI3C,OACR8C,EAAM,EAEAhD,KACNgD,GAAOH,EAAII,WAAWjD,EAGvB,OAAOgD,GAAInI,SAAS,IAUrB,QAASqI,GAAOxI,EAAIyD,GACnB,GAAIgF,GAAQ,CAEZ,KAAKzI,IAAOA,EAAG4D,WACd,QAGD,MAAO5D,IAAOA,EAAKA,EAAG0I,yBACa,aAA9B1I,EAAGoB,SAAS6E,eACXpC,EAAS7D,EAAIyD,IACjBgF,GAIF,OAAOA,GAGR,QAAS5E,GAAyB7D,EAAeyD,GAChD,GAAIzD,EAAI,CACPyD,EAAWA,EAASkF,MAAK,IAEzB,IAAIC,GAAMnF,EAASoF,QAAQ5C,cAC1B6C,EAAK,GAAIC,QAAM,OAAUtF,EAASuF,KAAI,KAAQ,WAAY,IAE3D,SACU,KAARJ,GAAc5I,EAAGoB,SAAS6E,eAAiB2C,GAC1CnF,EAAS+B,UAAU,IAAQxF,EAAGyE,UAAY,KAAKwE,MAAMH,QAAWtD,QAAU/B,EAAS+B,QAIvF,OAAO,EAGR,QAAS0D,GAAUC,EAAUC,GAC5B,GAAIC,GAAMC,CAEV,OAAO,YACO,SAATD,IACHA,EAAOE,UACPD,EAAQzK,KAER2K,WAAW,WACU,IAAhBH,EAAK7D,OACR2D,EAAS/I,KAAKkJ,EAAOD,EAAK,IAE1BF,EAASM,MAAMH,EAAOD,GAGvBA,EAAO,QACLD,KAKN,QAAS/I,GAAQqJ,EAAKtB,GACrB,GAAIsB,GAAOtB,EACV,IAAK,GAAIuB,KAAOvB,GACXA,EAAIwB,eAAeD,KACtBD,EAAIC,GAAOvB,EAAIuB,GAKlB,OAAOD,GAjsCR,GAAqB,mBAAV3J,SAAmD,mBAAnBA,QAAO4D,SACjD,MAAO,YACN,KAAM,IAAIkG,OAAK,iDAIjB,IAAIjI,GACHkI,EACAC,EACA3G,EACAE,EACA0G,EAEAC,EACAC,EAEAxC,EACAyC,EACAC,EAEA5D,EACAV,EAEAuE,EAGAC,EACAC,EAEAC,EALAC,KAQA9F,EAAS,OAETrE,EAAU,YAAa,GAAKoK,OAAMC,UAElCC,EAAM7K,OACN4D,EAAWiH,EAAIjH,SACfkH,EAAWD,EAAIC,SAEflI,KAAmB,aAAkBgB,GAASmH,cAAa,QAC3DC,EAA0B,SAAW/K,GAGpC,MAFAA,GAAK2D,EAASmH,cAAa,KAC3B9K,EAAG6E,MAAMmG,QAAU,sBACe,SAA3BhL,EAAG6E,MAAMoG,iBAGjBzD,GAAU,EAEV0D,EAAMzK,KAAKyK,IAGXpI,MAFWqI,UAIXC,EAAclC,EAAU,SAAoBlF,EAAgB/D,EAAyBqD,GAEpF,GAAIA,GAAUrD,EAAQc,OAAQ,CAC7B,GAAIf,GACH4H,EAUAyD,EACAC,EAVAC,EAAOtL,EAAQe,kBACfwK,EAAQvL,EAAQgB,YAEhBwK,EAAIzH,EAAIgE,QACR0D,EAAI1H,EAAI6D,QAER8D,EAAW5L,OAAO6L,WAClBC,EAAY9L,OAAO+L,WAOpB,IAAI5B,IAAmB5G,IACtB2G,EAAWhK,EAAQc,OACnBmJ,EAAiB5G,EAEb2G,KAAa,GAAM,CACtBA,EAAW3G,CAEX,GACC,IAAK2G,EAAS8B,YAAc9B,EAAS+B,aACnC/B,EAASgC,aAAehC,EAASiC,aAElC,YAGOjC,EAAWA,EAASrG,YAI3BqG,IACHjK,EAAKiK,EACLrC,EAAOqC,EAAS5C,wBAChBgE,GAAMH,EAAItD,EAAKK,MAAQwD,IAAMF,IAASL,EAAItD,EAAKuE,KAAOV,IAAMF,GAC5DD,GAAMJ,EAAItD,EAAKwE,OAASV,IAAMH,IAASL,EAAItD,EAAKE,IAAM4D,IAAMH,IAIvDF,GAAMC,IACXD,GAAMM,EAAWF,GAAKF,IAASE,GAAKF,GACpCD,GAAMO,EAAYH,GAAKH,IAASG,GAAKH,IAGpCF,GAAMC,KAAQtL,EAAK4K,IAIjBH,EAAWY,KAAOA,GAAMZ,EAAWa,KAAOA,GAAMb,EAAWzK,KAAOA,IACrEyK,EAAWzK,GAAKA,EAChByK,EAAWY,GAAKA,EAChBZ,EAAWa,GAAKA,EAEhBe,cAAc5B,EAAW6B,KAErBtM,IACHyK,EAAW6B,IAAMC,YAAY,WACxBvM,IAAO4K,EACVA,EAAI4B,SAAS5B,EAAI6B,YAAcpB,EAAKG,EAAOZ,EAAI8B,YAAcpB,EAAKE,IAElEF,IAAOtL,EAAG2M,WAAarB,EAAKE,GAC5BH,IAAOrL,EAAG4M,YAAcvB,EAAKG,KAE5B,QAIJ,IAEHlJ,EAAgB,SAAUrC,GACzB,GAAIO,GAAQP,EAAQO,KAEfA,IAAyB,gBAATA,KACpBA,EAAQP,EAAQO,OAAS6B,KAAM7B,KAGhC,OAAS,OAAOqM,QAAQ,SAAUlD,GAC3BA,IAAOnJ,KACZA,EAAMmJ,IAAO,KAIf1J,EAAQ6M,OAAS,IAAMtM,EAAM6B,MAAQ7B,EAAMuM,IAAI/D,KAAO,IAAMxI,EAAMuM,IAAI/D,KAAI,KAAQ,IAAM,IAolC1F,OA9/BAlJ,GAASkN,WACRC,YAAanN,EAEb+C,YAAa,SAAiCmB,GAC7C,GAAIsF,GAAQzK,KACXmB,EAAKnB,KAAKmB,GACVC,EAAUpB,KAAKoB,QACfiN,EAAOlJ,EAAIkJ,KACXC,EAAQnJ,EAAIoJ,SAAWpJ,EAAIoJ,QAAQ,GACnCC,GAAUF,GAASnJ,GAAKqJ,OACxBC,EAAiBtJ,EAAIqJ,OAAOE,YAAcvJ,EAAIwJ,KAAK,IAAMH,EACzD7L,EAASvB,EAAQuB,MAElB,MAAa,cAAT0L,GAAuC,IAAflJ,EAAIyJ,QAAgBxN,EAAQW,YAIxDyM,EAAS7J,EAAS6J,EAAQpN,EAAQiB,UAAWlB,IAE7C,CAQA,GAHAwG,EAAWgC,EAAO6E,EAAQpN,EAAQiB,WAGZ,kBAAXM,IACV,GAAIA,EAAOpB,KAAKvB,KAAMmF,EAAKqJ,EAAQxO,MAGlC,MAFA4G,GAAe6D,EAAOgE,EAAgB,SAAUD,EAAQrN,EAAIwG,OAC5DxC,GAAIE,qBAID,IAAI1C,IACRA,EAASA,EAAOmH,MAAK,KAAM+E,KAAK,SAAUC,GAGzC,GAFAA,EAAWnK,EAAS8J,EAAgBK,EAASC,OAAQ5N,GAIpD,MADAyF,GAAe6D,EAAOqE,EAAU,SAAUN,EAAQrN,EAAIwG,IAC/C,KAMR,WADAxC,GAAIE,gBAMFjE,GAAQa,SAAW0C,EAAS8J,EAAgBrN,EAAQa,OAAQd,IAMhEnB,KAAKgP,kBAAkB7J,EAAKmJ,EAAOE,KAGpCQ,kBAAmB,SAAsB7J,EAAiBmJ,EAAyBE,GAClF,GAICS,GAJGxE,EAAQzK,KACXmB,EAAKsJ,EAAMtJ,GACXC,EAAUqJ,EAAMrJ,QAChB8N,EAAgB/N,EAAG+N,aAGhBV,KAAWzL,GAAWyL,EAAOzJ,aAAe5D,IAC/CsK,EAAStG,EAETV,EAAStD,EACT4B,EAASyL,EACTvD,EAAWlI,EAAOgC,WAClBoG,EAASpI,EAAOoM,YAChB3D,EAAcpK,EAAQO,MAEtBsN,EAAc,WAGbxE,EAAM2E,sBAGNrM,EAAOV,WAAY,EAGnBqD,EAAa3C,EAAQ0H,EAAMrJ,QAAQqB,aAAa,GAGhDgI,EAAM4E,kBAAkBf,IAIzBlN,EAAQsB,OAAOoH,MAAK,KAAMkE,QAAQ,SAAUc,GAC3C1I,EAAMrD,EAAQ+L,EAASC,OAAQtG,KAGhC1E,EAAImL,EAAe,UAAWzE,EAAM6E,SACpCvL,EAAImL,EAAe,WAAYzE,EAAM6E,SACrCvL,EAAImL,EAAe,cAAezE,EAAM6E,SAEpClO,EAAQgC,OAIXW,EAAImL,EAAe,UAAWzE,EAAM2E,qBACpCrL,EAAImL,EAAe,WAAYzE,EAAM2E,qBACrCrL,EAAImL,EAAe,cAAezE,EAAM2E,qBACxCrL,EAAImL,EAAe,YAAazE,EAAM2E,qBACtCrL,EAAImL,EAAe,YAAazE,EAAM2E,qBAEtC3E,EAAM8E,gBAAkB5E,WAAWsE,EAAa7N,EAAQgC,QAExD6L,MAKHG,oBAAqB,WACpB,GAAIF,GAAgBlP,KAAKmB,GAAG+N,aAE5BM,cAAaxP,KAAKuP,iBAClB/J,EAAK0J,EAAe,UAAWlP,KAAKoP,qBACpC5J,EAAK0J,EAAe,WAAYlP,KAAKoP,qBACrC5J,EAAK0J,EAAe,cAAelP,KAAKoP,qBACxC5J,EAAK0J,EAAe,YAAalP,KAAKoP,qBACtC5J,EAAK0J,EAAe,YAAalP,KAAKoP,sBAGvCC,kBAAmB,SAAsBf,GACpCA,GAEH7C,GACC+C,OAAQzL,EACRoG,QAASmF,EAAMnF,QACfH,QAASsF,EAAMtF,SAGhBhJ,KAAKyP,aAAahE,EAAQ,UAEjBzL,KAAK6D,iBAIdE,EAAIhB,EAAQ,UAAW/C,MACvB+D,EAAIU,EAAQ,YAAazE,KAAKyP,eAJ9BzP,KAAKyP,aAAahE,GAAQ,EAO3B,KACK3G,EAAS4K,UAEZ/E,WAAW,WACV7F,EAAS4K,UAAUC,UAGpBzO,OAAO0O,eAAeC,kBAEtB,MAAOC,MAIVC,aAAc,WACTtL,GAAU1B,IAEb2C,EAAa3C,EAAQ/C,KAAKoB,QAAQoB,YAAY,GAE9CvB,EAAS+O,OAAShQ,KAGlB4G,EAAe5G,KAAMyE,EAAQ,QAAS1B,EAAQ0B,EAAQkD,KAIxDsI,iBAAkB,WACjB,GAAIvE,EAAU,CACb,GAAI1L,KAAKkQ,SAAWxE,EAASvC,SAAWnJ,KAAKmQ,SAAWzE,EAAS1C,QAChE,MAGDhJ,MAAKkQ,OAASxE,EAASvC,QACvBnJ,KAAKmQ,OAASzE,EAAS1C,QAElBkD,GACJ1H,EAAK0G,EAAS,UAAW,OAG1B,IAAIsD,GAAS1J,EAASsL,iBAAiB1E,EAASvC,QAASuC,EAAS1C,SACjEqH,EAAS7B,EACT8B,EAAY,IAAMtQ,KAAKoB,QAAQO,MAAM6B,KACrCiD,EAAIxC,EAAuB0C,MAE5B,IAAI0J,EACH,EAAG,CACF,GAAIA,EAAO5O,IAAY4O,EAAO5O,GAASL,QAAQ6M,OAAOsC,QAAQD,MAAiB,CAC9E,KAAO7J,KACNxC,EAAuBwC,IACtB0C,QAASuC,EAASvC,QAClBH,QAAS0C,EAAS1C,QAClBwF,OAAQA,EACR/J,OAAQ4L,GAIV,OAGD7B,EAAS6B,QAGHA,EAASA,EAAOtL,WAGnBmH,IACJ1H,EAAK0G,EAAS,UAAW,MAM5BsF,aAAc,SAAyBrL,GACtC,GAAIsG,EAAQ,CAENxK,EAAS+O,QACbhQ,KAAK+P,eAIN/P,KAAKyQ,cAEL,IAAInC,GAAQnJ,EAAIoJ,QAAUpJ,EAAIoJ,QAAQ,GAAKpJ,EAC1CuL,EAAKpC,EAAMnF,QAAUsC,EAAOtC,QAC5BwH,EAAKrC,EAAMtF,QAAUyC,EAAOzC,QAC5B4H,EAAczL,EAAIoJ,QAAU,eAAiBmC,EAAK,MAAQC,EAAK,QAAU,aAAeD,EAAK,MAAQC,EAAK,KAE3GhF,IAAQ,EACRD,EAAW4C,EAEX9J,EAAK0G,EAAS,kBAAmB0F,GACjCpM,EAAK0G,EAAS,eAAgB0F,GAC9BpM,EAAK0G,EAAS,cAAe0F,GAC7BpM,EAAK0G,EAAS,YAAa0F,GAE3BzL,EAAIE,mBAINoL,aAAc,WACb,IAAKvF,EAAS,CACb,GAGC2F,GAHG9H,EAAOhG,EAAOyF,wBACjBsI,EAAMtM,EAAKzB,GACX3B,EAAUpB,KAAKoB,OAGhB8J,GAAUnI,EAAOgO,WAAU,GAE3BrL,EAAawF,EAAS9J,EAAQoB,YAAY,GAC1CkD,EAAawF,EAAS9J,EAAQkC,eAAe,GAE7CkB,EAAK0G,EAAS,MAAOnC,EAAKE,IAAM+C,EAAS8E,EAAIE,UAAW,KACxDxM,EAAK0G,EAAS,OAAQnC,EAAKuE,KAAOtB,EAAS8E,EAAIG,WAAY,KAC3DzM,EAAK0G,EAAS,QAASnC,EAAKvI,OAC5BgE,EAAK0G,EAAS,SAAUnC,EAAKG,QAC7B1E,EAAK0G,EAAS,UAAW,OACzB1G,EAAK0G,EAAS,WAAY,SAC1B1G,EAAK0G,EAAS,SAAU,UACxB1G,EAAK0G,EAAS,gBAAiB,QAE/B9J,EAAQmC,gBAAkBuB,EAASoM,KAAKC,YAAYjG,IAAYzG,EAAO0M,YAAYjG,GAGnF2F,EAAY3F,EAAQ1C,wBACpBhE,EAAK0G,EAAS,QAAsB,EAAbnC,EAAKvI,MAAYqQ,EAAUrQ,OAClDgE,EAAK0G,EAAS,SAAwB,EAAdnC,EAAKG,OAAa2H,EAAU3H,UAItDuG,aAAc,SAAoBtK,EAAiBiM,GAClD,GAAItO,GAAeqC,EAAIrC,aACtB1B,EAAUpB,KAAKoB,OAEhBpB,MAAKqR,eAEmB,SAApB7F,EAAY8F,OACf/M,EAAUxB,EAAOgO,WAAU,GAC3BvM,EAAKD,EAAS,UAAW,QACzBE,EAAOC,aAAaH,EAASxB,IAG1BqO,GAEiB,UAAhBA,GAEHrN,EAAIe,EAAU,YAAa9E,KAAKwQ,cAChCzM,EAAIe,EAAU,WAAY9E,KAAKsP,SAC/BvL,EAAIe,EAAU,cAAe9E,KAAKsP,WAGlCvL,EAAIe,EAAU,YAAa9E,KAAKwQ,cAChCzM,EAAIe,EAAU,UAAW9E,KAAKsP,UAG/BtP,KAAKuR,QAAU7D,YAAY1N,KAAKiQ,iBAAkB,MAG9CnN,IACHA,EAAa0O,cAAgB,OAC7BpQ,EAAQyB,SAAWzB,EAAQyB,QAAQtB,KAAKvB,KAAM8C,EAAcC,IAG7DgB,EAAIe,EAAU,OAAQ9E,MACtB2K,WAAW3K,KAAK+P,aAAc,KAIhC5L,YAAa,SAAoBgB,GAChC,GACCqJ,GACAzG,EACA0J,EAHGtQ,EAAKnB,KAAKmB,GAIbC,EAAUpB,KAAKoB,QACfO,EAAQP,EAAQO,MAChB+P,EAAW/P,EAAMuM,IACjByD,EAAWnG,IAAgB7J,EAC3BiQ,EAAUxQ,EAAQU,IASnB,IAP2B,SAAvBqD,EAAIE,iBACPF,EAAIE,kBACHjE,EAAQ8B,gBAAkBiC,EAAI0M,mBAGhClG,GAAQ,EAEJH,IAAgBpK,EAAQW,WAC1B4P,EACEC,IAAYH,GAAUhN,EAAOqN,SAAS/O,IACtCyI,EAAY8F,MAAQI,IACpBlG,EAAYhI,OAAS7B,EAAM6B,MAC3BkO,EAASnB,UAAYmB,EAASnB,QAAQ/E,EAAYhI,UAGrC,SAAf2B,EAAIV,QAAqBU,EAAIV,SAAWzE,KAAKmB,IAC7C,CAID,GAFAoL,EAAYpH,EAAK/D,EAASpB,KAAKmB,IAE3BwH,EACH,MAMD,IAHA6F,EAAS7J,EAASQ,EAAIqJ,OAAQpN,EAAQiB,UAAWlB,GACjD4G,EAAWhF,EAAOyF,wBAEdiJ,EAUH,MATApN,IAAW,QAEPE,GAAW4G,EACd1G,EAAOC,aAAa3B,EAAQwB,GAAW4G,GAE9ByG,GACTnN,EAAO0M,YAAYpO,GAOrB,IAA4B,IAAvB5B,EAAG4Q,SAASpL,QAAkBxF,EAAG4Q,SAAS,KAAO7G,GACpD/J,IAAOgE,EAAIqJ,SAAYA,EAAS5F,EAAazH,EAAIgE,IACjD,CAED,GAAIqJ,EAAQ,CACX,GAAIA,EAAOwD,SACV,MAGDhK,GAAawG,EAAOhG,wBAGrBnE,EAAWsN,GAEP9J,EAAQpD,EAAQtD,EAAI4B,EAAQgF,EAAUyG,EAAQxG,MAAgB,IAC5DjF,EAAO+O,SAAS3Q,KACpBA,EAAGgQ,YAAYpO,GACfkI,EAAW9J,GAGZnB,KAAKiS,SAASlK,EAAUhF,GACxByL,GAAUxO,KAAKiS,SAASjK,EAAYwG,QAGjC,IAAIA,IAAWA,EAAOwD,UAAYxD,IAAWzL,GAA0C,SAA/ByL,EAAOzJ,WAAWtD,GAAsB,CAChGoH,IAAW2F,IACd3F,EAAS2F,EACTlD,EAAU9G,EAAKgK,GACfjD,EAAgB/G,EAAKgK,EAAOzJ,YAI7B,IAUCmN,GAVGlK,EAAawG,EAAOhG,wBACvBhI,EAAQwH,EAAWoB,MAAQpB,EAAWsF,KACtCpE,EAASlB,EAAWuF,OAASvF,EAAWiB,IACxCkJ,EAAW,oBAAoB7P,KAAKgJ,EAAQ8G,SAAW9G,EAAQ+G,UACjC,QAAzB9G,EAAc8G,SAAwE,IAAnD9G,EAAa,kBAAmBgF,QAAO,OAC/E+B,EAAU9D,EAAOtB,YAAcnK,EAAOmK,YACtCqF,EAAU/D,EAAOpB,aAAerK,EAAOqK,aACvCoF,GAAWL,GAAYhN,EAAIgE,QAAUnB,EAAWsF,MAAQ9M,GAAS2E,EAAI6D,QAAUhB,EAAWiB,KAAOC,GAAU,GAC3GiG,EAAcX,EAAOiE,mBACrBC,EAAa7K,EAAQpD,EAAQtD,EAAI4B,EAAQgF,EAAUyG,EAAQxG,EAI5D,IAAI0K,KAAe,EAAO,CAMzB,GALA/J,GAAU,EACVgC,WAAWjC,EAAW,IAEtBrE,EAAWsN,GAEQ,IAAfe,GAAoBA,OACvBR,EAAwB,IAAfQ,MAEL,IAAIP,EAAU,CAClB,GAAIQ,GAAQ5P,EAAO6P,UAClBC,EAAQrE,EAAOoE,SAGfV,GADGS,IAAUE,EACJrE,EAAO3E,yBAA2B9G,IAAYuP,GAAUE,GAAWF,EAEpEO,EAAQF,MAGjBT,GAAS/C,IAAgBpM,IAAYwP,GAAUC,GAAWD,CAGtDxP,GAAO+O,SAAS3Q,KAChB+Q,IAAU/C,EACbhO,EAAGgQ,YAAYpO,GAEfyL,EAAOzJ,WAAWL,aAAa3B,EAAQmP,EAAQ/C,EAAcX,IAI/DvD,EAAWlI,EAAOgC,WAElB/E,KAAKiS,SAASlK,EAAUhF,GACxB/C,KAAKiS,SAASjK,EAAYwG,OAM9ByD,SAAU,SAAUa,EAAUtE,GAC7B,GAAIjE,GAAKvK,KAAKoB,QAAQwB,SAEtB,IAAI2H,EAAI,CACP,GAAIwI,GAAcvE,EAAOhG,uBAEzBhE,GAAKgK,EAAQ,aAAc,QAC3BhK,EAAKgK,EAAQ,YAAa,gBACtBsE,EAASxF,KAAOyF,EAAYzF,MAAQ,OACpCwF,EAAS7J,IAAM8J,EAAY9J,KAAO,SAGtCuF,EAAOtB,YAEP1I,EAAKgK,EAAQ,aAAc,OAASjE,EAAK,MACzC/F,EAAKgK,EAAQ,YAAa,sBAE1BgB,aAAahB,EAAOwD,UACpBxD,EAAOwD,SAAWrH,WAAW,WAC5BnG,EAAKgK,EAAQ,aAAc,IAC3BhK,EAAKgK,EAAQ,YAAa,IAC1BA,EAAOwD,UAAW,GAChBzH,KAIL8G,aAAc,WACb,GAAInC,GAAgBlP,KAAKmB,GAAG+N,aAE5B1J,GAAKV,EAAU,YAAa9E,KAAKwQ,cACjChL,EAAK0J,EAAe,UAAWlP,KAAKsP,SACpC9J,EAAK0J,EAAe,WAAYlP,KAAKsP,SACrC9J,EAAK0J,EAAe,cAAelP,KAAKsP,UAGzCA,QAAS,SAAoBnK,GAC5B,GAAIhE,GAAKnB,KAAKmB,GACbC,EAAUpB,KAAKoB,OAEhBoM,eAAcxN,KAAKuR,SACnB/D,cAAc5B,EAAW6B,KACzB+B,aAAaxP,KAAKuP,iBAGlB/J,EAAKV,EAAU,YAAa9E,KAAKwQ,cAE7BxQ,KAAK6D,kBACR2B,EAAKV,EAAU,OAAQ9E,MACvBwF,EAAKrE,EAAI,YAAanB,KAAKyP,eAG5BzP,KAAKqR,eAEDlM,IACCwG,IACHxG,EAAIE,kBACHjE,EAAQ6B,YAAckC,EAAI0M,mBAG5B3G,GAAWA,EAAQnG,WAAWiO,YAAY9H,GAEtCnI,IACC/C,KAAK6D,iBACR2B,EAAKzC,EAAQ,UAAW/C,MAGzByI,EAAkB1F,GAGlB2C,EAAa3C,EAAQ/C,KAAKoB,QAAQoB,YAAY,GAC9CkD,EAAa3C,EAAQ/C,KAAKoB,QAAQqB,aAAa,GAE3CgC,IAAWwG,GACdhE,EAAW0C,EAAO5G,EAAQ3B,EAAQiB,WAE9B4E,GAAY,IAEfL,EAAe,KAAMqE,EAAU,OAAQlI,EAAQ0B,EAAQkD,EAAUV,GACjEL,EAAe5G,KAAMyE,EAAQ,OAAQ1B,EAAQ0B,EAAQkD,EAAUV,GAG/DL,EAAe,KAAMqE,EAAU,MAAOlI,EAAQ0B,EAAQkD,EAAUV,GAGhEL,EAAe5G,KAAMyE,EAAQ,SAAU1B,EAAQ0B,EAAQkD,EAAUV,MAKlE1C,GAAWA,EAAQQ,WAAWiO,YAAYzO,GAEtCxB,EAAOoM,cAAgBhE,IAE1BlE,EAAW0C,EAAO5G,EAAQ3B,EAAQiB,WAE9B4E,GAAY,IAEfL,EAAe5G,KAAMyE,EAAQ,SAAU1B,EAAQ0B,EAAQkD,EAAUV,GACjEL,EAAe5G,KAAMyE,EAAQ,OAAQ1B,EAAQ0B,EAAQkD,EAAUV,MAK9DhG,EAAS+O,SAEI,MAAZ/I,GAAoBA,SACvBA,EAAWU,GAGZf,EAAe5G,KAAMyE,EAAQ,MAAO1B,EAAQ0B,EAAQkD,EAAUV,GAG9DjH,KAAKiT,UAMRjT,KAAKkT,YAGNA,SAAU,WACLjS,EAAS+O,SAAWhQ,MAASiB,EAAS+O,SACzCvL,EACA1B,EACAkI,EACAC,EACAC,EACA5G,EAEA6G,EACAC,EAEAI,EACAC,EAEAC,EACA1E,EAEA4B,EACAyC,EAEAE,EACAvK,EAAS+O,OAAS,OAIpBmD,YAAa,SAAoBhO,GAChC,GAAIkJ,GAAOlJ,EAAIkJ,IAEF,cAATA,GAAgC,cAATA,EACtBtL,IACH/C,KAAKmE,YAAYgB,GACjBD,EAAgBC,IAGA,SAATkJ,GAA4B,YAATA,GAC3BrO,KAAKsP,QAAQnK,IASfiO,QAAS,WAQR,IAPA,GACCjS,GADGkS,KAEHtB,EAAW/R,KAAKmB,GAAG4Q,SACnBtL,EAAI,EACJC,EAAIqL,EAASpL,OACbvF,EAAUpB,KAAKoB,QAETqF,EAAIC,EAAGD,IACbtF,EAAK4Q,EAAStL,GACV9B,EAASxD,EAAIC,EAAQiB,UAAWrC,KAAKmB,KACxCkS,EAAMnP,KAAK/C,EAAGmS,aAAalS,EAAQ+B,aAAekG,EAAYlI,GAIhE,OAAOkS,IAQRvR,KAAM,SAAUuR,GACf,GAAIE,MAAY9O,EAASzE,KAAKmB,EAE9BnB,MAAKoT,UAAUpF,QAAQ,SAAUwF,EAAI/M,GACpC,GAAItF,GAAKsD,EAAOsN,SAAStL,EAErB9B,GAASxD,EAAInB,KAAKoB,QAAQiB,UAAWoC,KACxC8O,EAAMC,GAAMrS,IAEXnB,MAEHqT,EAAMrF,QAAQ,SAAUwF,GACnBD,EAAMC,KACT/O,EAAOuO,YAAYO,EAAMC,IACzB/O,EAAO0M,YAAYoC,EAAMC,QAS5BP,KAAM,WACL,GAAIjR,GAAQhC,KAAKoB,QAAQY,KACzBA,IAASA,EAAMyR,IAAIzT,OAUpB0T,QAAS,SAAUvS,EAAIyD,GACtB,MAAOD,GAASxD,EAAIyD,GAAY5E,KAAKoB,QAAQiB,UAAWrC,KAAKmB,KAU9DwS,OAAQ,SAAUnQ,EAAMoQ,GACvB,GAAIxS,GAAUpB,KAAKoB,OAEnB,OAAc,UAAVwS,EACIxS,EAAQoC,IAEfpC,EAAQoC,GAAQoQ,OAEH,UAATpQ,GACHC,EAAcrC,MASjByS,QAAS,WACR,GAAI1S,GAAKnB,KAAKmB,EAEdA,GAAGM,GAAW,KAEd+D,EAAKrE,EAAI,YAAanB,KAAKgE,aAC3BwB,EAAKrE,EAAI,aAAcnB,KAAKgE,aAExBhE,KAAK6D,kBACR2B,EAAKrE,EAAI,WAAYnB,MACrBwF,EAAKrE,EAAI,YAAanB,OAIvB8T,MAAM3F,UAAUH,QAAQzM,KAAKJ,EAAG4S,iBAAgB,eAAiB,SAAU5S,GAC1EA,EAAG6S,gBAAe,eAGnB/P,EAAuBgQ,OAAOhQ,EAAuBsM,QAAQvQ,KAAKmE,aAAc,GAEhFnE,KAAKsP,UAELtP,KAAKmB,GAAKA,EAAK,OA8QjBF,EAASiT,OACRC,GAAIpQ,EACJqQ,IAAK5O,EACLsL,IAAKtM,EACLjE,KAAM6F,EACNiO,GAAI,SAAUlT,EAAIyD,GACjB,QAASD,EAASxD,EAAIyD,EAAUzD,IAEjCmT,OAAQ9S,EACR+S,SAAUlK,EACVqJ,QAAS/O,EACT6P,YAAa9O,EACbkE,MAAOD,GASR1I,EAASwT,OAAS,SAAUtT,EAAIC,GAC/B,MAAO,IAAIH,GAASE,EAAIC,IAKzBH,EAASyT,QAAU,QACZzT,IDvuCRlB,IAAI4U,MAAM,WAET5U,EAAA,eAAiBoU,GAAE,QAAU,SAASS,GACrCA,EAAEvP,mBAGHtF,EAAA,aAAeoU,GAAE,QAAU,WAC1BpU,EAAEC,MAAM6U,KAAI,MAAOC,YAAY,KAC/BF,EAAEvP,mBAGHtF,EAAA,YAAcgV,KAAI,cAAa,QAE/BhV,EAAA,iBAAmBoU,GAAE,QAAU,SAASS,GACvCA,EAAEvP,iBACFtF,EAAEC,MAAMgV,SAAQ,YAAaD,KAAI,cAAa,WAG/ChV,EAAA,iBAAmBoU,GAAE,kBAAoB,WACxCpU,EAAEC,MAAMgV,SAAQ,YAAaD,KAAI,cAAa,WAG/ChV,EAAA,iBAAmBoU,GAAE,kBAAoB,WACxCpU,EAAEC,MAAMgV,SAAQ,YAAaD,KAAI,cAAa,UAiB/C3U,aACAL,EAAEmB,QAAQiT,GAAE,SAAW/T,aAEvB,IAAI6U,GAAUnV,OAAMC,EAAA,mDAAsDE,MACzD,KAAXgV,GACO,IAAZA,GACAlV,EAAA,cAAgBmV,OAEjBnV,EAAA,mCAAqCoV,OAAOvV","file":"main.min.js","sourcesContent":["function toogleExDemoPriceDiv() {\r\n\tvar s = Number($(this).val());\r\n\tif (s === 6 ||\r\n\t\ts === 7) {\r\n\t\t$('#ExDemoDiv').slideDown('slow');\r\n\t} else {\r\n\t\t$('#ExDemoDiv').slideUp('slow');\r\n\t}\r\n}\r\n\r\nfunction checkTable() {\r\n\t$('.table-wrap-scroll').remove();\r\n\t$('.table-wrap').each(function(){\r\n\t\tif ($(this).find('table').width() > $(this).width()) {\r\n\t\t\t$(this).before('
Scroll for more
');\r\n\t\t} else {\r\n\t\t\t$(this).previous('.table-wrap-scroll').remove();\r\n\t\t}\r\n\t});\r\n}\r\n\r\n$().ready(function() {\r\n\r\n\t$('.dropdown>a').on('click', function(e){\r\n\t\te.preventDefault();\r\n\t});\r\n\r\n\t$('.collapse').on('click', function(){\r\n\t\t$(this).next('ul').slideToggle(150);\r\n\t\te.preventDefault();\r\n\t});\r\n\r\n\t$('.tooltip').attr(\"aria-hidden\",\"true\");\r\n\r\n\t$('.tooltip-icon').on('click', function(e){\r\n\t\te.preventDefault();\r\n\t\t$(this).siblings('.tooltip').attr(\"aria-hidden\",\"false\");\r\n\t});\r\n\r\n\t$('.tooltip-icon').on('mouseover focus', function(){\r\n\t\t$(this).siblings('.tooltip').attr(\"aria-hidden\",\"false\");\r\n\t});\r\n\r\n\t$('.tooltip-icon').on('mouseleave blur', function(){\r\n\t\t$(this).siblings('.tooltip').attr('aria-hidden','true');\r\n\t});\r\n\r\n/*\tif ($('#sortableList').length) {\r\n\t\tSortable.create(sortableList, {\r\n\t\t\t// handle: '.move',\r\n\t\t animation: 150,\r\n\t\t\tscroll: true,\r\n\t\t\tdataIdAttr: 'data-filename',\r\n\t\t\tonSort: function(evt) {\r\n\t\t\t\tvar order = this.toArray();\r\n\t\t\t\tconsole.log(order);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n*/\r\n\r\n\tcheckTable();\r\n\t$(window).on('resize', checkTable());\r\n\r\n\tvar initial = Number($(\"#MainContent_ddlInventoryStatus option:selected\").val());\r\n\tif (!(initial ===6 ||\r\n\t\tinitial === 7)) {\r\n\t\t$('#ExDemoDiv').hide();\r\n\t}\r\n\t$('#MainContent_ddlInventoryStatus').change(toogleExDemoPriceDiv);\r\n\r\n});\r\n","/**!\r\n * Sortable\r\n * @author\tRubaXa \r\n * @license MIT\r\n */\r\n\r\n\r\n(function (factory) {\r\n\t\"use strict\";\r\n\r\n\tif (typeof define === \"function\" && define.amd) {\r\n\t\tdefine(factory);\r\n\t}\r\n\telse if (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\r\n\t\tmodule.exports = factory();\r\n\t}\r\n\telse if (typeof Package !== \"undefined\") {\r\n\t\tSortable = factory(); // export for Meteor.js\r\n\t}\r\n\telse {\r\n\t\t/* jshint sub:true */\r\n\t\twindow[\"Sortable\"] = factory();\r\n\t}\r\n})(function () {\r\n\t\"use strict\";\r\n\r\n\tif (typeof window == \"undefined\" || typeof window.document == \"undefined\") {\r\n\t\treturn function () {\r\n\t\t\tthrow new Error(\"Sortable.js requires a window with a document\");\r\n\t\t};\r\n\t}\r\n\r\n\tvar dragEl,\r\n\t\tparentEl,\r\n\t\tghostEl,\r\n\t\tcloneEl,\r\n\t\trootEl,\r\n\t\tnextEl,\r\n\r\n\t\tscrollEl,\r\n\t\tscrollParentEl,\r\n\r\n\t\tlastEl,\r\n\t\tlastCSS,\r\n\t\tlastParentCSS,\r\n\r\n\t\toldIndex,\r\n\t\tnewIndex,\r\n\r\n\t\tactiveGroup,\r\n\t\tautoScroll = {},\r\n\r\n\t\ttapEvt,\r\n\t\ttouchEvt,\r\n\r\n\t\tmoved,\r\n\r\n\t\t/** @const */\r\n\t\tRSPACE = /\\s+/g,\r\n\r\n\t\texpando = 'Sortable' + (new Date).getTime(),\r\n\r\n\t\twin = window,\r\n\t\tdocument = win.document,\r\n\t\tparseInt = win.parseInt,\r\n\r\n\t\tsupportDraggable = !!('draggable' in document.createElement('div')),\r\n\t\tsupportCssPointerEvents = (function (el) {\r\n\t\t\tel = document.createElement('x');\r\n\t\t\tel.style.cssText = 'pointer-events:auto';\r\n\t\t\treturn el.style.pointerEvents === 'auto';\r\n\t\t})(),\r\n\r\n\t\t_silent = false,\r\n\r\n\t\tabs = Math.abs,\r\n\t\tslice = [].slice,\r\n\r\n\t\ttouchDragOverListeners = [],\r\n\r\n\t\t_autoScroll = _throttle(function (/**Event*/evt, /**Object*/options, /**HTMLElement*/rootEl) {\r\n\t\t\t// Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\r\n\t\t\tif (rootEl && options.scroll) {\r\n\t\t\t\tvar el,\r\n\t\t\t\t\trect,\r\n\t\t\t\t\tsens = options.scrollSensitivity,\r\n\t\t\t\t\tspeed = options.scrollSpeed,\r\n\r\n\t\t\t\t\tx = evt.clientX,\r\n\t\t\t\t\ty = evt.clientY,\r\n\r\n\t\t\t\t\twinWidth = window.innerWidth,\r\n\t\t\t\t\twinHeight = window.innerHeight,\r\n\r\n\t\t\t\t\tvx,\r\n\t\t\t\t\tvy\r\n\t\t\t\t;\r\n\r\n\t\t\t\t// Delect scrollEl\r\n\t\t\t\tif (scrollParentEl !== rootEl) {\r\n\t\t\t\t\tscrollEl = options.scroll;\r\n\t\t\t\t\tscrollParentEl = rootEl;\r\n\r\n\t\t\t\t\tif (scrollEl === true) {\r\n\t\t\t\t\t\tscrollEl = rootEl;\r\n\r\n\t\t\t\t\t\tdo {\r\n\t\t\t\t\t\t\tif ((scrollEl.offsetWidth < scrollEl.scrollWidth) ||\r\n\t\t\t\t\t\t\t\t(scrollEl.offsetHeight < scrollEl.scrollHeight)\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* jshint boss:true */\r\n\t\t\t\t\t\t} while (scrollEl = scrollEl.parentNode);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (scrollEl) {\r\n\t\t\t\t\tel = scrollEl;\r\n\t\t\t\t\trect = scrollEl.getBoundingClientRect();\r\n\t\t\t\t\tvx = (abs(rect.right - x) <= sens) - (abs(rect.left - x) <= sens);\r\n\t\t\t\t\tvy = (abs(rect.bottom - y) <= sens) - (abs(rect.top - y) <= sens);\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tif (!(vx || vy)) {\r\n\t\t\t\t\tvx = (winWidth - x <= sens) - (x <= sens);\r\n\t\t\t\t\tvy = (winHeight - y <= sens) - (y <= sens);\r\n\r\n\t\t\t\t\t/* jshint expr:true */\r\n\t\t\t\t\t(vx || vy) && (el = win);\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tif (autoScroll.vx !== vx || autoScroll.vy !== vy || autoScroll.el !== el) {\r\n\t\t\t\t\tautoScroll.el = el;\r\n\t\t\t\t\tautoScroll.vx = vx;\r\n\t\t\t\t\tautoScroll.vy = vy;\r\n\r\n\t\t\t\t\tclearInterval(autoScroll.pid);\r\n\r\n\t\t\t\t\tif (el) {\r\n\t\t\t\t\t\tautoScroll.pid = setInterval(function () {\r\n\t\t\t\t\t\t\tif (el === win) {\r\n\t\t\t\t\t\t\t\twin.scrollTo(win.pageXOffset + vx * speed, win.pageYOffset + vy * speed);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvy && (el.scrollTop += vy * speed);\r\n\t\t\t\t\t\t\t\tvx && (el.scrollLeft += vx * speed);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, 24);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, 30),\r\n\r\n\t\t_prepareGroup = function (options) {\r\n\t\t\tvar group = options.group;\r\n\r\n\t\t\tif (!group || typeof group != 'object') {\r\n\t\t\t\tgroup = options.group = {name: group};\r\n\t\t\t}\r\n\r\n\t\t\t['pull', 'put'].forEach(function (key) {\r\n\t\t\t\tif (!(key in group)) {\r\n\t\t\t\t\tgroup[key] = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\toptions.groups = ' ' + group.name + (group.put.join ? ' ' + group.put.join(' ') : '') + ' ';\r\n\t\t}\r\n\t;\r\n\r\n\r\n\r\n\t/**\r\n\t * @class Sortable\r\n\t * @param {HTMLElement} el\r\n\t * @param {Object} [options]\r\n\t */\r\n\tfunction Sortable(el, options) {\r\n\t\tif (!(el && el.nodeType && el.nodeType === 1)) {\r\n\t\t\tthrow 'Sortable: `el` must be HTMLElement, and not ' + {}.toString.call(el);\r\n\t\t}\r\n\r\n\t\tthis.el = el; // root element\r\n\t\tthis.options = options = _extend({}, options);\r\n\r\n\r\n\t\t// Export instance\r\n\t\tel[expando] = this;\r\n\r\n\r\n\t\t// Default options\r\n\t\tvar defaults = {\r\n\t\t\tgroup: Math.random(),\r\n\t\t\tsort: true,\r\n\t\t\tdisabled: false,\r\n\t\t\tstore: null,\r\n\t\t\thandle: null,\r\n\t\t\tscroll: true,\r\n\t\t\tscrollSensitivity: 30,\r\n\t\t\tscrollSpeed: 10,\r\n\t\t\tdraggable: /[uo]l/i.test(el.nodeName) ? 'li' : '>*',\r\n\t\t\tghostClass: 'sortable-ghost',\r\n\t\t\tchosenClass: 'sortable-chosen',\r\n\t\t\tignore: 'a, img',\r\n\t\t\tfilter: null,\r\n\t\t\tanimation: 0,\r\n\t\t\tsetData: function (dataTransfer, dragEl) {\r\n\t\t\t\tdataTransfer.setData('Text', dragEl.textContent);\r\n\t\t\t},\r\n\t\t\tdropBubble: false,\r\n\t\t\tdragoverBubble: false,\r\n\t\t\tdataIdAttr: 'data-id',\r\n\t\t\tdelay: 0,\r\n\t\t\tforceFallback: false,\r\n\t\t\tfallbackClass: 'sortable-fallback',\r\n\t\t\tfallbackOnBody: false\r\n\t\t};\r\n\r\n\r\n\t\t// Set default options\r\n\t\tfor (var name in defaults) {\r\n\t\t\t!(name in options) && (options[name] = defaults[name]);\r\n\t\t}\r\n\r\n\t\t_prepareGroup(options);\r\n\r\n\t\t// Bind all private methods\r\n\t\tfor (var fn in this) {\r\n\t\t\tif (fn.charAt(0) === '_') {\r\n\t\t\t\tthis[fn] = this[fn].bind(this);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Setup drag mode\r\n\t\tthis.nativeDraggable = options.forceFallback ? false : supportDraggable;\r\n\r\n\t\t// Bind events\r\n\t\t_on(el, 'mousedown', this._onTapStart);\r\n\t\t_on(el, 'touchstart', this._onTapStart);\r\n\r\n\t\tif (this.nativeDraggable) {\r\n\t\t\t_on(el, 'dragover', this);\r\n\t\t\t_on(el, 'dragenter', this);\r\n\t\t}\r\n\r\n\t\ttouchDragOverListeners.push(this._onDragOver);\r\n\r\n\t\t// Restore sorting\r\n\t\toptions.store && this.sort(options.store.get(this));\r\n\t}\r\n\r\n\r\n\tSortable.prototype = /** @lends Sortable.prototype */ {\r\n\t\tconstructor: Sortable,\r\n\r\n\t\t_onTapStart: function (/** Event|TouchEvent */evt) {\r\n\t\t\tvar _this = this,\r\n\t\t\t\tel = this.el,\r\n\t\t\t\toptions = this.options,\r\n\t\t\t\ttype = evt.type,\r\n\t\t\t\ttouch = evt.touches && evt.touches[0],\r\n\t\t\t\ttarget = (touch || evt).target,\r\n\t\t\t\toriginalTarget = evt.target.shadowRoot && evt.path[0] || target,\r\n\t\t\t\tfilter = options.filter;\r\n\r\n\t\t\tif (type === 'mousedown' && evt.button !== 0 || options.disabled) {\r\n\t\t\t\treturn; // only left button or enabled\r\n\t\t\t}\r\n\r\n\t\t\ttarget = _closest(target, options.draggable, el);\r\n\r\n\t\t\tif (!target) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// get the index of the dragged element within its parent\r\n\t\t\toldIndex = _index(target, options.draggable);\r\n\r\n\t\t\t// Check filter\r\n\t\t\tif (typeof filter === 'function') {\r\n\t\t\t\tif (filter.call(this, evt, target, this)) {\r\n\t\t\t\t\t_dispatchEvent(_this, originalTarget, 'filter', target, el, oldIndex);\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\treturn; // cancel dnd\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (filter) {\r\n\t\t\t\tfilter = filter.split(',').some(function (criteria) {\r\n\t\t\t\t\tcriteria = _closest(originalTarget, criteria.trim(), el);\r\n\r\n\t\t\t\t\tif (criteria) {\r\n\t\t\t\t\t\t_dispatchEvent(_this, criteria, 'filter', target, el, oldIndex);\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (filter) {\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\treturn; // cancel dnd\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif (options.handle && !_closest(originalTarget, options.handle, el)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// Prepare `dragstart`\r\n\t\t\tthis._prepareDragStart(evt, touch, target);\r\n\t\t},\r\n\r\n\t\t_prepareDragStart: function (/** Event */evt, /** Touch */touch, /** HTMLElement */target) {\r\n\t\t\tvar _this = this,\r\n\t\t\t\tel = _this.el,\r\n\t\t\t\toptions = _this.options,\r\n\t\t\t\townerDocument = el.ownerDocument,\r\n\t\t\t\tdragStartFn;\r\n\r\n\t\t\tif (target && !dragEl && (target.parentNode === el)) {\r\n\t\t\t\ttapEvt = evt;\r\n\r\n\t\t\t\trootEl = el;\r\n\t\t\t\tdragEl = target;\r\n\t\t\t\tparentEl = dragEl.parentNode;\r\n\t\t\t\tnextEl = dragEl.nextSibling;\r\n\t\t\t\tactiveGroup = options.group;\r\n\r\n\t\t\t\tdragStartFn = function () {\r\n\t\t\t\t\t// Delayed drag has been triggered\r\n\t\t\t\t\t// we can re-enable the events: touchmove/mousemove\r\n\t\t\t\t\t_this._disableDelayedDrag();\r\n\r\n\t\t\t\t\t// Make the element draggable\r\n\t\t\t\t\tdragEl.draggable = true;\r\n\r\n\t\t\t\t\t// Chosen item\r\n\t\t\t\t\t_toggleClass(dragEl, _this.options.chosenClass, true);\r\n\r\n\t\t\t\t\t// Bind the events: dragstart/dragend\r\n\t\t\t\t\t_this._triggerDragStart(touch);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Disable \"draggable\"\r\n\t\t\t\toptions.ignore.split(',').forEach(function (criteria) {\r\n\t\t\t\t\t_find(dragEl, criteria.trim(), _disableDraggable);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t_on(ownerDocument, 'mouseup', _this._onDrop);\r\n\t\t\t\t_on(ownerDocument, 'touchend', _this._onDrop);\r\n\t\t\t\t_on(ownerDocument, 'touchcancel', _this._onDrop);\r\n\r\n\t\t\t\tif (options.delay) {\r\n\t\t\t\t\t// If the user moves the pointer or let go the click or touch\r\n\t\t\t\t\t// before the delay has been reached:\r\n\t\t\t\t\t// disable the delayed drag\r\n\t\t\t\t\t_on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\r\n\t\t\t\t\t_on(ownerDocument, 'touchend', _this._disableDelayedDrag);\r\n\t\t\t\t\t_on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\r\n\t\t\t\t\t_on(ownerDocument, 'mousemove', _this._disableDelayedDrag);\r\n\t\t\t\t\t_on(ownerDocument, 'touchmove', _this._disableDelayedDrag);\r\n\r\n\t\t\t\t\t_this._dragStartTimer = setTimeout(dragStartFn, options.delay);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdragStartFn();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_disableDelayedDrag: function () {\r\n\t\t\tvar ownerDocument = this.el.ownerDocument;\r\n\r\n\t\t\tclearTimeout(this._dragStartTimer);\r\n\t\t\t_off(ownerDocument, 'mouseup', this._disableDelayedDrag);\r\n\t\t\t_off(ownerDocument, 'touchend', this._disableDelayedDrag);\r\n\t\t\t_off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\r\n\t\t\t_off(ownerDocument, 'mousemove', this._disableDelayedDrag);\r\n\t\t\t_off(ownerDocument, 'touchmove', this._disableDelayedDrag);\r\n\t\t},\r\n\r\n\t\t_triggerDragStart: function (/** Touch */touch) {\r\n\t\t\tif (touch) {\r\n\t\t\t\t// Touch device support\r\n\t\t\t\ttapEvt = {\r\n\t\t\t\t\ttarget: dragEl,\r\n\t\t\t\t\tclientX: touch.clientX,\r\n\t\t\t\t\tclientY: touch.clientY\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis._onDragStart(tapEvt, 'touch');\r\n\t\t\t}\r\n\t\t\telse if (!this.nativeDraggable) {\r\n\t\t\t\tthis._onDragStart(tapEvt, true);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t_on(dragEl, 'dragend', this);\r\n\t\t\t\t_on(rootEl, 'dragstart', this._onDragStart);\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tif (document.selection) {\r\n\t\t\t\t\t// Timeout neccessary for IE9\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tdocument.selection.empty();\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.getSelection().removeAllRanges();\r\n\t\t\t\t}\r\n\t\t\t} catch (err) {\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_dragStarted: function () {\r\n\t\t\tif (rootEl && dragEl) {\r\n\t\t\t\t// Apply effect\r\n\t\t\t\t_toggleClass(dragEl, this.options.ghostClass, true);\r\n\r\n\t\t\t\tSortable.active = this;\r\n\r\n\t\t\t\t// Drag start event\r\n\t\t\t\t_dispatchEvent(this, rootEl, 'start', dragEl, rootEl, oldIndex);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_emulateDragOver: function () {\r\n\t\t\tif (touchEvt) {\r\n\t\t\t\tif (this._lastX === touchEvt.clientX && this._lastY === touchEvt.clientY) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._lastX = touchEvt.clientX;\r\n\t\t\t\tthis._lastY = touchEvt.clientY;\r\n\r\n\t\t\t\tif (!supportCssPointerEvents) {\r\n\t\t\t\t\t_css(ghostEl, 'display', 'none');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY),\r\n\t\t\t\t\tparent = target,\r\n\t\t\t\t\tgroupName = ' ' + this.options.group.name + '',\r\n\t\t\t\t\ti = touchDragOverListeners.length;\r\n\r\n\t\t\t\tif (parent) {\r\n\t\t\t\t\tdo {\r\n\t\t\t\t\t\tif (parent[expando] && parent[expando].options.groups.indexOf(groupName) > -1) {\r\n\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\ttouchDragOverListeners[i]({\r\n\t\t\t\t\t\t\t\t\tclientX: touchEvt.clientX,\r\n\t\t\t\t\t\t\t\t\tclientY: touchEvt.clientY,\r\n\t\t\t\t\t\t\t\t\ttarget: target,\r\n\t\t\t\t\t\t\t\t\trootEl: parent\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttarget = parent; // store last element\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* jshint boss:true */\r\n\t\t\t\t\twhile (parent = parent.parentNode);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!supportCssPointerEvents) {\r\n\t\t\t\t\t_css(ghostEl, 'display', '');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\r\n\t\t_onTouchMove: function (/**TouchEvent*/evt) {\r\n\t\t\tif (tapEvt) {\r\n\t\t\t\t// only set the status to dragging, when we are actually dragging\r\n\t\t\t\tif (!Sortable.active) {\r\n\t\t\t\t\tthis._dragStarted();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// as well as creating the ghost element on the document body\r\n\t\t\t\tthis._appendGhost();\r\n\r\n\t\t\t\tvar touch = evt.touches ? evt.touches[0] : evt,\r\n\t\t\t\t\tdx = touch.clientX - tapEvt.clientX,\r\n\t\t\t\t\tdy = touch.clientY - tapEvt.clientY,\r\n\t\t\t\t\ttranslate3d = evt.touches ? 'translate3d(' + dx + 'px,' + dy + 'px,0)' : 'translate(' + dx + 'px,' + dy + 'px)';\r\n\r\n\t\t\t\tmoved = true;\r\n\t\t\t\ttouchEvt = touch;\r\n\r\n\t\t\t\t_css(ghostEl, 'webkitTransform', translate3d);\r\n\t\t\t\t_css(ghostEl, 'mozTransform', translate3d);\r\n\t\t\t\t_css(ghostEl, 'msTransform', translate3d);\r\n\t\t\t\t_css(ghostEl, 'transform', translate3d);\r\n\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_appendGhost: function () {\r\n\t\t\tif (!ghostEl) {\r\n\t\t\t\tvar rect = dragEl.getBoundingClientRect(),\r\n\t\t\t\t\tcss = _css(dragEl),\r\n\t\t\t\t\toptions = this.options,\r\n\t\t\t\t\tghostRect;\r\n\r\n\t\t\t\tghostEl = dragEl.cloneNode(true);\r\n\r\n\t\t\t\t_toggleClass(ghostEl, options.ghostClass, false);\r\n\t\t\t\t_toggleClass(ghostEl, options.fallbackClass, true);\r\n\r\n\t\t\t\t_css(ghostEl, 'top', rect.top - parseInt(css.marginTop, 10));\r\n\t\t\t\t_css(ghostEl, 'left', rect.left - parseInt(css.marginLeft, 10));\r\n\t\t\t\t_css(ghostEl, 'width', rect.width);\r\n\t\t\t\t_css(ghostEl, 'height', rect.height);\r\n\t\t\t\t_css(ghostEl, 'opacity', '0.8');\r\n\t\t\t\t_css(ghostEl, 'position', 'fixed');\r\n\t\t\t\t_css(ghostEl, 'zIndex', '100000');\r\n\t\t\t\t_css(ghostEl, 'pointerEvents', 'none');\r\n\r\n\t\t\t\toptions.fallbackOnBody && document.body.appendChild(ghostEl) || rootEl.appendChild(ghostEl);\r\n\r\n\t\t\t\t// Fixing dimensions.\r\n\t\t\t\tghostRect = ghostEl.getBoundingClientRect();\r\n\t\t\t\t_css(ghostEl, 'width', rect.width * 2 - ghostRect.width);\r\n\t\t\t\t_css(ghostEl, 'height', rect.height * 2 - ghostRect.height);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_onDragStart: function (/**Event*/evt, /**boolean*/useFallback) {\r\n\t\t\tvar dataTransfer = evt.dataTransfer,\r\n\t\t\t\toptions = this.options;\r\n\r\n\t\t\tthis._offUpEvents();\r\n\r\n\t\t\tif (activeGroup.pull == 'clone') {\r\n\t\t\t\tcloneEl = dragEl.cloneNode(true);\r\n\t\t\t\t_css(cloneEl, 'display', 'none');\r\n\t\t\t\trootEl.insertBefore(cloneEl, dragEl);\r\n\t\t\t}\r\n\r\n\t\t\tif (useFallback) {\r\n\r\n\t\t\t\tif (useFallback === 'touch') {\r\n\t\t\t\t\t// Bind touch events\r\n\t\t\t\t\t_on(document, 'touchmove', this._onTouchMove);\r\n\t\t\t\t\t_on(document, 'touchend', this._onDrop);\r\n\t\t\t\t\t_on(document, 'touchcancel', this._onDrop);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Old brwoser\r\n\t\t\t\t\t_on(document, 'mousemove', this._onTouchMove);\r\n\t\t\t\t\t_on(document, 'mouseup', this._onDrop);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._loopId = setInterval(this._emulateDragOver, 50);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (dataTransfer) {\r\n\t\t\t\t\tdataTransfer.effectAllowed = 'move';\r\n\t\t\t\t\toptions.setData && options.setData.call(this, dataTransfer, dragEl);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_on(document, 'drop', this);\r\n\t\t\t\tsetTimeout(this._dragStarted, 0);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_onDragOver: function (/**Event*/evt) {\r\n\t\t\tvar el = this.el,\r\n\t\t\t\ttarget,\r\n\t\t\t\tdragRect,\r\n\t\t\t\trevert,\r\n\t\t\t\toptions = this.options,\r\n\t\t\t\tgroup = options.group,\r\n\t\t\t\tgroupPut = group.put,\r\n\t\t\t\tisOwner = (activeGroup === group),\r\n\t\t\t\tcanSort = options.sort;\r\n\r\n\t\t\tif (evt.preventDefault !== void 0) {\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\t!options.dragoverBubble && evt.stopPropagation();\r\n\t\t\t}\r\n\r\n\t\t\tmoved = true;\r\n\r\n\t\t\tif (activeGroup && !options.disabled &&\r\n\t\t\t\t(isOwner\r\n\t\t\t\t\t? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\r\n\t\t\t\t\t: activeGroup.pull && groupPut && (\r\n\t\t\t\t\t\t(activeGroup.name === group.name) || // by Name\r\n\t\t\t\t\t\t(groupPut.indexOf && ~groupPut.indexOf(activeGroup.name)) // by Array\r\n\t\t\t\t\t)\r\n\t\t\t\t) &&\r\n\t\t\t\t(evt.rootEl === void 0 || evt.rootEl === this.el) // touch fallback\r\n\t\t\t) {\r\n\t\t\t\t// Smart auto-scrolling\r\n\t\t\t\t_autoScroll(evt, options, this.el);\r\n\r\n\t\t\t\tif (_silent) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttarget = _closest(evt.target, options.draggable, el);\r\n\t\t\t\tdragRect = dragEl.getBoundingClientRect();\r\n\r\n\t\t\t\tif (revert) {\r\n\t\t\t\t\t_cloneHide(true);\r\n\r\n\t\t\t\t\tif (cloneEl || nextEl) {\r\n\t\t\t\t\t\trootEl.insertBefore(dragEl, cloneEl || nextEl);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (!canSort) {\r\n\t\t\t\t\t\trootEl.appendChild(dragEl);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tif ((el.children.length === 0) || (el.children[0] === ghostEl) ||\r\n\t\t\t\t\t(el === evt.target) && (target = _ghostIsLast(el, evt))\r\n\t\t\t\t) {\r\n\r\n\t\t\t\t\tif (target) {\r\n\t\t\t\t\t\tif (target.animated) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttargetRect = target.getBoundingClientRect();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_cloneHide(isOwner);\r\n\r\n\t\t\t\t\tif (_onMove(rootEl, el, dragEl, dragRect, target, targetRect) !== false) {\r\n\t\t\t\t\t\tif (!dragEl.contains(el)) {\r\n\t\t\t\t\t\t\tel.appendChild(dragEl);\r\n\t\t\t\t\t\t\tparentEl = el; // actualization\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._animate(dragRect, dragEl);\r\n\t\t\t\t\t\ttarget && this._animate(targetRect, target);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (target && !target.animated && target !== dragEl && (target.parentNode[expando] !== void 0)) {\r\n\t\t\t\t\tif (lastEl !== target) {\r\n\t\t\t\t\t\tlastEl = target;\r\n\t\t\t\t\t\tlastCSS = _css(target);\r\n\t\t\t\t\t\tlastParentCSS = _css(target.parentNode);\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tvar targetRect = target.getBoundingClientRect(),\r\n\t\t\t\t\t\twidth = targetRect.right - targetRect.left,\r\n\t\t\t\t\t\theight = targetRect.bottom - targetRect.top,\r\n\t\t\t\t\t\tfloating = /left|right|inline/.test(lastCSS.cssFloat + lastCSS.display)\r\n\t\t\t\t\t\t\t|| (lastParentCSS.display == 'flex' && lastParentCSS['flex-direction'].indexOf('row') === 0),\r\n\t\t\t\t\t\tisWide = (target.offsetWidth > dragEl.offsetWidth),\r\n\t\t\t\t\t\tisLong = (target.offsetHeight > dragEl.offsetHeight),\r\n\t\t\t\t\t\thalfway = (floating ? (evt.clientX - targetRect.left) / width : (evt.clientY - targetRect.top) / height) > 0.5,\r\n\t\t\t\t\t\tnextSibling = target.nextElementSibling,\r\n\t\t\t\t\t\tmoveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect),\r\n\t\t\t\t\t\tafter\r\n\t\t\t\t\t;\r\n\r\n\t\t\t\t\tif (moveVector !== false) {\r\n\t\t\t\t\t\t_silent = true;\r\n\t\t\t\t\t\tsetTimeout(_unsilent, 30);\r\n\r\n\t\t\t\t\t\t_cloneHide(isOwner);\r\n\r\n\t\t\t\t\t\tif (moveVector === 1 || moveVector === -1) {\r\n\t\t\t\t\t\t\tafter = (moveVector === 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (floating) {\r\n\t\t\t\t\t\t\tvar elTop = dragEl.offsetTop,\r\n\t\t\t\t\t\t\t\ttgTop = target.offsetTop;\r\n\r\n\t\t\t\t\t\t\tif (elTop === tgTop) {\r\n\t\t\t\t\t\t\t\tafter = (target.previousElementSibling === dragEl) && !isWide || halfway && isWide;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tafter = tgTop > elTop;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tafter = (nextSibling !== dragEl) && !isLong || halfway && isLong;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!dragEl.contains(el)) {\r\n\t\t\t\t\t\t\tif (after && !nextSibling) {\r\n\t\t\t\t\t\t\t\tel.appendChild(dragEl);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttarget.parentNode.insertBefore(dragEl, after ? nextSibling : target);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tparentEl = dragEl.parentNode; // actualization\r\n\r\n\t\t\t\t\t\tthis._animate(dragRect, dragEl);\r\n\t\t\t\t\t\tthis._animate(targetRect, target);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_animate: function (prevRect, target) {\r\n\t\t\tvar ms = this.options.animation;\r\n\r\n\t\t\tif (ms) {\r\n\t\t\t\tvar currentRect = target.getBoundingClientRect();\r\n\r\n\t\t\t\t_css(target, 'transition', 'none');\r\n\t\t\t\t_css(target, 'transform', 'translate3d('\r\n\t\t\t\t\t+ (prevRect.left - currentRect.left) + 'px,'\r\n\t\t\t\t\t+ (prevRect.top - currentRect.top) + 'px,0)'\r\n\t\t\t\t);\r\n\r\n\t\t\t\ttarget.offsetWidth; // repaint\r\n\r\n\t\t\t\t_css(target, 'transition', 'all ' + ms + 'ms');\r\n\t\t\t\t_css(target, 'transform', 'translate3d(0,0,0)');\r\n\r\n\t\t\t\tclearTimeout(target.animated);\r\n\t\t\t\ttarget.animated = setTimeout(function () {\r\n\t\t\t\t\t_css(target, 'transition', '');\r\n\t\t\t\t\t_css(target, 'transform', '');\r\n\t\t\t\t\ttarget.animated = false;\r\n\t\t\t\t}, ms);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_offUpEvents: function () {\r\n\t\t\tvar ownerDocument = this.el.ownerDocument;\r\n\r\n\t\t\t_off(document, 'touchmove', this._onTouchMove);\r\n\t\t\t_off(ownerDocument, 'mouseup', this._onDrop);\r\n\t\t\t_off(ownerDocument, 'touchend', this._onDrop);\r\n\t\t\t_off(ownerDocument, 'touchcancel', this._onDrop);\r\n\t\t},\r\n\r\n\t\t_onDrop: function (/**Event*/evt) {\r\n\t\t\tvar el = this.el,\r\n\t\t\t\toptions = this.options;\r\n\r\n\t\t\tclearInterval(this._loopId);\r\n\t\t\tclearInterval(autoScroll.pid);\r\n\t\t\tclearTimeout(this._dragStartTimer);\r\n\r\n\t\t\t// Unbind events\r\n\t\t\t_off(document, 'mousemove', this._onTouchMove);\r\n\r\n\t\t\tif (this.nativeDraggable) {\r\n\t\t\t\t_off(document, 'drop', this);\r\n\t\t\t\t_off(el, 'dragstart', this._onDragStart);\r\n\t\t\t}\r\n\r\n\t\t\tthis._offUpEvents();\r\n\r\n\t\t\tif (evt) {\r\n\t\t\t\tif (moved) {\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\t!options.dropBubble && evt.stopPropagation();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tghostEl && ghostEl.parentNode.removeChild(ghostEl);\r\n\r\n\t\t\t\tif (dragEl) {\r\n\t\t\t\t\tif (this.nativeDraggable) {\r\n\t\t\t\t\t\t_off(dragEl, 'dragend', this);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_disableDraggable(dragEl);\r\n\r\n\t\t\t\t\t// Remove class's\r\n\t\t\t\t\t_toggleClass(dragEl, this.options.ghostClass, false);\r\n\t\t\t\t\t_toggleClass(dragEl, this.options.chosenClass, false);\r\n\r\n\t\t\t\t\tif (rootEl !== parentEl) {\r\n\t\t\t\t\t\tnewIndex = _index(dragEl, options.draggable);\r\n\r\n\t\t\t\t\t\tif (newIndex >= 0) {\r\n\t\t\t\t\t\t\t// drag from one list and drop into another\r\n\t\t\t\t\t\t\t_dispatchEvent(null, parentEl, 'sort', dragEl, rootEl, oldIndex, newIndex);\r\n\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'sort', dragEl, rootEl, oldIndex, newIndex);\r\n\r\n\t\t\t\t\t\t\t// Add event\r\n\t\t\t\t\t\t\t_dispatchEvent(null, parentEl, 'add', dragEl, rootEl, oldIndex, newIndex);\r\n\r\n\t\t\t\t\t\t\t// Remove event\r\n\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'remove', dragEl, rootEl, oldIndex, newIndex);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// Remove clone\r\n\t\t\t\t\t\tcloneEl && cloneEl.parentNode.removeChild(cloneEl);\r\n\r\n\t\t\t\t\t\tif (dragEl.nextSibling !== nextEl) {\r\n\t\t\t\t\t\t\t// Get the index of the dragged element within its parent\r\n\t\t\t\t\t\t\tnewIndex = _index(dragEl, options.draggable);\r\n\r\n\t\t\t\t\t\t\tif (newIndex >= 0) {\r\n\t\t\t\t\t\t\t\t// drag & drop within the same list\r\n\t\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'update', dragEl, rootEl, oldIndex, newIndex);\r\n\t\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'sort', dragEl, rootEl, oldIndex, newIndex);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (Sortable.active) {\r\n\t\t\t\t\t\t/* jshint eqnull:true */\r\n\t\t\t\t\t\tif (newIndex == null || newIndex === -1) {\r\n\t\t\t\t\t\t\tnewIndex = oldIndex;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'end', dragEl, rootEl, oldIndex, newIndex);\r\n\r\n\t\t\t\t\t\t// Save sorting\r\n\t\t\t\t\t\tthis.save();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tthis._nulling();\r\n\t\t},\r\n\r\n\t\t_nulling: function () {\r\n\t\t\tif (Sortable.active === this || !Sortable.active) {\r\n\t\t\t\trootEl =\r\n\t\t\t\tdragEl =\r\n\t\t\t\tparentEl =\r\n\t\t\t\tghostEl =\r\n\t\t\t\tnextEl =\r\n\t\t\t\tcloneEl =\r\n\r\n\t\t\t\tscrollEl =\r\n\t\t\t\tscrollParentEl =\r\n\r\n\t\t\t\ttapEvt =\r\n\t\t\t\ttouchEvt =\r\n\r\n\t\t\t\tmoved =\r\n\t\t\t\tnewIndex =\r\n\r\n\t\t\t\tlastEl =\r\n\t\t\t\tlastCSS =\r\n\r\n\t\t\t\tactiveGroup =\r\n\t\t\t\tSortable.active = null;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\thandleEvent: function (/**Event*/evt) {\r\n\t\t\tvar type = evt.type;\r\n\r\n\t\t\tif (type === 'dragover' || type === 'dragenter') {\r\n\t\t\t\tif (dragEl) {\r\n\t\t\t\t\tthis._onDragOver(evt);\r\n\t\t\t\t\t_globalDragOver(evt);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (type === 'drop' || type === 'dragend') {\r\n\t\t\t\tthis._onDrop(evt);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\r\n\t\t/**\r\n\t\t * Serializes the item into an array of string.\r\n\t\t * @returns {String[]}\r\n\t\t */\r\n\t\ttoArray: function () {\r\n\t\t\tvar order = [],\r\n\t\t\t\tel,\r\n\t\t\t\tchildren = this.el.children,\r\n\t\t\t\ti = 0,\r\n\t\t\t\tn = children.length,\r\n\t\t\t\toptions = this.options;\r\n\r\n\t\t\tfor (; i < n; i++) {\r\n\t\t\t\tel = children[i];\r\n\t\t\t\tif (_closest(el, options.draggable, this.el)) {\r\n\t\t\t\t\torder.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn order;\r\n\t\t},\r\n\r\n\r\n\t\t/**\r\n\t\t * Sorts the elements according to the array.\r\n\t\t * @param {String[]} order order of the items\r\n\t\t */\r\n\t\tsort: function (order) {\r\n\t\t\tvar items = {}, rootEl = this.el;\r\n\r\n\t\t\tthis.toArray().forEach(function (id, i) {\r\n\t\t\t\tvar el = rootEl.children[i];\r\n\r\n\t\t\t\tif (_closest(el, this.options.draggable, rootEl)) {\r\n\t\t\t\t\titems[id] = el;\r\n\t\t\t\t}\r\n\t\t\t}, this);\r\n\r\n\t\t\torder.forEach(function (id) {\r\n\t\t\t\tif (items[id]) {\r\n\t\t\t\t\trootEl.removeChild(items[id]);\r\n\t\t\t\t\trootEl.appendChild(items[id]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\r\n\t\t/**\r\n\t\t * Save the current sorting\r\n\t\t */\r\n\t\tsave: function () {\r\n\t\t\tvar store = this.options.store;\r\n\t\t\tstore && store.set(this);\r\n\t\t},\r\n\r\n\r\n\t\t/**\r\n\t\t * 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.\r\n\t\t * @param {HTMLElement} el\r\n\t\t * @param {String} [selector] default: `options.draggable`\r\n\t\t * @returns {HTMLElement|null}\r\n\t\t */\r\n\t\tclosest: function (el, selector) {\r\n\t\t\treturn _closest(el, selector || this.options.draggable, this.el);\r\n\t\t},\r\n\r\n\r\n\t\t/**\r\n\t\t * Set/get option\r\n\t\t * @param {string} name\r\n\t\t * @param {*} [value]\r\n\t\t * @returns {*}\r\n\t\t */\r\n\t\toption: function (name, value) {\r\n\t\t\tvar options = this.options;\r\n\r\n\t\t\tif (value === void 0) {\r\n\t\t\t\treturn options[name];\r\n\t\t\t} else {\r\n\t\t\t\toptions[name] = value;\r\n\r\n\t\t\t\tif (name === 'group') {\r\n\t\t\t\t\t_prepareGroup(options);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\r\n\t\t/**\r\n\t\t * Destroy\r\n\t\t */\r\n\t\tdestroy: function () {\r\n\t\t\tvar el = this.el;\r\n\r\n\t\t\tel[expando] = null;\r\n\r\n\t\t\t_off(el, 'mousedown', this._onTapStart);\r\n\t\t\t_off(el, 'touchstart', this._onTapStart);\r\n\r\n\t\t\tif (this.nativeDraggable) {\r\n\t\t\t\t_off(el, 'dragover', this);\r\n\t\t\t\t_off(el, 'dragenter', this);\r\n\t\t\t}\r\n\r\n\t\t\t// Remove draggable attributes\r\n\t\t\tArray.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\r\n\t\t\t\tel.removeAttribute('draggable');\r\n\t\t\t});\r\n\r\n\t\t\ttouchDragOverListeners.splice(touchDragOverListeners.indexOf(this._onDragOver), 1);\r\n\r\n\t\t\tthis._onDrop();\r\n\r\n\t\t\tthis.el = el = null;\r\n\t\t}\r\n\t};\r\n\r\n\r\n\tfunction _cloneHide(state) {\r\n\t\tif (cloneEl && (cloneEl.state !== state)) {\r\n\t\t\t_css(cloneEl, 'display', state ? 'none' : '');\r\n\t\t\t!state && cloneEl.state && rootEl.insertBefore(cloneEl, dragEl);\r\n\t\t\tcloneEl.state = state;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tfunction _closest(/**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx) {\r\n\t\tif (el) {\r\n\t\t\tctx = ctx || document;\r\n\r\n\t\t\tdo {\r\n\t\t\t\tif (\r\n\t\t\t\t\t(selector === '>*' && el.parentNode === ctx)\r\n\t\t\t\t\t|| _matches(el, selector)\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn el;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\twhile (el = ('host' in el) ? el.host : el.parentNode)\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\r\n\r\n\r\n\tfunction _globalDragOver(/**Event*/evt) {\r\n\t\tif (evt.dataTransfer) {\r\n\t\t\tevt.dataTransfer.dropEffect = 'move';\r\n\t\t}\r\n\t\tevt.preventDefault();\r\n\t}\r\n\r\n\r\n\tfunction _on(el, event, fn) {\r\n\t\tel.addEventListener(event, fn, false);\r\n\t}\r\n\r\n\r\n\tfunction _off(el, event, fn) {\r\n\t\tel.removeEventListener(event, fn, false);\r\n\t}\r\n\r\n\r\n\tfunction _toggleClass(el, name, state) {\r\n\t\tif (el) {\r\n\t\t\tif (el.classList) {\r\n\t\t\t\tel.classList[state ? 'add' : 'remove'](name);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar className = (' ' + el.className + ' ').replace(RSPACE, ' ').replace(' ' + name + ' ', ' ');\r\n\t\t\t\tel.className = (className + (state ? ' ' + name : '')).replace(RSPACE, ' ');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tfunction _css(el, prop, val) {\r\n\t\tvar style = el && el.style;\r\n\r\n\t\tif (style) {\r\n\t\t\tif (val === void 0) {\r\n\t\t\t\tif (document.defaultView && document.defaultView.getComputedStyle) {\r\n\t\t\t\t\tval = document.defaultView.getComputedStyle(el, '');\r\n\t\t\t\t}\r\n\t\t\t\telse if (el.currentStyle) {\r\n\t\t\t\t\tval = el.currentStyle;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn prop === void 0 ? val : val[prop];\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (!(prop in style)) {\r\n\t\t\t\t\tprop = '-webkit-' + prop;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstyle[prop] = val + (typeof val === 'string' ? '' : 'px');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tfunction _find(ctx, tagName, iterator) {\r\n\t\tif (ctx) {\r\n\t\t\tvar list = ctx.getElementsByTagName(tagName), i = 0, n = list.length;\r\n\r\n\t\t\tif (iterator) {\r\n\t\t\t\tfor (; i < n; i++) {\r\n\t\t\t\t\titerator(list[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn list;\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t}\r\n\r\n\r\n\r\n\tfunction _dispatchEvent(sortable, rootEl, name, targetEl, fromEl, startIndex, newIndex) {\r\n\t\tvar evt = document.createEvent('Event'),\r\n\t\t\toptions = (sortable || rootEl[expando]).options,\r\n\t\t\tonName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\r\n\r\n\t\tevt.initEvent(name, true, true);\r\n\r\n\t\tevt.to = rootEl;\r\n\t\tevt.from = fromEl || rootEl;\r\n\t\tevt.item = targetEl || rootEl;\r\n\t\tevt.clone = cloneEl;\r\n\r\n\t\tevt.oldIndex = startIndex;\r\n\t\tevt.newIndex = newIndex;\r\n\r\n\t\trootEl.dispatchEvent(evt);\r\n\r\n\t\tif (options[onName]) {\r\n\t\t\toptions[onName].call(sortable, evt);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect) {\r\n\t\tvar evt,\r\n\t\t\tsortable = fromEl[expando],\r\n\t\t\tonMoveFn = sortable.options.onMove,\r\n\t\t\tretVal;\r\n\r\n\t\tevt = document.createEvent('Event');\r\n\t\tevt.initEvent('move', true, true);\r\n\r\n\t\tevt.to = toEl;\r\n\t\tevt.from = fromEl;\r\n\t\tevt.dragged = dragEl;\r\n\t\tevt.draggedRect = dragRect;\r\n\t\tevt.related = targetEl || toEl;\r\n\t\tevt.relatedRect = targetRect || toEl.getBoundingClientRect();\r\n\r\n\t\tfromEl.dispatchEvent(evt);\r\n\r\n\t\tif (onMoveFn) {\r\n\t\t\tretVal = onMoveFn.call(sortable, evt);\r\n\t\t}\r\n\r\n\t\treturn retVal;\r\n\t}\r\n\r\n\r\n\tfunction _disableDraggable(el) {\r\n\t\tel.draggable = false;\r\n\t}\r\n\r\n\r\n\tfunction _unsilent() {\r\n\t\t_silent = false;\r\n\t}\r\n\r\n\r\n\t/** @returns {HTMLElement|false} */\r\n\tfunction _ghostIsLast(el, evt) {\r\n\t\tvar lastEl = el.lastElementChild,\r\n\t\t\t\trect = lastEl.getBoundingClientRect();\r\n\r\n\t\treturn ((evt.clientY - (rect.top + rect.height) > 5) || (evt.clientX - (rect.right + rect.width) > 5)) && lastEl; // min delta\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Generate id\r\n\t * @param {HTMLElement} el\r\n\t * @returns {String}\r\n\t * @private\r\n\t */\r\n\tfunction _generateId(el) {\r\n\t\tvar str = el.tagName + el.className + el.src + el.href + el.textContent,\r\n\t\t\ti = str.length,\r\n\t\t\tsum = 0;\r\n\r\n\t\twhile (i--) {\r\n\t\t\tsum += str.charCodeAt(i);\r\n\t\t}\r\n\r\n\t\treturn sum.toString(36);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the index of an element within its parent for a selected set of\r\n\t * elements\r\n\t * @param {HTMLElement} el\r\n\t * @param {selector} selector\r\n\t * @return {number}\r\n\t */\r\n\tfunction _index(el, selector) {\r\n\t\tvar index = 0;\r\n\r\n\t\tif (!el || !el.parentNode) {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\r\n\t\twhile (el && (el = el.previousElementSibling)) {\r\n\t\t\tif (el.nodeName.toUpperCase() !== 'TEMPLATE'\r\n\t\t\t\t\t&& _matches(el, selector)) {\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn index;\r\n\t}\r\n\r\n\tfunction _matches(/**HTMLElement*/el, /**String*/selector) {\r\n\t\tif (el) {\r\n\t\t\tselector = selector.split('.');\r\n\r\n\t\t\tvar tag = selector.shift().toUpperCase(),\r\n\t\t\t\tre = new RegExp('\\\\s(' + selector.join('|') + ')(?=\\\\s)', 'g');\r\n\r\n\t\t\treturn (\r\n\t\t\t\t(tag === '' || el.nodeName.toUpperCase() == tag) &&\r\n\t\t\t\t(!selector.length || ((' ' + el.className + ' ').match(re) || []).length == selector.length)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tfunction _throttle(callback, ms) {\r\n\t\tvar args, _this;\r\n\r\n\t\treturn function () {\r\n\t\t\tif (args === void 0) {\r\n\t\t\t\targs = arguments;\r\n\t\t\t\t_this = this;\r\n\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tif (args.length === 1) {\r\n\t\t\t\t\t\tcallback.call(_this, args[0]);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcallback.apply(_this, args);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\targs = void 0;\r\n\t\t\t\t}, ms);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tfunction _extend(dst, src) {\r\n\t\tif (dst && src) {\r\n\t\t\tfor (var key in src) {\r\n\t\t\t\tif (src.hasOwnProperty(key)) {\r\n\t\t\t\t\tdst[key] = src[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn dst;\r\n\t}\r\n\r\n\r\n\t// Export utils\r\n\tSortable.utils = {\r\n\t\ton: _on,\r\n\t\toff: _off,\r\n\t\tcss: _css,\r\n\t\tfind: _find,\r\n\t\tis: function (el, selector) {\r\n\t\t\treturn !!_closest(el, selector, el);\r\n\t\t},\r\n\t\textend: _extend,\r\n\t\tthrottle: _throttle,\r\n\t\tclosest: _closest,\r\n\t\ttoggleClass: _toggleClass,\r\n\t\tindex: _index\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Create sortable instance\r\n\t * @param {HTMLElement} el\r\n\t * @param {Object} [options]\r\n\t */\r\n\tSortable.create = function (el, options) {\r\n\t\treturn new Sortable(el, options);\r\n\t};\r\n\r\n\r\n\t// Export\r\n\tSortable.version = '1.4.2';\r\n\treturn Sortable;\r\n});\r\n"]}