{"version":3,"file":"kendo.userevents.js","names":["__meta__","id","name","category","depends","hidden","$","undefined$1","kendo","window","support","Class","Observable","now","Date","extend","OS","mobileOS","invalidZeroEvents","android","DEFAULT_MIN_HOLD","DEFAULT_THRESHOLD","browser","msie","PRESS","HOLD","SELECT","START","MOVE","END","CANCEL","TAP","DOUBLETAP","RELEASE","GESTURECHANGE","GESTUREEND","GESTURETAP","THRESHOLD","api","touch","mouse","pointer","ENABLE_GLOBAL_SURFACE","mouseAndTouchPresent","touchDelta","touch1","touch2","x1","x","location","y1","y","x2","y2","dx","dy","center","distance","Math","sqrt","getTouches","e","length","changedTouches","touches","originalEvent","currentTarget","idx","push","event","target","type","match","identifier","pointers","msPointers","pointerId","TouchAxis","init","axis","that","this","_updateLocationData","startLocation","velocity","delta","timeStamp","move","offset","timeDelta","initialDelta","client","screen","Touch","userEvents","touchInfo","useClickAsTap","threshold","initialTouch","pressEvent","_clicks","supportDoubleTap","_moved","_finished","press","_holdTimeout","setTimeout","_hold","bind","minHold","_trigger","_tap","_clickTimeout","preventMove","_shouldNotMove","_withinIgnoreThreshold","UserEvents","current","dispose","_start","end","endTime","clearTimeout","activeTouches","splice","inArray","skip","cancel","isMoved","startTime","jQueryEvent","data","notify","preventDefault","xDelta","yDelta","withEachUpEvent","callback","downEvents","eventMap","up","split","element","options","filter","ns","guid","_maxTouches","multiTouch","allowSelection","captureUpIfMoved","fastTap","delayedClick","eventNS","handler","fn","call","surface","global","ownerDocument","documentElement","stopPropagation","pressed","on","applyEventMap","version","defaultAction","css","touchAction","preventDragEvent","root","eventCapture","surfaceElement","preventIfMovingProxy","preventIfMoving","eventName","addEventListener","_isMoved","destroy","_destroyed","removeEventListener","kendoDestroy","removeData","_disposeAll","unbind","capture","trigger","_isMultiTouch","_apiCall","_maxTouchesReached","pop","grep","_select","which","_move","_eachTouch","_end","_click","pageX","clientX","pageY","clientY","methodName","matchingTouch","dict","noop","ClickMoveClick","_downStarted","_down","getTime","_downTarget","_up","currentMilestone","_preventCancel","clickMoveClick","defaultThreshold","value","jQuery","kendo$1"],"sources":["kendo.userevents.js"],"mappings":"MAAO,kBAEP,IAAIA,SAAW,CACXC,GAAI,aACJC,KAAM,cACNC,SAAU,YACVC,QAAS,CAAE,QACXC,QAAQ,IAGZ,SAAUC,EAAGC,GACT,IAAIC,EAAQC,OAAOD,MACfE,EAAUF,EAAME,QAChBC,EAAQH,EAAMG,MACdC,EAAaJ,EAAMI,WACnBC,EAAMC,KAAKD,IACXE,EAAST,EAAES,OACXC,EAAKN,EAAQO,SACbC,EAAoBF,GAAMA,EAAGG,QAC7BC,EAAmB,IAEnBC,EAAoBX,EAAQY,QAAQC,KAAO,EAAI,EAG/CC,EAAQ,QACRC,EAAO,OACPC,EAAS,SACTC,EAAQ,QACRC,EAAO,OACPC,EAAM,MACNC,EAAS,SACTC,EAAM,MACNC,EAAY,YACZC,EAAU,UAEVC,EAAgB,gBAChBC,EAAa,aACbC,EAAa,aAEbC,EAAY,CACZC,IAAO,EACPC,MAAS,EACTC,MAAS,EACTC,QAAW,GAGXC,GAA0BhC,EAAQ6B,OAAS7B,EAAQiC,qBAEvD,SAASC,EAAWC,EAAQC,GACxB,IAAIC,EAAKF,EAAOG,EAAEC,SACdC,EAAKL,EAAOM,EAAEF,SACdG,EAAKN,EAAOE,EAAEC,SACdI,EAAKP,EAAOK,EAAEF,SACdK,EAAKP,EAAKK,EACVG,EAAKL,EAAKG,EAEd,MAAO,CACHG,OAAQ,CACLR,GAAID,EAAKK,GAAM,EACfD,GAAID,EAAKG,GAAM,GAGlBI,SAAUC,KAAKC,KAAKL,EAAKA,EAAKC,EAAKA,GAE3C,CAEA,SAASK,EAAWC,GAChB,IAGaC,EACTC,EACAxB,EALAyB,EAAU,GACVC,EAAgBJ,EAAEI,cAClBC,EAAgBL,EAAEK,cAClBC,EAAM,EAIV,GAAIN,EAAEvB,IACF0B,EAAQI,KAAK,CACTnE,GAAI,EACJoE,MAAOR,EACPS,OAAQT,EAAES,OACVJ,cAAeL,EAAES,OACjBrB,SAAUY,EACVU,KAAM,aAGT,GAAIV,EAAEU,KAAKC,MAAM,SAElB,IAAKV,GADLC,EAAiBE,EAAgBA,EAAcF,eAAiB,IACnCD,OAAQK,EAAML,EAAQK,IAC/C5B,EAAQwB,EAAeI,GACvBH,EAAQI,KAAK,CACTnB,SAAUV,EACV8B,MAAOR,EACPS,OAAQ/B,EAAM+B,OACdJ,cAAeA,EACfjE,GAAIsC,EAAMkC,WACVF,KAAM,eAIT7D,EAAQgE,UAAYhE,EAAQiE,WACjCX,EAAQI,KAAK,CACTnB,SAAUgB,EACVI,MAAOR,EACPS,OAAQT,EAAES,OACVJ,cAAeA,EACfjE,GAAIgE,EAAcW,UAClBL,KAAM,YAGVP,EAAQI,KAAK,CACTnE,GAAI,EACJoE,MAAOR,EACPS,OAAQT,EAAES,OACVJ,cAAeA,EACfjB,SAAUY,EACVU,KAAM,UAId,OAAOP,CACX,CAEA,IAAIa,EAAYlE,EAAMI,OAAO,CACzB+D,KAAM,SAASC,EAAM9B,GACjB,IAAI+B,EAAOC,KAEXD,EAAKD,KAAOA,EAEZC,EAAKE,oBAAoBjC,GAEzB+B,EAAKG,cAAgBH,EAAK/B,SAC1B+B,EAAKI,SAAWJ,EAAKK,MAAQ,EAC7BL,EAAKM,UAAYzE,GACrB,EAEA0E,KAAM,SAAStC,GACX,IAAI+B,EAAOC,KACPO,EAASvC,EAAS,OAAS+B,EAAKD,MAChCO,EAAYzE,IACZ4E,EAAaH,EAAYN,EAAKM,WAAc,GAE3CE,GAAUtE,IAIf8D,EAAKK,MAAQG,EAASR,EAAK/B,SAE3B+B,EAAKE,oBAAoBjC,GAEzB+B,EAAKU,aAAeF,EAASR,EAAKG,cAClCH,EAAKI,SAAWJ,EAAKK,MAAQI,EAC7BT,EAAKM,UAAYA,EACrB,EAEAJ,oBAAqB,SAASjC,GAC1B,IAAI+B,EAAOC,KAAMF,EAAOC,EAAKD,KAE7BC,EAAK/B,SAAWA,EAAS,OAAS8B,GAClCC,EAAKW,OAAS1C,EAAS,SAAW8B,GAClCC,EAAKY,OAAS3C,EAAS,SAAW8B,EACtC,IAGAc,EAAQlF,EAAMI,OAAO,CACrB+D,KAAM,SAASgB,EAAYxB,EAAQyB,GAC/BhF,EAAOkE,KAAM,CACTjC,EAAG,IAAI6B,EAAU,IAAKkB,EAAU9C,UAChCE,EAAG,IAAI0B,EAAU,IAAKkB,EAAU9C,UAChCsB,KAAMwB,EAAUxB,KAChByB,cAAeF,EAAWE,cAC1BC,UAAWH,EAAWG,WAAa5D,EAAU0D,EAAUxB,MACvDuB,WAAYA,EACZxB,OAAQA,EACRJ,cAAe6B,EAAU7B,cACzBgC,aAAcH,EAAUzB,OACxBrE,GAAI8F,EAAU9F,GACdkG,WAAYJ,EACZK,QAASN,EAAWM,QACpBC,iBAAkBP,EAAWO,iBAC7BC,QAAQ,EACRC,WAAW,GAEnB,EAEAC,MAAO,WACHvB,KAAKwB,aAAeC,WAAWzB,KAAK0B,MAAMC,KAAK3B,MAAOA,KAAKa,WAAWe,SACtE5B,KAAK6B,SAAStF,EAAOyD,KAAKkB,WAC9B,EAEAY,KAAM,SAAShB,GACX,IAAIf,EAAOC,KACXD,EAAKc,WAAWM,UACe,GAA3BpB,EAAKc,WAAWM,UAChBpB,EAAKgC,cAAgBN,YAAW,WACG,GAA3B1B,EAAKc,WAAWM,QAChBpB,EAAK8B,SAAS/E,EAAKgE,GAGnBf,EAAK8B,SAAS9E,EAAW+D,GAE7Bf,EAAKc,WAAWM,QAAU,CAC9B,GApLM,KAsLd,EAEAO,MAAO,WACH1B,KAAK6B,SAASrF,EAAMwD,KAAKkB,WAC7B,EAEAZ,KAAM,SAASQ,GACX,IAAIf,EAAOC,KACPgC,EAAiC,QAAnBlB,EAAUxB,MAAkBS,EAAKc,WAAWoB,eAE9D,IAAIlC,EAAKuB,YAAaU,EAAtB,CAKA,GAHAjC,EAAKhC,EAAEuC,KAAKQ,EAAU9C,UACtB+B,EAAK7B,EAAEoC,KAAKQ,EAAU9C,WAEjB+B,EAAKsB,OAAQ,CACd,GAAItB,EAAKmC,yBACL,OAGJ,GAAKC,EAAWC,SAAWD,EAAWC,UAAYrC,EAAKc,WAGnD,OAAOd,EAAKsC,UAFZtC,EAAKuC,OAAOxB,EAIpB,CAGKf,EAAKuB,WACNvB,EAAK8B,SAASlF,EAAMmE,EAnBqB,CAqBjD,EAEAyB,IAAK,SAASzB,GACVd,KAAKwC,QAAU5G,IAEXoE,KAAKsB,YAGTtB,KAAKsB,WAAY,EAEjBtB,KAAK6B,SAAS7E,EAAS8D,GAEnBd,KAAKqB,OACLrB,KAAK6B,SAASjF,EAAKkE,GAEdd,KAAKe,gBACFf,KAAKoB,iBACLpB,KAAK8B,KAAKhB,GAGVd,KAAK6B,SAAS/E,EAAKgE,IAK/B2B,aAAazC,KAAKwB,cAElBxB,KAAKqC,UACT,EAEAA,QAAS,WACL,IACIK,EADa1C,KAAKa,WACS9B,QAE/BiB,KAAKsB,WAAY,EACjBtB,KAAKkB,WAAa,KAClBuB,aAAazC,KAAKwB,cAElBkB,EAAcC,OAAOtH,EAAEuH,QAAQ5C,KAAM0C,GAAgB,EACzD,EAEAG,KAAM,WACF7C,KAAKqC,SACT,EAEAS,OAAQ,WACJ9C,KAAKqC,SACT,EAEAU,QAAS,WACL,OAAO/C,KAAKqB,MAChB,EAEAiB,OAAQ,SAASxB,GACb2B,aAAazC,KAAKwB,cAElBxB,KAAKgD,UAAYpH,IACjBoE,KAAKqB,QAAS,EACdrB,KAAK6B,SAASnF,EAAOoE,EACzB,EAEAe,SAAU,SAAS5G,EAAM6F,GACrB,IAAIf,EAAOC,KACPiD,EAAcnC,EAAU1B,MACxB8D,EAAO,CACH5F,MAAOyC,EACPhC,EAAGgC,EAAKhC,EACRG,EAAG6B,EAAK7B,EACRmB,OAAQU,EAAKV,OACbD,MAAO6D,GAGXlD,EAAKc,WAAWsC,OAAOlI,EAAMiI,IAC7BD,EAAYG,gBAEpB,EAEAlB,uBAAwB,WACpB,IAAImB,EAASrD,KAAKjC,EAAE0C,aAChB6C,EAAStD,KAAK9B,EAAEuC,aAEpB,OAAOhC,KAAKC,KAAK2E,EAASA,EAASC,EAASA,IAAWtD,KAAKgB,SAChE,IAGJ,SAASuC,EAAgBC,GAKrB,IAJA,IAAIC,EAAalI,EAAMmI,SAASC,GAAGC,MAAM,KACrC1E,EAAM,EACNL,EAAS4E,EAAW5E,OAEjBK,EAAML,EAAQK,IACjBsE,EAASC,EAAWvE,GAE5B,CAEA,IAAIiD,EAAaxG,EAAWG,OAAO,CAC/B+D,KAAM,SAASgE,EAASC,GACpB,IACIC,EADAhE,EAAOC,KAEPgE,EAAKzI,EAAM0I,OAoCf,GAlCAH,EAAUA,GAAW,CAAC,EACtBC,EAAShE,EAAKgE,OAASD,EAAQC,OAC/BhE,EAAKiB,UAAY8C,EAAQ9C,WAAa5E,EACtC2D,EAAK6B,QAAUkC,EAAQlC,SAAWzF,EAClC4D,EAAKhB,QAAU,GACfgB,EAAKmE,YAAcJ,EAAQK,WAAa,EAAI,EAC5CpE,EAAKqE,eAAiBN,EAAQM,eAC9BrE,EAAKsE,iBAAmBP,EAAQO,iBAChCtE,EAAKgB,eAAiB+C,EAAQQ,UAAY7I,EAAQ8I,eAClDxE,EAAKyE,QAAUR,EACfjE,EAAKoB,QAAU,EACfpB,EAAKqB,iBAAmB0C,EAAQ1C,iBAEhCyC,EAAUxI,EAAEwI,GAASY,QAAQ1E,GAC7BpE,EAAW+I,GAAG7E,KAAK8E,KAAK5E,GAExBjE,EAAOiE,EAAM,CACT8D,QAASA,EAETe,QAASd,EAAQe,QAAUpH,EAAwBpC,EAAEwI,EAAQ,GAAGiB,cAAcC,iBAAmB1J,EAAEyI,EAAQc,SAAWf,GACtHmB,gBAAiBlB,EAAQkB,gBACzBC,SAAS,IAGblF,EAAK6E,QAAQH,QAAQ1E,GAChBmF,GAAG3J,EAAM4J,cAAc,OAAQnB,GAAK,SACpCkB,GAAG3J,EAAM4J,cAAc,YAAanB,GAAK,QAE9CH,EAAQqB,GAAG3J,EAAM4J,cAAc,OAAQnB,GAAKD,EAAQ,UAEhDhE,EAAKgB,eACL8C,EAAQqB,GAAG3J,EAAM4J,cAAc,QAASnB,GAAKD,EAAQ,UAGrDtI,EAAQgE,UAAYhE,EAAQiE,WAE5B,GAAIjE,EAAQY,QAAQ+I,QAAU,GAAI,CAC9B,IAAIC,EAAgB,6BACpBxB,EAAQyB,IAAI,mBAAoBxB,EAAQyB,aAAsC,QAAvBzB,EAAQyB,YAAwBF,EAAgB,IAAMvB,EAAQyB,YAAcF,EACvI,MACIxB,EAAQyB,IAAI,eAAgBxB,EAAQyB,aAAe,QAU3D,GANIzB,EAAQ0B,kBACR3B,EAAQqB,GAAG3J,EAAM4J,cAAc,YAAanB,GAAKzI,EAAM6H,gBAG3DS,EAAQqB,GAAG3J,EAAM4J,cAAc,YAAanB,GAAKD,EAAQ,CAAE0B,KAAM5B,GAAW,WAExE9D,EAAKsE,kBAAoB5I,EAAQiK,aAAc,CAC/C,IAAIC,EAAiB5F,EAAK6E,QAAQ,GAC9BgB,EAAuB7F,EAAK8F,gBAAgBlE,KAAK5B,GAErDwD,GAAgB,SAASuC,GACrBH,EAAeI,iBAAiBD,EAAWF,GAAsB,EACrE,GACJ,CAEA7F,EAAK4B,KAAK,CACVpF,EACAC,EACAM,EACAC,EACAL,EACAC,EACAC,EACAI,EACAH,EAhXW,eAkXXI,EACAC,EACAC,EACAV,GACGqH,EACP,EAEA+B,gBAAiB,SAASjH,GAClBoB,KAAKgG,YACLpH,EAAEwE,gBAEV,EAEA6C,QAAS,WACL,IAAIlG,EAAOC,KAEX,IAAID,EAAKmG,WAAT,CAMA,GAFAnG,EAAKmG,YAAa,EAEdnG,EAAKsE,kBAAoB5I,EAAQiK,aAAc,CAC/C,IAAIC,EAAiB5F,EAAK6E,QAAQ,GAClCrB,GAAgB,SAASuC,GACrBH,EAAeQ,oBAAoBL,EAAW/F,EAAK8F,gBACvD,GACJ,CAEA9F,EAAK8D,QAAQuC,aAAarG,EAAKyE,SAC/BzE,EAAK6E,QAAQwB,aAAarG,EAAKyE,SAC/BzE,EAAK8D,QAAQwC,WAAW,WACxBtG,EAAK6E,QAAQyB,WAAW,WACxBtG,EAAKuG,cAELvG,EAAKwG,gBACExG,EAAK6E,eACL7E,EAAK8D,eACL9D,EAAKd,aApBZ,CAqBJ,EAEAuH,QAAS,WACLrE,EAAWC,QAAUpC,IACzB,EAEA8C,OAAQ,WACJ9C,KAAKsG,cACLtG,KAAKyG,QAAQ5J,EACjB,EAEAsG,OAAQ,SAAS2C,EAAW5C,GACxB,IACInE,EADOiB,KACQjB,QAEnB,GAAIiB,KAAK0G,gBAAiB,CACtB,OAAQZ,GACJ,KAAKnJ,EACDmJ,EAAY7I,EACZ,MACJ,KAAKL,EACDkJ,EAAY5I,EACZ,MACJ,KAAKJ,EACDgJ,EAAY3I,EAIpBrB,EAAOoH,EAAM,CAAEnE,QAASA,GAAWpB,EAAWoB,EAAQ,GAAIA,EAAQ,IACtE,CAEA,OAAOiB,KAAKyG,QAAQX,EAAWhK,EAAOoH,EAAM,CAAE5D,KAAMwG,IACxD,EAGAvE,MAAO,SAASxD,EAAGG,EAAGmB,GAClBW,KAAK2G,SAAS,SAAU5I,EAAGG,EAAGmB,EAClC,EAEAiB,KAAM,SAASvC,EAAGG,GACd8B,KAAK2G,SAAS,QAAS5I,EAAGG,EAC9B,EAEAqE,IAAK,SAASxE,EAAGG,GACb8B,KAAK2G,SAAS,OAAQ5I,EAAGG,EAC7B,EAEAwI,cAAe,WACX,OAAO1G,KAAKjB,QAAQF,OAAS,CACjC,EAEA+H,mBAAoB,WAChB,OAAO5G,KAAKjB,QAAQF,QAAUmB,KAAKkE,WACvC,EAEAoC,YAAa,WAET,IADA,IAAIvH,EAAUiB,KAAKjB,QACZA,EAAQF,OAAS,GACpBE,EAAQ8H,MAAMxE,SAEtB,EAEA2D,SAAU,WACN,OAAO3K,EAAEyL,KAAK9G,KAAKjB,SAAS,SAASzB,GACjC,OAAOA,EAAMyF,SACjB,IAAGlE,MACP,EAEAkI,QAAS,SAASnI,GACVoB,KAAKoE,iBAAkBpE,KAAKyG,QAAQhK,EAAQ,CAAE2C,MAAOR,KACtDA,EAAEwE,gBAET,EAEAd,OAAQ,SAAS1D,GACb,IAGIS,EAGA/B,EANAyC,EAAOC,KACPd,EAAM,EACN6E,EAAShE,EAAKgE,OAEdhF,EAAUJ,EAAWC,GACrBC,EAASE,EAAQF,OAEjBmI,EAAQpI,EAAEoI,MAEd,KAAKA,GAASA,EAAQ,GAAOjH,EAAK6G,sBAYlC,IARAzE,EAAWC,QAAU,KAErBrC,EAAKd,cAAgBL,EAAEK,cAEnBc,EAAKiF,iBACLpG,EAAEoG,kBAGC9F,EAAML,IACLkB,EAAK6G,qBADQ1H,IAKjB5B,EAAQyB,EAAQG,IAGZG,EADA0E,EACS1I,EAAEiC,EAAM2B,eAERc,EAAK8D,SAGNhF,SAIZvB,EAAQ,IAAIsD,EAAMb,EAAMV,EAAQ/B,GAChCyC,EAAKhB,QAAQI,KAAK7B,GAClBA,EAAMiE,QAEFxB,EAAK2G,iBACL3G,EAAKoD,OAAO,eAAgB,CAAC,GAGzC,EAEA8D,MAAO,SAASrI,GACZoB,KAAKkH,WAAW,OAAQtI,EAC5B,EAEAuI,KAAM,SAASvI,GACXoB,KAAKkH,WAAW,MAAOtI,EAC3B,EAEAwI,OAAQ,SAASxI,GACb,IAAIsE,EAAO,CACP5F,MAAO,CACH2D,aAAcrC,EAAES,OAChBA,OAAQhE,EAAEuD,EAAEK,eACZuD,QAAS5G,IACTmC,EAAG,CACCC,SAAUY,EAAEyI,MACZ3G,OAAQ9B,EAAE0I,SAEdpJ,EAAG,CACCF,SAAUY,EAAE2I,MACZ7G,OAAQ9B,EAAE4I,UAGlBzJ,EAAGa,EAAEyI,MACLnJ,EAAGU,EAAE2I,MACLlI,OAAQhE,EAAEuD,EAAEK,eACZG,MAAOR,EACPU,KAAM,OAGNU,KAAKyG,QAAQ,MAAOvD,IACpBtE,EAAEwE,gBAEV,EAEA8D,WAAY,SAASO,EAAY7I,GAC7B,IAIIM,EACA5B,EACAwD,EACA4G,EANAC,EAAO,CAAC,EACR5I,EAAUJ,EAAWC,GACrB8D,EAHO1C,KAGcjB,QAMzB,IAAKG,EAAM,EAAGA,EAAMwD,EAAc7D,OAAQK,IAEtCyI,GADArK,EAAQoF,EAAcxD,IACXlE,IAAMsC,EAGrB,IAAK4B,EAAM,EAAGA,EAAMH,EAAQF,OAAQK,KAEhCwI,EAAgBC,GADhB7G,EAAY/B,EAAQG,IACWlE,MAG3B0M,EAAcD,GAAY3G,EAGtC,EAEA6F,SAAU,SAASrH,EAAMvB,EAAGG,EAAGmB,GAC3BW,KAAKV,GAAM,CACPjC,KAAK,EACLgK,MAAOtJ,EACPwJ,MAAOrJ,EACPoJ,QAASvJ,EACTyJ,QAAStJ,EACTmB,OAAQhE,EAAEgE,GAAUW,KAAK6D,SAAS,GAClCmB,gBAAiB3J,EAAEuM,KACnBxE,eAAgB/H,EAAEuM,MAE1B,IAGAC,EAAiBlM,EAAWG,OAAO,CACnC+D,KAAM,SAASgE,EAASC,GACpB,IACIC,EADAhE,EAAOC,KAEPgE,EAAKzI,EAAM0I,OAEfH,EAAUA,GAAW,CAAC,EACtBC,EAAShE,EAAKgE,OAASD,EAAQC,OAC/BhE,EAAKhB,QAAU,GACfgB,EAAKmE,YAAc,EACnBnE,EAAKyE,QAAUR,EACfjE,EAAK+H,aAAe,EAEpBjE,EAAUxI,EAAEwI,GAASY,QAAQ1E,GAC7BpE,EAAW+I,GAAG7E,KAAK8E,KAAK5E,GAExBjE,EAAOiE,EAAM,CACT8D,QAASA,EAETe,QAASd,EAAQe,QAAUpH,EAAwBpC,EAAEwI,EAAQ,GAAGiB,cAAcC,iBAAmB1J,EAAEyI,EAAQc,SAAWf,GACtHmB,gBAAiBlB,EAAQkB,gBACzBC,SAAS,IAGblF,EAAK6E,QAAQH,QAAQ1E,GAChBmF,GAAG3J,EAAM4J,cAAc,OAAQnB,GAAK,SACpCkB,GAAG3J,EAAM4J,cAAc,YAAanB,GAAK,UAE9CH,EAAQqB,GAAG3J,EAAM4J,cAAc,OAAQnB,GAAKD,EAAQ,SAC/CmB,GAAG3J,EAAM4J,cAAc,KAAMnB,GAAKD,EAAQ,OAE/ChE,EAAK4B,KAAK,CACNjF,EACAC,EACAC,EACAJ,EACAK,EACAJ,GACDqH,EACP,EAEAiE,MAAO,SAASnJ,GACRA,EAAEoI,OAASpI,EAAEoI,MAAQ,EACrBhH,KAAK8C,UAEL9C,KAAK8H,cAAe,IAAIjM,MAAOmM,UAC/BhI,KAAKiI,YAAcrJ,EAAES,OAE7B,EAEA6I,IAAK,SAAStJ,GACV,IAAIuJ,GAAmB,IAAItM,MAAOmM,UAC9B/I,EAAgBL,EAAES,SAEhBT,EAAEoI,OAAqB,IAAZpI,EAAEoI,QACfmB,EAAmBnI,KAAK8H,aAnqBlB,KAoqBN7I,IAAkBe,KAAKiI,aACfjI,KAAKjB,SAAWiB,KAAKjB,QAAQF,OAAS,EACtCmB,KAAKmH,KAAKvI,GAEVoB,KAAKsC,OAAO1D,GAGhBoB,KAAKoI,gBAAiB,GAE1BpI,KAAK8C,SAGT9C,KAAK8H,aAAe,EACpB9H,KAAKiI,YAAc,IACvB,EAEAhC,QAAS,WACL,IAAIlG,EAAOC,KAEPD,EAAKmG,aAITnG,EAAKmG,YAAa,EAElBnG,EAAK8D,QAAQuC,aAAarG,EAAKyE,SAC/BzE,EAAK6E,QAAQwB,aAAarG,EAAKyE,SAC/BzE,EAAK8D,QAAQwC,WAAW,WACxBtG,EAAK6E,QAAQyB,WAAW,WACxBtG,EAAKuG,cAELvG,EAAKwG,gBACExG,EAAK6E,eACL7E,EAAK8D,eACL9D,EAAKd,cAChB,EAEAuH,QAAS,WACLqB,EAAezF,QAAUpC,IAC7B,EAEA8C,OAAQ,WACA9C,KAAKoI,eACLpI,KAAKoI,gBAAiB,EAEfpI,KAAKjB,SAAWiB,KAAKjB,QAAQF,OAAS,IAC7CmB,KAAKsG,cACLtG,KAAKyG,QAAQ5J,GAErB,EAEAsG,OAAQ,SAAS2C,EAAW5C,GAExB,OADAA,EAAKmF,gBAAiB,EACfrI,KAAKyG,QAAQX,EAAWhK,EAAOoH,EAAM,CAAE5D,KAAMwG,IACxD,EAEAc,mBAAoB,WAChB,OAAO5G,KAAKjB,QAAQF,QAAUmB,KAAKkE,WACvC,EAEAoC,YAAa,WAGT,IAFA,IAAIvH,EAAUiB,KAAKjB,QAEZA,EAAQF,OAAS,GACpBE,EAAQ8H,MAAMxE,SAEtB,EAEAC,OAAQ,SAAS1D,GACb,IAGIS,EAGA/B,EANAyC,EAAOC,KACPd,EAAM,EACN6E,EAAShE,EAAKgE,OAEdhF,EAAUJ,EAAWC,GACrBC,EAASE,EAAQF,OAEjBmI,EAAQpI,EAAEoI,MAEd,KAAKA,GAASA,EAAQ,GAAOjH,EAAK6G,sBAYlC,IARAiB,EAAezF,QAAU,KAEzBrC,EAAKd,cAAgBL,EAAEK,cAEnBc,EAAKiF,iBACLpG,EAAEoG,kBAGC9F,EAAML,IACLkB,EAAK6G,qBADQ1H,IAKjB5B,EAAQyB,EAAQG,IAGZG,EADA0E,EACS1I,EAAEiC,EAAM2B,eAERc,EAAK8D,SAGNhF,SAIZvB,EAAQ,IAAIsD,EAAMb,EAAMV,EAAQ/B,GAChCyC,EAAKhB,QAAQI,KAAK7B,GAClBA,EAAMiE,QACNjE,EAAMgF,OAAOhF,GAErB,EAEA2J,MAAO,SAASrI,GACZoB,KAAKkH,WAAW,OAAQtI,EAC5B,EAEAuI,KAAM,SAASvI,GACXoB,KAAKkH,WAAW,OAAQtI,GACxBoB,KAAKkH,WAAW,MAAOtI,EAC3B,EAEAsI,WAAY,SAASO,EAAY7I,GAC7B,IAIIM,EACA5B,EACAwD,EACA4G,EANAC,EAAO,CAAC,EACR5I,EAAUJ,EAAWC,GACrB8D,EAHO1C,KAGcjB,QAMzB,IAAKG,EAAM,EAAGA,EAAMwD,EAAc7D,OAAQK,IAEtCyI,GADArK,EAAQoF,EAAcxD,IACXlE,IAAMsC,EAGrB,IAAK4B,EAAM,EAAGA,EAAMH,EAAQF,OAAQK,KAEhCwI,EAAgBC,GADhB7G,EAAY/B,EAAQG,IACWlE,OAG3B0M,EAAc3J,EAAEuC,KAAKQ,EAAU9C,UAC/B0J,EAAcxJ,EAAEoC,KAAKQ,EAAU9C,UAC/B0J,EAAcD,GAAY3G,GAGtC,IAGJqB,EAAWmG,iBAAmB,SAASC,GACnCnM,EAAoBmM,CACxB,EAEApG,EAAWP,QAAU,SAAS2G,GAC1BpM,EAAmBoM,CACvB,EAEAhN,EAAMoD,WAAaA,EACnBpD,EAAMoC,WAAaA,EACnBpC,EAAM4G,WAAaA,EACnB5G,EAAMsM,eAAiBA,CACzB,CAj1BF,CAi1BIrM,OAAOD,MAAMiN,QACjB,IAAIC,QAAUlN,aAELkN","sourcesContent":["import './kendo.core.js';\n\nvar __meta__ = {\n id: \"userevents\",\n name: \"User Events\",\n category: \"framework\",\n depends: [ \"core\" ],\n hidden: true\n};\n\n(function($, undefined$1) {\n var kendo = window.kendo,\n support = kendo.support,\n Class = kendo.Class,\n Observable = kendo.Observable,\n now = Date.now,\n extend = $.extend,\n OS = support.mobileOS,\n invalidZeroEvents = OS && OS.android,\n DEFAULT_MIN_HOLD = 800,\n CLICK_DELAY = 300,\n DEFAULT_THRESHOLD = support.browser.msie ? 5 : 0, // WP8 and W8 are very sensitive and always report move.\n\n // UserEvents events\n PRESS = \"press\",\n HOLD = \"hold\",\n SELECT = \"select\",\n START = \"start\",\n MOVE = \"move\",\n END = \"end\",\n CANCEL = \"cancel\",\n TAP = \"tap\",\n DOUBLETAP = \"doubleTap\",\n RELEASE = \"release\",\n GESTURESTART = \"gesturestart\",\n GESTURECHANGE = \"gesturechange\",\n GESTUREEND = \"gestureend\",\n GESTURETAP = \"gesturetap\";\n\n var THRESHOLD = {\n \"api\": 0,\n \"touch\": 0,\n \"mouse\": 9,\n \"pointer\": 9\n };\n\n var ENABLE_GLOBAL_SURFACE = (!support.touch || support.mouseAndTouchPresent);\n\n function touchDelta(touch1, touch2) {\n var x1 = touch1.x.location,\n y1 = touch1.y.location,\n x2 = touch2.x.location,\n y2 = touch2.y.location,\n dx = x1 - x2,\n dy = y1 - y2;\n\n return {\n center: {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2\n },\n\n distance: Math.sqrt(dx * dx + dy * dy)\n };\n }\n\n function getTouches(e) {\n var touches = [],\n originalEvent = e.originalEvent,\n currentTarget = e.currentTarget,\n idx = 0, length,\n changedTouches,\n touch;\n\n if (e.api) {\n touches.push({\n id: 2, // hardcoded ID for API call;\n event: e,\n target: e.target,\n currentTarget: e.target,\n location: e,\n type: \"api\"\n });\n }\n else if (e.type.match(/touch/)) {\n changedTouches = originalEvent ? originalEvent.changedTouches : [];\n for (length = changedTouches.length; idx < length; idx ++) {\n touch = changedTouches[idx];\n touches.push({\n location: touch,\n event: e,\n target: touch.target,\n currentTarget: currentTarget,\n id: touch.identifier,\n type: \"touch\"\n });\n }\n }\n else if (support.pointers || support.msPointers) {\n touches.push({\n location: originalEvent,\n event: e,\n target: e.target,\n currentTarget: currentTarget,\n id: originalEvent.pointerId,\n type: \"pointer\"\n });\n } else {\n touches.push({\n id: 1, // hardcoded ID for mouse event;\n event: e,\n target: e.target,\n currentTarget: currentTarget,\n location: e,\n type: \"mouse\"\n });\n }\n\n return touches;\n }\n\n var TouchAxis = Class.extend({\n init: function(axis, location) {\n var that = this;\n\n that.axis = axis;\n\n that._updateLocationData(location);\n\n that.startLocation = that.location;\n that.velocity = that.delta = 0;\n that.timeStamp = now();\n },\n\n move: function(location) {\n var that = this,\n offset = location[\"page\" + that.axis],\n timeStamp = now(),\n timeDelta = (timeStamp - that.timeStamp) || 1; // Firing manually events in tests can make this 0;\n\n if (!offset && invalidZeroEvents) {\n return;\n }\n\n that.delta = offset - that.location;\n\n that._updateLocationData(location);\n\n that.initialDelta = offset - that.startLocation;\n that.velocity = that.delta / timeDelta;\n that.timeStamp = timeStamp;\n },\n\n _updateLocationData: function(location) {\n var that = this, axis = that.axis;\n\n that.location = location[\"page\" + axis];\n that.client = location[\"client\" + axis];\n that.screen = location[\"screen\" + axis];\n }\n });\n\n var Touch = Class.extend({\n init: function(userEvents, target, touchInfo) {\n extend(this, {\n x: new TouchAxis(\"X\", touchInfo.location),\n y: new TouchAxis(\"Y\", touchInfo.location),\n type: touchInfo.type,\n useClickAsTap: userEvents.useClickAsTap,\n threshold: userEvents.threshold || THRESHOLD[touchInfo.type],\n userEvents: userEvents,\n target: target,\n currentTarget: touchInfo.currentTarget,\n initialTouch: touchInfo.target,\n id: touchInfo.id,\n pressEvent: touchInfo,\n _clicks: userEvents._clicks,\n supportDoubleTap: userEvents.supportDoubleTap,\n _moved: false,\n _finished: false\n });\n },\n\n press: function() {\n this._holdTimeout = setTimeout(this._hold.bind(this), this.userEvents.minHold);\n this._trigger(PRESS, this.pressEvent);\n },\n\n _tap: function(touchInfo) {\n var that = this;\n that.userEvents._clicks++;\n if (that.userEvents._clicks == 1) {\n that._clickTimeout = setTimeout(function() {\n if (that.userEvents._clicks == 1) {\n that._trigger(TAP, touchInfo);\n }\n else {\n that._trigger(DOUBLETAP, touchInfo);\n }\n that.userEvents._clicks = 0;\n }, CLICK_DELAY);\n }\n },\n\n _hold: function() {\n this._trigger(HOLD, this.pressEvent);\n },\n\n move: function(touchInfo) {\n var that = this;\n var preventMove = touchInfo.type !== \"api\" && that.userEvents._shouldNotMove;\n\n if (that._finished || preventMove) { return; }\n\n that.x.move(touchInfo.location);\n that.y.move(touchInfo.location);\n\n if (!that._moved) {\n if (that._withinIgnoreThreshold()) {\n return;\n }\n\n if (!UserEvents.current || UserEvents.current === that.userEvents) {\n that._start(touchInfo);\n } else {\n return that.dispose();\n }\n }\n\n // Event handlers may cancel the drag in the START event handler, hence the double check for pressed.\n if (!that._finished) {\n that._trigger(MOVE, touchInfo);\n }\n },\n\n end: function(touchInfo) {\n this.endTime = now();\n\n if (this._finished) { return; }\n\n // Mark the object as finished if there are blocking operations in the event handlers (alert/confirm)\n this._finished = true;\n\n this._trigger(RELEASE, touchInfo); // Release should be fired before TAP (as click is after mouseup/touchend)\n\n if (this._moved) {\n this._trigger(END, touchInfo);\n } else {\n if (!this.useClickAsTap) {\n if (this.supportDoubleTap) {\n this._tap(touchInfo);\n }\n else {\n this._trigger(TAP, touchInfo);\n }\n }\n }\n\n clearTimeout(this._holdTimeout);\n\n this.dispose();\n },\n\n dispose: function() {\n var userEvents = this.userEvents,\n activeTouches = userEvents.touches;\n\n this._finished = true;\n this.pressEvent = null;\n clearTimeout(this._holdTimeout);\n\n activeTouches.splice($.inArray(this, activeTouches), 1);\n },\n\n skip: function() {\n this.dispose();\n },\n\n cancel: function() {\n this.dispose();\n },\n\n isMoved: function() {\n return this._moved;\n },\n\n _start: function(touchInfo) {\n clearTimeout(this._holdTimeout);\n\n this.startTime = now();\n this._moved = true;\n this._trigger(START, touchInfo);\n },\n\n _trigger: function(name, touchInfo) {\n var that = this,\n jQueryEvent = touchInfo.event,\n data = {\n touch: that,\n x: that.x,\n y: that.y,\n target: that.target,\n event: jQueryEvent\n };\n\n if (that.userEvents.notify(name, data)) {\n jQueryEvent.preventDefault();\n }\n },\n\n _withinIgnoreThreshold: function() {\n var xDelta = this.x.initialDelta,\n yDelta = this.y.initialDelta;\n\n return Math.sqrt(xDelta * xDelta + yDelta * yDelta) <= this.threshold;\n }\n });\n\n function withEachUpEvent(callback) {\n var downEvents = kendo.eventMap.up.split(\" \"),\n idx = 0,\n length = downEvents.length;\n\n for (; idx < length; idx ++) {\n callback(downEvents[idx]);\n }\n }\n\n var UserEvents = Observable.extend({\n init: function(element, options) {\n var that = this,\n filter,\n ns = kendo.guid();\n\n options = options || {};\n filter = that.filter = options.filter;\n that.threshold = options.threshold || DEFAULT_THRESHOLD;\n that.minHold = options.minHold || DEFAULT_MIN_HOLD;\n that.touches = [];\n that._maxTouches = options.multiTouch ? 2 : 1;\n that.allowSelection = options.allowSelection;\n that.captureUpIfMoved = options.captureUpIfMoved;\n that.useClickAsTap = !options.fastTap && !support.delayedClick();\n that.eventNS = ns;\n that._clicks = 0;\n that.supportDoubleTap = options.supportDoubleTap;\n\n element = $(element).handler(that);\n Observable.fn.init.call(that);\n\n extend(that, {\n element: element,\n // the touch events lock to the element anyway, so no need for the global setting\n surface: options.global && ENABLE_GLOBAL_SURFACE ? $(element[0].ownerDocument.documentElement) : $(options.surface || element),\n stopPropagation: options.stopPropagation,\n pressed: false\n });\n\n that.surface.handler(that)\n .on(kendo.applyEventMap(\"move\", ns), \"_move\")\n .on(kendo.applyEventMap(\"up cancel\", ns), \"_end\");\n\n element.on(kendo.applyEventMap(\"down\", ns), filter, \"_start\");\n\n if (that.useClickAsTap) {\n element.on(kendo.applyEventMap(\"click\", ns), filter, \"_click\");\n }\n\n if (support.pointers || support.msPointers) {\n //touch-action:none will not work for IE10\n if (support.browser.version < 11) {\n var defaultAction = \"pinch-zoom double-tap-zoom\";\n element.css(\"-ms-touch-action\", options.touchAction && options.touchAction != \"none\" ? defaultAction + \" \" + options.touchAction : defaultAction);\n } else {\n element.css(\"touch-action\", options.touchAction || \"none\");\n }\n }\n\n if (options.preventDragEvent) {\n element.on(kendo.applyEventMap(\"dragstart\", ns), kendo.preventDefault);\n }\n\n element.on(kendo.applyEventMap(\"mousedown\", ns), filter, { root: element }, \"_select\");\n\n if (that.captureUpIfMoved && support.eventCapture) {\n var surfaceElement = that.surface[0],\n preventIfMovingProxy = that.preventIfMoving.bind(that);\n\n withEachUpEvent(function(eventName) {\n surfaceElement.addEventListener(eventName, preventIfMovingProxy, true);\n });\n }\n\n that.bind([\n PRESS,\n HOLD,\n TAP,\n DOUBLETAP,\n START,\n MOVE,\n END,\n RELEASE,\n CANCEL,\n GESTURESTART,\n GESTURECHANGE,\n GESTUREEND,\n GESTURETAP,\n SELECT\n ], options);\n },\n\n preventIfMoving: function(e) {\n if (this._isMoved()) {\n e.preventDefault();\n }\n },\n\n destroy: function() {\n var that = this;\n\n if (that._destroyed) {\n return;\n }\n\n that._destroyed = true;\n\n if (that.captureUpIfMoved && support.eventCapture) {\n var surfaceElement = that.surface[0];\n withEachUpEvent(function(eventName) {\n surfaceElement.removeEventListener(eventName, that.preventIfMoving);\n });\n }\n\n that.element.kendoDestroy(that.eventNS);\n that.surface.kendoDestroy(that.eventNS);\n that.element.removeData(\"handler\");\n that.surface.removeData(\"handler\");\n that._disposeAll();\n\n that.unbind();\n delete that.surface;\n delete that.element;\n delete that.currentTarget;\n },\n\n capture: function() {\n UserEvents.current = this;\n },\n\n cancel: function() {\n this._disposeAll();\n this.trigger(CANCEL);\n },\n\n notify: function(eventName, data) {\n var that = this,\n touches = that.touches;\n\n if (this._isMultiTouch()) {\n switch (eventName) {\n case MOVE:\n eventName = GESTURECHANGE;\n break;\n case END:\n eventName = GESTUREEND;\n break;\n case TAP:\n eventName = GESTURETAP;\n break;\n }\n\n extend(data, { touches: touches }, touchDelta(touches[0], touches[1]));\n }\n\n return this.trigger(eventName, extend(data, { type: eventName }));\n },\n\n // API\n press: function(x, y, target) {\n this._apiCall(\"_start\", x, y, target);\n },\n\n move: function(x, y) {\n this._apiCall(\"_move\", x, y);\n },\n\n end: function(x, y) {\n this._apiCall(\"_end\", x, y);\n },\n\n _isMultiTouch: function() {\n return this.touches.length > 1;\n },\n\n _maxTouchesReached: function() {\n return this.touches.length >= this._maxTouches;\n },\n\n _disposeAll: function() {\n var touches = this.touches;\n while (touches.length > 0) {\n touches.pop().dispose();\n }\n },\n\n _isMoved: function() {\n return $.grep(this.touches, function(touch) {\n return touch.isMoved();\n }).length;\n },\n\n _select: function(e) {\n if (!this.allowSelection || this.trigger(SELECT, { event: e })) {\n e.preventDefault();\n }\n },\n\n _start: function(e) {\n var that = this,\n idx = 0,\n filter = that.filter,\n target,\n touches = getTouches(e),\n length = touches.length,\n touch,\n which = e.which;\n\n if ((which && which > 1) || (that._maxTouchesReached())) {\n return;\n }\n\n UserEvents.current = null;\n\n that.currentTarget = e.currentTarget;\n\n if (that.stopPropagation) {\n e.stopPropagation();\n }\n\n for (; idx < length; idx ++) {\n if (that._maxTouchesReached()) {\n break;\n }\n\n touch = touches[idx];\n\n if (filter) {\n target = $(touch.currentTarget); // target.is(filter) ? target : target.closest(filter, that.element);\n } else {\n target = that.element;\n }\n\n if (!target.length) {\n continue;\n }\n\n touch = new Touch(that, target, touch);\n that.touches.push(touch);\n touch.press();\n\n if (that._isMultiTouch()) {\n that.notify(\"gesturestart\", {});\n }\n }\n },\n\n _move: function(e) {\n this._eachTouch(\"move\", e);\n },\n\n _end: function(e) {\n this._eachTouch(\"end\", e);\n },\n\n _click: function(e) {\n var data = {\n touch: {\n initialTouch: e.target,\n target: $(e.currentTarget),\n endTime: now(),\n x: {\n location: e.pageX,\n client: e.clientX\n },\n y: {\n location: e.pageY,\n client: e.clientY\n }\n },\n x: e.pageX,\n y: e.pageY,\n target: $(e.currentTarget),\n event: e,\n type: \"tap\"\n };\n\n if (this.trigger(\"tap\", data)) {\n e.preventDefault();\n }\n },\n\n _eachTouch: function(methodName, e) {\n var that = this,\n dict = {},\n touches = getTouches(e),\n activeTouches = that.touches,\n idx,\n touch,\n touchInfo,\n matchingTouch;\n\n for (idx = 0; idx < activeTouches.length; idx ++) {\n touch = activeTouches[idx];\n dict[touch.id] = touch;\n }\n\n for (idx = 0; idx < touches.length; idx ++) {\n touchInfo = touches[idx];\n matchingTouch = dict[touchInfo.id];\n\n if (matchingTouch) {\n matchingTouch[methodName](touchInfo);\n }\n }\n },\n\n _apiCall: function(type, x, y, target) {\n this[type]({\n api: true,\n pageX: x,\n pageY: y,\n clientX: x,\n clientY: y,\n target: $(target || this.element)[0],\n stopPropagation: $.noop,\n preventDefault: $.noop\n });\n }\n });\n\n var ClickMoveClick = Observable.extend({\n init: function(element, options) {\n var that = this,\n filter,\n ns = kendo.guid();\n\n options = options || {};\n filter = that.filter = options.filter;\n that.touches = [];\n that._maxTouches = 1;\n that.eventNS = ns;\n that._downStarted = 0;\n\n element = $(element).handler(that);\n Observable.fn.init.call(that);\n\n extend(that, {\n element: element,\n // the touch events lock to the element anyway, so no need for the global setting\n surface: options.global && ENABLE_GLOBAL_SURFACE ? $(element[0].ownerDocument.documentElement) : $(options.surface || element),\n stopPropagation: options.stopPropagation,\n pressed: false\n });\n\n that.surface.handler(that)\n .on(kendo.applyEventMap(\"move\", ns), \"_move\")\n .on(kendo.applyEventMap(\"cancel up\", ns), \"cancel\");\n\n element.on(kendo.applyEventMap(\"down\", ns), filter, \"_down\")\n .on(kendo.applyEventMap(\"up\", ns), filter, \"_up\");\n\n that.bind([\n START,\n MOVE,\n END,\n HOLD,\n CANCEL,\n SELECT\n ], options);\n },\n\n _down: function(e) {\n if (e.which && e.which > 1) {\n this.cancel();\n } else {\n this._downStarted = new Date().getTime();\n this._downTarget = e.target;\n }\n },\n\n _up: function(e) {\n var currentMilestone = new Date().getTime(),\n currentTarget = e.target;\n\n if ((!e.which || e.which === 1) &&\n currentMilestone < this._downStarted + CLICK_DELAY &&\n currentTarget === this._downTarget) {\n if (this.touches && this.touches.length > 0) {\n this._end(e);\n } else {\n this._start(e);\n }\n\n this._preventCancel = true;\n } else {\n this.cancel();\n }\n\n this._downStarted = 0;\n this._downTarget = null;\n },\n\n destroy: function() {\n var that = this;\n\n if (that._destroyed) {\n return;\n }\n\n that._destroyed = true;\n\n that.element.kendoDestroy(that.eventNS);\n that.surface.kendoDestroy(that.eventNS);\n that.element.removeData(\"handler\");\n that.surface.removeData(\"handler\");\n that._disposeAll();\n\n that.unbind();\n delete that.surface;\n delete that.element;\n delete that.currentTarget;\n },\n\n capture: function() {\n ClickMoveClick.current = this;\n },\n\n cancel: function() {\n if (this._preventCancel) {\n this._preventCancel = false;\n return;\n } else if (this.touches && this.touches.length > 0) {\n this._disposeAll();\n this.trigger(CANCEL);\n }\n },\n\n notify: function(eventName, data) {\n data.clickMoveClick = true;\n return this.trigger(eventName, extend(data, { type: eventName }));\n },\n\n _maxTouchesReached: function() {\n return this.touches.length >= this._maxTouches;\n },\n\n _disposeAll: function() {\n var touches = this.touches;\n\n while (touches.length > 0) {\n touches.pop().dispose();\n }\n },\n\n _start: function(e) {\n var that = this,\n idx = 0,\n filter = that.filter,\n target,\n touches = getTouches(e),\n length = touches.length,\n touch,\n which = e.which;\n\n if ((which && which > 1) || (that._maxTouchesReached())) {\n return;\n }\n\n ClickMoveClick.current = null;\n\n that.currentTarget = e.currentTarget;\n\n if (that.stopPropagation) {\n e.stopPropagation();\n }\n\n for (; idx < length; idx ++) {\n if (that._maxTouchesReached()) {\n break;\n }\n\n touch = touches[idx];\n\n if (filter) {\n target = $(touch.currentTarget);\n } else {\n target = that.element;\n }\n\n if (!target.length) {\n continue;\n }\n\n touch = new Touch(that, target, touch);\n that.touches.push(touch);\n touch.press();\n touch._start(touch);\n }\n },\n\n _move: function(e) {\n this._eachTouch(\"move\", e);\n },\n\n _end: function(e) {\n this._eachTouch(\"move\", e);\n this._eachTouch(\"end\", e);\n },\n\n _eachTouch: function(methodName, e) {\n var that = this,\n dict = {},\n touches = getTouches(e),\n activeTouches = that.touches,\n idx,\n touch,\n touchInfo,\n matchingTouch;\n\n for (idx = 0; idx < activeTouches.length; idx ++) {\n touch = activeTouches[idx];\n dict[touch.id] = touch;\n }\n\n for (idx = 0; idx < touches.length; idx ++) {\n touchInfo = touches[idx];\n matchingTouch = dict[touchInfo.id];\n\n if (matchingTouch) {\n matchingTouch.x.move(touchInfo.location);\n matchingTouch.y.move(touchInfo.location);\n matchingTouch[methodName](touchInfo);\n }\n }\n }\n });\n\n UserEvents.defaultThreshold = function(value) {\n DEFAULT_THRESHOLD = value;\n };\n\n UserEvents.minHold = function(value) {\n DEFAULT_MIN_HOLD = value;\n };\n\n kendo.getTouches = getTouches;\n kendo.touchDelta = touchDelta;\n kendo.UserEvents = UserEvents;\n kendo.ClickMoveClick = ClickMoveClick;\n })(window.kendo.jQuery);\nvar kendo$1 = kendo;\n\nexport { kendo$1 as default };\n"]}