diff --git a/dist/imageit_ctrl.js.map b/dist/imageit_ctrl.js.map index 1a24d74..bfba5b7 100644 --- a/dist/imageit_ctrl.js.map +++ b/dist/imageit_ctrl.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/imageit_ctrl.js"],"names":["isEqualTo","a","b","undefined","isGreaterThan","isLessThan","getMappingOperators","mappingOperators","getRandomId","Math","random","toString","substr","ValueColorMapping","id","name","operatorName","compareTo","isSensorFontBold","fontColor","bgColor","nameBlink","valueBlink","bgBlink","Sensor","metric","xlocation","ylocation","size","visible","renderValue","valueFormatted","valueUnit","displayName","link_url","resolvedLink","rectangular","valueMappingIds","isBold","unitFormat","decimals","sizeCoefficient","normalizeColor","color","toLowerCase","_","MetricsPanelCtrl","kbn","panelDefaults","colorMappings","colorMappingMap","valueMappings","metricValues","seriesList","series","bgimage","realbgimage","sensors","templateSrv","sizecoefficient","uncache","islocked","islockvisible","operator","fn","isTheFirstRender","ImageItCtrl","$scope","$injector","$sce","defaults","panel","events","on","onInitEditMode","bind","render","onDataReceived","dataList","dataListLength","length","push","target","value","datapoints","refreshImage","index","splice","sensor","addEditorTab","unitFormats","getUnitFormats","scope","elem","attrs","ctrl","panelContainer","find","image","querySelector","draggableElement","replace","imageWidth","offsetWidth","imageHeight","offsetHeight","metricMap","keyBy","valueMappingsMap","mapping","mappingOperatorsMap","borderRadius","xlocationStr","ylocationStr","effectiveName","metricValue","valueMapping","mappingOperatorName","mappingId","mappingOperator","realFontColor","realBgColor","normalizeSensor","formatFunc","valueFormats","dragEventSetup","window","interact","isSet","unset","draggable","inertia","restrict","restriction","endOnly","elementRect","top","left","bottom","right","autoScroll","onmove","event","datax","parseFloat","getAttribute","dx","datay","dy","elementTransform","style","webkitTransform","transform","setAttribute","onend","xpercentage","ypercentage","renderingCompleted","originalValue","split","map","startsWith","endsWith","icon","indexOf","repeatCount","repeat","slice","imgUrl","imgWidth","imgHeight","join","trustAsHtml","subItem","templateUrl"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAqWA,WAASA,SAAT,CAAmBC,CAAnB,EAAsBC,CAAtB,EAAyB;AACrB;AACA;AACA,WAAQD,CAAC,KAAKE,SAAN,IAAmBD,CAAC,KAAKC,SAA1B,GAAuCF,CAAC,IAAIC,CAA5C,GAAgD,KAAvD;AACH;;AAED,WAASE,aAAT,CAAuBH,CAAvB,EAA0BC,CAA1B,EAA6B;AACzB,WAAQD,CAAC,KAAKE,SAAN,IAAmBD,CAAC,KAAKC,SAA1B,GAAuCF,CAAC,GAAGC,CAA3C,GAA+C,KAAtD;AACH;;AAED,WAASG,UAAT,CAAoBJ,CAApB,EAAuBC,CAAvB,EAA0B;AACtB,WAAQD,CAAC,KAAKE,SAAN,IAAmBD,CAAC,KAAKC,SAA1B,GAAuCF,CAAC,GAAGC,CAA3C,GAA+C,KAAtD;AACH;;AAED,WAASI,oBAAT,GAA+B;AAC3B,WAAOC,gBAAP;AACH;;AAED,WAASC,WAAT,GAAuB;AACnB,WAAO,MAAMC,IAAI,CAACC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAb;AACH;;AAED,WAASC,iBAAT,GAA6B;AACzB;AACA,SAAKC,EAAL,GAAUN,WAAW,EAArB;AACA,SAAKO,IAAL,GAAYZ,SAAZ;AACA,SAAKa,YAAL,GAAoBT,gBAAgB,CAAC,CAAD,CAAhB,CAAoBQ,IAAxC;AACA,SAAKE,SAAL,GAAiBd,SAAjB;AACA,SAAKe,gBAAL,GAAwB,KAAxB;AACA,SAAKC,SAAL,GAAiB,MAAjB;AACA,SAAKC,OAAL,GAAe,MAAf;AACA,SAAKC,SAAL,GAAiB,KAAjB;AACA,SAAKC,UAAL,GAAkB,KAAlB;AACA,SAAKC,OAAL,GAAe,KAAf;AACH;;AAED,WAASC,MAAT,GAAkB;AACd,SAAKC,MAAL,GAAc,EAAd;AACA,SAAKC,SAAL,GAAiB,EAAjB;AACA,SAAKC,SAAL,GAAiB,EAAjB;AACA,SAAKP,OAAL,GAAe,sBAAf;AACA,SAAKD,SAAL,GAAiB,yBAAjB;AACA,SAAKS,IAAL,GAAY,EAAZ;AACA,SAAKC,OAAL,GAAe,IAAf;AACA,SAAKC,WAAL,GAAmB,IAAnB;AACA,SAAKC,cAAL,GAAsB,EAAtB;AACA,SAAKC,SAAL,GAAiB,EAAjB;AACA,SAAKC,WAAL,GAAmB,EAAnB;AACA,SAAKC,QAAL,GAAgB,EAAhB;AACA,SAAKC,YAAL,GAAoB,EAApB;AACA,SAAKC,WAAL,GAAmB,IAAnB;AACA,SAAKC,eAAL,GAAuB,EAAvB;AACA,SAAKC,MAAL,GAAc,KAAd;AACA,SAAKxB,EAAL,GAAUN,WAAW,EAArB;AACA,SAAK+B,UAAL,GAAkB,MAAlB;AACA,SAAKC,QAAL,GAAgB,CAAhB;AACA,SAAKC,eAAL,GAAuBtC,SAAvB;AACH;;AAED,WAASuC,cAAT,CAAwBC,KAAxB,EAA+B;AAC3B,QAAIA,KAAK,CAACC,WAAN,OAAwB,OAA5B,EAAqC;AACjC,aAAO,yBAAP;AACH;;AACD,QAAID,KAAK,CAACC,WAAN,OAAwB,QAA5B,EAAsC;AAClC,aAAO,0BAAP;AACH;;AACD,QAAID,KAAK,CAACC,WAAN,OAAwB,KAA5B,EAAmC;AAC/B,aAAO,wBAAP;AACH;;AACD,WAAOD,KAAK,CAACC,WAAN,EAAP;AACH;;;;AAvaMC,MAAAA,C;;AACEC,MAAAA,gB,kBAAAA,gB;;AAEFC,MAAAA,G;;;AAEDC,MAAAA,a,GAAgB;AAClBC,QAAAA,aAAa,EAAE,EADG;AAElBC,QAAAA,eAAe,EAAE,EAFC;AAGlBC,QAAAA,aAAa,EAAE,EAHG;AAIlBC,QAAAA,YAAY,EAAE,EAJI;AAKlBC,QAAAA,UAAU,EAAE,EALM;AAMlBC,QAAAA,MAAM,EAAE,EANU;AAOlBC,QAAAA,OAAO,EAAE,EAPS;AAQlBC,QAAAA,WAAW,EAAE,EARK;AASlBC,QAAAA,OAAO,EAAE,EATS;AAUlBC,QAAAA,WAAW,EAAE,IAVK;AAWlBC,QAAAA,eAAe,EAAE,EAXC;AAYlB;AACAC,QAAAA,OAAO,EAAE,CAbS;AAclBC,QAAAA,QAAQ,EAAE,KAdQ;AAelBC,QAAAA,aAAa,EAAE;AAfG,O;AAkBhBvD,MAAAA,gB,GAAmB,CAAC;AACtBQ,QAAAA,IAAI,EAAE,OADgB;AAEtBgD,QAAAA,QAAQ,EAAE,GAFY;AAGtBC,QAAAA,EAAE,EAAEhE;AAHkB,OAAD,EAItB;AACCe,QAAAA,IAAI,EAAE,aADP;AAECgD,QAAAA,QAAQ,EAAE,GAFX;AAGCC,QAAAA,EAAE,EAAE5D;AAHL,OAJsB,EAQtB;AACCW,QAAAA,IAAI,EAAE,UADP;AAECgD,QAAAA,QAAQ,EAAE,GAFX;AAGCC,QAAAA,EAAE,EAAE3D;AAHL,OARsB,C;AAcrB4D,MAAAA,gB,GAAmB,I;;6BAEVC,W;;;;;AACT,6BAAYC,MAAZ,EAAoBC,SAApB,EAA+BC,IAA/B,EAAqCX,WAArC,EAAkD;AAAA;;AAAA;;AAC9C,2FAAMS,MAAN,EAAcC,SAAd;;AACAvB,UAAAA,CAAC,CAACyB,QAAF,CAAW,MAAKC,KAAhB,EAAuBvB,aAAvB;;AACA,gBAAKU,WAAL,GAAmBA,WAAnB;AACA,gBAAKW,IAAL,GAAYA,IAAZ;;AACA,gBAAKG,MAAL,CAAYC,EAAZ,CAAe,gBAAf,EAAiC,MAAKC,cAAL,CAAoBC,IAApB,+BAAjC;;AACA,gBAAKH,MAAL,CAAYC,EAAZ,CAAe,mBAAf,EAAoC,MAAKG,MAAL,CAAYD,IAAZ,+BAApC;;AACA,gBAAKH,MAAL,CAAYC,EAAZ,CAAe,eAAf,EAAgC,MAAKI,cAAL,CAAoBF,IAApB,+BAAhC;;AACA,gBAAKH,MAAL,CAAYC,EAAZ,CAAe,oBAAf,EAAqC,MAAKI,cAAL,CAAoBF,IAApB,+BAArC;;AAR8C;AASjD;;;;yCAEcG,Q,EAAU;AACrB,gBAAMC,cAAc,GAAGD,QAAQ,CAACE,MAAhC;AACA,iBAAKT,KAAL,CAAWnB,YAAX,GAA0B,EAA1B;;AACA,iBAAK,IAAIE,MAAM,GAAG,CAAlB,EAAqBA,MAAM,GAAGyB,cAA9B,EAA8CzB,MAAM,IAAI,CAAxD,EAA2D;AACvD,mBAAKiB,KAAL,CAAWnB,YAAX,CAAwB6B,IAAxB,CAA6B;AACzBlE,gBAAAA,IAAI,EAAE+D,QAAQ,CAACxB,MAAD,CAAR,CAAiB4B,MADE;AAEzBC,gBAAAA,KAAK,EAAEL,QAAQ,CAACxB,MAAD,CAAR,CAAiB8B,UAAjB,CAA4BN,QAAQ,CAACxB,MAAD,CAAR,CAAiB8B,UAAjB,CAA4BJ,MAA5B,GAAqC,CAAjE,EAAoE,CAApE;AAFkB,eAA7B;AAIH;;AAED,gBAAI,CAACf,gBAAL,EAAuB;AACnB,mBAAKoB,YAAL;AACH,aAFD,MAEO;AACHpB,cAAAA,gBAAgB,GAAG,KAAnB;AACH;;AAGD,iBAAKW,MAAL;AACH;;;yCAEc;AACX,iBAAKL,KAAL,CAAWX,OAAX,GAAqBnD,IAAI,CAACC,MAAL,EAArB;AACH;;;uCAEY4E,K,EAAO;AAChB,iBAAKf,KAAL,CAAWd,OAAX,CAAmB8B,MAAnB,CAA0BD,KAA1B,EAAiC,CAAjC;AACH;;;sCAEW;AACR,iBAAKf,KAAL,CAAWd,OAAX,CAAmBwB,IAAnB,CACI,IAAIzD,MAAJ,EADJ;AAGA,iBAAKoD,MAAL;AACH;;;uCAEYU,K,EAAO;AAChB,gBAAME,MAAM,GAAG,KAAKjB,KAAL,CAAWd,OAAX,CAAmB6B,KAAnB,CAAf;AACA,iBAAKf,KAAL,CAAWd,OAAX,CAAmB8B,MAAnB,CAA0BD,KAA1B,EAAiC,CAAjC;AACA,iBAAKf,KAAL,CAAWd,OAAX,CAAmB8B,MAAnB,CAA0BD,KAAK,GAAG,CAAlC,EAAqC,CAArC,EAAwCE,MAAxC;AACH;;;yCAEcF,K,EAAO;AAClB,gBAAME,MAAM,GAAG,KAAKjB,KAAL,CAAWd,OAAX,CAAmB6B,KAAnB,CAAf;AACA,iBAAKf,KAAL,CAAWd,OAAX,CAAmB8B,MAAnB,CAA0BD,KAA1B,EAAiC,CAAjC;AACA,iBAAKf,KAAL,CAAWd,OAAX,CAAmB8B,MAAnB,CAA0BD,KAAK,GAAG,CAAlC,EAAqC,CAArC,EAAwCE,MAAxC;AACH;;;2CAEgB;AACb,iBAAKC,YAAL,CAAkB,QAAlB,EAA4B,oDAA5B,EAAkF,CAAlF;AACA,iBAAKA,YAAL,CAAkB,eAAlB,EAAmC,sDAAnC,EAA2F,CAA3F;AACA,iBAAKC,WAAL,GAAmB3C,GAAG,CAAC4C,cAAJ,EAAnB;AACA,iBAAKf,MAAL;AACH;;;wCAEa;AACV,iBAAKL,KAAL,CAAWV,QAAX,GAAsB,CAAC,KAAKU,KAAL,CAAWV,QAAlC;AACA,iBAAKe,MAAL;AACH;;;+BAEIgB,K,EAAOC,I,EAAMC,K,EAAOC,I,EAAM;AAC3B,gBAAMC,cAAc,GAAIH,IAAI,CAACI,IAAL,CAAU,0BAAV,EAAsC,CAAtC,CAAxB;AACA,gBAAMC,KAAK,GAAIF,cAAc,CAACG,aAAf,CAA6B,gBAA7B,CAAf;AACA,gBAAMC,gBAAgB,GAAG,mBAAmBL,IAAI,CAACxB,KAAL,CAAWzD,EAA9B,GAAmC,SAA5D;;AAEA,qBAAS8D,MAAT,GAAkB;AACd,kBAAI,CAACmB,IAAI,CAACxB,KAAL,CAAWd,OAAZ,IAAwBsC,IAAI,CAACxB,KAAL,CAAWhB,OAAX,KAAuB,EAAnD,EAAwD;AACpD;AACH,eAHa,CAKd;;;AACAwC,cAAAA,IAAI,CAACxB,KAAL,CAAWf,WAAX,GAAyBuC,IAAI,CAACrC,WAAL,CAAiB2C,OAAjB,CAAyBN,IAAI,CAACxB,KAAL,CAAWhB,OAApC,CAAzB;AAEA,kBAAM+C,UAAU,GAAGJ,KAAK,CAACK,WAAzB;AACA,kBAAMC,WAAW,GAAGN,KAAK,CAACO,YAA1B;;AAEA,kBAAMC,SAAS,GAAG7D,CAAC,CAAC8D,KAAF,CAAQZ,IAAI,CAACxB,KAAL,CAAWnB,YAAnB,EAAiC,UAAA+B,KAAK;AAAA,uBAAIA,KAAK,CAACpE,IAAV;AAAA,eAAtC,CAAlB;;AACA,kBAAM6F,gBAAgB,GAAG/D,CAAC,CAAC8D,KAAF,CAAQZ,IAAI,CAACxB,KAAL,CAAWpB,aAAnB,EAAkC,UAAA0D,OAAO;AAAA,uBAAIA,OAAO,CAAC/F,EAAZ;AAAA,eAAzC,CAAzB;;AACA,kBAAMgG,mBAAmB,GAAGjE,CAAC,CAAC8D,KAAF,CAAQpG,gBAAR,EAA0B,UAAAwD,QAAQ;AAAA,uBAAIA,QAAQ,CAAChD,IAAb;AAAA,eAAlC,CAA5B;;AAbc;AAAA;AAAA;;AAAA;AAed,qCAAqBgF,IAAI,CAACxB,KAAL,CAAWd,OAAhC,8HAAyC;AAAA,sBAA9B+B,MAA8B;;AACrC3C,kBAAAA,CAAC,CAACyB,QAAF,CAAWkB,MAAX,EAAmB,IAAIhE,MAAJ,EAAnB;;AAEA,sBAAMiB,eAAe,GAAG+C,MAAM,CAAC/C,eAAP,GAAyB+C,MAAM,CAAC/C,eAAhC,GAAkDsD,IAAI,CAACxB,KAAL,CAAWZ,eAArF;AAEA6B,kBAAAA,MAAM,CAAC5D,IAAP,GAAc0E,UAAU,GAAG7D,eAAb,GAA+B,IAA7C;AAEA+C,kBAAAA,MAAM,CAACuB,YAAP,GAAsBvB,MAAM,CAACpD,WAAP,GAAqB,IAArB,GAA4B,KAAlD;AAEAoD,kBAAAA,MAAM,CAACwB,YAAP,GAAuBxB,MAAM,CAAC9D,SAAP,GAAmB4E,UAAnB,GAAgC,GAAjC,GAAwC,IAA9D;AACAd,kBAAAA,MAAM,CAACyB,YAAP,GAAuBzB,MAAM,CAAC7D,SAAP,GAAmB6E,WAAnB,GAAiC,GAAlC,GAAyC,IAA/D;;AAEA,sBAAIhB,MAAM,CAACtD,QAAP,KAAoB/B,SAAxB,EAAmC;AAC/BqF,oBAAAA,MAAM,CAACrD,YAAP,GAAsB4D,IAAI,CAACrC,WAAL,CAAiB2C,OAAjB,CAAyBb,MAAM,CAACtD,QAAhC,CAAtB;AACH,mBAdoC,CAgBrC;;;AACA,sBAAMgF,aAAa,GAAGnB,IAAI,CAACrC,WAAL,CAAiB2C,OAAjB,CAAyBb,MAAM,CAAC/D,MAAhC,CAAtB;AAEA,sBAAMA,MAAM,GAAGiF,SAAS,CAACQ,aAAD,CAAxB;AAEA,sBAAMC,WAAW,GAAI1F,MAAM,KAAKtB,SAAZ,GAAyBsB,MAAM,CAAC0D,KAAhC,GAAwChF,SAA5D,CArBqC,CAuBrC;;AAvBqC;AAAA;AAAA;;AAAA;AAwBrC,0CAA2B4F,IAAI,CAACxB,KAAL,CAAWpB,aAAtC,mIAAqD;AAAA,0BAA1CiE,aAA0C;;AACjD,0BAAIA,aAAY,CAACC,mBAAb,IAAoC,IAAxC,EAA8C;AAC1CD,wBAAAA,aAAY,CAACC,mBAAb,GAAmC9G,gBAAgB,CAAC,CAAD,CAAhB,CAAoBQ,IAAvD;AACH;;AAED,0BAAIqG,aAAY,CAACtG,EAAb,IAAmB,IAAvB,EAA6B;AACzBsG,wBAAAA,aAAY,CAACtG,EAAb,GAAkBN,WAAW,EAA7B;AACH;AACJ;AAhCoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAkCrC,sBAAIgF,MAAM,CAACnD,eAAP,KAA2BlC,SAA/B,EAA0C;AACtCqF,oBAAAA,MAAM,CAACnD,eAAP,GAAyB,EAAzB;AACH;;AAED,sBAAImD,MAAM,CAACnD,eAAP,CAAuB2C,MAAvB,GAAgC,CAApC,EAAuC;AAAA;AAAA;AAAA;;AAAA;AACnC,4CAAwBQ,MAAM,CAACnD,eAA/B,mIAAgD;AAAA,4BAArCiF,SAAqC;AAC5C,4BAAMF,YAAY,GAAGR,gBAAgB,CAACU,SAAD,CAArC;;AAEA,4BAAIF,YAAY,KAAKjH,SAArB,EAAgC;AAC5B;AACH;;AAED,4BAAMoH,eAAe,GAAGT,mBAAmB,CAACM,YAAY,CAACC,mBAAd,CAA3C;;AAEA,4BAAIE,eAAe,CAACvD,EAAhB,CAAmBmD,WAAnB,EAAgCC,YAAY,CAACnG,SAA7C,CAAJ,EAA6D;AACzDuE,0BAAAA,MAAM,CAACgC,aAAP,GAAuBJ,YAAY,CAACjG,SAApC;AACAqE,0BAAAA,MAAM,CAACiC,WAAP,GAAqBL,YAAY,CAAChG,OAAlC;AAEAoE,0BAAAA,MAAM,CAACnE,SAAP,GAAmB+F,YAAY,CAAC/F,SAAhC;AACAmE,0BAAAA,MAAM,CAAClE,UAAP,GAAoB8F,YAAY,CAAC9F,UAAjC;AACAkE,0BAAAA,MAAM,CAACjE,OAAP,GAAiB6F,YAAY,CAAC7F,OAA9B;AAEAiE,0BAAAA,MAAM,CAAClD,MAAP,GAAgB8E,YAAY,CAAClG,gBAA7B;AAEA;AACH,yBAXD,MAWO;AACHwG,0BAAAA,eAAe,CAAClC,MAAD,CAAf;AACH;AACJ;AAxBkC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBtC,mBAzBD,MAyBO;AACHkC,oBAAAA,eAAe,CAAClC,MAAD,CAAf;AACH;;AAED,sBAAI2B,WAAW,KAAKhH,SAApB,EAA+B;AAC3BqF,oBAAAA,MAAM,CAACzD,cAAP,GAAwB,wBAAxB;AACH,mBAFD,MAEO;AACH,wBAAM4F,UAAU,GAAG5E,GAAG,CAAC6E,YAAJ,CAAiBpC,MAAM,CAACjD,UAAxB,CAAnB;AACAiD,oBAAAA,MAAM,CAACzD,cAAP,GAAwB4F,UAAU,CAACR,WAAD,EAAc3B,MAAM,CAAChD,QAArB,CAAlC;AACH;AACJ;AAxFa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AA0FdqF,cAAAA,cAAc;AACjB;;AAED,qBAASH,eAAT,CAAyBlC,MAAzB,EAAiC;AAC7B;AACA;AACAA,cAAAA,MAAM,CAACiC,WAAP,GAAqBjC,MAAM,CAACpE,OAA5B;AACAoE,cAAAA,MAAM,CAACgC,aAAP,GAAuBhC,MAAM,CAACrE,SAA9B;AAEAqE,cAAAA,MAAM,CAACnE,SAAP,GAAmB,KAAnB;AACAmE,cAAAA,MAAM,CAAClE,UAAP,GAAoB,KAApB;AACAkE,cAAAA,MAAM,CAACjE,OAAP,GAAiB,KAAjB;AAEAiE,cAAAA,MAAM,CAAClD,MAAP,GAAgB,KAAhB;AACH;;AAED,qBAASuF,cAAT,GAA0B;AACtB,kBAAI9B,IAAI,CAACxB,KAAL,CAAWV,QAAf,EAAyB;AACrB,oBAAIiE,MAAM,CAACC,QAAP,CAAgBC,KAAhB,CAAsB5B,gBAAtB,CAAJ,EAA6C;AACzC0B,kBAAAA,MAAM,CAACC,QAAP,CAAgB3B,gBAAhB,EAAkC6B,KAAlC;AACH;AACJ,eAJD,MAIO,IAAI,CAACH,MAAM,CAACC,QAAP,CAAgBC,KAAhB,CAAsB5B,gBAAtB,CAAL,EAA8C;AACjD0B,gBAAAA,MAAM,CAACC,QAAP,CAAgB3B,gBAAhB,EAAkC8B,SAAlC,CAA4C;AACxC;AACAC,kBAAAA,OAAO,EAAE,KAF+B;AAGxCC,kBAAAA,QAAQ,EAAE;AACNC,oBAAAA,WAAW,EAAE,kBADP;AAENC,oBAAAA,OAAO,EAAE,IAFH;AAGNC,oBAAAA,WAAW,EAAE;AACTC,sBAAAA,GAAG,EAAE,CADI;AAETC,sBAAAA,IAAI,EAAE,CAFG;AAGTC,sBAAAA,MAAM,EAAE,CAHC;AAITC,sBAAAA,KAAK,EAAE;AAJE;AAHP,mBAH8B;AAaxCC,kBAAAA,UAAU,EAAE,IAb4B;AAcxCC,kBAAAA,MAAM,EAAE,gBAAUC,KAAV,EAAiB;AAAA,wBACd5D,MADc,GACJ4D,KADI,CACd5D,MADc,EAErB;;AACA,wBAAM6D,KAAK,GAAG,CAACC,UAAU,CAAC9D,MAAM,CAAC+D,YAAP,CAAoB,QAApB,CAAD,CAAV,IAA6C,CAA9C,IAAmDH,KAAK,CAACI,EAAvE;AACA,wBAAMC,KAAK,GAAG,CAACH,UAAU,CAAC9D,MAAM,CAAC+D,YAAP,CAAoB,QAApB,CAAD,CAAV,IAA6C,CAA9C,IAAmDH,KAAK,CAACM,EAAvE,CAJqB,CAMrB;;AACA,wBAAMC,gBAAgB,GAAG,eAAeN,KAAf,GAAuB,MAAvB,GAAgCI,KAAhC,GAAwC,KAAjE;AACAjE,oBAAAA,MAAM,CAACoE,KAAP,CAAaC,eAAb,GAA+BF,gBAA/B;AACAnE,oBAAAA,MAAM,CAACoE,KAAP,CAAaE,SAAb,GAAyBH,gBAAzB,CATqB,CAWrB;;AACAnE,oBAAAA,MAAM,CAACuE,YAAP,CAAoB,QAApB,EAA8BV,KAA9B;AACA7D,oBAAAA,MAAM,CAACuE,YAAP,CAAoB,QAApB,EAA8BN,KAA9B;AACH,mBA5BuC;AA6BxCO,kBAAAA,KAAK,EAAE,eAAUZ,KAAV,EAAiB;AAAA,wBACb5D,MADa,GACH4D,KADG,CACb5D,MADa;AAGpB,wBAAMsB,WAAW,GAAGN,KAAK,CAACO,YAA1B;AACA,wBAAMH,UAAU,GAAGJ,KAAK,CAACK,WAAzB,CAJoB,CAMpB;;AACA,wBAAMf,MAAM,GAAG3C,CAAC,CAACoD,IAAF,CAAOF,IAAI,CAACxB,KAAL,CAAWd,OAAlB,EAA2B;AACtC,4BAAOqF,KAAK,CAAC5D,MAAP,CAAe+D,YAAf,CAA4B,OAA5B;AADgC,qBAA3B,CAAf,CAPoB,CAWpB;;;AACA,wBAAMF,KAAK,GAAG7D,MAAM,CAAC+D,YAAP,CAAoB,QAApB,CAAd;AACA,wBAAME,KAAK,GAAGjE,MAAM,CAAC+D,YAAP,CAAoB,QAApB,CAAd,CAboB,CAepB;;AACA,wBAAMU,WAAW,GAAIZ,KAAK,GAAG,GAAT,GAAgBzC,UAApC;AACA,wBAAMsD,WAAW,GAAIT,KAAK,GAAG,GAAT,GAAgB3C,WAApC;AAEAhB,oBAAAA,MAAM,CAAC9D,SAAP,IAAoBiI,WAApB;AACAnE,oBAAAA,MAAM,CAAC7D,SAAP,IAAoBiI,WAApB,CApBoB,CAsBpB;;AACA1E,oBAAAA,MAAM,CAACuE,YAAP,CAAoB,QAApB,EAA8B,CAA9B;AACAvE,oBAAAA,MAAM,CAACuE,YAAP,CAAoB,QAApB,EAA8B,CAA9B,EAxBoB,CA0BpB;;AACAvE,oBAAAA,MAAM,CAACoE,KAAP,CAAaE,SAAb,GAAyB,EAAzB;AAEAtE,oBAAAA,MAAM,CAACoE,KAAP,CAAab,IAAb,GAAqBjD,MAAM,CAAC9D,SAAP,GAAmB4E,UAAnB,GAAgC,GAAjC,GAAwC,IAA5D;AACApB,oBAAAA,MAAM,CAACoE,KAAP,CAAad,GAAb,GAAoBhD,MAAM,CAAC7D,SAAP,GAAmB6E,WAAnB,GAAiC,GAAlC,GAAyC,IAA5D;AACH;AA5DuC,iBAA5C;AA8DH;AACJ;;AAED,iBAAKhC,MAAL,CAAYC,EAAZ,CAAe,QAAf,EAAyB,YAAY;AACjCG,cAAAA,MAAM;AACNmB,cAAAA,IAAI,CAAC8D,kBAAL;AACH,aAHD;AAIH,W,CAED;AACA;AACA;;;;+CAEqB;AACjB,iBAAKtF,KAAL,CAAWpB,aAAX,CAAyB8B,IAAzB,CAA8B,IAAIpE,iBAAJ,EAA9B;AACH;;;gDAEqByE,K,EAAO;AACzB,iBAAKf,KAAL,CAAWpB,aAAX,CAAyBoC,MAAzB,CAAgCD,KAAhC,EAAuC,CAAvC;AACA,iBAAKV,MAAL;AACH;;;wCAEakF,a,EAAe;AACzB,gBAAI3E,KAAK,GAAG2E,aAAZ;;AAEA,gBAAI,CAAC3E,KAAL,EAAY;AACR,qBAAOA,KAAP;AACH;;AACDA,YAAAA,KAAK,IAAI,EAAT;AACAA,YAAAA,KAAK,GAAGA,KAAK,CAAC4E,KAAN,CAAY,GAAZ,EAAiBC,GAAjB,CAAqB,UAAC/J,CAAD,EAAO;AAChC,kBAAIA,CAAC,CAACgK,UAAF,CAAa,MAAb,KAAwBhK,CAAC,CAACiK,QAAF,CAAW,GAAX,CAA5B,EAA6C;AACzC,oBAAMC,IAAI,GAAGlK,CAAC,CAACoG,OAAF,CAAU,IAAV,EAAgB,EAAhB,EAAoB0D,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAb;AACA,oBAAMpH,KAAK,GAAG1C,CAAC,CAACmK,OAAF,CAAU,GAAV,IAAiB,CAAC,CAAlB,4BAAuC1H,cAAc,CAACzC,CAAC,CAACoG,OAAF,CAAU,IAAV,EAAgB,EAAhB,EAAoB0D,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAD,CAArD,WAA+F,EAA7G;AACA,oBAAMM,WAAW,GAAGpK,CAAC,CAAC8J,KAAF,CAAQ,GAAR,EAAa/E,MAAb,GAAsB,CAAtB,GAA0B,CAAE/E,CAAC,CAACoG,OAAF,CAAU,IAAV,EAAgB,EAAhB,EAAoB0D,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAA5B,GAAiE,CAArF;AACA9J,gBAAAA,CAAC,GAAG,wBAAgBkK,IAAhB,gBAAyBxH,KAAzB,YAAuC2H,MAAvC,CAA8CD,WAA9C,CAAJ;AACH,eALD,MAKO,IAAIpK,CAAC,CAACgK,UAAF,CAAa,OAAb,KAAyBhK,CAAC,CAACiK,QAAF,CAAW,GAAX,CAA7B,EAA8C;AACjDjK,gBAAAA,CAAC,GAAGA,CAAC,CAACsK,KAAF,CAAQ,CAAR,EAAW,CAAC,CAAZ,CAAJ;AACA,oBAAMC,MAAM,GAAGvK,CAAC,CAACoG,OAAF,CAAU,OAAV,EAAmB,EAAnB,EAAuB0D,KAAvB,CAA6B,GAA7B,EAAkC,CAAlC,CAAf;AACA,oBAAMU,QAAQ,GAAGxK,CAAC,CAAC8J,KAAF,CAAQ,GAAR,EAAa/E,MAAb,GAAsB,CAAtB,GAA0B/E,CAAC,CAACoG,OAAF,CAAU,OAAV,EAAmB,EAAnB,EAAuB0D,KAAvB,CAA6B,GAA7B,EAAkC,CAAlC,CAA1B,GAAiE,MAAlF;AACA,oBAAMW,SAAS,GAAGzK,CAAC,CAAC8J,KAAF,CAAQ,GAAR,EAAa/E,MAAb,GAAsB,CAAtB,GAA0B/E,CAAC,CAACoG,OAAF,CAAU,OAAV,EAAmB,EAAnB,EAAuB0D,KAAvB,CAA6B,GAA7B,EAAkC,CAAlC,CAA1B,GAAiE,MAAnF;;AACA,oBAAMM,YAAW,GAAGpK,CAAC,CAAC8J,KAAF,CAAQ,GAAR,EAAa/E,MAAb,GAAsB,CAAtB,GAA0B,CAAE/E,CAAC,CAACoG,OAAF,CAAU,OAAV,EAAmB,EAAnB,EAAuB0D,KAAvB,CAA6B,GAA7B,EAAkC,CAAlC,CAA5B,GAAoE,CAAxF;;AACA9J,gBAAAA,CAAC,GAAG,uBAAewK,QAAf,yBAAoCC,SAApC,sBAAuDF,MAAvD,UAAmEF,MAAnE,CAA0ED,YAA1E,CAAJ;AACH;;AACD,qBAAOpK,CAAP;AACH,aAfO,EAeL0K,IAfK,CAeA,GAfA,CAAR;AAiBA,mBAAO,KAAKtG,IAAL,CAAUuG,WAAV,CAAsBzF,KAAtB,CAAP;AACH;;;gDAEqB;AAClB,mBAAO7E,oBAAmB,EAA1B;AACH;;;wCAEakF,M,EAAQqF,O,EAAS;AAC3BrF,YAAAA,MAAM,CAACjD,UAAP,GAAoBsI,OAAO,CAAC1F,KAA5B;AACA,iBAAKP,MAAL;AACH;;;+CAEoB;AACjB,iBAAKL,KAAL,CAAWf,WAAX,GAAyB,KAAKE,WAAL,CAAiB2C,OAAjB,CAAyB,KAAK9B,KAAL,CAAWhB,OAApC,CAAzB;AACA,iBAAKqB,MAAL;AACH;;;;QAvT4B9B,gB;;AAkYjCoB,MAAAA,WAAW,CAAC4G,WAAZ,GAA0B,aAA1B","sourcesContent":["/* eslint-disable class-methods-use-this */\r\n/* eslint-disable func-names */\r\n/* eslint-disable no-restricted-syntax */\r\n/* eslint-disable import/prefer-default-export */\r\nimport _ from 'lodash';\r\nimport { MetricsPanelCtrl } from 'app/plugins/sdk';\r\nimport './libs/interact';\r\nimport kbn from 'app/core/utils/kbn';\r\n\r\nconst panelDefaults = {\r\n colorMappings: [],\r\n colorMappingMap: [],\r\n valueMappings: [],\r\n metricValues: [],\r\n seriesList: [],\r\n series: [],\r\n bgimage: '',\r\n realbgimage: '',\r\n sensors: [],\r\n templateSrv: null,\r\n sizecoefficient: 20,\r\n // uncache is a random number added to the img url to refresh it\r\n uncache: 0,\r\n islocked: false,\r\n islockvisible: true\r\n};\r\n\r\nconst mappingOperators = [{\r\n name: 'equal',\r\n operator: '=',\r\n fn: isEqualTo\r\n}, {\r\n name: 'greaterThan',\r\n operator: '>',\r\n fn: isGreaterThan\r\n}, {\r\n name: 'lessThan',\r\n operator: '<',\r\n fn: isLessThan\r\n}];\r\n\r\nlet isTheFirstRender = true;\r\n\r\nexport class ImageItCtrl extends MetricsPanelCtrl {\r\n constructor($scope, $injector, $sce, templateSrv) {\r\n super($scope, $injector);\r\n _.defaults(this.panel, panelDefaults);\r\n this.templateSrv = templateSrv;\r\n this.$sce = $sce;\r\n this.events.on('init-edit-mode', this.onInitEditMode.bind(this));\r\n this.events.on('panel-initialized', this.render.bind(this));\r\n this.events.on('data-received', this.onDataReceived.bind(this));\r\n this.events.on('data-snapshot-load', this.onDataReceived.bind(this));\r\n }\r\n\r\n onDataReceived(dataList) {\r\n const dataListLength = dataList.length;\r\n this.panel.metricValues = [];\r\n for (let series = 0; series < dataListLength; series += 1) {\r\n this.panel.metricValues.push({\r\n name: dataList[series].target,\r\n value: dataList[series].datapoints[dataList[series].datapoints.length - 1][0]\r\n });\r\n }\r\n\r\n if (!isTheFirstRender) {\r\n this.refreshImage();\r\n } else {\r\n isTheFirstRender = false;\r\n }\r\n\r\n\r\n this.render();\r\n }\r\n\r\n refreshImage() {\r\n this.panel.uncache = Math.random();\r\n }\r\n\r\n deleteSensor(index) {\r\n this.panel.sensors.splice(index, 1);\r\n }\r\n\r\n addSensor() {\r\n this.panel.sensors.push(\r\n new Sensor()\r\n );\r\n this.render();\r\n }\r\n\r\n moveSensorUp(index) {\r\n const sensor = this.panel.sensors[index];\r\n this.panel.sensors.splice(index, 1);\r\n this.panel.sensors.splice(index - 1, 0, sensor);\r\n }\r\n\r\n moveSensorDown(index) {\r\n const sensor = this.panel.sensors[index];\r\n this.panel.sensors.splice(index, 1);\r\n this.panel.sensors.splice(index + 1, 0, sensor);\r\n }\r\n\r\n onInitEditMode() {\r\n this.addEditorTab('Sensor', 'public/plugins/pierosavi-imageit-panel/editor.html', 2);\r\n this.addEditorTab('Value Mapping', 'public/plugins/pierosavi-imageit-panel/mappings.html', 3);\r\n this.unitFormats = kbn.getUnitFormats();\r\n this.render();\r\n }\r\n\r\n toggleBlock() {\r\n this.panel.islocked = !this.panel.islocked;\r\n this.render();\r\n }\r\n\r\n link(scope, elem, attrs, ctrl) {\r\n const panelContainer = (elem.find('.pierosavi-imageit-panel')[0]);\r\n const image = (panelContainer.querySelector('#imageit-image'));\r\n const draggableElement = '#imageit_panel' + ctrl.panel.id + '_sensor';\r\n\r\n function render() {\r\n if (!ctrl.panel.sensors || (ctrl.panel.bgimage === '')) {\r\n return;\r\n }\r\n\r\n // Replace possible variables in image URL\r\n ctrl.panel.realbgimage = ctrl.templateSrv.replace(ctrl.panel.bgimage);\r\n\r\n const imageWidth = image.offsetWidth;\r\n const imageHeight = image.offsetHeight;\r\n\r\n const metricMap = _.keyBy(ctrl.panel.metricValues, value => value.name);\r\n const valueMappingsMap = _.keyBy(ctrl.panel.valueMappings, mapping => mapping.id);\r\n const mappingOperatorsMap = _.keyBy(mappingOperators, operator => operator.name);\r\n\r\n for (const sensor of ctrl.panel.sensors) {\r\n _.defaults(sensor, new Sensor());\r\n\r\n const sizeCoefficient = sensor.sizeCoefficient ? sensor.sizeCoefficient : ctrl.panel.sizecoefficient;\r\n\r\n sensor.size = imageWidth * sizeCoefficient / 1600;\r\n\r\n sensor.borderRadius = sensor.rectangular ? '5%' : '50%';\r\n\r\n sensor.xlocationStr = (sensor.xlocation * imageWidth / 100) + 'px';\r\n sensor.ylocationStr = (sensor.ylocation * imageHeight / 100) + 'px';\r\n\r\n if (sensor.link_url !== undefined) {\r\n sensor.resolvedLink = ctrl.templateSrv.replace(sensor.link_url);\r\n }\r\n\r\n // We need to replace possible variables in the sensors name\r\n const effectiveName = ctrl.templateSrv.replace(sensor.metric);\r\n\r\n const metric = metricMap[effectiveName];\r\n\r\n const metricValue = (metric !== undefined) ? metric.value : undefined;\r\n\r\n // update existing valueMappings\r\n for (const valueMapping of ctrl.panel.valueMappings) {\r\n if (valueMapping.mappingOperatorName == null) {\r\n valueMapping.mappingOperatorName = mappingOperators[0].name;\r\n }\r\n\r\n if (valueMapping.id == null) {\r\n valueMapping.id = getRandomId();\r\n }\r\n }\r\n\r\n if (sensor.valueMappingIds === undefined) {\r\n sensor.valueMappingIds = [];\r\n }\r\n\r\n if (sensor.valueMappingIds.length > 0) {\r\n for (const mappingId of sensor.valueMappingIds) {\r\n const valueMapping = valueMappingsMap[mappingId];\r\n\r\n if (valueMapping === undefined) {\r\n break;\r\n }\r\n\r\n const mappingOperator = mappingOperatorsMap[valueMapping.mappingOperatorName];\r\n\r\n if (mappingOperator.fn(metricValue, valueMapping.compareTo)) {\r\n sensor.realFontColor = valueMapping.fontColor;\r\n sensor.realBgColor = valueMapping.bgColor;\r\n\r\n sensor.nameBlink = valueMapping.nameBlink;\r\n sensor.valueBlink = valueMapping.valueBlink;\r\n sensor.bgBlink = valueMapping.bgBlink;\r\n\r\n sensor.isBold = valueMapping.isSensorFontBold;\r\n\r\n break;\r\n } else {\r\n normalizeSensor(sensor);\r\n }\r\n }\r\n } else {\r\n normalizeSensor(sensor);\r\n }\r\n\r\n if (metricValue === undefined) {\r\n sensor.valueFormatted = 'Select a sensor metric';\r\n } else {\r\n const formatFunc = kbn.valueFormats[sensor.unitFormat];\r\n sensor.valueFormatted = formatFunc(metricValue, sensor.decimals);\r\n }\r\n }\r\n\r\n dragEventSetup();\r\n }\r\n\r\n function normalizeSensor(sensor) {\r\n // new sensor property so it doesn't lose the original one\r\n // https://github.com/pierosavi/pierosavi-imageit-panel/issues/4\r\n sensor.realBgColor = sensor.bgColor;\r\n sensor.realFontColor = sensor.fontColor;\r\n\r\n sensor.nameBlink = false;\r\n sensor.valueBlink = false;\r\n sensor.bgBlink = false;\r\n\r\n sensor.isBold = false;\r\n }\r\n\r\n function dragEventSetup() {\r\n if (ctrl.panel.islocked) {\r\n if (window.interact.isSet(draggableElement)) {\r\n window.interact(draggableElement).unset();\r\n }\r\n } else if (!window.interact.isSet(draggableElement)) {\r\n window.interact(draggableElement).draggable({\r\n // I dont like it personally but this could be configurable in the future\r\n inertia: false,\r\n restrict: {\r\n restriction: '#draggableparent',\r\n endOnly: true,\r\n elementRect: {\r\n top: 0,\r\n left: 0,\r\n bottom: 1,\r\n right: 1\r\n }\r\n },\r\n autoScroll: true,\r\n onmove: function (event) {\r\n const {target} = event;\r\n // keep the dragged position in the data-x/data-y attributes\r\n const datax = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;\r\n const datay = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;\r\n\r\n // translate the element\r\n const elementTransform = 'translate(' + datax + 'px, ' + datay + 'px)';\r\n target.style.webkitTransform = elementTransform;\r\n target.style.transform = elementTransform;\r\n\r\n // update the position attributes\r\n target.setAttribute('data-x', datax);\r\n target.setAttribute('data-y', datay);\r\n },\r\n onend: function (event) {\r\n const {target} = event;\r\n\r\n const imageHeight = image.offsetHeight;\r\n const imageWidth = image.offsetWidth;\r\n\r\n // find sensor with the id from the refId attribute on html\r\n const sensor = _.find(ctrl.panel.sensors, {\r\n 'id': (event.target).getAttribute('refId')\r\n });\r\n\r\n // get relative distance in px\r\n const datax = target.getAttribute('data-x');\r\n const datay = target.getAttribute('data-y');\r\n\r\n // get percentage of relative distance from starting point\r\n const xpercentage = (datax * 100) / imageWidth;\r\n const ypercentage = (datay * 100) / imageHeight;\r\n\r\n sensor.xlocation += xpercentage;\r\n sensor.ylocation += ypercentage;\r\n\r\n // reset the starting sensor points\r\n target.setAttribute('data-x', 0);\r\n target.setAttribute('data-y', 0);\r\n\r\n // target.style.webkitTransform = '';\r\n target.style.transform = '';\r\n\r\n target.style.left = (sensor.xlocation * imageWidth / 100) + 'px';\r\n target.style.top = (sensor.ylocation * imageHeight / 100) + 'px';\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.events.on('render', function () {\r\n render();\r\n ctrl.renderingCompleted();\r\n });\r\n }\r\n\r\n //------------------\r\n // Mapping stuff\r\n //------------------\r\n\r\n addValueMappingMap() {\r\n this.panel.valueMappings.push(new ValueColorMapping());\r\n }\r\n\r\n removeValueMappingMap(index) {\r\n this.panel.valueMappings.splice(index, 1);\r\n this.render();\r\n }\r\n\r\n replaceTokens(originalValue) {\r\n let value = originalValue;\r\n\r\n if (!value) {\r\n return value;\r\n }\r\n value += '';\r\n value = value.split(' ').map((a) => {\r\n if (a.startsWith('_fa-') && a.endsWith('_')) {\r\n const icon = a.replace(/_/g, '').split(',')[0];\r\n const color = a.indexOf(',') > -1 ? ` style=\"color:${normalizeColor(a.replace(/_/g, '').split(',')[1])}\" ` : '';\r\n const repeatCount = a.split(',').length > 2 ? +(a.replace(/_/g, '').split(',')[2]) : 1;\r\n a = ` `.repeat(repeatCount);\r\n } else if (a.startsWith('_img-') && a.endsWith('_')) {\r\n a = a.slice(0, -1);\r\n const imgUrl = a.replace('_img-', '').split(',')[0];\r\n const imgWidth = a.split(',').length > 1 ? a.replace('_img-', '').split(',')[1] : '20px';\r\n const imgHeight = a.split(',').length > 2 ? a.replace('_img-', '').split(',')[2] : '20px';\r\n const repeatCount = a.split(',').length > 3 ? +(a.replace('_img-', '').split(',')[3]) : 1;\r\n a = ``.repeat(repeatCount);\r\n }\r\n return a;\r\n }).join(' ');\r\n\r\n return this.$sce.trustAsHtml(value);\r\n }\r\n\r\n getMappingOperators() {\r\n return getMappingOperators();\r\n }\r\n\r\n setUnitFormat(sensor, subItem) {\r\n sensor.unitFormat = subItem.value;\r\n this.render();\r\n }\r\n\r\n setBackgroundImage() {\r\n this.panel.realbgimage = this.templateSrv.replace(this.panel.bgimage);\r\n this.render();\r\n }\r\n}\r\n\r\nfunction isEqualTo(a, b) {\r\n // Could be ok if Im comparing strings and numbers\r\n // eslint-disable-next-line eqeqeq\r\n return (a !== undefined && b !== undefined) ? a == b : false;\r\n}\r\n\r\nfunction isGreaterThan(a, b) {\r\n return (a !== undefined && b !== undefined) ? a > b : false;\r\n}\r\n\r\nfunction isLessThan(a, b) {\r\n return (a !== undefined && b !== undefined) ? a < b : false;\r\n}\r\n\r\nfunction getMappingOperators() {\r\n return mappingOperators;\r\n}\r\n\r\nfunction getRandomId() {\r\n return '_' + Math.random().toString(36).substr(2, 9);\r\n}\r\n\r\nfunction ValueColorMapping() {\r\n // TODO: check if it doesnt exist yet\r\n this.id = getRandomId();\r\n this.name = undefined;\r\n this.operatorName = mappingOperators[0].name;\r\n this.compareTo = undefined;\r\n this.isSensorFontBold = false;\r\n this.fontColor = '#000';\r\n this.bgColor = '#fff';\r\n this.nameBlink = false;\r\n this.valueBlink = false;\r\n this.bgBlink = false;\r\n}\r\n\r\nfunction Sensor() {\r\n this.metric = '';\r\n this.xlocation = 50;\r\n this.ylocation = 25;\r\n this.bgColor = 'rgba(64,64,64,1.000)';\r\n this.fontColor = 'rgba(255,255,255,1.000)';\r\n this.size = 14;\r\n this.visible = true;\r\n this.renderValue = true;\r\n this.valueFormatted = '';\r\n this.valueUnit = '';\r\n this.displayName = '';\r\n this.link_url = '';\r\n this.resolvedLink = '';\r\n this.rectangular = true;\r\n this.valueMappingIds = [];\r\n this.isBold = false;\r\n this.id = getRandomId();\r\n this.unitFormat = 'none';\r\n this.decimals = 2;\r\n this.sizeCoefficient = undefined;\r\n}\r\n\r\nfunction normalizeColor(color) {\r\n if (color.toLowerCase() === 'green') {\r\n return 'rgba(50, 172, 45, 0.97)';\r\n }\r\n if (color.toLowerCase() === 'orange') {\r\n return 'rgba(237, 129, 40, 0.89)';\r\n }\r\n if (color.toLowerCase() === 'red') {\r\n return 'rgba(245, 54, 54, 0.9)';\r\n }\r\n return color.toLowerCase();\r\n}\r\n\r\nImageItCtrl.templateUrl = 'module.html';\r\n"],"file":"imageit_ctrl.js"} \ No newline at end of file +{"version":3,"sources":["../src/imageit_ctrl.js"],"names":["isEqualTo","a","b","undefined","isGreaterThan","isLessThan","getMappingOperators","mappingOperators","getRandomId","Math","random","toString","substr","ValueColorMapping","id","name","operatorName","compareTo","isSensorFontBold","fontColor","bgColor","nameBlink","valueBlink","bgBlink","Sensor","metric","xlocation","ylocation","size","visible","renderValue","valueFormatted","valueUnit","displayName","link_url","resolvedLink","rectangular","valueMappingIds","isBold","unitFormat","decimals","sizeCoefficient","normalizeColor","color","toLowerCase","_","MetricsPanelCtrl","kbn","panelDefaults","colorMappings","colorMappingMap","valueMappings","metricValues","seriesList","series","bgimage","realbgimage","sensors","templateSrv","sizecoefficient","uncache","islocked","islockvisible","operator","fn","isTheFirstRender","ImageItCtrl","$scope","$injector","$sce","defaults","panel","events","on","onInitEditMode","bind","render","onDataReceived","dataList","dataListLength","length","push","target","value","datapoints","refreshImage","index","splice","sensor","addEditorTab","unitFormats","getUnitFormats","scope","elem","attrs","ctrl","panelContainer","find","image","querySelector","draggableElement","replace","imageWidth","offsetWidth","imageHeight","offsetHeight","metricMap","keyBy","valueMappingsMap","mapping","mappingOperatorsMap","borderRadius","xlocationStr","ylocationStr","effectiveName","metricValue","valueMapping","mappingOperatorName","mappingId","mappingOperator","realFontColor","realBgColor","normalizeSensor","formatFunc","valueFormats","dragEventSetup","window","interact","isSet","unset","draggable","inertia","restrict","restriction","endOnly","elementRect","top","left","bottom","right","autoScroll","onmove","event","datax","parseFloat","getAttribute","dx","datay","dy","elementTransform","style","webkitTransform","transform","setAttribute","onend","xpercentage","ypercentage","renderingCompleted","originalValue","split","map","startsWith","endsWith","icon","indexOf","repeatCount","repeat","slice","imgUrl","imgWidth","imgHeight","join","trustAsHtml","subItem","templateUrl"],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\n/* eslint-disable func-names */\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable import/prefer-default-export */\nimport _ from 'lodash';\nimport { MetricsPanelCtrl } from 'app/plugins/sdk';\nimport './libs/interact';\nimport kbn from 'app/core/utils/kbn';\n\nconst panelDefaults = {\n colorMappings: [],\n colorMappingMap: [],\n valueMappings: [],\n metricValues: [],\n seriesList: [],\n series: [],\n bgimage: '',\n realbgimage: '',\n sensors: [],\n templateSrv: null,\n sizecoefficient: 20,\n // uncache is a random number added to the img url to refresh it\n uncache: 0,\n islocked: false,\n islockvisible: true\n};\n\nconst mappingOperators = [{\n name: 'equal',\n operator: '=',\n fn: isEqualTo\n}, {\n name: 'greaterThan',\n operator: '>',\n fn: isGreaterThan\n}, {\n name: 'lessThan',\n operator: '<',\n fn: isLessThan\n}];\n\nlet isTheFirstRender = true;\n\nexport class ImageItCtrl extends MetricsPanelCtrl {\n constructor($scope, $injector, $sce, templateSrv) {\n super($scope, $injector);\n _.defaults(this.panel, panelDefaults);\n this.templateSrv = templateSrv;\n this.$sce = $sce;\n this.events.on('init-edit-mode', this.onInitEditMode.bind(this));\n this.events.on('panel-initialized', this.render.bind(this));\n this.events.on('data-received', this.onDataReceived.bind(this));\n this.events.on('data-snapshot-load', this.onDataReceived.bind(this));\n }\n\n onDataReceived(dataList) {\n const dataListLength = dataList.length;\n this.panel.metricValues = [];\n for (let series = 0; series < dataListLength; series += 1) {\n this.panel.metricValues.push({\n name: dataList[series].target,\n value: dataList[series].datapoints[dataList[series].datapoints.length - 1][0]\n });\n }\n\n if (!isTheFirstRender) {\n this.refreshImage();\n } else {\n isTheFirstRender = false;\n }\n\n\n this.render();\n }\n\n refreshImage() {\n this.panel.uncache = Math.random();\n }\n\n deleteSensor(index) {\n this.panel.sensors.splice(index, 1);\n }\n\n addSensor() {\n this.panel.sensors.push(\n new Sensor()\n );\n this.render();\n }\n\n moveSensorUp(index) {\n const sensor = this.panel.sensors[index];\n this.panel.sensors.splice(index, 1);\n this.panel.sensors.splice(index - 1, 0, sensor);\n }\n\n moveSensorDown(index) {\n const sensor = this.panel.sensors[index];\n this.panel.sensors.splice(index, 1);\n this.panel.sensors.splice(index + 1, 0, sensor);\n }\n\n onInitEditMode() {\n this.addEditorTab('Sensor', 'public/plugins/pierosavi-imageit-panel/editor.html', 2);\n this.addEditorTab('Value Mapping', 'public/plugins/pierosavi-imageit-panel/mappings.html', 3);\n this.unitFormats = kbn.getUnitFormats();\n this.render();\n }\n\n toggleBlock() {\n this.panel.islocked = !this.panel.islocked;\n this.render();\n }\n\n link(scope, elem, attrs, ctrl) {\n const panelContainer = (elem.find('.pierosavi-imageit-panel')[0]);\n const image = (panelContainer.querySelector('#imageit-image'));\n const draggableElement = '#imageit_panel' + ctrl.panel.id + '_sensor';\n\n function render() {\n if (!ctrl.panel.sensors || (ctrl.panel.bgimage === '')) {\n return;\n }\n\n // Replace possible variables in image URL\n ctrl.panel.realbgimage = ctrl.templateSrv.replace(ctrl.panel.bgimage);\n\n const imageWidth = image.offsetWidth;\n const imageHeight = image.offsetHeight;\n\n const metricMap = _.keyBy(ctrl.panel.metricValues, value => value.name);\n const valueMappingsMap = _.keyBy(ctrl.panel.valueMappings, mapping => mapping.id);\n const mappingOperatorsMap = _.keyBy(mappingOperators, operator => operator.name);\n\n for (const sensor of ctrl.panel.sensors) {\n _.defaults(sensor, new Sensor());\n\n const sizeCoefficient = sensor.sizeCoefficient ? sensor.sizeCoefficient : ctrl.panel.sizecoefficient;\n\n sensor.size = imageWidth * sizeCoefficient / 1600;\n\n sensor.borderRadius = sensor.rectangular ? '5%' : '50%';\n\n sensor.xlocationStr = (sensor.xlocation * imageWidth / 100) + 'px';\n sensor.ylocationStr = (sensor.ylocation * imageHeight / 100) + 'px';\n\n if (sensor.link_url !== undefined) {\n sensor.resolvedLink = ctrl.templateSrv.replace(sensor.link_url);\n }\n\n // We need to replace possible variables in the sensors name\n const effectiveName = ctrl.templateSrv.replace(sensor.metric);\n\n const metric = metricMap[effectiveName];\n\n const metricValue = (metric !== undefined) ? metric.value : undefined;\n\n // update existing valueMappings\n for (const valueMapping of ctrl.panel.valueMappings) {\n if (valueMapping.mappingOperatorName == null) {\n valueMapping.mappingOperatorName = mappingOperators[0].name;\n }\n\n if (valueMapping.id == null) {\n valueMapping.id = getRandomId();\n }\n }\n\n if (sensor.valueMappingIds === undefined) {\n sensor.valueMappingIds = [];\n }\n\n if (sensor.valueMappingIds.length > 0) {\n for (const mappingId of sensor.valueMappingIds) {\n const valueMapping = valueMappingsMap[mappingId];\n\n if (valueMapping === undefined) {\n break;\n }\n\n const mappingOperator = mappingOperatorsMap[valueMapping.mappingOperatorName];\n\n if (mappingOperator.fn(metricValue, valueMapping.compareTo)) {\n sensor.realFontColor = valueMapping.fontColor;\n sensor.realBgColor = valueMapping.bgColor;\n\n sensor.nameBlink = valueMapping.nameBlink;\n sensor.valueBlink = valueMapping.valueBlink;\n sensor.bgBlink = valueMapping.bgBlink;\n\n sensor.isBold = valueMapping.isSensorFontBold;\n\n break;\n } else {\n normalizeSensor(sensor);\n }\n }\n } else {\n normalizeSensor(sensor);\n }\n\n if (metricValue === undefined) {\n sensor.valueFormatted = 'Select a sensor metric';\n } else {\n const formatFunc = kbn.valueFormats[sensor.unitFormat];\n sensor.valueFormatted = formatFunc(metricValue, sensor.decimals);\n }\n }\n\n dragEventSetup();\n }\n\n function normalizeSensor(sensor) {\n // new sensor property so it doesn't lose the original one\n // https://github.com/pierosavi/pierosavi-imageit-panel/issues/4\n sensor.realBgColor = sensor.bgColor;\n sensor.realFontColor = sensor.fontColor;\n\n sensor.nameBlink = false;\n sensor.valueBlink = false;\n sensor.bgBlink = false;\n\n sensor.isBold = false;\n }\n\n function dragEventSetup() {\n if (ctrl.panel.islocked) {\n if (window.interact.isSet(draggableElement)) {\n window.interact(draggableElement).unset();\n }\n } else if (!window.interact.isSet(draggableElement)) {\n window.interact(draggableElement).draggable({\n // I dont like it personally but this could be configurable in the future\n inertia: false,\n restrict: {\n restriction: '#draggableparent',\n endOnly: true,\n elementRect: {\n top: 0,\n left: 0,\n bottom: 1,\n right: 1\n }\n },\n autoScroll: true,\n onmove: function (event) {\n const {target} = event;\n // keep the dragged position in the data-x/data-y attributes\n const datax = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;\n const datay = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;\n\n // translate the element\n const elementTransform = 'translate(' + datax + 'px, ' + datay + 'px)';\n target.style.webkitTransform = elementTransform;\n target.style.transform = elementTransform;\n\n // update the position attributes\n target.setAttribute('data-x', datax);\n target.setAttribute('data-y', datay);\n },\n onend: function (event) {\n const {target} = event;\n\n const imageHeight = image.offsetHeight;\n const imageWidth = image.offsetWidth;\n\n // find sensor with the id from the refId attribute on html\n const sensor = _.find(ctrl.panel.sensors, {\n 'id': (event.target).getAttribute('refId')\n });\n\n // get relative distance in px\n const datax = target.getAttribute('data-x');\n const datay = target.getAttribute('data-y');\n\n // get percentage of relative distance from starting point\n const xpercentage = (datax * 100) / imageWidth;\n const ypercentage = (datay * 100) / imageHeight;\n\n sensor.xlocation += xpercentage;\n sensor.ylocation += ypercentage;\n\n // reset the starting sensor points\n target.setAttribute('data-x', 0);\n target.setAttribute('data-y', 0);\n\n // target.style.webkitTransform = '';\n target.style.transform = '';\n\n target.style.left = (sensor.xlocation * imageWidth / 100) + 'px';\n target.style.top = (sensor.ylocation * imageHeight / 100) + 'px';\n }\n });\n }\n }\n\n this.events.on('render', function () {\n render();\n ctrl.renderingCompleted();\n });\n }\n\n //------------------\n // Mapping stuff\n //------------------\n\n addValueMappingMap() {\n this.panel.valueMappings.push(new ValueColorMapping());\n }\n\n removeValueMappingMap(index) {\n this.panel.valueMappings.splice(index, 1);\n this.render();\n }\n\n replaceTokens(originalValue) {\n let value = originalValue;\n\n if (!value) {\n return value;\n }\n value += '';\n value = value.split(' ').map((a) => {\n if (a.startsWith('_fa-') && a.endsWith('_')) {\n const icon = a.replace(/_/g, '').split(',')[0];\n const color = a.indexOf(',') > -1 ? ` style=\"color:${normalizeColor(a.replace(/_/g, '').split(',')[1])}\" ` : '';\n const repeatCount = a.split(',').length > 2 ? +(a.replace(/_/g, '').split(',')[2]) : 1;\n a = ` `.repeat(repeatCount);\n } else if (a.startsWith('_img-') && a.endsWith('_')) {\n a = a.slice(0, -1);\n const imgUrl = a.replace('_img-', '').split(',')[0];\n const imgWidth = a.split(',').length > 1 ? a.replace('_img-', '').split(',')[1] : '20px';\n const imgHeight = a.split(',').length > 2 ? a.replace('_img-', '').split(',')[2] : '20px';\n const repeatCount = a.split(',').length > 3 ? +(a.replace('_img-', '').split(',')[3]) : 1;\n a = ``.repeat(repeatCount);\n }\n return a;\n }).join(' ');\n\n return this.$sce.trustAsHtml(value);\n }\n\n getMappingOperators() {\n return getMappingOperators();\n }\n\n setUnitFormat(sensor, subItem) {\n sensor.unitFormat = subItem.value;\n this.render();\n }\n\n setBackgroundImage() {\n this.panel.realbgimage = this.templateSrv.replace(this.panel.bgimage);\n this.render();\n }\n}\n\nfunction isEqualTo(a, b) {\n // Could be ok if Im comparing strings and numbers\n // eslint-disable-next-line eqeqeq\n return (a !== undefined && b !== undefined) ? a == b : false;\n}\n\nfunction isGreaterThan(a, b) {\n return (a !== undefined && b !== undefined) ? a > b : false;\n}\n\nfunction isLessThan(a, b) {\n return (a !== undefined && b !== undefined) ? a < b : false;\n}\n\nfunction getMappingOperators() {\n return mappingOperators;\n}\n\nfunction getRandomId() {\n return '_' + Math.random().toString(36).substr(2, 9);\n}\n\nfunction ValueColorMapping() {\n // TODO: check if it doesnt exist yet\n this.id = getRandomId();\n this.name = undefined;\n this.operatorName = mappingOperators[0].name;\n this.compareTo = undefined;\n this.isSensorFontBold = false;\n this.fontColor = '#000';\n this.bgColor = '#fff';\n this.nameBlink = false;\n this.valueBlink = false;\n this.bgBlink = false;\n}\n\nfunction Sensor() {\n this.metric = '';\n this.xlocation = 50;\n this.ylocation = 25;\n this.bgColor = 'rgba(64,64,64,1.000)';\n this.fontColor = 'rgba(255,255,255,1.000)';\n this.size = 14;\n this.visible = true;\n this.renderValue = true;\n this.valueFormatted = '';\n this.valueUnit = '';\n this.displayName = '';\n this.link_url = '';\n this.resolvedLink = '';\n this.rectangular = true;\n this.valueMappingIds = [];\n this.isBold = false;\n this.id = getRandomId();\n this.unitFormat = 'none';\n this.decimals = 2;\n this.sizeCoefficient = undefined;\n}\n\nfunction normalizeColor(color) {\n if (color.toLowerCase() === 'green') {\n return 'rgba(50, 172, 45, 0.97)';\n }\n if (color.toLowerCase() === 'orange') {\n return 'rgba(237, 129, 40, 0.89)';\n }\n if (color.toLowerCase() === 'red') {\n return 'rgba(245, 54, 54, 0.9)';\n }\n return color.toLowerCase();\n}\n\nImageItCtrl.templateUrl = 'module.html';\n"],"file":"imageit_ctrl.js"} \ No newline at end of file diff --git a/dist/libs/interact.js.map b/dist/libs/interact.js.map index 50b9d04..0af10f7 100644 --- a/dist/libs/interact.js.map +++ b/dist/libs/interact.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/libs/interact.js"],"names":["f","exports","module","define","amd","g","window","global","self","interact","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","init","_classCallCheck","instance","Constructor","TypeError","extend","fireUntilImmediateStopped","event","listeners","_i","_ref","listener","immediatePropagationStopped","Eventable","options","prototype","fire","onEvent","type","propagationStopped","on","eventType","push","off","eventList","index","indexOf","splice","undefined","getOriginXY","defaults","signals","InteractEvent","interaction","action","phase","element","related","preEnd","arguments","target","deltaSource","origin","starting","ending","coords","startCoords","curCoords","prevEvent","page","client","x","y","ctrlKey","altKey","shiftKey","metaKey","button","buttons","currentTarget","relatedTarget","interactable","t0","downTimes","signalArg","iEvent","pageX","pageY","clientX","clientY","x0","y0","clientX0","clientY0","timeStamp","dt","pointerDelta","duration","speed","velocityX","vx","velocityY","vy","swipe","getSwipe","angle","Math","atan2","PI","overlap","left","up","right","down","velocity","preventDefault","stopImmediatePropagation","stopPropagation","dx","dy","clone","is","events","actions","scope","_require","getElementRect","nodeContains","trySelector","matchesSelector","_require2","getWindow","_require3","contains","_require4","wheelEvent","interactables","Interactable","_context","context","document","_win","_doc","win","addDocument","set","setOnEvents","phases","onAction","onstart","onmove","onend","oninertiastart","setPerAction","option","object","perAction","enabled","bool","getRect","string","querySelector","rectChecker","checker","_backCompatOption","optionName","newValue","names","inContext","ownerDocument","_onOffMultiple","method","search","trim","split","array","_i2","_ref2","prop","eventTypes","addDelegate","add","removeDelegate","remove","base","perActions","actionName","methodDict","methodName","_i3","settingsMethods","_ref3","setting","unset","delegatedEvents","delegated","selectors","contexts","delegateListener","delegateUseCapture","_i4","interactions","_ref4","interacting","_ending","stop","indexOfElement","get","interactableGet","dontCheckInContext","ret","forEachMatch","callback","_i5","_ref5","utils","browser","domObjects","finder","methodNames","prevTouchTime","Interaction","pointerType","prepared","name","axis","edges","pointers","pointerIds","downTargets","prevCoords","downEvent","downPointer","_eventTarget","_curEventTarget","pointerIsDown","pointerWasMoved","_interacting","pointerDown","pointer","eventTarget","pointerIndex","updatePointer","start","copyAction","pointerMove","simulation","setCoords","duplicateMove","hypot","pointerMoveTolerance","getPointerIndex","duplicate","interactingBeforeMove","setCoordDeltas","doMove","copyCoords","_dontFireMove","pointerUp","curEventTarget","test","end","removePointer","currentAction","getPointerId","id","pointerId","_updateEventTargets","doOnInteractions","getPointerType","_utils$getEventTarget","getEventTargets","matches","supportsTouch","Date","getTime","changedTouches","changedTouch","invalidPointer","supportsPointerEvent","_interaction","_pointer","_interaction2","endAll","docEvents","pEventTypes","PointerEvent","move","cancel","mousedown","mousemove","mouseup","touchstart","touchmove","touchend","touchcancel","blur","onDocSignal","signalName","doc","eventMethod","_eventType","isIOS","passive","_ref6","pointerExtend","endAllInteractions","firePrepared","newEvent","defaultOptions","drag","mouseButtons","snap","restrict","inertia","autoScroll","startAxis","lockAxis","dragOptions","getCursor","abs","draggable","ondragstart","ondragend","merge","drop","accept","dynamicDrop","activeDrops","dropzones","elements","rects","dropEvents","setActiveDrops","dragEvent","getDropEvents","activate","fireActiveDrops","draggableElement","dropResult","getDrop","dropTarget","dropzone","dropElement","fireDropEvents","collectDrops","drops","current","dropElements","querySelectorAll","_ref7","currentElement","prevElement","dragElement","possibleDrops","validDrops","j","rect","dropCheck","dropIndex","indexOfDeepestElement","pointerEvent","enter","leave","deactivate","tmpl","prevDropElement","prevDropTarget","dragLeave","prevDropzone","dragEnter","dragmove","ondrop","ondropactivate","ondropdeactivate","ondragenter","ondragleave","ondropmove","number","max","min","dropped","dropOverlap","getPageXY","horizontal","vertical","top","bottom","dragRect","cx","width","cy","height","overlapArea","overlapRatio","_ref8","_ref9","gesture","ds","startDistance","prevDistance","distance","startAngle","prevAngle","scale","Infinity","isNaN","gesturable","ongesturestart","ongestureend","touches","touchDistance","box","touchBBox","touchAngle","da","prevScale","defaultMargin","resize","square","preserveAspectRatio","margin","NaN","invert","resizeOptions","resizeEdges","edge","checkResizeEdge","axes","cursors","isIe9","xy","topleft","bottomright","topright","bottomleft","cursorKey","edgeNames","startRect","linkedEdges","_linkedEdges","resizeStartAspectRatio","resizeRects","inverted","previous","delta","deltaRect","invertible","originalEdges","startAspectRatio","swap","resizable","onresizestart","onresizeend","value","interactableElement","matchesUpTo","resizeAxes","raf","domUtils","container","isScrolling","prevTime","request","scroll","now","scrollBy","scrollLeft","scrollTop","check","onInteractionMove","innerWidth","innerHeight","getElementClientRect","warnOnce","getAction","defaultActionChecker","actionChecker","ignoreFrom","allowFrom","testIgnore","testAllow","testIgnoreAllow","styleCursor","autoStart","withinInteractionLimit","maxInteractions","manualStart","maxPerElement","setActionDefaults","validateAction","actionInfo","getActionInfo","prepare","arg","validateSelector","matchElements","len","match","matchElement","pushMatches","parentNode","documentElement","style","cursor","maxActions","activeInteractions","targetCount","targetElementCount","otherAction","absX","absY","targetOptions","currentAxis","getDraggable","checkStartAxis","thisAxis","hold","delay","autoStartHoldTimer","getHoldDuration","setTimeout","clearTimeout","resistance","minSpeed","endSpeed","allowResume","smoothEndDuration","modifiers","animationFrame","inertiaStatus","active","smoothEnd","startEvent","upCoords","xe","ye","sx","sy","vx0","vys","lambda_v0","one_ve_v0","boundInertiaFrame","inertiaFrame","apply","boundSmoothEndFrame","smoothEndFrame","status","resumeEvent","resetStatuses","modifierStatuses","inertiaOptions","statuses","pointerSpeed","modifierResult","inertiaPossible","modifierArg","pageCoords","requireEndOnly","setAll","shouldMove","locked","vy0","v0","calcInertia","modifiedXe","modifiedYe","lambda","inertiaDur","log","te","updateInertiaCoords","progress","exp","quadPoint","getQuadraticCurvePoint","easeOutQuad","pageUp","clientUp","globalEvents","isSet","debug","getPointerAverage","pointerAverage","getTouchBBox","getTouchDistance","getTouchAngle","closest","removeDocument","checkAndPreventDefault","supportsPassive","onInteractionEvent","_arr","eventSignal","dragstart","preventNativeDrag","setOffsets","startOffset","modifierName","modifierOffsets","setOffset","result","changed","modifiedCoords","modifier","shouldDo","offset","modifiedX","modifiedY","beforeMove","setXY","modifyCoords","endOnly","restriction","elementRect","useStatusXY","getRestrictionRect","resolveRectLike","rectUtils","noInner","noOuter","restrictEdges","inner","xywhToTlbr","outer","noMin","noMax","restrictSize","minSize","tlbrToXywh","maxSize","range","targets","offsets","relativePoints","optionsOrigin","rectToXY","snapOffset","offsetRect","relativeX","relativeY","realX","realY","offsetX","offsetY","snapTarget","inRange","snapChanged","createSnapGrid","grid","limits","gridx","round","gridy","newX","newY","snapSize","pointerUtils","originalEvent","interval","tapTime","prevTap","subtractOrigin","originX","originY","addOrigin","simpleSignals","simpleEvents","pointerEvents","collectEventTargets","holdDuration","types","_arg$type","_arg$targets","_arg$pointerEvent","props","eventable","path","getPath","filter","holdTimers","timeout","timer","minDuration","_ref11","createSignalListener","_ref10","onNew","onFired","signal","endHoldRepeat","count","holdRepeatInterval","holdIntervalHandle","clearInterval","__backCompatOption","documents","onWindowUnload","Signals","targetListeners","source","item","Element","navigator","DocumentTouch","platform","isIOS7","appVersion","userAgent","prefixedMatchesSelector","MSPointerEvent","over","out","isOperaMobile","appName","dest","plainObject","blank","DocumentFragment","SVGElement","SVGSVGElement","SVGElementInstance","HTMLElement","Event","Touch","parent","child","selector","node","docFrag","host","realWindow","replace","deepestZoneParents","dropzoneParents","deepestZone","unshift","ownerSVGElement","parents","lastChild","previousSibling","limit","getActualElement","correspondingUseElement","getScrollXY","relevantWindow","scrollX","scrollY","clientRect","getBoundingClientRect","getClientRects","pExtend","supportsOptions","supported","createElement","addEventListener","capture","optionalArg","getOptions","elementIndex","typeCount","hasOwnProperty","removeEventListener","matchFound","_listeners$i","fn","fakeEvent","_pointerUtils$getEven","preventOriginalDefault","_listeners$j","param","_elements","_targets","actionOptions","actionOrigin","originRect","sqrt","message","warned","console","warn","_getQBezierValue","p1","p2","p3","iT","startX","startY","cpX","cpY","endX","endY","position","b","c","d","src","methodOrder","details","simulationResume","mouseOrPen","firstNonActive","hasPointer","idle","_i6","_typeof","Symbol","iterator","obj","constructor","isWindow","thing","nodeType","_function","_window","nodeName","Window","prefixedPropREs","deprecated","vendor","webkit","dom","targetObj","prev","cur","isNativePointer","getXY","getClientXY","identifier","tmpXY","getTouchPair","average","screenX","screenY","_prop","minX","minY","maxX","maxY","sourceX","sourceY","composedPath","vendors","lastTime","requestAnimationFrame","currTime","timeToCall","getStringOptionResult","functionArgs","el","createTextNode","wrap","rootNode","defaultView","parentWindow"],"mappings":"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","sourcesContent":["/**\r\n * interact.js v1.3.4\r\n *\r\n * Copyright (c) 2012-2018 Taye Adeyemi \r\n * Released under the MIT License.\r\n * https://raw.github.com/taye/interact.js/master/LICENSE\r\n */\r\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 6 && arguments[6] !== undefined ? arguments[6] : false;\r\n\r\n _classCallCheck(this, InteractEvent);\r\n\r\n var target = interaction.target;\r\n var deltaSource = (target && target.options || defaults).deltaSource;\r\n var origin = getOriginXY(target, element, action);\r\n var starting = phase === 'start';\r\n var ending = phase === 'end';\r\n var coords = starting ? interaction.startCoords : interaction.curCoords;\r\n var prevEvent = interaction.prevEvent;\r\n\r\n element = element || interaction.element;\r\n\r\n var page = extend({}, coords.page);\r\n var client = extend({}, coords.client);\r\n\r\n page.x -= origin.x;\r\n page.y -= origin.y;\r\n\r\n client.x -= origin.x;\r\n client.y -= origin.y;\r\n\r\n this.ctrlKey = event.ctrlKey;\r\n this.altKey = event.altKey;\r\n this.shiftKey = event.shiftKey;\r\n this.metaKey = event.metaKey;\r\n this.button = event.button;\r\n this.buttons = event.buttons;\r\n this.target = element;\r\n this.currentTarget = element;\r\n this.relatedTarget = related || null;\r\n this.preEnd = preEnd;\r\n this.type = action + (phase || '');\r\n this.interaction = interaction;\r\n this.interactable = target;\r\n\r\n this.t0 = starting ? interaction.downTimes[interaction.downTimes.length - 1] : prevEvent.t0;\r\n\r\n var signalArg = {\r\n interaction: interaction,\r\n event: event,\r\n action: action,\r\n phase: phase,\r\n element: element,\r\n related: related,\r\n page: page,\r\n client: client,\r\n coords: coords,\r\n starting: starting,\r\n ending: ending,\r\n deltaSource: deltaSource,\r\n iEvent: this\r\n };\r\n\r\n signals.fire('set-xy', signalArg);\r\n\r\n if (ending) {\r\n // use previous coords when ending\r\n this.pageX = prevEvent.pageX;\r\n this.pageY = prevEvent.pageY;\r\n this.clientX = prevEvent.clientX;\r\n this.clientY = prevEvent.clientY;\r\n } else {\r\n this.pageX = page.x;\r\n this.pageY = page.y;\r\n this.clientX = client.x;\r\n this.clientY = client.y;\r\n }\r\n\r\n this.x0 = interaction.startCoords.page.x - origin.x;\r\n this.y0 = interaction.startCoords.page.y - origin.y;\r\n this.clientX0 = interaction.startCoords.client.x - origin.x;\r\n this.clientY0 = interaction.startCoords.client.y - origin.y;\r\n\r\n signals.fire('set-delta', signalArg);\r\n\r\n this.timeStamp = coords.timeStamp;\r\n this.dt = interaction.pointerDelta.timeStamp;\r\n this.duration = this.timeStamp - this.t0;\r\n\r\n // speed and velocity in pixels per second\r\n this.speed = interaction.pointerDelta[deltaSource].speed;\r\n this.velocityX = interaction.pointerDelta[deltaSource].vx;\r\n this.velocityY = interaction.pointerDelta[deltaSource].vy;\r\n\r\n this.swipe = ending || phase === 'inertiastart' ? this.getSwipe() : null;\r\n\r\n signals.fire('new', signalArg);\r\n }\r\n\r\n InteractEvent.prototype.getSwipe = function getSwipe() {\r\n var interaction = this.interaction;\r\n\r\n if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {\r\n return null;\r\n }\r\n\r\n var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI;\r\n var overlap = 22.5;\r\n\r\n if (angle < 0) {\r\n angle += 360;\r\n }\r\n\r\n var left = 135 - overlap <= angle && angle < 225 + overlap;\r\n var up = 225 - overlap <= angle && angle < 315 + overlap;\r\n\r\n var right = !left && (315 - overlap <= angle || angle < 45 + overlap);\r\n var down = !up && 45 - overlap <= angle && angle < 135 + overlap;\r\n\r\n return {\r\n up: up,\r\n down: down,\r\n left: left,\r\n right: right,\r\n angle: angle,\r\n speed: interaction.prevEvent.speed,\r\n velocity: {\r\n x: interaction.prevEvent.velocityX,\r\n y: interaction.prevEvent.velocityY\r\n }\r\n };\r\n };\r\n\r\n InteractEvent.prototype.preventDefault = function preventDefault() {};\r\n\r\n /** */\r\n\r\n\r\n InteractEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\r\n this.immediatePropagationStopped = this.propagationStopped = true;\r\n };\r\n\r\n /** */\r\n\r\n\r\n InteractEvent.prototype.stopPropagation = function stopPropagation() {\r\n this.propagationStopped = true;\r\n };\r\n\r\n return InteractEvent;\r\n}();\r\n\r\nsignals.on('set-delta', function (_ref) {\r\n var iEvent = _ref.iEvent,\r\n interaction = _ref.interaction,\r\n starting = _ref.starting,\r\n deltaSource = _ref.deltaSource;\r\n\r\n var prevEvent = starting ? iEvent : interaction.prevEvent;\r\n\r\n if (deltaSource === 'client') {\r\n iEvent.dx = iEvent.clientX - prevEvent.clientX;\r\n iEvent.dy = iEvent.clientY - prevEvent.clientY;\r\n } else {\r\n iEvent.dx = iEvent.pageX - prevEvent.pageX;\r\n iEvent.dy = iEvent.pageY - prevEvent.pageY;\r\n }\r\n});\r\n\r\nInteractEvent.signals = signals;\r\n\r\nmodule.exports = InteractEvent;\r\n\r\n},{\"./defaultOptions\":18,\"./utils/Signals\":34,\"./utils/extend\":41,\"./utils/getOriginXY\":42}],4:[function(require,module,exports){\r\n'use strict';\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\nvar clone = require('./utils/clone');\r\nvar is = require('./utils/is');\r\nvar events = require('./utils/events');\r\nvar extend = require('./utils/extend');\r\nvar actions = require('./actions/base');\r\nvar scope = require('./scope');\r\nvar Eventable = require('./Eventable');\r\nvar defaults = require('./defaultOptions');\r\nvar signals = require('./utils/Signals').new();\r\n\r\nvar _require = require('./utils/domUtils'),\r\n getElementRect = _require.getElementRect,\r\n nodeContains = _require.nodeContains,\r\n trySelector = _require.trySelector,\r\n matchesSelector = _require.matchesSelector;\r\n\r\nvar _require2 = require('./utils/window'),\r\n getWindow = _require2.getWindow;\r\n\r\nvar _require3 = require('./utils/arr'),\r\n contains = _require3.contains;\r\n\r\nvar _require4 = require('./utils/browser'),\r\n wheelEvent = _require4.wheelEvent;\r\n\r\n// all set interactables\r\n\r\n\r\nscope.interactables = [];\r\n\r\nvar Interactable = function () {\r\n /** */\r\n function Interactable(target, options) {\r\n _classCallCheck(this, Interactable);\r\n\r\n options = options || {};\r\n\r\n this.target = target;\r\n this.events = new Eventable();\r\n this._context = options.context || scope.document;\r\n this._win = getWindow(trySelector(target) ? this._context : target);\r\n this._doc = this._win.document;\r\n\r\n signals.fire('new', {\r\n target: target,\r\n options: options,\r\n interactable: this,\r\n win: this._win\r\n });\r\n\r\n scope.addDocument(this._doc, this._win);\r\n\r\n scope.interactables.push(this);\r\n\r\n this.set(options);\r\n }\r\n\r\n Interactable.prototype.setOnEvents = function setOnEvents(action, phases) {\r\n var onAction = 'on' + action;\r\n\r\n if (is.function(phases.onstart)) {\r\n this.events[onAction + 'start'] = phases.onstart;\r\n }\r\n if (is.function(phases.onmove)) {\r\n this.events[onAction + 'move'] = phases.onmove;\r\n }\r\n if (is.function(phases.onend)) {\r\n this.events[onAction + 'end'] = phases.onend;\r\n }\r\n if (is.function(phases.oninertiastart)) {\r\n this.events[onAction + 'inertiastart'] = phases.oninertiastart;\r\n }\r\n\r\n return this;\r\n };\r\n\r\n Interactable.prototype.setPerAction = function setPerAction(action, options) {\r\n // for all the default per-action options\r\n for (var option in options) {\r\n // if this option exists for this action\r\n if (option in defaults[action]) {\r\n // if the option in the options arg is an object value\r\n if (is.object(options[option])) {\r\n // duplicate the object and merge\r\n this.options[action][option] = clone(this.options[action][option] || {});\r\n extend(this.options[action][option], options[option]);\r\n\r\n if (is.object(defaults.perAction[option]) && 'enabled' in defaults.perAction[option]) {\r\n this.options[action][option].enabled = options[option].enabled === false ? false : true;\r\n }\r\n } else if (is.bool(options[option]) && is.object(defaults.perAction[option])) {\r\n this.options[action][option].enabled = options[option];\r\n } else if (options[option] !== undefined) {\r\n // or if it's not undefined, do a plain assignment\r\n this.options[action][option] = options[option];\r\n }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * The default function to get an Interactables bounding rect. Can be\r\n * overridden using {@link Interactable.rectChecker}.\r\n *\r\n * @param {Element} [element] The element to measure.\r\n * @return {object} The object's bounding rectangle.\r\n */\r\n\r\n\r\n Interactable.prototype.getRect = function getRect(element) {\r\n element = element || this.target;\r\n\r\n if (is.string(this.target) && !is.element(element)) {\r\n element = this._context.querySelector(this.target);\r\n }\r\n\r\n return getElementRect(element);\r\n };\r\n\r\n /**\r\n * Returns or sets the function used to calculate the interactable's\r\n * element's rectangle\r\n *\r\n * @param {function} [checker] A function which returns this Interactable's\r\n * bounding rectangle. See {@link Interactable.getRect}\r\n * @return {function | object} The checker function or this Interactable\r\n */\r\n\r\n\r\n Interactable.prototype.rectChecker = function rectChecker(checker) {\r\n if (is.function(checker)) {\r\n this.getRect = checker;\r\n\r\n return this;\r\n }\r\n\r\n if (checker === null) {\r\n delete this.options.getRect;\r\n\r\n return this;\r\n }\r\n\r\n return this.getRect;\r\n };\r\n\r\n Interactable.prototype._backCompatOption = function _backCompatOption(optionName, newValue) {\r\n if (trySelector(newValue) || is.object(newValue)) {\r\n this.options[optionName] = newValue;\r\n\r\n for (var _i = 0; _i < actions.names.length; _i++) {\r\n var _ref;\r\n\r\n _ref = actions.names[_i];\r\n var action = _ref;\r\n\r\n this.options[action][optionName] = newValue;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n return this.options[optionName];\r\n };\r\n\r\n /**\r\n * Gets or sets the origin of the Interactable's element. The x and y\r\n * of the origin will be subtracted from action event coordinates.\r\n *\r\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\r\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\r\n * or any CSS selector\r\n *\r\n * @return {object} The current origin or this Interactable\r\n */\r\n\r\n\r\n Interactable.prototype.origin = function origin(newValue) {\r\n return this._backCompatOption('origin', newValue);\r\n };\r\n\r\n /**\r\n * Returns or sets the mouse coordinate types used to calculate the\r\n * movement of the pointer.\r\n *\r\n * @param {string} [newValue] Use 'client' if you will be scrolling while\r\n * interacting; Use 'page' if you want autoScroll to work\r\n * @return {string | object} The current deltaSource or this Interactable\r\n */\r\n\r\n\r\n Interactable.prototype.deltaSource = function deltaSource(newValue) {\r\n if (newValue === 'page' || newValue === 'client') {\r\n this.options.deltaSource = newValue;\r\n\r\n return this;\r\n }\r\n\r\n return this.options.deltaSource;\r\n };\r\n\r\n /**\r\n * Gets the selector context Node of the Interactable. The default is\r\n * `window.document`.\r\n *\r\n * @return {Node} The context Node of this Interactable\r\n */\r\n\r\n\r\n Interactable.prototype.context = function context() {\r\n return this._context;\r\n };\r\n\r\n Interactable.prototype.inContext = function inContext(element) {\r\n return this._context === element.ownerDocument || nodeContains(this._context, element);\r\n };\r\n\r\n /**\r\n * Calls listeners for the given InteractEvent type bound globally\r\n * and directly to this Interactable\r\n *\r\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\r\n * Interactable\r\n * @return {Interactable} this Interactable\r\n */\r\n\r\n\r\n Interactable.prototype.fire = function fire(iEvent) {\r\n this.events.fire(iEvent);\r\n\r\n return this;\r\n };\r\n\r\n Interactable.prototype._onOffMultiple = function _onOffMultiple(method, eventType, listener, options) {\r\n if (is.string(eventType) && eventType.search(' ') !== -1) {\r\n eventType = eventType.trim().split(/ +/);\r\n }\r\n\r\n if (is.array(eventType)) {\r\n for (var _i2 = 0; _i2 < eventType.length; _i2++) {\r\n var _ref2;\r\n\r\n _ref2 = eventType[_i2];\r\n var type = _ref2;\r\n\r\n this[method](type, listener, options);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n if (is.object(eventType)) {\r\n for (var prop in eventType) {\r\n this[method](prop, eventType[prop], listener);\r\n }\r\n\r\n return true;\r\n }\r\n };\r\n\r\n /**\r\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\r\n *\r\n * @param {string | array | object} eventType The types of events to listen\r\n * for\r\n * @param {function} listener The function event (s)\r\n * @param {object | boolean} [options] options object or useCapture flag\r\n * for addEventListener\r\n * @return {object} This Interactable\r\n */\r\n\r\n\r\n Interactable.prototype.on = function on(eventType, listener, options) {\r\n if (this._onOffMultiple('on', eventType, listener, options)) {\r\n return this;\r\n }\r\n\r\n if (eventType === 'wheel') {\r\n eventType = wheelEvent;\r\n }\r\n\r\n if (contains(Interactable.eventTypes, eventType)) {\r\n this.events.on(eventType, listener);\r\n }\r\n // delegated event for selector\r\n else if (is.string(this.target)) {\r\n events.addDelegate(this.target, this._context, eventType, listener, options);\r\n } else {\r\n events.add(this.target, eventType, listener, options);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Removes an InteractEvent, pointerEvent or DOM event listener\r\n *\r\n * @param {string | array | object} eventType The types of events that were\r\n * listened for\r\n * @param {function} listener The listener function to be removed\r\n * @param {object | boolean} [options] options object or useCapture flag for\r\n * removeEventListener\r\n * @return {object} This Interactable\r\n */\r\n\r\n\r\n Interactable.prototype.off = function off(eventType, listener, options) {\r\n if (this._onOffMultiple('off', eventType, listener, options)) {\r\n return this;\r\n }\r\n\r\n if (eventType === 'wheel') {\r\n eventType = wheelEvent;\r\n }\r\n\r\n // if it is an action event type\r\n if (contains(Interactable.eventTypes, eventType)) {\r\n this.events.off(eventType, listener);\r\n }\r\n // delegated event\r\n else if (is.string(this.target)) {\r\n events.removeDelegate(this.target, this._context, eventType, listener, options);\r\n }\r\n // remove listener from this Interatable's element\r\n else {\r\n events.remove(this.target, eventType, listener, options);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Reset the options of this Interactable\r\n *\r\n * @param {object} options The new settings to apply\r\n * @return {object} This Interactable\r\n */\r\n\r\n\r\n Interactable.prototype.set = function set(options) {\r\n if (!is.object(options)) {\r\n options = {};\r\n }\r\n\r\n this.options = clone(defaults.base);\r\n\r\n var perActions = clone(defaults.perAction);\r\n\r\n for (var actionName in actions.methodDict) {\r\n var methodName = actions.methodDict[actionName];\r\n\r\n this.options[actionName] = clone(defaults[actionName]);\r\n\r\n this.setPerAction(actionName, perActions);\r\n\r\n this[methodName](options[actionName]);\r\n }\r\n\r\n for (var _i3 = 0; _i3 < Interactable.settingsMethods.length; _i3++) {\r\n var _ref3;\r\n\r\n _ref3 = Interactable.settingsMethods[_i3];\r\n var setting = _ref3;\r\n\r\n this.options[setting] = defaults.base[setting];\r\n\r\n if (setting in options) {\r\n this[setting](options[setting]);\r\n }\r\n }\r\n\r\n signals.fire('set', {\r\n options: options,\r\n interactable: this\r\n });\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Remove this interactable from the list of interactables and remove it's\r\n * action capabilities and event listeners\r\n *\r\n * @return {interact}\r\n */\r\n\r\n\r\n Interactable.prototype.unset = function unset() {\r\n events.remove(this.target, 'all');\r\n\r\n if (is.string(this.target)) {\r\n // remove delegated events\r\n for (var type in events.delegatedEvents) {\r\n var delegated = events.delegatedEvents[type];\r\n\r\n if (delegated.selectors[0] === this.target && delegated.contexts[0] === this._context) {\r\n\r\n delegated.selectors.splice(0, 1);\r\n delegated.contexts.splice(0, 1);\r\n delegated.listeners.splice(0, 1);\r\n\r\n // remove the arrays if they are empty\r\n if (!delegated.selectors.length) {\r\n delegated[type] = null;\r\n }\r\n }\r\n\r\n events.remove(this._context, type, events.delegateListener);\r\n events.remove(this._context, type, events.delegateUseCapture, true);\r\n }\r\n } else {\r\n events.remove(this, 'all');\r\n }\r\n\r\n signals.fire('unset', { interactable: this });\r\n\r\n scope.interactables.splice(scope.interactables.indexOf(this), 1);\r\n\r\n // Stop related interactions when an Interactable is unset\r\n for (var _i4 = 0; _i4 < (scope.interactions || []).length; _i4++) {\r\n var _ref4;\r\n\r\n _ref4 = (scope.interactions || [])[_i4];\r\n var interaction = _ref4;\r\n\r\n if (interaction.target === this && interaction.interacting() && !interaction._ending) {\r\n interaction.stop();\r\n }\r\n }\r\n\r\n return scope.interact;\r\n };\r\n\r\n return Interactable;\r\n}();\r\n\r\nscope.interactables.indexOfElement = function indexOfElement(target, context) {\r\n context = context || scope.document;\r\n\r\n for (var i = 0; i < this.length; i++) {\r\n var interactable = this[i];\r\n\r\n if (interactable.target === target && interactable._context === context) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n};\r\n\r\nscope.interactables.get = function interactableGet(element, options, dontCheckInContext) {\r\n var ret = this[this.indexOfElement(element, options && options.context)];\r\n\r\n return ret && (is.string(element) || dontCheckInContext || ret.inContext(element)) ? ret : null;\r\n};\r\n\r\nscope.interactables.forEachMatch = function (element, callback) {\r\n for (var _i5 = 0; _i5 < this.length; _i5++) {\r\n var _ref5;\r\n\r\n _ref5 = this[_i5];\r\n var interactable = _ref5;\r\n\r\n var ret = void 0;\r\n\r\n if ((is.string(interactable.target)\r\n // target is a selector and the element matches\r\n ? is.element(element) && matchesSelector(element, interactable.target) :\r\n // target is the element\r\n element === interactable.target) &&\r\n // the element is in context\r\n interactable.inContext(element)) {\r\n ret = callback(interactable);\r\n }\r\n\r\n if (ret !== undefined) {\r\n return ret;\r\n }\r\n }\r\n};\r\n\r\n// all interact.js eventTypes\r\nInteractable.eventTypes = scope.eventTypes = [];\r\n\r\nInteractable.signals = signals;\r\n\r\nInteractable.settingsMethods = ['deltaSource', 'origin', 'preventDefault', 'rectChecker'];\r\n\r\nmodule.exports = Interactable;\r\n\r\n},{\"./Eventable\":2,\"./actions/base\":6,\"./defaultOptions\":18,\"./scope\":33,\"./utils/Signals\":34,\"./utils/arr\":35,\"./utils/browser\":36,\"./utils/clone\":37,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/extend\":41,\"./utils/is\":46,\"./utils/window\":52}],5:[function(require,module,exports){\r\n'use strict';\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\nvar scope = require('./scope');\r\nvar utils = require('./utils');\r\nvar events = require('./utils/events');\r\nvar browser = require('./utils/browser');\r\nvar domObjects = require('./utils/domObjects');\r\nvar finder = require('./utils/interactionFinder');\r\nvar signals = require('./utils/Signals').new();\r\n\r\nvar listeners = {};\r\nvar methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer'];\r\n\r\n// for ignoring browser's simulated mouse events\r\nvar prevTouchTime = 0;\r\n\r\n// all active and idle interactions\r\nscope.interactions = [];\r\n\r\nvar Interaction = function () {\r\n /** */\r\n function Interaction(_ref) {\r\n var pointerType = _ref.pointerType;\r\n\r\n _classCallCheck(this, Interaction);\r\n\r\n this.target = null; // current interactable being interacted with\r\n this.element = null; // the target element of the interactable\r\n\r\n this.prepared = { // action that's ready to be fired on next move event\r\n name: null,\r\n axis: null,\r\n edges: null\r\n };\r\n\r\n // keep track of added pointers\r\n this.pointers = [];\r\n this.pointerIds = [];\r\n this.downTargets = [];\r\n this.downTimes = [];\r\n\r\n // Previous native pointer move event coordinates\r\n this.prevCoords = {\r\n page: { x: 0, y: 0 },\r\n client: { x: 0, y: 0 },\r\n timeStamp: 0\r\n };\r\n // current native pointer move event coordinates\r\n this.curCoords = {\r\n page: { x: 0, y: 0 },\r\n client: { x: 0, y: 0 },\r\n timeStamp: 0\r\n };\r\n\r\n // Starting InteractEvent pointer coordinates\r\n this.startCoords = {\r\n page: { x: 0, y: 0 },\r\n client: { x: 0, y: 0 },\r\n timeStamp: 0\r\n };\r\n\r\n // Change in coordinates and time of the pointer\r\n this.pointerDelta = {\r\n page: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\r\n client: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\r\n timeStamp: 0\r\n };\r\n\r\n this.downEvent = null; // pointerdown/mousedown/touchstart event\r\n this.downPointer = {};\r\n\r\n this._eventTarget = null;\r\n this._curEventTarget = null;\r\n\r\n this.prevEvent = null; // previous action event\r\n\r\n this.pointerIsDown = false;\r\n this.pointerWasMoved = false;\r\n this._interacting = false;\r\n this._ending = false;\r\n\r\n this.pointerType = pointerType;\r\n\r\n signals.fire('new', this);\r\n\r\n scope.interactions.push(this);\r\n }\r\n\r\n Interaction.prototype.pointerDown = function pointerDown(pointer, event, eventTarget) {\r\n var pointerIndex = this.updatePointer(pointer, event, true);\r\n\r\n signals.fire('down', {\r\n pointer: pointer,\r\n event: event,\r\n eventTarget: eventTarget,\r\n pointerIndex: pointerIndex,\r\n interaction: this\r\n });\r\n };\r\n\r\n /**\r\n * ```js\r\n * interact(target)\r\n * .draggable({\r\n * // disable the default drag start by down->move\r\n * manualStart: true\r\n * })\r\n * // start dragging after the user holds the pointer down\r\n * .on('hold', function (event) {\r\n * var interaction = event.interaction;\r\n *\r\n * if (!interaction.interacting()) {\r\n * interaction.start({ name: 'drag' },\r\n * event.interactable,\r\n * event.currentTarget);\r\n * }\r\n * });\r\n * ```\r\n *\r\n * Start an action with the given Interactable and Element as tartgets. The\r\n * action must be enabled for the target Interactable and an appropriate\r\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\r\n *\r\n * Use it with `interactable.able({ manualStart: false })` to always\r\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\r\n *\r\n * @param {object} action The action to be performed - drag, resize, etc.\r\n * @param {Interactable} target The Interactable to target\r\n * @param {Element} element The DOM Element to target\r\n * @return {object} interact\r\n */\r\n\r\n\r\n Interaction.prototype.start = function start(action, target, element) {\r\n if (this.interacting() || !this.pointerIsDown || this.pointerIds.length < (action.name === 'gesture' ? 2 : 1)) {\r\n return;\r\n }\r\n\r\n // if this interaction had been removed after stopping\r\n // add it back\r\n if (scope.interactions.indexOf(this) === -1) {\r\n scope.interactions.push(this);\r\n }\r\n\r\n utils.copyAction(this.prepared, action);\r\n this.target = target;\r\n this.element = element;\r\n\r\n signals.fire('action-start', {\r\n interaction: this,\r\n event: this.downEvent\r\n });\r\n };\r\n\r\n Interaction.prototype.pointerMove = function pointerMove(pointer, event, eventTarget) {\r\n if (!this.simulation) {\r\n this.updatePointer(pointer);\r\n utils.setCoords(this.curCoords, this.pointers);\r\n }\r\n\r\n var duplicateMove = this.curCoords.page.x === this.prevCoords.page.x && this.curCoords.page.y === this.prevCoords.page.y && this.curCoords.client.x === this.prevCoords.client.x && this.curCoords.client.y === this.prevCoords.client.y;\r\n\r\n var dx = void 0;\r\n var dy = void 0;\r\n\r\n // register movement greater than pointerMoveTolerance\r\n if (this.pointerIsDown && !this.pointerWasMoved) {\r\n dx = this.curCoords.client.x - this.startCoords.client.x;\r\n dy = this.curCoords.client.y - this.startCoords.client.y;\r\n\r\n this.pointerWasMoved = utils.hypot(dx, dy) > Interaction.pointerMoveTolerance;\r\n }\r\n\r\n var signalArg = {\r\n pointer: pointer,\r\n pointerIndex: this.getPointerIndex(pointer),\r\n event: event,\r\n eventTarget: eventTarget,\r\n dx: dx,\r\n dy: dy,\r\n duplicate: duplicateMove,\r\n interaction: this,\r\n interactingBeforeMove: this.interacting()\r\n };\r\n\r\n if (!duplicateMove) {\r\n // set pointer coordinate, time changes and speeds\r\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\r\n }\r\n\r\n signals.fire('move', signalArg);\r\n\r\n if (!duplicateMove) {\r\n // if interacting, fire an 'action-move' signal etc\r\n if (this.interacting()) {\r\n this.doMove(signalArg);\r\n }\r\n\r\n if (this.pointerWasMoved) {\r\n utils.copyCoords(this.prevCoords, this.curCoords);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * ```js\r\n * interact(target)\r\n * .draggable(true)\r\n * .on('dragmove', function (event) {\r\n * if (someCondition) {\r\n * // change the snap settings\r\n * event.interactable.draggable({ snap: { targets: [] }});\r\n * // fire another move event with re-calculated snap\r\n * event.interaction.doMove();\r\n * }\r\n * });\r\n * ```\r\n *\r\n * Force a move of the current action at the same coordinates. Useful if\r\n * snap/restrict has been changed and you want a movement with the new\r\n * settings.\r\n */\r\n\r\n\r\n Interaction.prototype.doMove = function doMove(signalArg) {\r\n signalArg = utils.extend({\r\n pointer: this.pointers[0],\r\n event: this.prevEvent,\r\n eventTarget: this._eventTarget,\r\n interaction: this\r\n }, signalArg || {});\r\n\r\n signals.fire('before-action-move', signalArg);\r\n\r\n if (!this._dontFireMove) {\r\n signals.fire('action-move', signalArg);\r\n }\r\n\r\n this._dontFireMove = false;\r\n };\r\n\r\n // End interact move events and stop auto-scroll unless simulation is running\r\n\r\n\r\n Interaction.prototype.pointerUp = function pointerUp(pointer, event, eventTarget, curEventTarget) {\r\n var pointerIndex = this.getPointerIndex(pointer);\r\n\r\n signals.fire(/cancel$/i.test(event.type) ? 'cancel' : 'up', {\r\n pointer: pointer,\r\n pointerIndex: pointerIndex,\r\n event: event,\r\n eventTarget: eventTarget,\r\n curEventTarget: curEventTarget,\r\n interaction: this\r\n });\r\n\r\n if (!this.simulation) {\r\n this.end(event);\r\n }\r\n\r\n this.pointerIsDown = false;\r\n this.removePointer(pointer, event);\r\n };\r\n\r\n /**\r\n * ```js\r\n * interact(target)\r\n * .draggable(true)\r\n * .on('move', function (event) {\r\n * if (event.pageX > 1000) {\r\n * // end the current action\r\n * event.interaction.end();\r\n * // stop all further listeners from being called\r\n * event.stopImmediatePropagation();\r\n * }\r\n * });\r\n * ```\r\n *\r\n * Stop the current action and fire an end event. Inertial movement does\r\n * not happen.\r\n *\r\n * @param {PointerEvent} [event]\r\n */\r\n\r\n\r\n Interaction.prototype.end = function end(event) {\r\n this._ending = true;\r\n\r\n event = event || this.prevEvent;\r\n\r\n if (this.interacting()) {\r\n signals.fire('action-end', {\r\n event: event,\r\n interaction: this\r\n });\r\n }\r\n\r\n this.stop();\r\n this._ending = false;\r\n };\r\n\r\n Interaction.prototype.currentAction = function currentAction() {\r\n return this._interacting ? this.prepared.name : null;\r\n };\r\n\r\n Interaction.prototype.interacting = function interacting() {\r\n return this._interacting;\r\n };\r\n\r\n /** */\r\n\r\n\r\n Interaction.prototype.stop = function stop() {\r\n signals.fire('stop', { interaction: this });\r\n\r\n if (this._interacting) {\r\n signals.fire('stop-active', { interaction: this });\r\n signals.fire('stop-' + this.prepared.name, { interaction: this });\r\n }\r\n\r\n this.target = this.element = null;\r\n\r\n this._interacting = false;\r\n this.prepared.name = this.prevEvent = null;\r\n };\r\n\r\n Interaction.prototype.getPointerIndex = function getPointerIndex(pointer) {\r\n // mouse and pen interactions may have only one pointer\r\n if (this.pointerType === 'mouse' || this.pointerType === 'pen') {\r\n return 0;\r\n }\r\n\r\n return this.pointerIds.indexOf(utils.getPointerId(pointer));\r\n };\r\n\r\n Interaction.prototype.updatePointer = function updatePointer(pointer, event) {\r\n var down = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : event && /(down|start)$/i.test(event.type);\r\n\r\n var id = utils.getPointerId(pointer);\r\n var index = this.getPointerIndex(pointer);\r\n\r\n if (index === -1) {\r\n index = this.pointerIds.length;\r\n this.pointerIds[index] = id;\r\n }\r\n\r\n if (down) {\r\n signals.fire('update-pointer-down', {\r\n pointer: pointer,\r\n event: event,\r\n down: down,\r\n pointerId: id,\r\n pointerIndex: index,\r\n interaction: this\r\n });\r\n }\r\n\r\n this.pointers[index] = pointer;\r\n\r\n return index;\r\n };\r\n\r\n Interaction.prototype.removePointer = function removePointer(pointer, event) {\r\n var index = this.getPointerIndex(pointer);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n signals.fire('remove-pointer', {\r\n pointer: pointer,\r\n event: event,\r\n pointerIndex: index,\r\n interaction: this\r\n });\r\n\r\n this.pointers.splice(index, 1);\r\n this.pointerIds.splice(index, 1);\r\n this.downTargets.splice(index, 1);\r\n this.downTimes.splice(index, 1);\r\n };\r\n\r\n Interaction.prototype._updateEventTargets = function _updateEventTargets(target, currentTarget) {\r\n this._eventTarget = target;\r\n this._curEventTarget = currentTarget;\r\n };\r\n\r\n return Interaction;\r\n}();\r\n\r\nfor (var _i = 0; _i < methodNames.length; _i++) {\r\n var method = methodNames[_i];\r\n listeners[method] = doOnInteractions(method);\r\n}\r\n\r\nfunction doOnInteractions(method) {\r\n return function (event) {\r\n var pointerType = utils.getPointerType(event);\r\n\r\n var _utils$getEventTarget = utils.getEventTargets(event),\r\n eventTarget = _utils$getEventTarget[0],\r\n curEventTarget = _utils$getEventTarget[1];\r\n\r\n var matches = []; // [ [pointer, interaction], ...]\r\n\r\n if (browser.supportsTouch && /touch/.test(event.type)) {\r\n prevTouchTime = new Date().getTime();\r\n\r\n for (var _i2 = 0; _i2 < event.changedTouches.length; _i2++) {\r\n var _ref2;\r\n\r\n _ref2 = event.changedTouches[_i2];\r\n var changedTouch = _ref2;\r\n\r\n var pointer = changedTouch;\r\n var interaction = finder.search(pointer, event.type, eventTarget);\r\n\r\n matches.push([pointer, interaction || new Interaction({ pointerType: pointerType })]);\r\n }\r\n } else {\r\n var invalidPointer = false;\r\n\r\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\r\n // ignore mouse events while touch interactions are active\r\n for (var i = 0; i < scope.interactions.length && !invalidPointer; i++) {\r\n invalidPointer = scope.interactions[i].pointerType !== 'mouse' && scope.interactions[i].pointerIsDown;\r\n }\r\n\r\n // try to ignore mouse events that are simulated by the browser\r\n // after a touch event\r\n invalidPointer = invalidPointer || new Date().getTime() - prevTouchTime < 500\r\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\r\n || event.timeStamp === 0;\r\n }\r\n\r\n if (!invalidPointer) {\r\n var _interaction = finder.search(event, event.type, eventTarget);\r\n\r\n if (!_interaction) {\r\n _interaction = new Interaction({ pointerType: pointerType });\r\n }\r\n\r\n matches.push([event, _interaction]);\r\n }\r\n }\r\n\r\n for (var _i3 = 0; _i3 < matches.length; _i3++) {\r\n var _ref3 = matches[_i3];\r\n var _pointer = _ref3[0];\r\n var _interaction2 = _ref3[1];\r\n\r\n _interaction2._updateEventTargets(eventTarget, curEventTarget);\r\n _interaction2[method](_pointer, event, eventTarget, curEventTarget);\r\n }\r\n };\r\n}\r\n\r\nfunction endAll(event) {\r\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\r\n var _ref4;\r\n\r\n _ref4 = scope.interactions[_i4];\r\n var interaction = _ref4;\r\n\r\n interaction.end(event);\r\n signals.fire('endall', { event: event, interaction: interaction });\r\n }\r\n}\r\n\r\nvar docEvents = {/* 'eventType': listenerFunc */};\r\nvar pEventTypes = browser.pEventTypes;\r\n\r\nif (domObjects.PointerEvent) {\r\n docEvents[pEventTypes.down] = listeners.pointerDown;\r\n docEvents[pEventTypes.move] = listeners.pointerMove;\r\n docEvents[pEventTypes.up] = listeners.pointerUp;\r\n docEvents[pEventTypes.cancel] = listeners.pointerUp;\r\n} else {\r\n docEvents.mousedown = listeners.pointerDown;\r\n docEvents.mousemove = listeners.pointerMove;\r\n docEvents.mouseup = listeners.pointerUp;\r\n\r\n docEvents.touchstart = listeners.pointerDown;\r\n docEvents.touchmove = listeners.pointerMove;\r\n docEvents.touchend = listeners.pointerUp;\r\n docEvents.touchcancel = listeners.pointerUp;\r\n}\r\n\r\ndocEvents.blur = endAll;\r\n\r\nfunction onDocSignal(_ref5, signalName) {\r\n var doc = _ref5.doc;\r\n\r\n var eventMethod = signalName.indexOf('add') === 0 ? events.add : events.remove;\r\n\r\n // delegate event listener\r\n for (var eventType in scope.delegatedEvents) {\r\n eventMethod(doc, eventType, events.delegateListener);\r\n eventMethod(doc, eventType, events.delegateUseCapture, true);\r\n }\r\n\r\n for (var _eventType in docEvents) {\r\n eventMethod(doc, _eventType, docEvents[_eventType], browser.isIOS ? { passive: false } : undefined);\r\n }\r\n}\r\n\r\nsignals.on('update-pointer-down', function (_ref6) {\r\n var interaction = _ref6.interaction,\r\n pointer = _ref6.pointer,\r\n pointerId = _ref6.pointerId,\r\n pointerIndex = _ref6.pointerIndex,\r\n event = _ref6.event,\r\n eventTarget = _ref6.eventTarget,\r\n down = _ref6.down;\r\n\r\n interaction.pointerIds[pointerIndex] = pointerId;\r\n interaction.pointers[pointerIndex] = pointer;\r\n\r\n if (down) {\r\n interaction.pointerIsDown = true;\r\n }\r\n\r\n if (!interaction.interacting()) {\r\n utils.setCoords(interaction.startCoords, interaction.pointers);\r\n\r\n utils.copyCoords(interaction.curCoords, interaction.startCoords);\r\n utils.copyCoords(interaction.prevCoords, interaction.startCoords);\r\n\r\n interaction.downEvent = event;\r\n interaction.downTimes[pointerIndex] = interaction.curCoords.timeStamp;\r\n interaction.downTargets[pointerIndex] = eventTarget || event && utils.getEventTargets(event)[0];\r\n interaction.pointerWasMoved = false;\r\n\r\n utils.pointerExtend(interaction.downPointer, pointer);\r\n }\r\n});\r\n\r\nscope.signals.on('add-document', onDocSignal);\r\nscope.signals.on('remove-document', onDocSignal);\r\n\r\nInteraction.pointerMoveTolerance = 1;\r\nInteraction.doOnInteractions = doOnInteractions;\r\nInteraction.endAll = endAll;\r\nInteraction.signals = signals;\r\nInteraction.docEvents = docEvents;\r\n\r\nscope.endAllInteractions = endAll;\r\n\r\nmodule.exports = Interaction;\r\n\r\n},{\"./scope\":33,\"./utils\":44,\"./utils/Signals\":34,\"./utils/browser\":36,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/interactionFinder\":45}],6:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar Interaction = require('../Interaction');\r\nvar InteractEvent = require('../InteractEvent');\r\n\r\nvar actions = {\r\n firePrepared: firePrepared,\r\n names: [],\r\n methodDict: {}\r\n};\r\n\r\nInteraction.signals.on('action-start', function (_ref) {\r\n var interaction = _ref.interaction,\r\n event = _ref.event;\r\n\r\n interaction._interacting = true;\r\n firePrepared(interaction, event, 'start');\r\n});\r\n\r\nInteraction.signals.on('action-move', function (_ref2) {\r\n var interaction = _ref2.interaction,\r\n event = _ref2.event,\r\n preEnd = _ref2.preEnd;\r\n\r\n firePrepared(interaction, event, 'move', preEnd);\r\n\r\n // if the action was ended in a listener\r\n if (!interaction.interacting()) {\r\n return false;\r\n }\r\n});\r\n\r\nInteraction.signals.on('action-end', function (_ref3) {\r\n var interaction = _ref3.interaction,\r\n event = _ref3.event;\r\n\r\n firePrepared(interaction, event, 'end');\r\n});\r\n\r\nfunction firePrepared(interaction, event, phase, preEnd) {\r\n var actionName = interaction.prepared.name;\r\n\r\n var newEvent = new InteractEvent(interaction, event, actionName, phase, interaction.element, null, preEnd);\r\n\r\n interaction.target.fire(newEvent);\r\n interaction.prevEvent = newEvent;\r\n}\r\n\r\nmodule.exports = actions;\r\n\r\n},{\"../InteractEvent\":3,\"../Interaction\":5}],7:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar actions = require('./base');\r\nvar utils = require('../utils');\r\nvar InteractEvent = require('../InteractEvent');\r\n/** @lends Interactable */\r\nvar Interactable = require('../Interactable');\r\nvar Interaction = require('../Interaction');\r\nvar defaultOptions = require('../defaultOptions');\r\n\r\nvar drag = {\r\n defaults: {\r\n enabled: false,\r\n mouseButtons: null,\r\n\r\n origin: null,\r\n snap: null,\r\n restrict: null,\r\n inertia: null,\r\n autoScroll: null,\r\n\r\n startAxis: 'xy',\r\n lockAxis: 'xy'\r\n },\r\n\r\n checker: function checker(pointer, event, interactable) {\r\n var dragOptions = interactable.options.drag;\r\n\r\n return dragOptions.enabled ? { name: 'drag', axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis } : null;\r\n },\r\n\r\n getCursor: function getCursor() {\r\n return 'move';\r\n }\r\n};\r\n\r\nInteraction.signals.on('before-action-move', function (_ref) {\r\n var interaction = _ref.interaction;\r\n\r\n if (interaction.prepared.name !== 'drag') {\r\n return;\r\n }\r\n\r\n var axis = interaction.prepared.axis;\r\n\r\n if (axis === 'x') {\r\n interaction.curCoords.page.y = interaction.startCoords.page.y;\r\n interaction.curCoords.client.y = interaction.startCoords.client.y;\r\n\r\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vx);\r\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vx);\r\n interaction.pointerDelta.client.vy = 0;\r\n interaction.pointerDelta.page.vy = 0;\r\n } else if (axis === 'y') {\r\n interaction.curCoords.page.x = interaction.startCoords.page.x;\r\n interaction.curCoords.client.x = interaction.startCoords.client.x;\r\n\r\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vy);\r\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vy);\r\n interaction.pointerDelta.client.vx = 0;\r\n interaction.pointerDelta.page.vx = 0;\r\n }\r\n});\r\n\r\n// dragmove\r\nInteractEvent.signals.on('new', function (_ref2) {\r\n var iEvent = _ref2.iEvent,\r\n interaction = _ref2.interaction;\r\n\r\n if (iEvent.type !== 'dragmove') {\r\n return;\r\n }\r\n\r\n var axis = interaction.prepared.axis;\r\n\r\n if (axis === 'x') {\r\n iEvent.pageY = interaction.startCoords.page.y;\r\n iEvent.clientY = interaction.startCoords.client.y;\r\n iEvent.dy = 0;\r\n } else if (axis === 'y') {\r\n iEvent.pageX = interaction.startCoords.page.x;\r\n iEvent.clientX = interaction.startCoords.client.x;\r\n iEvent.dx = 0;\r\n }\r\n});\r\n\r\n/**\r\n * ```js\r\n * interact(element).draggable({\r\n * onstart: function (event) {},\r\n * onmove : function (event) {},\r\n * onend : function (event) {},\r\n *\r\n * // the axis in which the first movement must be\r\n * // for the drag sequence to start\r\n * // 'xy' by default - any direction\r\n * startAxis: 'x' || 'y' || 'xy',\r\n *\r\n * // 'xy' by default - don't restrict to one axis (move in any direction)\r\n * // 'x' or 'y' to restrict movement to either axis\r\n * // 'start' to restrict movement to the axis the drag started in\r\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\r\n *\r\n * // max number of drags that can happen concurrently\r\n * // with elements of this Interactable. Infinity by default\r\n * max: Infinity,\r\n *\r\n * // max number of drags that can target the same element+Interactable\r\n * // 1 by default\r\n * maxPerElement: 2\r\n * });\r\n *\r\n * var isDraggable = interact('element').draggable(); // true\r\n * ```\r\n *\r\n * Get or set whether drag actions can be performed on the target\r\n *\r\n * @param {boolean | object} [options] true/false or An object with event\r\n * listeners to be fired on drag events (object makes the Interactable\r\n * draggable)\r\n * @return {boolean | Interactable} boolean indicating if this can be the\r\n * target of drag events, or this Interctable\r\n */\r\nInteractable.prototype.draggable = function (options) {\r\n if (utils.is.object(options)) {\r\n this.options.drag.enabled = options.enabled === false ? false : true;\r\n this.setPerAction('drag', options);\r\n this.setOnEvents('drag', options);\r\n\r\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\r\n this.options.drag.lockAxis = options.lockAxis;\r\n }\r\n if (/^(xy|x|y)$/.test(options.startAxis)) {\r\n this.options.drag.startAxis = options.startAxis;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n if (utils.is.bool(options)) {\r\n this.options.drag.enabled = options;\r\n\r\n if (!options) {\r\n this.ondragstart = this.ondragstart = this.ondragend = null;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n return this.options.drag;\r\n};\r\n\r\nactions.drag = drag;\r\nactions.names.push('drag');\r\nutils.merge(Interactable.eventTypes, ['dragstart', 'dragmove', 'draginertiastart', 'draginertiaresume', 'dragend']);\r\nactions.methodDict.drag = 'draggable';\r\n\r\ndefaultOptions.drag = drag.defaults;\r\n\r\nmodule.exports = drag;\r\n\r\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],8:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar actions = require('./base');\r\nvar utils = require('../utils');\r\nvar scope = require('../scope');\r\n/** @lends module:interact */\r\nvar interact = require('../interact');\r\nvar InteractEvent = require('../InteractEvent');\r\n/** @lends Interactable */\r\nvar Interactable = require('../Interactable');\r\nvar Interaction = require('../Interaction');\r\nvar defaultOptions = require('../defaultOptions');\r\n\r\nvar drop = {\r\n defaults: {\r\n enabled: false,\r\n accept: null,\r\n overlap: 'pointer'\r\n }\r\n};\r\n\r\nvar dynamicDrop = false;\r\n\r\nInteraction.signals.on('action-start', function (_ref) {\r\n var interaction = _ref.interaction,\r\n event = _ref.event;\r\n\r\n if (interaction.prepared.name !== 'drag') {\r\n return;\r\n }\r\n\r\n // reset active dropzones\r\n interaction.activeDrops.dropzones = [];\r\n interaction.activeDrops.elements = [];\r\n interaction.activeDrops.rects = [];\r\n\r\n interaction.dropEvents = null;\r\n\r\n if (!interaction.dynamicDrop) {\r\n setActiveDrops(interaction.activeDrops, interaction.element);\r\n }\r\n\r\n var dragEvent = interaction.prevEvent;\r\n var dropEvents = getDropEvents(interaction, event, dragEvent);\r\n\r\n if (dropEvents.activate) {\r\n fireActiveDrops(interaction.activeDrops, dropEvents.activate);\r\n }\r\n});\r\n\r\nInteractEvent.signals.on('new', function (_ref2) {\r\n var interaction = _ref2.interaction,\r\n iEvent = _ref2.iEvent,\r\n event = _ref2.event;\r\n\r\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {\r\n return;\r\n }\r\n\r\n var draggableElement = interaction.element;\r\n var dragEvent = iEvent;\r\n var dropResult = getDrop(dragEvent, event, draggableElement);\r\n\r\n interaction.dropTarget = dropResult.dropzone;\r\n interaction.dropElement = dropResult.element;\r\n\r\n interaction.dropEvents = getDropEvents(interaction, event, dragEvent);\r\n});\r\n\r\nInteraction.signals.on('action-move', function (_ref3) {\r\n var interaction = _ref3.interaction;\r\n\r\n if (interaction.prepared.name !== 'drag') {\r\n return;\r\n }\r\n\r\n fireDropEvents(interaction, interaction.dropEvents);\r\n});\r\n\r\nInteraction.signals.on('action-end', function (_ref4) {\r\n var interaction = _ref4.interaction;\r\n\r\n if (interaction.prepared.name === 'drag') {\r\n fireDropEvents(interaction, interaction.dropEvents);\r\n }\r\n});\r\n\r\nInteraction.signals.on('stop-drag', function (_ref5) {\r\n var interaction = _ref5.interaction;\r\n\r\n interaction.activeDrops = {\r\n dropzones: null,\r\n elements: null,\r\n rects: null\r\n };\r\n\r\n interaction.dropEvents = null;\r\n});\r\n\r\nfunction collectDrops(activeDrops, element) {\r\n var drops = [];\r\n var elements = [];\r\n\r\n // collect all dropzones and their elements which qualify for a drop\r\n for (var _i = 0; _i < scope.interactables.length; _i++) {\r\n var _ref6;\r\n\r\n _ref6 = scope.interactables[_i];\r\n var current = _ref6;\r\n\r\n if (!current.options.drop.enabled) {\r\n continue;\r\n }\r\n\r\n var accept = current.options.drop.accept;\r\n\r\n // test the draggable element against the dropzone's accept setting\r\n if (utils.is.element(accept) && accept !== element || utils.is.string(accept) && !utils.matchesSelector(element, accept)) {\r\n\r\n continue;\r\n }\r\n\r\n // query for new elements if necessary\r\n var dropElements = utils.is.string(current.target) ? current._context.querySelectorAll(current.target) : [current.target];\r\n\r\n for (var _i2 = 0; _i2 < dropElements.length; _i2++) {\r\n var _ref7;\r\n\r\n _ref7 = dropElements[_i2];\r\n var currentElement = _ref7;\r\n\r\n if (currentElement !== element) {\r\n drops.push(current);\r\n elements.push(currentElement);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n elements: elements,\r\n dropzones: drops\r\n };\r\n}\r\n\r\nfunction fireActiveDrops(activeDrops, event) {\r\n var prevElement = void 0;\r\n\r\n // loop through all active dropzones and trigger event\r\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\r\n var current = activeDrops.dropzones[i];\r\n var currentElement = activeDrops.elements[i];\r\n\r\n // prevent trigger of duplicate events on same element\r\n if (currentElement !== prevElement) {\r\n // set current element as event target\r\n event.target = currentElement;\r\n current.fire(event);\r\n }\r\n prevElement = currentElement;\r\n }\r\n}\r\n\r\n// Collect a new set of possible drops and save them in activeDrops.\r\n// setActiveDrops should always be called when a drag has just started or a\r\n// drag event happens while dynamicDrop is true\r\nfunction setActiveDrops(activeDrops, dragElement) {\r\n // get dropzones and their elements that could receive the draggable\r\n var possibleDrops = collectDrops(activeDrops, dragElement);\r\n\r\n activeDrops.dropzones = possibleDrops.dropzones;\r\n activeDrops.elements = possibleDrops.elements;\r\n activeDrops.rects = [];\r\n\r\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\r\n activeDrops.rects[i] = activeDrops.dropzones[i].getRect(activeDrops.elements[i]);\r\n }\r\n}\r\n\r\nfunction getDrop(dragEvent, event, dragElement) {\r\n var interaction = dragEvent.interaction;\r\n var validDrops = [];\r\n\r\n if (dynamicDrop) {\r\n setActiveDrops(interaction.activeDrops, dragElement);\r\n }\r\n\r\n // collect all dropzones and their elements which qualify for a drop\r\n for (var j = 0; j < interaction.activeDrops.dropzones.length; j++) {\r\n var current = interaction.activeDrops.dropzones[j];\r\n var currentElement = interaction.activeDrops.elements[j];\r\n var rect = interaction.activeDrops.rects[j];\r\n\r\n validDrops.push(current.dropCheck(dragEvent, event, interaction.target, dragElement, currentElement, rect) ? currentElement : null);\r\n }\r\n\r\n // get the most appropriate dropzone based on DOM depth and order\r\n var dropIndex = utils.indexOfDeepestElement(validDrops);\r\n\r\n return {\r\n dropzone: interaction.activeDrops.dropzones[dropIndex] || null,\r\n element: interaction.activeDrops.elements[dropIndex] || null\r\n };\r\n}\r\n\r\nfunction getDropEvents(interaction, pointerEvent, dragEvent) {\r\n var dropEvents = {\r\n enter: null,\r\n leave: null,\r\n activate: null,\r\n deactivate: null,\r\n move: null,\r\n drop: null\r\n };\r\n\r\n var tmpl = {\r\n dragEvent: dragEvent,\r\n interaction: interaction,\r\n target: interaction.dropElement,\r\n dropzone: interaction.dropTarget,\r\n relatedTarget: dragEvent.target,\r\n draggable: dragEvent.interactable,\r\n timeStamp: dragEvent.timeStamp\r\n };\r\n\r\n if (interaction.dropElement !== interaction.prevDropElement) {\r\n // if there was a prevDropTarget, create a dragleave event\r\n if (interaction.prevDropTarget) {\r\n dropEvents.leave = utils.extend({ type: 'dragleave' }, tmpl);\r\n\r\n dragEvent.dragLeave = dropEvents.leave.target = interaction.prevDropElement;\r\n dragEvent.prevDropzone = dropEvents.leave.dropzone = interaction.prevDropTarget;\r\n }\r\n // if the dropTarget is not null, create a dragenter event\r\n if (interaction.dropTarget) {\r\n dropEvents.enter = {\r\n dragEvent: dragEvent,\r\n interaction: interaction,\r\n target: interaction.dropElement,\r\n dropzone: interaction.dropTarget,\r\n relatedTarget: dragEvent.target,\r\n draggable: dragEvent.interactable,\r\n timeStamp: dragEvent.timeStamp,\r\n type: 'dragenter'\r\n };\r\n\r\n dragEvent.dragEnter = interaction.dropElement;\r\n dragEvent.dropzone = interaction.dropTarget;\r\n }\r\n }\r\n\r\n if (dragEvent.type === 'dragend' && interaction.dropTarget) {\r\n dropEvents.drop = utils.extend({ type: 'drop' }, tmpl);\r\n\r\n dragEvent.dropzone = interaction.dropTarget;\r\n dragEvent.relatedTarget = interaction.dropElement;\r\n }\r\n if (dragEvent.type === 'dragstart') {\r\n dropEvents.activate = utils.extend({ type: 'dropactivate' }, tmpl);\r\n\r\n dropEvents.activate.target = null;\r\n dropEvents.activate.dropzone = null;\r\n }\r\n if (dragEvent.type === 'dragend') {\r\n dropEvents.deactivate = utils.extend({ type: 'dropdeactivate' }, tmpl);\r\n\r\n dropEvents.deactivate.target = null;\r\n dropEvents.deactivate.dropzone = null;\r\n }\r\n if (dragEvent.type === 'dragmove' && interaction.dropTarget) {\r\n dropEvents.move = utils.extend({\r\n dragmove: dragEvent,\r\n type: 'dropmove'\r\n }, tmpl);\r\n\r\n dragEvent.dropzone = interaction.dropTarget;\r\n }\r\n\r\n return dropEvents;\r\n}\r\n\r\nfunction fireDropEvents(interaction, dropEvents) {\r\n var activeDrops = interaction.activeDrops,\r\n prevDropTarget = interaction.prevDropTarget,\r\n dropTarget = interaction.dropTarget,\r\n dropElement = interaction.dropElement;\r\n\r\n\r\n if (dropEvents.leave) {\r\n prevDropTarget.fire(dropEvents.leave);\r\n }\r\n if (dropEvents.move) {\r\n dropTarget.fire(dropEvents.move);\r\n }\r\n if (dropEvents.enter) {\r\n dropTarget.fire(dropEvents.enter);\r\n }\r\n if (dropEvents.drop) {\r\n dropTarget.fire(dropEvents.drop);\r\n }\r\n if (dropEvents.deactivate) {\r\n fireActiveDrops(activeDrops, dropEvents.deactivate);\r\n }\r\n\r\n interaction.prevDropTarget = dropTarget;\r\n interaction.prevDropElement = dropElement;\r\n}\r\n\r\n/**\r\n * ```js\r\n * interact(target)\r\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\r\n * event, // TouchEvent/PointerEvent/MouseEvent\r\n * dropped, // bool result of the default checker\r\n * dropzone, // dropzone Interactable\r\n * dropElement, // dropzone elemnt\r\n * draggable, // draggable Interactable\r\n * draggableElement) {// draggable element\r\n *\r\n * return dropped && event.target.hasAttribute('allow-drop');\r\n * }\r\n * ```\r\n *\r\n * ```js\r\n * interact('.drop').dropzone({\r\n * accept: '.can-drop' || document.getElementById('single-drop'),\r\n * overlap: 'pointer' || 'center' || zeroToOne\r\n * }\r\n * ```\r\n *\r\n * Returns or sets whether draggables can be dropped onto this target to\r\n * trigger drop events\r\n *\r\n * Dropzones can receive the following events:\r\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\r\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\r\n * - `dragmove` when a draggable that has entered the dropzone is moved\r\n * - `drop` when a draggable is dropped into this dropzone\r\n *\r\n * Use the `accept` option to allow only elements that match the given CSS\r\n * selector or element. The value can be:\r\n *\r\n * - **an Element** - only that element can be dropped into this dropzone.\r\n * - **a string**, - the element being dragged must match it as a CSS selector.\r\n * - **`null`** - accept options is cleared - it accepts any element.\r\n *\r\n * Use the `overlap` option to set how drops are checked for. The allowed\r\n * values are:\r\n *\r\n * - `'pointer'`, the pointer must be over the dropzone (default)\r\n * - `'center'`, the draggable element's center must be over the dropzone\r\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\r\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\r\n * over the dropzone\r\n *\r\n * Use the `checker` option to specify a function to check if a dragged element\r\n * is over this Interactable.\r\n *\r\n * @param {boolean | object | null} [options] The new options to be set.\r\n * @return {boolean | Interactable} The current setting or this Interactable\r\n */\r\nInteractable.prototype.dropzone = function (options) {\r\n if (utils.is.object(options)) {\r\n this.options.drop.enabled = options.enabled === false ? false : true;\r\n\r\n if (utils.is.function(options.ondrop)) {\r\n this.events.ondrop = options.ondrop;\r\n }\r\n if (utils.is.function(options.ondropactivate)) {\r\n this.events.ondropactivate = options.ondropactivate;\r\n }\r\n if (utils.is.function(options.ondropdeactivate)) {\r\n this.events.ondropdeactivate = options.ondropdeactivate;\r\n }\r\n if (utils.is.function(options.ondragenter)) {\r\n this.events.ondragenter = options.ondragenter;\r\n }\r\n if (utils.is.function(options.ondragleave)) {\r\n this.events.ondragleave = options.ondragleave;\r\n }\r\n if (utils.is.function(options.ondropmove)) {\r\n this.events.ondropmove = options.ondropmove;\r\n }\r\n\r\n if (/^(pointer|center)$/.test(options.overlap)) {\r\n this.options.drop.overlap = options.overlap;\r\n } else if (utils.is.number(options.overlap)) {\r\n this.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);\r\n }\r\n if ('accept' in options) {\r\n this.options.drop.accept = options.accept;\r\n }\r\n if ('checker' in options) {\r\n this.options.drop.checker = options.checker;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n if (utils.is.bool(options)) {\r\n this.options.drop.enabled = options;\r\n\r\n if (!options) {\r\n this.ondragenter = this.ondragleave = this.ondrop = this.ondropactivate = this.ondropdeactivate = null;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n return this.options.drop;\r\n};\r\n\r\nInteractable.prototype.dropCheck = function (dragEvent, event, draggable, draggableElement, dropElement, rect) {\r\n var dropped = false;\r\n\r\n // if the dropzone has no rect (eg. display: none)\r\n // call the custom dropChecker or just return false\r\n if (!(rect = rect || this.getRect(dropElement))) {\r\n return this.options.drop.checker ? this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement) : false;\r\n }\r\n\r\n var dropOverlap = this.options.drop.overlap;\r\n\r\n if (dropOverlap === 'pointer') {\r\n var origin = utils.getOriginXY(draggable, draggableElement, 'drag');\r\n var page = utils.getPageXY(dragEvent);\r\n\r\n page.x += origin.x;\r\n page.y += origin.y;\r\n\r\n var horizontal = page.x > rect.left && page.x < rect.right;\r\n var vertical = page.y > rect.top && page.y < rect.bottom;\r\n\r\n dropped = horizontal && vertical;\r\n }\r\n\r\n var dragRect = draggable.getRect(draggableElement);\r\n\r\n if (dragRect && dropOverlap === 'center') {\r\n var cx = dragRect.left + dragRect.width / 2;\r\n var cy = dragRect.top + dragRect.height / 2;\r\n\r\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;\r\n }\r\n\r\n if (dragRect && utils.is.number(dropOverlap)) {\r\n var overlapArea = Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top));\r\n\r\n var overlapRatio = overlapArea / (dragRect.width * dragRect.height);\r\n\r\n dropped = overlapRatio >= dropOverlap;\r\n }\r\n\r\n if (this.options.drop.checker) {\r\n dropped = this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement);\r\n }\r\n\r\n return dropped;\r\n};\r\n\r\nInteractable.signals.on('unset', function (_ref8) {\r\n var interactable = _ref8.interactable;\r\n\r\n interactable.dropzone(false);\r\n});\r\n\r\nInteractable.settingsMethods.push('dropChecker');\r\n\r\nInteraction.signals.on('new', function (interaction) {\r\n interaction.dropTarget = null; // the dropzone a drag target might be dropped into\r\n interaction.dropElement = null; // the element at the time of checking\r\n interaction.prevDropTarget = null; // the dropzone that was recently dragged away from\r\n interaction.prevDropElement = null; // the element at the time of checking\r\n interaction.dropEvents = null; // the dropEvents related to the current drag event\r\n\r\n interaction.activeDrops = {\r\n dropzones: [], // the dropzones that are mentioned below\r\n elements: [], // elements of dropzones that accept the target draggable\r\n rects: [] // the rects of the elements mentioned above\r\n };\r\n});\r\n\r\nInteraction.signals.on('stop', function (_ref9) {\r\n var interaction = _ref9.interaction;\r\n\r\n interaction.dropTarget = interaction.dropElement = interaction.prevDropTarget = interaction.prevDropElement = null;\r\n});\r\n\r\n/**\r\n * Returns or sets whether the dimensions of dropzone elements are calculated\r\n * on every dragmove or only on dragstart for the default dropChecker\r\n *\r\n * @param {boolean} [newValue] True to check on each move. False to check only\r\n * before start\r\n * @return {boolean | interact} The current setting or interact\r\n */\r\ninteract.dynamicDrop = function (newValue) {\r\n if (utils.is.bool(newValue)) {\r\n //if (dragging && dynamicDrop !== newValue && !newValue) {\r\n //calcRects(dropzones);\r\n //}\r\n\r\n dynamicDrop = newValue;\r\n\r\n return interact;\r\n }\r\n return dynamicDrop;\r\n};\r\n\r\nutils.merge(Interactable.eventTypes, ['dragenter', 'dragleave', 'dropactivate', 'dropdeactivate', 'dropmove', 'drop']);\r\nactions.methodDict.drop = 'dropzone';\r\n\r\ndefaultOptions.drop = drop.defaults;\r\n\r\nmodule.exports = drop;\r\n\r\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"./base\":6}],9:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar actions = require('./base');\r\nvar utils = require('../utils');\r\nvar InteractEvent = require('../InteractEvent');\r\nvar Interactable = require('../Interactable');\r\nvar Interaction = require('../Interaction');\r\nvar defaultOptions = require('../defaultOptions');\r\n\r\nvar gesture = {\r\n defaults: {\r\n enabled: false,\r\n origin: null,\r\n restrict: null\r\n },\r\n\r\n checker: function checker(pointer, event, interactable, element, interaction) {\r\n if (interaction.pointerIds.length >= 2) {\r\n return { name: 'gesture' };\r\n }\r\n\r\n return null;\r\n },\r\n\r\n getCursor: function getCursor() {\r\n return '';\r\n }\r\n};\r\n\r\nInteractEvent.signals.on('new', function (_ref) {\r\n var iEvent = _ref.iEvent,\r\n interaction = _ref.interaction;\r\n\r\n if (iEvent.type !== 'gesturestart') {\r\n return;\r\n }\r\n iEvent.ds = 0;\r\n\r\n interaction.gesture.startDistance = interaction.gesture.prevDistance = iEvent.distance;\r\n interaction.gesture.startAngle = interaction.gesture.prevAngle = iEvent.angle;\r\n interaction.gesture.scale = 1;\r\n});\r\n\r\nInteractEvent.signals.on('new', function (_ref2) {\r\n var iEvent = _ref2.iEvent,\r\n interaction = _ref2.interaction;\r\n\r\n if (iEvent.type !== 'gesturemove') {\r\n return;\r\n }\r\n\r\n iEvent.ds = iEvent.scale - interaction.gesture.scale;\r\n\r\n interaction.target.fire(iEvent);\r\n\r\n interaction.gesture.prevAngle = iEvent.angle;\r\n interaction.gesture.prevDistance = iEvent.distance;\r\n\r\n if (iEvent.scale !== Infinity && iEvent.scale !== null && iEvent.scale !== undefined && !isNaN(iEvent.scale)) {\r\n\r\n interaction.gesture.scale = iEvent.scale;\r\n }\r\n});\r\n\r\n/**\r\n * ```js\r\n * interact(element).gesturable({\r\n * onstart: function (event) {},\r\n * onmove : function (event) {},\r\n * onend : function (event) {},\r\n *\r\n * // limit multiple gestures.\r\n * // See the explanation in {@link Interactable.draggable} example\r\n * max: Infinity,\r\n * maxPerElement: 1,\r\n * });\r\n *\r\n * var isGestureable = interact(element).gesturable();\r\n * ```\r\n *\r\n * Gets or sets whether multitouch gestures can be performed on the target\r\n *\r\n * @param {boolean | object} [options] true/false or An object with event\r\n * listeners to be fired on gesture events (makes the Interactable gesturable)\r\n * @return {boolean | Interactable} A boolean indicating if this can be the\r\n * target of gesture events, or this Interactable\r\n */\r\nInteractable.prototype.gesturable = function (options) {\r\n if (utils.is.object(options)) {\r\n this.options.gesture.enabled = options.enabled === false ? false : true;\r\n this.setPerAction('gesture', options);\r\n this.setOnEvents('gesture', options);\r\n\r\n return this;\r\n }\r\n\r\n if (utils.is.bool(options)) {\r\n this.options.gesture.enabled = options;\r\n\r\n if (!options) {\r\n this.ongesturestart = this.ongesturestart = this.ongestureend = null;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n return this.options.gesture;\r\n};\r\n\r\nInteractEvent.signals.on('set-delta', function (_ref3) {\r\n var interaction = _ref3.interaction,\r\n iEvent = _ref3.iEvent,\r\n action = _ref3.action,\r\n event = _ref3.event,\r\n starting = _ref3.starting,\r\n ending = _ref3.ending,\r\n deltaSource = _ref3.deltaSource;\r\n\r\n if (action !== 'gesture') {\r\n return;\r\n }\r\n\r\n var pointers = interaction.pointers;\r\n\r\n iEvent.touches = [pointers[0], pointers[1]];\r\n\r\n if (starting) {\r\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\r\n iEvent.box = utils.touchBBox(pointers);\r\n iEvent.scale = 1;\r\n iEvent.ds = 0;\r\n iEvent.angle = utils.touchAngle(pointers, undefined, deltaSource);\r\n iEvent.da = 0;\r\n } else if (ending || event instanceof InteractEvent) {\r\n iEvent.distance = interaction.prevEvent.distance;\r\n iEvent.box = interaction.prevEvent.box;\r\n iEvent.scale = interaction.prevEvent.scale;\r\n iEvent.ds = iEvent.scale - 1;\r\n iEvent.angle = interaction.prevEvent.angle;\r\n iEvent.da = iEvent.angle - interaction.gesture.startAngle;\r\n } else {\r\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\r\n iEvent.box = utils.touchBBox(pointers);\r\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance;\r\n iEvent.angle = utils.touchAngle(pointers, interaction.gesture.prevAngle, deltaSource);\r\n\r\n iEvent.ds = iEvent.scale - interaction.gesture.prevScale;\r\n iEvent.da = iEvent.angle - interaction.gesture.prevAngle;\r\n }\r\n});\r\n\r\nInteraction.signals.on('new', function (interaction) {\r\n interaction.gesture = {\r\n start: { x: 0, y: 0 },\r\n\r\n startDistance: 0, // distance between two touches of touchStart\r\n prevDistance: 0,\r\n distance: 0,\r\n\r\n scale: 1, // gesture.distance / gesture.startDistance\r\n\r\n startAngle: 0, // angle of line joining two touches\r\n prevAngle: 0 // angle of the previous gesture event\r\n };\r\n});\r\n\r\nactions.gesture = gesture;\r\nactions.names.push('gesture');\r\nutils.merge(Interactable.eventTypes, ['gesturestart', 'gesturemove', 'gestureend']);\r\nactions.methodDict.gesture = 'gesturable';\r\n\r\ndefaultOptions.gesture = gesture.defaults;\r\n\r\nmodule.exports = gesture;\r\n\r\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],10:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar actions = require('./base');\r\nvar utils = require('../utils');\r\nvar browser = require('../utils/browser');\r\nvar InteractEvent = require('../InteractEvent');\r\n/** @lends Interactable */\r\nvar Interactable = require('../Interactable');\r\nvar Interaction = require('../Interaction');\r\nvar defaultOptions = require('../defaultOptions');\r\n\r\n// Less Precision with touch input\r\nvar defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10;\r\n\r\nvar resize = {\r\n defaults: {\r\n enabled: false,\r\n mouseButtons: null,\r\n\r\n origin: null,\r\n snap: null,\r\n restrict: null,\r\n inertia: null,\r\n autoScroll: null,\r\n\r\n square: false,\r\n preserveAspectRatio: false,\r\n axis: 'xy',\r\n\r\n // use default margin\r\n margin: NaN,\r\n\r\n // object with props left, right, top, bottom which are\r\n // true/false values to resize when the pointer is over that edge,\r\n // CSS selectors to match the handles for each direction\r\n // or the Elements for each handle\r\n edges: null,\r\n\r\n // a value of 'none' will limit the resize rect to a minimum of 0x0\r\n // 'negate' will alow the rect to have negative width/height\r\n // 'reposition' will keep the width/height positive by swapping\r\n // the top and bottom edges and/or swapping the left and right edges\r\n invert: 'none'\r\n },\r\n\r\n checker: function checker(pointer, event, interactable, element, interaction, rect) {\r\n if (!rect) {\r\n return null;\r\n }\r\n\r\n var page = utils.extend({}, interaction.curCoords.page);\r\n var options = interactable.options;\r\n\r\n if (options.resize.enabled) {\r\n var resizeOptions = options.resize;\r\n var resizeEdges = { left: false, right: false, top: false, bottom: false };\r\n\r\n // if using resize.edges\r\n if (utils.is.object(resizeOptions.edges)) {\r\n for (var edge in resizeEdges) {\r\n resizeEdges[edge] = checkResizeEdge(edge, resizeOptions.edges[edge], page, interaction._eventTarget, element, rect, resizeOptions.margin || defaultMargin);\r\n }\r\n\r\n resizeEdges.left = resizeEdges.left && !resizeEdges.right;\r\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;\r\n\r\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\r\n return {\r\n name: 'resize',\r\n edges: resizeEdges\r\n };\r\n }\r\n } else {\r\n var right = options.resize.axis !== 'y' && page.x > rect.right - defaultMargin;\r\n var bottom = options.resize.axis !== 'x' && page.y > rect.bottom - defaultMargin;\r\n\r\n if (right || bottom) {\r\n return {\r\n name: 'resize',\r\n axes: (right ? 'x' : '') + (bottom ? 'y' : '')\r\n };\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n cursors: browser.isIe9 ? {\r\n x: 'e-resize',\r\n y: 's-resize',\r\n xy: 'se-resize',\r\n\r\n top: 'n-resize',\r\n left: 'w-resize',\r\n bottom: 's-resize',\r\n right: 'e-resize',\r\n topleft: 'se-resize',\r\n bottomright: 'se-resize',\r\n topright: 'ne-resize',\r\n bottomleft: 'ne-resize'\r\n } : {\r\n x: 'ew-resize',\r\n y: 'ns-resize',\r\n xy: 'nwse-resize',\r\n\r\n top: 'ns-resize',\r\n left: 'ew-resize',\r\n bottom: 'ns-resize',\r\n right: 'ew-resize',\r\n topleft: 'nwse-resize',\r\n bottomright: 'nwse-resize',\r\n topright: 'nesw-resize',\r\n bottomleft: 'nesw-resize'\r\n },\r\n\r\n getCursor: function getCursor(action) {\r\n if (action.axis) {\r\n return resize.cursors[action.name + action.axis];\r\n } else if (action.edges) {\r\n var cursorKey = '';\r\n var edgeNames = ['top', 'bottom', 'left', 'right'];\r\n\r\n for (var i = 0; i < 4; i++) {\r\n if (action.edges[edgeNames[i]]) {\r\n cursorKey += edgeNames[i];\r\n }\r\n }\r\n\r\n return resize.cursors[cursorKey];\r\n }\r\n }\r\n};\r\n\r\n// resizestart\r\nInteractEvent.signals.on('new', function (_ref) {\r\n var iEvent = _ref.iEvent,\r\n interaction = _ref.interaction;\r\n\r\n if (iEvent.type !== 'resizestart' || !interaction.prepared.edges) {\r\n return;\r\n }\r\n\r\n var startRect = interaction.target.getRect(interaction.element);\r\n var resizeOptions = interaction.target.options.resize;\r\n\r\n /*\r\n * When using the `resizable.square` or `resizable.preserveAspectRatio` options, resizing from one edge\r\n * will affect another. E.g. with `resizable.square`, resizing to make the right edge larger will make\r\n * the bottom edge larger by the same amount. We call these 'linked' edges. Any linked edges will depend\r\n * on the active edges and the edge being interacted with.\r\n */\r\n if (resizeOptions.square || resizeOptions.preserveAspectRatio) {\r\n var linkedEdges = utils.extend({}, interaction.prepared.edges);\r\n\r\n linkedEdges.top = linkedEdges.top || linkedEdges.left && !linkedEdges.bottom;\r\n linkedEdges.left = linkedEdges.left || linkedEdges.top && !linkedEdges.right;\r\n linkedEdges.bottom = linkedEdges.bottom || linkedEdges.right && !linkedEdges.top;\r\n linkedEdges.right = linkedEdges.right || linkedEdges.bottom && !linkedEdges.left;\r\n\r\n interaction.prepared._linkedEdges = linkedEdges;\r\n } else {\r\n interaction.prepared._linkedEdges = null;\r\n }\r\n\r\n // if using `resizable.preserveAspectRatio` option, record aspect ratio at the start of the resize\r\n if (resizeOptions.preserveAspectRatio) {\r\n interaction.resizeStartAspectRatio = startRect.width / startRect.height;\r\n }\r\n\r\n interaction.resizeRects = {\r\n start: startRect,\r\n current: utils.extend({}, startRect),\r\n inverted: utils.extend({}, startRect),\r\n previous: utils.extend({}, startRect),\r\n delta: {\r\n left: 0, right: 0, width: 0,\r\n top: 0, bottom: 0, height: 0\r\n }\r\n };\r\n\r\n iEvent.rect = interaction.resizeRects.inverted;\r\n iEvent.deltaRect = interaction.resizeRects.delta;\r\n});\r\n\r\n// resizemove\r\nInteractEvent.signals.on('new', function (_ref2) {\r\n var iEvent = _ref2.iEvent,\r\n phase = _ref2.phase,\r\n interaction = _ref2.interaction;\r\n\r\n if (phase !== 'move' || !interaction.prepared.edges) {\r\n return;\r\n }\r\n\r\n var resizeOptions = interaction.target.options.resize;\r\n var invert = resizeOptions.invert;\r\n var invertible = invert === 'reposition' || invert === 'negate';\r\n\r\n var edges = interaction.prepared.edges;\r\n\r\n var start = interaction.resizeRects.start;\r\n var current = interaction.resizeRects.current;\r\n var inverted = interaction.resizeRects.inverted;\r\n var delta = interaction.resizeRects.delta;\r\n var previous = utils.extend(interaction.resizeRects.previous, inverted);\r\n var originalEdges = edges;\r\n\r\n var dx = iEvent.dx;\r\n var dy = iEvent.dy;\r\n\r\n if (resizeOptions.preserveAspectRatio || resizeOptions.square) {\r\n // `resize.preserveAspectRatio` takes precedence over `resize.square`\r\n var startAspectRatio = resizeOptions.preserveAspectRatio ? interaction.resizeStartAspectRatio : 1;\r\n\r\n edges = interaction.prepared._linkedEdges;\r\n\r\n if (originalEdges.left && originalEdges.bottom || originalEdges.right && originalEdges.top) {\r\n dy = -dx / startAspectRatio;\r\n } else if (originalEdges.left || originalEdges.right) {\r\n dy = dx / startAspectRatio;\r\n } else if (originalEdges.top || originalEdges.bottom) {\r\n dx = dy * startAspectRatio;\r\n }\r\n }\r\n\r\n // update the 'current' rect without modifications\r\n if (edges.top) {\r\n current.top += dy;\r\n }\r\n if (edges.bottom) {\r\n current.bottom += dy;\r\n }\r\n if (edges.left) {\r\n current.left += dx;\r\n }\r\n if (edges.right) {\r\n current.right += dx;\r\n }\r\n\r\n if (invertible) {\r\n // if invertible, copy the current rect\r\n utils.extend(inverted, current);\r\n\r\n if (invert === 'reposition') {\r\n // swap edge values if necessary to keep width/height positive\r\n var swap = void 0;\r\n\r\n if (inverted.top > inverted.bottom) {\r\n swap = inverted.top;\r\n\r\n inverted.top = inverted.bottom;\r\n inverted.bottom = swap;\r\n }\r\n if (inverted.left > inverted.right) {\r\n swap = inverted.left;\r\n\r\n inverted.left = inverted.right;\r\n inverted.right = swap;\r\n }\r\n }\r\n } else {\r\n // if not invertible, restrict to minimum of 0x0 rect\r\n inverted.top = Math.min(current.top, start.bottom);\r\n inverted.bottom = Math.max(current.bottom, start.top);\r\n inverted.left = Math.min(current.left, start.right);\r\n inverted.right = Math.max(current.right, start.left);\r\n }\r\n\r\n inverted.width = inverted.right - inverted.left;\r\n inverted.height = inverted.bottom - inverted.top;\r\n\r\n for (var edge in inverted) {\r\n delta[edge] = inverted[edge] - previous[edge];\r\n }\r\n\r\n iEvent.edges = interaction.prepared.edges;\r\n iEvent.rect = inverted;\r\n iEvent.deltaRect = delta;\r\n});\r\n\r\n/**\r\n * ```js\r\n * interact(element).resizable({\r\n * onstart: function (event) {},\r\n * onmove : function (event) {},\r\n * onend : function (event) {},\r\n *\r\n * edges: {\r\n * top : true, // Use pointer coords to check for resize.\r\n * left : false, // Disable resizing from left edge.\r\n * bottom: '.resize-s',// Resize if pointer target matches selector\r\n * right : handleEl // Resize if pointer target is the given Element\r\n * },\r\n *\r\n * // Width and height can be adjusted independently. When `true`, width and\r\n * // height are adjusted at a 1:1 ratio.\r\n * square: false,\r\n *\r\n * // Width and height can be adjusted independently. When `true`, width and\r\n * // height maintain the aspect ratio they had when resizing started.\r\n * preserveAspectRatio: false,\r\n *\r\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\r\n * // 'negate' will allow the rect to have negative width/height\r\n * // 'reposition' will keep the width/height positive by swapping\r\n * // the top and bottom edges and/or swapping the left and right edges\r\n * invert: 'none' || 'negate' || 'reposition'\r\n *\r\n * // limit multiple resizes.\r\n * // See the explanation in the {@link Interactable.draggable} example\r\n * max: Infinity,\r\n * maxPerElement: 1,\r\n * });\r\n *\r\n * var isResizeable = interact(element).resizable();\r\n * ```\r\n *\r\n * Gets or sets whether resize actions can be performed on the target\r\n *\r\n * @param {boolean | object} [options] true/false or An object with event\r\n * listeners to be fired on resize events (object makes the Interactable\r\n * resizable)\r\n * @return {boolean | Interactable} A boolean indicating if this can be the\r\n * target of resize elements, or this Interactable\r\n */\r\nInteractable.prototype.resizable = function (options) {\r\n if (utils.is.object(options)) {\r\n this.options.resize.enabled = options.enabled === false ? false : true;\r\n this.setPerAction('resize', options);\r\n this.setOnEvents('resize', options);\r\n\r\n if (/^x$|^y$|^xy$/.test(options.axis)) {\r\n this.options.resize.axis = options.axis;\r\n } else if (options.axis === null) {\r\n this.options.resize.axis = defaultOptions.resize.axis;\r\n }\r\n\r\n if (utils.is.bool(options.preserveAspectRatio)) {\r\n this.options.resize.preserveAspectRatio = options.preserveAspectRatio;\r\n } else if (utils.is.bool(options.square)) {\r\n this.options.resize.square = options.square;\r\n }\r\n\r\n return this;\r\n }\r\n if (utils.is.bool(options)) {\r\n this.options.resize.enabled = options;\r\n\r\n if (!options) {\r\n this.onresizestart = this.onresizestart = this.onresizeend = null;\r\n }\r\n\r\n return this;\r\n }\r\n return this.options.resize;\r\n};\r\n\r\nfunction checkResizeEdge(name, value, page, element, interactableElement, rect, margin) {\r\n // false, '', undefined, null\r\n if (!value) {\r\n return false;\r\n }\r\n\r\n // true value, use pointer coords and element rect\r\n if (value === true) {\r\n // if dimensions are negative, \"switch\" edges\r\n var width = utils.is.number(rect.width) ? rect.width : rect.right - rect.left;\r\n var height = utils.is.number(rect.height) ? rect.height : rect.bottom - rect.top;\r\n\r\n if (width < 0) {\r\n if (name === 'left') {\r\n name = 'right';\r\n } else if (name === 'right') {\r\n name = 'left';\r\n }\r\n }\r\n if (height < 0) {\r\n if (name === 'top') {\r\n name = 'bottom';\r\n } else if (name === 'bottom') {\r\n name = 'top';\r\n }\r\n }\r\n\r\n if (name === 'left') {\r\n return page.x < (width >= 0 ? rect.left : rect.right) + margin;\r\n }\r\n if (name === 'top') {\r\n return page.y < (height >= 0 ? rect.top : rect.bottom) + margin;\r\n }\r\n\r\n if (name === 'right') {\r\n return page.x > (width >= 0 ? rect.right : rect.left) - margin;\r\n }\r\n if (name === 'bottom') {\r\n return page.y > (height >= 0 ? rect.bottom : rect.top) - margin;\r\n }\r\n }\r\n\r\n // the remaining checks require an element\r\n if (!utils.is.element(element)) {\r\n return false;\r\n }\r\n\r\n return utils.is.element(value)\r\n // the value is an element to use as a resize handle\r\n ? value === element\r\n // otherwise check if element matches value as selector\r\n : utils.matchesUpTo(element, value, interactableElement);\r\n}\r\n\r\nInteraction.signals.on('new', function (interaction) {\r\n interaction.resizeAxes = 'xy';\r\n});\r\n\r\nInteractEvent.signals.on('set-delta', function (_ref3) {\r\n var interaction = _ref3.interaction,\r\n iEvent = _ref3.iEvent,\r\n action = _ref3.action;\r\n\r\n if (action !== 'resize' || !interaction.resizeAxes) {\r\n return;\r\n }\r\n\r\n var options = interaction.target.options;\r\n\r\n if (options.resize.square) {\r\n if (interaction.resizeAxes === 'y') {\r\n iEvent.dx = iEvent.dy;\r\n } else {\r\n iEvent.dy = iEvent.dx;\r\n }\r\n iEvent.axes = 'xy';\r\n } else {\r\n iEvent.axes = interaction.resizeAxes;\r\n\r\n if (interaction.resizeAxes === 'x') {\r\n iEvent.dy = 0;\r\n } else if (interaction.resizeAxes === 'y') {\r\n iEvent.dx = 0;\r\n }\r\n }\r\n});\r\n\r\nactions.resize = resize;\r\nactions.names.push('resize');\r\nutils.merge(Interactable.eventTypes, ['resizestart', 'resizemove', 'resizeinertiastart', 'resizeinertiaresume', 'resizeend']);\r\nactions.methodDict.resize = 'resizable';\r\n\r\ndefaultOptions.resize = resize.defaults;\r\n\r\nmodule.exports = resize;\r\n\r\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/browser\":36,\"./base\":6}],11:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar raf = require('./utils/raf');\r\nvar getWindow = require('./utils/window').getWindow;\r\nvar is = require('./utils/is');\r\nvar domUtils = require('./utils/domUtils');\r\nvar Interaction = require('./Interaction');\r\nvar defaultOptions = require('./defaultOptions');\r\n\r\nvar autoScroll = {\r\n defaults: {\r\n enabled: false,\r\n container: null, // the item that is scrolled (Window or HTMLElement)\r\n margin: 60,\r\n speed: 300 // the scroll speed in pixels per second\r\n },\r\n\r\n interaction: null,\r\n i: null, // the handle returned by window.setInterval\r\n x: 0, y: 0, // Direction each pulse is to scroll in\r\n\r\n isScrolling: false,\r\n prevTime: 0,\r\n\r\n start: function start(interaction) {\r\n autoScroll.isScrolling = true;\r\n raf.cancel(autoScroll.i);\r\n\r\n autoScroll.interaction = interaction;\r\n autoScroll.prevTime = new Date().getTime();\r\n autoScroll.i = raf.request(autoScroll.scroll);\r\n },\r\n\r\n stop: function stop() {\r\n autoScroll.isScrolling = false;\r\n raf.cancel(autoScroll.i);\r\n },\r\n\r\n // scroll the window by the values in scroll.x/y\r\n scroll: function scroll() {\r\n var options = autoScroll.interaction.target.options[autoScroll.interaction.prepared.name].autoScroll;\r\n var container = options.container || getWindow(autoScroll.interaction.element);\r\n var now = new Date().getTime();\r\n // change in time in seconds\r\n var dt = (now - autoScroll.prevTime) / 1000;\r\n // displacement\r\n var s = options.speed * dt;\r\n\r\n if (s >= 1) {\r\n if (is.window(container)) {\r\n container.scrollBy(autoScroll.x * s, autoScroll.y * s);\r\n } else if (container) {\r\n container.scrollLeft += autoScroll.x * s;\r\n container.scrollTop += autoScroll.y * s;\r\n }\r\n\r\n autoScroll.prevTime = now;\r\n }\r\n\r\n if (autoScroll.isScrolling) {\r\n raf.cancel(autoScroll.i);\r\n autoScroll.i = raf.request(autoScroll.scroll);\r\n }\r\n },\r\n check: function check(interactable, actionName) {\r\n var options = interactable.options;\r\n\r\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled;\r\n },\r\n onInteractionMove: function onInteractionMove(_ref) {\r\n var interaction = _ref.interaction,\r\n pointer = _ref.pointer;\r\n\r\n if (!(interaction.interacting() && autoScroll.check(interaction.target, interaction.prepared.name))) {\r\n return;\r\n }\r\n\r\n if (interaction.simulation) {\r\n autoScroll.x = autoScroll.y = 0;\r\n return;\r\n }\r\n\r\n var top = void 0;\r\n var right = void 0;\r\n var bottom = void 0;\r\n var left = void 0;\r\n\r\n var options = interaction.target.options[interaction.prepared.name].autoScroll;\r\n var container = options.container || getWindow(interaction.element);\r\n\r\n if (is.window(container)) {\r\n left = pointer.clientX < autoScroll.margin;\r\n top = pointer.clientY < autoScroll.margin;\r\n right = pointer.clientX > container.innerWidth - autoScroll.margin;\r\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin;\r\n } else {\r\n var rect = domUtils.getElementClientRect(container);\r\n\r\n left = pointer.clientX < rect.left + autoScroll.margin;\r\n top = pointer.clientY < rect.top + autoScroll.margin;\r\n right = pointer.clientX > rect.right - autoScroll.margin;\r\n bottom = pointer.clientY > rect.bottom - autoScroll.margin;\r\n }\r\n\r\n autoScroll.x = right ? 1 : left ? -1 : 0;\r\n autoScroll.y = bottom ? 1 : top ? -1 : 0;\r\n\r\n if (!autoScroll.isScrolling) {\r\n // set the autoScroll properties to those of the target\r\n autoScroll.margin = options.margin;\r\n autoScroll.speed = options.speed;\r\n\r\n autoScroll.start(interaction);\r\n }\r\n }\r\n};\r\n\r\nInteraction.signals.on('stop-active', function () {\r\n autoScroll.stop();\r\n});\r\n\r\nInteraction.signals.on('action-move', autoScroll.onInteractionMove);\r\n\r\ndefaultOptions.perAction.autoScroll = autoScroll.defaults;\r\n\r\nmodule.exports = autoScroll;\r\n\r\n},{\"./Interaction\":5,\"./defaultOptions\":18,\"./utils/domUtils\":39,\"./utils/is\":46,\"./utils/raf\":50,\"./utils/window\":52}],12:[function(require,module,exports){\r\n'use strict';\r\n\r\n/** @lends Interactable */\r\nvar Interactable = require('../Interactable');\r\nvar actions = require('../actions/base');\r\nvar is = require('../utils/is');\r\nvar domUtils = require('../utils/domUtils');\r\n\r\nvar _require = require('../utils'),\r\n warnOnce = _require.warnOnce;\r\n\r\nInteractable.prototype.getAction = function (pointer, event, interaction, element) {\r\n var action = this.defaultActionChecker(pointer, event, interaction, element);\r\n\r\n if (this.options.actionChecker) {\r\n return this.options.actionChecker(pointer, event, action, this, element, interaction);\r\n }\r\n\r\n return action;\r\n};\r\n\r\n/**\r\n * ```js\r\n * interact(element, { ignoreFrom: document.getElementById('no-action') });\r\n * // or\r\n * interact(element).ignoreFrom('input, textarea, a');\r\n * ```\r\n * @deprecated\r\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\r\n * of it's parents match the given CSS selector or Element, no\r\n * drag/resize/gesture is started.\r\n *\r\n * Don't use this method. Instead set the `ignoreFrom` option for each action\r\n * or for `pointerEvents`\r\n *\r\n * @example\r\n * interact(targett)\r\n * .draggable({\r\n * ignoreFrom: 'input, textarea, a[href]'',\r\n * })\r\n * .pointerEvents({\r\n * ignoreFrom: '[no-pointer]',\r\n * });\r\n *\r\n * @param {string | Element | null} [newValue] a CSS selector string, an\r\n * Element or `null` to not ignore any elements\r\n * @return {string | Element | object} The current ignoreFrom value or this\r\n * Interactable\r\n */\r\nInteractable.prototype.ignoreFrom = warnOnce(function (newValue) {\r\n return this._backCompatOption('ignoreFrom', newValue);\r\n}, 'Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).');\r\n\r\n/**\r\n * ```js\r\n *\r\n * @deprecated\r\n * A drag/resize/gesture is started only If the target of the `mousedown`,\r\n * `pointerdown` or `touchstart` event or any of it's parents match the given\r\n * CSS selector or Element.\r\n *\r\n * Don't use this method. Instead set the `allowFrom` option for each action\r\n * or for `pointerEvents`\r\n *\r\n * @example\r\n * interact(targett)\r\n * .resizable({\r\n * allowFrom: '.resize-handle',\r\n * .pointerEvents({\r\n * allowFrom: '.handle',,\r\n * });\r\n *\r\n * @param {string | Element | null} [newValue] a CSS selector string, an\r\n * Element or `null` to allow from any element\r\n * @return {string | Element | object} The current allowFrom value or this\r\n * Interactable\r\n */\r\nInteractable.prototype.allowFrom = warnOnce(function (newValue) {\r\n return this._backCompatOption('allowFrom', newValue);\r\n}, 'Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).');\r\n\r\nInteractable.prototype.testIgnore = function (ignoreFrom, interactableElement, element) {\r\n if (!ignoreFrom || !is.element(element)) {\r\n return false;\r\n }\r\n\r\n if (is.string(ignoreFrom)) {\r\n return domUtils.matchesUpTo(element, ignoreFrom, interactableElement);\r\n } else if (is.element(ignoreFrom)) {\r\n return domUtils.nodeContains(ignoreFrom, element);\r\n }\r\n\r\n return false;\r\n};\r\n\r\nInteractable.prototype.testAllow = function (allowFrom, interactableElement, element) {\r\n if (!allowFrom) {\r\n return true;\r\n }\r\n\r\n if (!is.element(element)) {\r\n return false;\r\n }\r\n\r\n if (is.string(allowFrom)) {\r\n return domUtils.matchesUpTo(element, allowFrom, interactableElement);\r\n } else if (is.element(allowFrom)) {\r\n return domUtils.nodeContains(allowFrom, element);\r\n }\r\n\r\n return false;\r\n};\r\n\r\nInteractable.prototype.testIgnoreAllow = function (options, interactableElement, eventTarget) {\r\n return !this.testIgnore(options.ignoreFrom, interactableElement, eventTarget) && this.testAllow(options.allowFrom, interactableElement, eventTarget);\r\n};\r\n\r\n/**\r\n * ```js\r\n * interact('.resize-drag')\r\n * .resizable(true)\r\n * .draggable(true)\r\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\r\n *\r\n * if (interact.matchesSelector(event.target, '.drag-handle') {\r\n * // force drag with handle target\r\n * action.name = drag;\r\n * }\r\n * else {\r\n * // resize from the top and right edges\r\n * action.name = 'resize';\r\n * action.edges = { top: true, right: true };\r\n * }\r\n *\r\n * return action;\r\n * });\r\n * ```\r\n *\r\n * Gets or sets the function used to check action to be performed on\r\n * pointerDown\r\n *\r\n * @param {function | null} [checker] A function which takes a pointer event,\r\n * defaultAction string, interactable, element and interaction as parameters\r\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\r\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\r\n * props.\r\n * @return {Function | Interactable} The checker function or this Interactable\r\n */\r\nInteractable.prototype.actionChecker = function (checker) {\r\n if (is.function(checker)) {\r\n this.options.actionChecker = checker;\r\n\r\n return this;\r\n }\r\n\r\n if (checker === null) {\r\n delete this.options.actionChecker;\r\n\r\n return this;\r\n }\r\n\r\n return this.options.actionChecker;\r\n};\r\n\r\n/**\r\n * Returns or sets whether the the cursor should be changed depending on the\r\n * action that would be performed if the mouse were pressed and dragged.\r\n *\r\n * @param {boolean} [newValue]\r\n * @return {boolean | Interactable} The current setting or this Interactable\r\n */\r\nInteractable.prototype.styleCursor = function (newValue) {\r\n if (is.bool(newValue)) {\r\n this.options.styleCursor = newValue;\r\n\r\n return this;\r\n }\r\n\r\n if (newValue === null) {\r\n delete this.options.styleCursor;\r\n\r\n return this;\r\n }\r\n\r\n return this.options.styleCursor;\r\n};\r\n\r\nInteractable.prototype.defaultActionChecker = function (pointer, event, interaction, element) {\r\n var rect = this.getRect(element);\r\n var buttons = event.buttons || {\r\n 0: 1,\r\n 1: 4,\r\n 3: 8,\r\n 4: 16\r\n }[event.button];\r\n var action = null;\r\n\r\n for (var _i = 0; _i < actions.names.length; _i++) {\r\n var _ref;\r\n\r\n _ref = actions.names[_i];\r\n var actionName = _ref;\r\n\r\n // check mouseButton setting if the pointer is down\r\n if (interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & this.options[actionName].mouseButtons) === 0) {\r\n continue;\r\n }\r\n\r\n action = actions[actionName].checker(pointer, event, this, element, interaction, rect);\r\n\r\n if (action) {\r\n return action;\r\n }\r\n }\r\n};\r\n\r\n},{\"../Interactable\":4,\"../actions/base\":6,\"../utils\":44,\"../utils/domUtils\":39,\"../utils/is\":46}],13:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar interact = require('../interact');\r\nvar Interactable = require('../Interactable');\r\nvar Interaction = require('../Interaction');\r\nvar actions = require('../actions/base');\r\nvar defaultOptions = require('../defaultOptions');\r\nvar scope = require('../scope');\r\nvar utils = require('../utils');\r\nvar signals = require('../utils/Signals').new();\r\n\r\nrequire('./InteractableMethods');\r\n\r\nvar autoStart = {\r\n signals: signals,\r\n withinInteractionLimit: withinInteractionLimit,\r\n // Allow this many interactions to happen simultaneously\r\n maxInteractions: Infinity,\r\n defaults: {\r\n perAction: {\r\n manualStart: false,\r\n max: Infinity,\r\n maxPerElement: 1,\r\n allowFrom: null,\r\n ignoreFrom: null,\r\n\r\n // only allow left button by default\r\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\r\n mouseButtons: 1\r\n }\r\n },\r\n setActionDefaults: function setActionDefaults(action) {\r\n utils.extend(action.defaults, autoStart.defaults.perAction);\r\n },\r\n validateAction: validateAction\r\n};\r\n\r\n// set cursor style on mousedown\r\nInteraction.signals.on('down', function (_ref) {\r\n var interaction = _ref.interaction,\r\n pointer = _ref.pointer,\r\n event = _ref.event,\r\n eventTarget = _ref.eventTarget;\r\n\r\n if (interaction.interacting()) {\r\n return;\r\n }\r\n\r\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\r\n prepare(interaction, actionInfo);\r\n});\r\n\r\n// set cursor style on mousemove\r\nInteraction.signals.on('move', function (_ref2) {\r\n var interaction = _ref2.interaction,\r\n pointer = _ref2.pointer,\r\n event = _ref2.event,\r\n eventTarget = _ref2.eventTarget;\r\n\r\n if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) {\r\n return;\r\n }\r\n\r\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\r\n prepare(interaction, actionInfo);\r\n});\r\n\r\nInteraction.signals.on('move', function (arg) {\r\n var interaction = arg.interaction,\r\n event = arg.event;\r\n\r\n\r\n if (!interaction.pointerIsDown || interaction.interacting() || !interaction.pointerWasMoved || !interaction.prepared.name) {\r\n return;\r\n }\r\n\r\n signals.fire('before-start', arg);\r\n\r\n var target = interaction.target;\r\n\r\n if (interaction.prepared.name && target) {\r\n // check manualStart and interaction limit\r\n if (target.options[interaction.prepared.name].manualStart || !withinInteractionLimit(target, interaction.element, interaction.prepared)) {\r\n interaction.stop(event);\r\n } else {\r\n interaction.start(interaction.prepared, target, interaction.element);\r\n }\r\n }\r\n});\r\n\r\n// Check if the current target supports the action.\r\n// If so, return the validated action. Otherwise, return null\r\nfunction validateAction(action, interactable, element, eventTarget) {\r\n if (utils.is.object(action) && interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) && interactable.options[action.name].enabled && withinInteractionLimit(interactable, element, action)) {\r\n return action;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction validateSelector(interaction, pointer, event, matches, matchElements, eventTarget) {\r\n for (var i = 0, len = matches.length; i < len; i++) {\r\n var match = matches[i];\r\n var matchElement = matchElements[i];\r\n var action = validateAction(match.getAction(pointer, event, interaction, matchElement), match, matchElement, eventTarget);\r\n\r\n if (action) {\r\n return {\r\n action: action,\r\n target: match,\r\n element: matchElement\r\n };\r\n }\r\n }\r\n\r\n return {};\r\n}\r\n\r\nfunction getActionInfo(interaction, pointer, event, eventTarget) {\r\n var matches = [];\r\n var matchElements = [];\r\n\r\n var element = eventTarget;\r\n\r\n function pushMatches(interactable) {\r\n matches.push(interactable);\r\n matchElements.push(element);\r\n }\r\n\r\n while (utils.is.element(element)) {\r\n matches = [];\r\n matchElements = [];\r\n\r\n scope.interactables.forEachMatch(element, pushMatches);\r\n\r\n var actionInfo = validateSelector(interaction, pointer, event, matches, matchElements, eventTarget);\r\n\r\n if (actionInfo.action && !actionInfo.target.options[actionInfo.action.name].manualStart) {\r\n return actionInfo;\r\n }\r\n\r\n element = utils.parentNode(element);\r\n }\r\n\r\n return {};\r\n}\r\n\r\nfunction prepare(interaction, _ref3) {\r\n var action = _ref3.action,\r\n target = _ref3.target,\r\n element = _ref3.element;\r\n\r\n action = action || {};\r\n\r\n if (interaction.target && interaction.target.options.styleCursor) {\r\n interaction.target._doc.documentElement.style.cursor = '';\r\n }\r\n\r\n interaction.target = target;\r\n interaction.element = element;\r\n utils.copyAction(interaction.prepared, action);\r\n\r\n if (target && target.options.styleCursor) {\r\n var cursor = action ? actions[action.name].getCursor(action) : '';\r\n interaction.target._doc.documentElement.style.cursor = cursor;\r\n }\r\n\r\n signals.fire('prepared', { interaction: interaction });\r\n}\r\n\r\nInteraction.signals.on('stop', function (_ref4) {\r\n var interaction = _ref4.interaction;\r\n\r\n var target = interaction.target;\r\n\r\n if (target && target.options.styleCursor) {\r\n target._doc.documentElement.style.cursor = '';\r\n }\r\n});\r\n\r\nfunction withinInteractionLimit(interactable, element, action) {\r\n var options = interactable.options;\r\n var maxActions = options[action.name].max;\r\n var maxPerElement = options[action.name].maxPerElement;\r\n var activeInteractions = 0;\r\n var targetCount = 0;\r\n var targetElementCount = 0;\r\n\r\n // no actions if any of these values == 0\r\n if (!(maxActions && maxPerElement && autoStart.maxInteractions)) {\r\n return;\r\n }\r\n\r\n for (var _i = 0; _i < scope.interactions.length; _i++) {\r\n var _ref5;\r\n\r\n _ref5 = scope.interactions[_i];\r\n var interaction = _ref5;\r\n\r\n var otherAction = interaction.prepared.name;\r\n\r\n if (!interaction.interacting()) {\r\n continue;\r\n }\r\n\r\n activeInteractions++;\r\n\r\n if (activeInteractions >= autoStart.maxInteractions) {\r\n return false;\r\n }\r\n\r\n if (interaction.target !== interactable) {\r\n continue;\r\n }\r\n\r\n targetCount += otherAction === action.name | 0;\r\n\r\n if (targetCount >= maxActions) {\r\n return false;\r\n }\r\n\r\n if (interaction.element === element) {\r\n targetElementCount++;\r\n\r\n if (otherAction !== action.name || targetElementCount >= maxPerElement) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return autoStart.maxInteractions > 0;\r\n}\r\n\r\n/**\r\n * Returns or sets the maximum number of concurrent interactions allowed. By\r\n * default only 1 interaction is allowed at a time (for backwards\r\n * compatibility). To allow multiple interactions on the same Interactables and\r\n * elements, you need to enable it in the draggable, resizable and gesturable\r\n * `'max'` and `'maxPerElement'` options.\r\n *\r\n * @alias module:interact.maxInteractions\r\n *\r\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\r\n */\r\ninteract.maxInteractions = function (newValue) {\r\n if (utils.is.number(newValue)) {\r\n autoStart.maxInteractions = newValue;\r\n\r\n return interact;\r\n }\r\n\r\n return autoStart.maxInteractions;\r\n};\r\n\r\nInteractable.settingsMethods.push('styleCursor');\r\nInteractable.settingsMethods.push('actionChecker');\r\nInteractable.settingsMethods.push('ignoreFrom');\r\nInteractable.settingsMethods.push('allowFrom');\r\n\r\ndefaultOptions.base.actionChecker = null;\r\ndefaultOptions.base.styleCursor = true;\r\n\r\nutils.extend(defaultOptions.perAction, autoStart.defaults.perAction);\r\n\r\nmodule.exports = autoStart;\r\n\r\n},{\"../Interactable\":4,\"../Interaction\":5,\"../actions/base\":6,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"../utils/Signals\":34,\"./InteractableMethods\":12}],14:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar autoStart = require('./base');\r\nvar scope = require('../scope');\r\nvar is = require('../utils/is');\r\n\r\nvar _require = require('../utils/domUtils'),\r\n parentNode = _require.parentNode;\r\n\r\nautoStart.setActionDefaults(require('../actions/drag'));\r\n\r\nautoStart.signals.on('before-start', function (_ref) {\r\n var interaction = _ref.interaction,\r\n eventTarget = _ref.eventTarget,\r\n dx = _ref.dx,\r\n dy = _ref.dy;\r\n\r\n if (interaction.prepared.name !== 'drag') {\r\n return;\r\n }\r\n\r\n // check if a drag is in the correct axis\r\n var absX = Math.abs(dx);\r\n var absY = Math.abs(dy);\r\n var targetOptions = interaction.target.options.drag;\r\n var startAxis = targetOptions.startAxis;\r\n var currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy';\r\n\r\n interaction.prepared.axis = targetOptions.lockAxis === 'start' ? currentAxis[0] // always lock to one axis even if currentAxis === 'xy'\r\n : targetOptions.lockAxis;\r\n\r\n // if the movement isn't in the startAxis of the interactable\r\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\r\n // cancel the prepared action\r\n interaction.prepared.name = null;\r\n\r\n // then try to get a drag from another ineractable\r\n var element = eventTarget;\r\n\r\n var getDraggable = function getDraggable(interactable) {\r\n if (interactable === interaction.target) {\r\n return;\r\n }\r\n\r\n var options = interaction.target.options.drag;\r\n\r\n if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {\r\n\r\n var action = interactable.getAction(interaction.downPointer, interaction.downEvent, interaction, element);\r\n\r\n if (action && action.name === 'drag' && checkStartAxis(currentAxis, interactable) && autoStart.validateAction(action, interactable, element, eventTarget)) {\r\n\r\n return interactable;\r\n }\r\n }\r\n };\r\n\r\n // check all interactables\r\n while (is.element(element)) {\r\n var interactable = scope.interactables.forEachMatch(element, getDraggable);\r\n\r\n if (interactable) {\r\n interaction.prepared.name = 'drag';\r\n interaction.target = interactable;\r\n interaction.element = element;\r\n break;\r\n }\r\n\r\n element = parentNode(element);\r\n }\r\n }\r\n});\r\n\r\nfunction checkStartAxis(startAxis, interactable) {\r\n if (!interactable) {\r\n return false;\r\n }\r\n\r\n var thisAxis = interactable.options.drag.startAxis;\r\n\r\n return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis;\r\n}\r\n\r\n},{\"../actions/drag\":7,\"../scope\":33,\"../utils/domUtils\":39,\"../utils/is\":46,\"./base\":13}],15:[function(require,module,exports){\r\n'use strict';\r\n\r\nrequire('./base').setActionDefaults(require('../actions/gesture'));\r\n\r\n},{\"../actions/gesture\":9,\"./base\":13}],16:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar autoStart = require('./base');\r\nvar Interaction = require('../Interaction');\r\n\r\nautoStart.defaults.perAction.hold = 0;\r\nautoStart.defaults.perAction.delay = 0;\r\n\r\nInteraction.signals.on('new', function (interaction) {\r\n interaction.autoStartHoldTimer = null;\r\n});\r\n\r\nautoStart.signals.on('prepared', function (_ref) {\r\n var interaction = _ref.interaction;\r\n\r\n var hold = getHoldDuration(interaction);\r\n\r\n if (hold > 0) {\r\n interaction.autoStartHoldTimer = setTimeout(function () {\r\n interaction.start(interaction.prepared, interaction.target, interaction.element);\r\n }, hold);\r\n }\r\n});\r\n\r\nInteraction.signals.on('move', function (_ref2) {\r\n var interaction = _ref2.interaction,\r\n duplicate = _ref2.duplicate;\r\n\r\n if (interaction.pointerWasMoved && !duplicate) {\r\n clearTimeout(interaction.autoStartHoldTimer);\r\n }\r\n});\r\n\r\n// prevent regular down->move autoStart\r\nautoStart.signals.on('before-start', function (_ref3) {\r\n var interaction = _ref3.interaction;\r\n\r\n var hold = getHoldDuration(interaction);\r\n\r\n if (hold > 0) {\r\n interaction.prepared.name = null;\r\n }\r\n});\r\n\r\nfunction getHoldDuration(interaction) {\r\n var actionName = interaction.prepared && interaction.prepared.name;\r\n\r\n if (!actionName) {\r\n return null;\r\n }\r\n\r\n var options = interaction.target.options;\r\n\r\n return options[actionName].hold || options[actionName].delay;\r\n}\r\n\r\nmodule.exports = {\r\n getHoldDuration: getHoldDuration\r\n};\r\n\r\n},{\"../Interaction\":5,\"./base\":13}],17:[function(require,module,exports){\r\n'use strict';\r\n\r\nrequire('./base').setActionDefaults(require('../actions/resize'));\r\n\r\n},{\"../actions/resize\":10,\"./base\":13}],18:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = {\r\n base: {\r\n accept: null,\r\n preventDefault: 'auto',\r\n deltaSource: 'page'\r\n },\r\n\r\n perAction: {\r\n origin: { x: 0, y: 0 },\r\n\r\n inertia: {\r\n enabled: false,\r\n resistance: 10, // the lambda in exponential decay\r\n minSpeed: 100, // target speed must be above this for inertia to start\r\n endSpeed: 10, // the speed at which inertia is slow enough to stop\r\n allowResume: true, // allow resuming an action in inertia phase\r\n smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia\r\n }\r\n }\r\n};\r\n\r\n},{}],19:[function(require,module,exports){\r\n'use strict';\r\n\r\n/* browser entry point */\r\n\r\n// inertia\r\nrequire('./inertia');\r\n\r\n// modifiers\r\nrequire('./modifiers/snap');\r\nrequire('./modifiers/restrict');\r\n\r\n// pointerEvents\r\nrequire('./pointerEvents/base');\r\nrequire('./pointerEvents/holdRepeat');\r\nrequire('./pointerEvents/interactableTargets');\r\n\r\n// autoStart hold\r\nrequire('./autoStart/hold');\r\n\r\n// actions\r\nrequire('./actions/gesture');\r\nrequire('./actions/resize');\r\nrequire('./actions/drag');\r\nrequire('./actions/drop');\r\n\r\n// load these modifiers after resize is loaded\r\nrequire('./modifiers/snapSize');\r\nrequire('./modifiers/restrictEdges');\r\nrequire('./modifiers/restrictSize');\r\n\r\n// autoStart actions\r\nrequire('./autoStart/gesture');\r\nrequire('./autoStart/resize');\r\nrequire('./autoStart/drag');\r\n\r\n// Interactable preventDefault setting\r\nrequire('./interactablePreventDefault.js');\r\n\r\n// autoScroll\r\nrequire('./autoScroll');\r\n\r\n// export interact\r\nmodule.exports = require('./interact');\r\n\r\n},{\"./actions/drag\":7,\"./actions/drop\":8,\"./actions/gesture\":9,\"./actions/resize\":10,\"./autoScroll\":11,\"./autoStart/drag\":14,\"./autoStart/gesture\":15,\"./autoStart/hold\":16,\"./autoStart/resize\":17,\"./inertia\":20,\"./interact\":21,\"./interactablePreventDefault.js\":22,\"./modifiers/restrict\":24,\"./modifiers/restrictEdges\":25,\"./modifiers/restrictSize\":26,\"./modifiers/snap\":27,\"./modifiers/snapSize\":28,\"./pointerEvents/base\":30,\"./pointerEvents/holdRepeat\":31,\"./pointerEvents/interactableTargets\":32}],20:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar InteractEvent = require('./InteractEvent');\r\nvar Interaction = require('./Interaction');\r\nvar modifiers = require('./modifiers/base');\r\nvar utils = require('./utils');\r\nvar animationFrame = require('./utils/raf');\r\n\r\nInteraction.signals.on('new', function (interaction) {\r\n interaction.inertiaStatus = {\r\n active: false,\r\n smoothEnd: false,\r\n allowResume: false,\r\n\r\n startEvent: null,\r\n upCoords: {},\r\n\r\n xe: 0, ye: 0,\r\n sx: 0, sy: 0,\r\n\r\n t0: 0,\r\n vx0: 0, vys: 0,\r\n duration: 0,\r\n\r\n lambda_v0: 0,\r\n one_ve_v0: 0,\r\n i: null\r\n };\r\n\r\n interaction.boundInertiaFrame = function () {\r\n return inertiaFrame.apply(interaction);\r\n };\r\n interaction.boundSmoothEndFrame = function () {\r\n return smoothEndFrame.apply(interaction);\r\n };\r\n});\r\n\r\nInteraction.signals.on('down', function (_ref) {\r\n var interaction = _ref.interaction,\r\n event = _ref.event,\r\n pointer = _ref.pointer,\r\n eventTarget = _ref.eventTarget;\r\n\r\n var status = interaction.inertiaStatus;\r\n\r\n // Check if the down event hits the current inertia target\r\n if (status.active) {\r\n var element = eventTarget;\r\n\r\n // climb up the DOM tree from the event target\r\n while (utils.is.element(element)) {\r\n\r\n // if interaction element is the current inertia target element\r\n if (element === interaction.element) {\r\n // stop inertia\r\n animationFrame.cancel(status.i);\r\n status.active = false;\r\n interaction.simulation = null;\r\n\r\n // update pointers to the down event's coordinates\r\n interaction.updatePointer(pointer);\r\n utils.setCoords(interaction.curCoords, interaction.pointers);\r\n\r\n // fire appropriate signals\r\n var signalArg = { interaction: interaction };\r\n Interaction.signals.fire('before-action-move', signalArg);\r\n Interaction.signals.fire('action-resume', signalArg);\r\n\r\n // fire a reume event\r\n var resumeEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiaresume', interaction.element);\r\n\r\n interaction.target.fire(resumeEvent);\r\n interaction.prevEvent = resumeEvent;\r\n modifiers.resetStatuses(interaction.modifierStatuses);\r\n\r\n utils.copyCoords(interaction.prevCoords, interaction.curCoords);\r\n break;\r\n }\r\n\r\n element = utils.parentNode(element);\r\n }\r\n }\r\n});\r\n\r\nInteraction.signals.on('up', function (_ref2) {\r\n var interaction = _ref2.interaction,\r\n event = _ref2.event;\r\n\r\n var status = interaction.inertiaStatus;\r\n\r\n if (!interaction.interacting() || status.active) {\r\n return;\r\n }\r\n\r\n var target = interaction.target;\r\n var options = target && target.options;\r\n var inertiaOptions = options && interaction.prepared.name && options[interaction.prepared.name].inertia;\r\n\r\n var now = new Date().getTime();\r\n var statuses = {};\r\n var page = utils.extend({}, interaction.curCoords.page);\r\n var pointerSpeed = interaction.pointerDelta.client.speed;\r\n\r\n var smoothEnd = false;\r\n var modifierResult = void 0;\r\n\r\n // check if inertia should be started\r\n var inertiaPossible = inertiaOptions && inertiaOptions.enabled && interaction.prepared.name !== 'gesture' && event !== status.startEvent;\r\n\r\n var inertia = inertiaPossible && now - interaction.curCoords.timeStamp < 50 && pointerSpeed > inertiaOptions.minSpeed && pointerSpeed > inertiaOptions.endSpeed;\r\n\r\n var modifierArg = {\r\n interaction: interaction,\r\n pageCoords: page,\r\n statuses: statuses,\r\n preEnd: true,\r\n requireEndOnly: true\r\n };\r\n\r\n // smoothEnd\r\n if (inertiaPossible && !inertia) {\r\n modifiers.resetStatuses(statuses);\r\n\r\n modifierResult = modifiers.setAll(modifierArg);\r\n\r\n if (modifierResult.shouldMove && modifierResult.locked) {\r\n smoothEnd = true;\r\n }\r\n }\r\n\r\n if (!(inertia || smoothEnd)) {\r\n return;\r\n }\r\n\r\n utils.copyCoords(status.upCoords, interaction.curCoords);\r\n\r\n interaction.pointers[0] = status.startEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiastart', interaction.element);\r\n\r\n status.t0 = now;\r\n\r\n status.active = true;\r\n status.allowResume = inertiaOptions.allowResume;\r\n interaction.simulation = status;\r\n\r\n target.fire(status.startEvent);\r\n\r\n if (inertia) {\r\n status.vx0 = interaction.pointerDelta.client.vx;\r\n status.vy0 = interaction.pointerDelta.client.vy;\r\n status.v0 = pointerSpeed;\r\n\r\n calcInertia(interaction, status);\r\n\r\n utils.extend(page, interaction.curCoords.page);\r\n\r\n page.x += status.xe;\r\n page.y += status.ye;\r\n\r\n modifiers.resetStatuses(statuses);\r\n\r\n modifierResult = modifiers.setAll(modifierArg);\r\n\r\n status.modifiedXe += modifierResult.dx;\r\n status.modifiedYe += modifierResult.dy;\r\n\r\n status.i = animationFrame.request(interaction.boundInertiaFrame);\r\n } else {\r\n status.smoothEnd = true;\r\n status.xe = modifierResult.dx;\r\n status.ye = modifierResult.dy;\r\n\r\n status.sx = status.sy = 0;\r\n\r\n status.i = animationFrame.request(interaction.boundSmoothEndFrame);\r\n }\r\n});\r\n\r\nInteraction.signals.on('stop-active', function (_ref3) {\r\n var interaction = _ref3.interaction;\r\n\r\n var status = interaction.inertiaStatus;\r\n\r\n if (status.active) {\r\n animationFrame.cancel(status.i);\r\n status.active = false;\r\n interaction.simulation = null;\r\n }\r\n});\r\n\r\nfunction calcInertia(interaction, status) {\r\n var inertiaOptions = interaction.target.options[interaction.prepared.name].inertia;\r\n var lambda = inertiaOptions.resistance;\r\n var inertiaDur = -Math.log(inertiaOptions.endSpeed / status.v0) / lambda;\r\n\r\n status.x0 = interaction.prevEvent.pageX;\r\n status.y0 = interaction.prevEvent.pageY;\r\n status.t0 = status.startEvent.timeStamp / 1000;\r\n status.sx = status.sy = 0;\r\n\r\n status.modifiedXe = status.xe = (status.vx0 - inertiaDur) / lambda;\r\n status.modifiedYe = status.ye = (status.vy0 - inertiaDur) / lambda;\r\n status.te = inertiaDur;\r\n\r\n status.lambda_v0 = lambda / status.v0;\r\n status.one_ve_v0 = 1 - inertiaOptions.endSpeed / status.v0;\r\n}\r\n\r\nfunction inertiaFrame() {\r\n updateInertiaCoords(this);\r\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\r\n\r\n var status = this.inertiaStatus;\r\n var options = this.target.options[this.prepared.name].inertia;\r\n var lambda = options.resistance;\r\n var t = new Date().getTime() / 1000 - status.t0;\r\n\r\n if (t < status.te) {\r\n\r\n var progress = 1 - (Math.exp(-lambda * t) - status.lambda_v0) / status.one_ve_v0;\r\n\r\n if (status.modifiedXe === status.xe && status.modifiedYe === status.ye) {\r\n status.sx = status.xe * progress;\r\n status.sy = status.ye * progress;\r\n } else {\r\n var quadPoint = utils.getQuadraticCurvePoint(0, 0, status.xe, status.ye, status.modifiedXe, status.modifiedYe, progress);\r\n\r\n status.sx = quadPoint.x;\r\n status.sy = quadPoint.y;\r\n }\r\n\r\n this.doMove();\r\n\r\n status.i = animationFrame.request(this.boundInertiaFrame);\r\n } else {\r\n status.sx = status.modifiedXe;\r\n status.sy = status.modifiedYe;\r\n\r\n this.doMove();\r\n this.end(status.startEvent);\r\n status.active = false;\r\n this.simulation = null;\r\n }\r\n\r\n utils.copyCoords(this.prevCoords, this.curCoords);\r\n}\r\n\r\nfunction smoothEndFrame() {\r\n updateInertiaCoords(this);\r\n\r\n var status = this.inertiaStatus;\r\n var t = new Date().getTime() - status.t0;\r\n var duration = this.target.options[this.prepared.name].inertia.smoothEndDuration;\r\n\r\n if (t < duration) {\r\n status.sx = utils.easeOutQuad(t, 0, status.xe, duration);\r\n status.sy = utils.easeOutQuad(t, 0, status.ye, duration);\r\n\r\n this.pointerMove(status.startEvent, status.startEvent);\r\n\r\n status.i = animationFrame.request(this.boundSmoothEndFrame);\r\n } else {\r\n status.sx = status.xe;\r\n status.sy = status.ye;\r\n\r\n this.pointerMove(status.startEvent, status.startEvent);\r\n this.end(status.startEvent);\r\n\r\n status.smoothEnd = status.active = false;\r\n this.simulation = null;\r\n }\r\n}\r\n\r\nfunction updateInertiaCoords(interaction) {\r\n var status = interaction.inertiaStatus;\r\n\r\n // return if inertia isn't running\r\n if (!status.active) {\r\n return;\r\n }\r\n\r\n var pageUp = status.upCoords.page;\r\n var clientUp = status.upCoords.client;\r\n\r\n utils.setCoords(interaction.curCoords, [{\r\n pageX: pageUp.x + status.sx,\r\n pageY: pageUp.y + status.sy,\r\n clientX: clientUp.x + status.sx,\r\n clientY: clientUp.y + status.sy\r\n }]);\r\n}\r\n\r\n},{\"./InteractEvent\":3,\"./Interaction\":5,\"./modifiers/base\":23,\"./utils\":44,\"./utils/raf\":50}],21:[function(require,module,exports){\r\n'use strict';\r\n\r\n/** @module interact */\r\n\r\nvar browser = require('./utils/browser');\r\nvar events = require('./utils/events');\r\nvar utils = require('./utils');\r\nvar scope = require('./scope');\r\nvar Interactable = require('./Interactable');\r\nvar Interaction = require('./Interaction');\r\n\r\nvar globalEvents = {};\r\n\r\n/**\r\n * ```js\r\n * interact('#draggable').draggable(true);\r\n *\r\n * var rectables = interact('rect');\r\n * rectables\r\n * .gesturable(true)\r\n * .on('gesturemove', function (event) {\r\n * // ...\r\n * });\r\n * ```\r\n *\r\n * The methods of this variable can be used to set elements as interactables\r\n * and also to change various default settings.\r\n *\r\n * Calling it as a function and passing an element or a valid CSS selector\r\n * string returns an Interactable object which has various methods to configure\r\n * it.\r\n *\r\n * @global\r\n *\r\n * @param {Element | string} element The HTML or SVG Element to interact with\r\n * or CSS selector\r\n * @return {Interactable}\r\n */\r\nfunction interact(element, options) {\r\n var interactable = scope.interactables.get(element, options);\r\n\r\n if (!interactable) {\r\n interactable = new Interactable(element, options);\r\n interactable.events.global = globalEvents;\r\n }\r\n\r\n return interactable;\r\n}\r\n\r\n/**\r\n * Check if an element or selector has been set with the {@link interact}\r\n * function\r\n *\r\n * @alias module:interact.isSet\r\n *\r\n * @param {Element} element The Element being searched for\r\n * @return {boolean} Indicates if the element or CSS selector was previously\r\n * passed to interact\r\n*/\r\ninteract.isSet = function (element, options) {\r\n return scope.interactables.indexOfElement(element, options && options.context) !== -1;\r\n};\r\n\r\n/**\r\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\r\n *\r\n * @alias module:interact.on\r\n *\r\n * @param {string | array | object} type The types of events to listen for\r\n * @param {function} listener The function event (s)\r\n * @param {object | boolean} [options] object or useCapture flag for\r\n * addEventListener\r\n * @return {object} interact\r\n */\r\ninteract.on = function (type, listener, options) {\r\n if (utils.is.string(type) && type.search(' ') !== -1) {\r\n type = type.trim().split(/ +/);\r\n }\r\n\r\n if (utils.is.array(type)) {\r\n for (var _i = 0; _i < type.length; _i++) {\r\n var _ref;\r\n\r\n _ref = type[_i];\r\n var eventType = _ref;\r\n\r\n interact.on(eventType, listener, options);\r\n }\r\n\r\n return interact;\r\n }\r\n\r\n if (utils.is.object(type)) {\r\n for (var prop in type) {\r\n interact.on(prop, type[prop], listener);\r\n }\r\n\r\n return interact;\r\n }\r\n\r\n // if it is an InteractEvent type, add listener to globalEvents\r\n if (utils.contains(Interactable.eventTypes, type)) {\r\n // if this type of event was never bound\r\n if (!globalEvents[type]) {\r\n globalEvents[type] = [listener];\r\n } else {\r\n globalEvents[type].push(listener);\r\n }\r\n }\r\n // If non InteractEvent type, addEventListener to document\r\n else {\r\n events.add(scope.document, type, listener, { options: options });\r\n }\r\n\r\n return interact;\r\n};\r\n\r\n/**\r\n * Removes a global InteractEvent listener or DOM event from `document`\r\n *\r\n * @alias module:interact.off\r\n *\r\n * @param {string | array | object} type The types of events that were listened\r\n * for\r\n * @param {function} listener The listener function to be removed\r\n * @param {object | boolean} options [options] object or useCapture flag for\r\n * removeEventListener\r\n * @return {object} interact\r\n */\r\ninteract.off = function (type, listener, options) {\r\n if (utils.is.string(type) && type.search(' ') !== -1) {\r\n type = type.trim().split(/ +/);\r\n }\r\n\r\n if (utils.is.array(type)) {\r\n for (var _i2 = 0; _i2 < type.length; _i2++) {\r\n var _ref2;\r\n\r\n _ref2 = type[_i2];\r\n var eventType = _ref2;\r\n\r\n interact.off(eventType, listener, options);\r\n }\r\n\r\n return interact;\r\n }\r\n\r\n if (utils.is.object(type)) {\r\n for (var prop in type) {\r\n interact.off(prop, type[prop], listener);\r\n }\r\n\r\n return interact;\r\n }\r\n\r\n if (!utils.contains(Interactable.eventTypes, type)) {\r\n events.remove(scope.document, type, listener, options);\r\n } else {\r\n var index = void 0;\r\n\r\n if (type in globalEvents && (index = globalEvents[type].indexOf(listener)) !== -1) {\r\n globalEvents[type].splice(index, 1);\r\n }\r\n }\r\n\r\n return interact;\r\n};\r\n\r\n/**\r\n * Returns an object which exposes internal data\r\n\r\n * @alias module:interact.debug\r\n *\r\n * @return {object} An object with properties that outline the current state\r\n * and expose internal functions and variables\r\n */\r\ninteract.debug = function () {\r\n return scope;\r\n};\r\n\r\n// expose the functions used to calculate multi-touch properties\r\ninteract.getPointerAverage = utils.pointerAverage;\r\ninteract.getTouchBBox = utils.touchBBox;\r\ninteract.getTouchDistance = utils.touchDistance;\r\ninteract.getTouchAngle = utils.touchAngle;\r\n\r\ninteract.getElementRect = utils.getElementRect;\r\ninteract.getElementClientRect = utils.getElementClientRect;\r\ninteract.matchesSelector = utils.matchesSelector;\r\ninteract.closest = utils.closest;\r\n\r\n/**\r\n * @alias module:interact.supportsTouch\r\n *\r\n * @return {boolean} Whether or not the browser supports touch input\r\n */\r\ninteract.supportsTouch = function () {\r\n return browser.supportsTouch;\r\n};\r\n\r\n/**\r\n * @alias module:interact.supportsPointerEvent\r\n *\r\n * @return {boolean} Whether or not the browser supports PointerEvents\r\n */\r\ninteract.supportsPointerEvent = function () {\r\n return browser.supportsPointerEvent;\r\n};\r\n\r\n/**\r\n * Cancels all interactions (end events are not fired)\r\n *\r\n * @alias module:interact.stop\r\n *\r\n * @param {Event} event An event on which to call preventDefault()\r\n * @return {object} interact\r\n */\r\ninteract.stop = function (event) {\r\n for (var i = scope.interactions.length - 1; i >= 0; i--) {\r\n scope.interactions[i].stop(event);\r\n }\r\n\r\n return interact;\r\n};\r\n\r\n/**\r\n * Returns or sets the distance the pointer must be moved before an action\r\n * sequence occurs. This also affects tolerance for tap events.\r\n *\r\n * @alias module:interact.pointerMoveTolerance\r\n *\r\n * @param {number} [newValue] The movement from the start position must be greater than this value\r\n * @return {interact | number}\r\n */\r\ninteract.pointerMoveTolerance = function (newValue) {\r\n if (utils.is.number(newValue)) {\r\n Interaction.pointerMoveTolerance = newValue;\r\n\r\n return interact;\r\n }\r\n\r\n return Interaction.pointerMoveTolerance;\r\n};\r\n\r\ninteract.addDocument = scope.addDocument;\r\ninteract.removeDocument = scope.removeDocument;\r\n\r\nscope.interact = interact;\r\n\r\nmodule.exports = interact;\r\n\r\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils\":44,\"./utils/browser\":36,\"./utils/events\":40}],22:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar Interactable = require('./Interactable');\r\nvar Interaction = require('./Interaction');\r\nvar scope = require('./scope');\r\nvar is = require('./utils/is');\r\nvar events = require('./utils/events');\r\nvar browser = require('./utils/browser');\r\n\r\nvar _require = require('./utils/domUtils'),\r\n nodeContains = _require.nodeContains,\r\n matchesSelector = _require.matchesSelector;\r\n\r\n/**\r\n * Returns or sets whether to prevent the browser's default behaviour in\r\n * response to pointer events. Can be set to:\r\n * - `'always'` to always prevent\r\n * - `'never'` to never prevent\r\n * - `'auto'` to let interact.js try to determine what would be best\r\n *\r\n * @param {string} [newValue] `true`, `false` or `'auto'`\r\n * @return {string | Interactable} The current setting or this Interactable\r\n */\r\n\r\n\r\nInteractable.prototype.preventDefault = function (newValue) {\r\n if (/^(always|never|auto)$/.test(newValue)) {\r\n this.options.preventDefault = newValue;\r\n return this;\r\n }\r\n\r\n if (is.bool(newValue)) {\r\n this.options.preventDefault = newValue ? 'always' : 'never';\r\n return this;\r\n }\r\n\r\n return this.options.preventDefault;\r\n};\r\n\r\nInteractable.prototype.checkAndPreventDefault = function (event) {\r\n var setting = this.options.preventDefault;\r\n\r\n if (setting === 'never') {\r\n return;\r\n }\r\n\r\n if (setting === 'always') {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n // setting === 'auto'\r\n\r\n // don't preventDefault of touch{start,move} events if the browser supports passive\r\n // events listeners. CSS touch-action and user-selecct should be used instead\r\n if (events.supportsPassive && /^touch(start|move)$/.test(event.type) && !browser.isIOS) {\r\n return;\r\n }\r\n\r\n // don't preventDefault of pointerdown events\r\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\r\n return;\r\n }\r\n\r\n // don't preventDefault on editable elements\r\n if (is.element(event.target) && matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n};\r\n\r\nfunction onInteractionEvent(_ref) {\r\n var interaction = _ref.interaction,\r\n event = _ref.event;\r\n\r\n if (interaction.target) {\r\n interaction.target.checkAndPreventDefault(event);\r\n }\r\n}\r\n\r\nvar _arr = ['down', 'move', 'up', 'cancel'];\r\nfor (var _i = 0; _i < _arr.length; _i++) {\r\n var eventSignal = _arr[_i];\r\n Interaction.signals.on(eventSignal, onInteractionEvent);\r\n}\r\n\r\n// prevent native HTML5 drag on interact.js target elements\r\nInteraction.docEvents.dragstart = function preventNativeDrag(event) {\r\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\r\n var _ref2;\r\n\r\n _ref2 = scope.interactions[_i2];\r\n var interaction = _ref2;\r\n\r\n\r\n if (interaction.element && (interaction.element === event.target || nodeContains(interaction.element, event.target))) {\r\n\r\n interaction.target.checkAndPreventDefault(event);\r\n return;\r\n }\r\n }\r\n};\r\n\r\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils/browser\":36,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/is\":46}],23:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar InteractEvent = require('../InteractEvent');\r\nvar Interaction = require('../Interaction');\r\nvar extend = require('../utils/extend');\r\n\r\nvar modifiers = {\r\n names: [],\r\n\r\n setOffsets: function setOffsets(arg) {\r\n var interaction = arg.interaction,\r\n page = arg.pageCoords;\r\n var target = interaction.target,\r\n element = interaction.element,\r\n startOffset = interaction.startOffset;\r\n\r\n var rect = target.getRect(element);\r\n\r\n if (rect) {\r\n startOffset.left = page.x - rect.left;\r\n startOffset.top = page.y - rect.top;\r\n\r\n startOffset.right = rect.right - page.x;\r\n startOffset.bottom = rect.bottom - page.y;\r\n\r\n if (!('width' in rect)) {\r\n rect.width = rect.right - rect.left;\r\n }\r\n if (!('height' in rect)) {\r\n rect.height = rect.bottom - rect.top;\r\n }\r\n } else {\r\n startOffset.left = startOffset.top = startOffset.right = startOffset.bottom = 0;\r\n }\r\n\r\n arg.rect = rect;\r\n arg.interactable = target;\r\n arg.element = element;\r\n\r\n for (var _i = 0; _i < modifiers.names.length; _i++) {\r\n var _ref;\r\n\r\n _ref = modifiers.names[_i];\r\n var modifierName = _ref;\r\n\r\n arg.options = target.options[interaction.prepared.name][modifierName];\r\n\r\n if (!arg.options) {\r\n continue;\r\n }\r\n\r\n interaction.modifierOffsets[modifierName] = modifiers[modifierName].setOffset(arg);\r\n }\r\n },\r\n\r\n setAll: function setAll(arg) {\r\n var interaction = arg.interaction,\r\n statuses = arg.statuses,\r\n preEnd = arg.preEnd,\r\n requireEndOnly = arg.requireEndOnly;\r\n\r\n var result = {\r\n dx: 0,\r\n dy: 0,\r\n changed: false,\r\n locked: false,\r\n shouldMove: true\r\n };\r\n\r\n arg.modifiedCoords = extend({}, arg.pageCoords);\r\n\r\n for (var _i2 = 0; _i2 < modifiers.names.length; _i2++) {\r\n var _ref2;\r\n\r\n _ref2 = modifiers.names[_i2];\r\n var modifierName = _ref2;\r\n\r\n var modifier = modifiers[modifierName];\r\n var options = interaction.target.options[interaction.prepared.name][modifierName];\r\n\r\n if (!shouldDo(options, preEnd, requireEndOnly)) {\r\n continue;\r\n }\r\n\r\n arg.status = arg.status = statuses[modifierName];\r\n arg.options = options;\r\n arg.offset = arg.interaction.modifierOffsets[modifierName];\r\n\r\n modifier.set(arg);\r\n\r\n if (arg.status.locked) {\r\n arg.modifiedCoords.x += arg.status.dx;\r\n arg.modifiedCoords.y += arg.status.dy;\r\n\r\n result.dx += arg.status.dx;\r\n result.dy += arg.status.dy;\r\n\r\n result.locked = true;\r\n }\r\n }\r\n\r\n // a move should be fired if:\r\n // - there are no modifiers enabled,\r\n // - no modifiers are \"locked\" i.e. have changed the pointer's coordinates, or\r\n // - the locked coords have changed since the last pointer move\r\n result.shouldMove = !arg.status || !result.locked || arg.status.changed;\r\n\r\n return result;\r\n },\r\n\r\n resetStatuses: function resetStatuses(statuses) {\r\n for (var _i3 = 0; _i3 < modifiers.names.length; _i3++) {\r\n var _ref3;\r\n\r\n _ref3 = modifiers.names[_i3];\r\n var modifierName = _ref3;\r\n\r\n var status = statuses[modifierName] || {};\r\n\r\n status.dx = status.dy = 0;\r\n status.modifiedX = status.modifiedY = NaN;\r\n status.locked = false;\r\n status.changed = true;\r\n\r\n statuses[modifierName] = status;\r\n }\r\n\r\n return statuses;\r\n },\r\n\r\n start: function start(_ref4, signalName) {\r\n var interaction = _ref4.interaction;\r\n\r\n var arg = {\r\n interaction: interaction,\r\n pageCoords: (signalName === 'action-resume' ? interaction.curCoords : interaction.startCoords).page,\r\n startOffset: interaction.startOffset,\r\n statuses: interaction.modifierStatuses,\r\n preEnd: false,\r\n requireEndOnly: false\r\n };\r\n\r\n modifiers.setOffsets(arg);\r\n modifiers.resetStatuses(arg.statuses);\r\n\r\n arg.pageCoords = extend({}, interaction.startCoords.page);\r\n interaction.modifierResult = modifiers.setAll(arg);\r\n },\r\n\r\n beforeMove: function beforeMove(_ref5) {\r\n var interaction = _ref5.interaction,\r\n preEnd = _ref5.preEnd,\r\n interactingBeforeMove = _ref5.interactingBeforeMove;\r\n\r\n var modifierResult = modifiers.setAll({\r\n interaction: interaction,\r\n preEnd: preEnd,\r\n pageCoords: interaction.curCoords.page,\r\n statuses: interaction.modifierStatuses,\r\n requireEndOnly: false\r\n });\r\n\r\n // don't fire an action move if a modifier would keep the event in the same\r\n // cordinates as before\r\n if (!modifierResult.shouldMove && interactingBeforeMove) {\r\n interaction._dontFireMove = true;\r\n }\r\n\r\n interaction.modifierResult = modifierResult;\r\n },\r\n\r\n end: function end(_ref6) {\r\n var interaction = _ref6.interaction,\r\n event = _ref6.event;\r\n\r\n for (var _i4 = 0; _i4 < modifiers.names.length; _i4++) {\r\n var _ref7;\r\n\r\n _ref7 = modifiers.names[_i4];\r\n var modifierName = _ref7;\r\n\r\n var options = interaction.target.options[interaction.prepared.name][modifierName];\r\n\r\n // if the endOnly option is true for any modifier\r\n if (shouldDo(options, true, true)) {\r\n // fire a move event at the modified coordinates\r\n interaction.doMove({ event: event, preEnd: true });\r\n break;\r\n }\r\n }\r\n },\r\n\r\n setXY: function setXY(arg) {\r\n var iEvent = arg.iEvent,\r\n interaction = arg.interaction;\r\n\r\n var modifierArg = extend({}, arg);\r\n\r\n for (var i = 0; i < modifiers.names.length; i++) {\r\n var modifierName = modifiers.names[i];\r\n modifierArg.options = interaction.target.options[interaction.prepared.name][modifierName];\r\n\r\n if (!modifierArg.options) {\r\n continue;\r\n }\r\n\r\n var modifier = modifiers[modifierName];\r\n\r\n modifierArg.status = interaction.modifierStatuses[modifierName];\r\n\r\n iEvent[modifierName] = modifier.modifyCoords(modifierArg);\r\n }\r\n }\r\n};\r\n\r\nInteraction.signals.on('new', function (interaction) {\r\n interaction.startOffset = { left: 0, right: 0, top: 0, bottom: 0 };\r\n interaction.modifierOffsets = {};\r\n interaction.modifierStatuses = modifiers.resetStatuses({});\r\n interaction.modifierResult = null;\r\n});\r\n\r\nInteraction.signals.on('action-start', modifiers.start);\r\nInteraction.signals.on('action-resume', modifiers.start);\r\nInteraction.signals.on('before-action-move', modifiers.beforeMove);\r\nInteraction.signals.on('action-end', modifiers.end);\r\n\r\nInteractEvent.signals.on('set-xy', modifiers.setXY);\r\n\r\nfunction shouldDo(options, preEnd, requireEndOnly) {\r\n return options && options.enabled && (preEnd || !options.endOnly) && (!requireEndOnly || options.endOnly);\r\n}\r\n\r\nmodule.exports = modifiers;\r\n\r\n},{\"../InteractEvent\":3,\"../Interaction\":5,\"../utils/extend\":41}],24:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar modifiers = require('./base');\r\nvar utils = require('../utils');\r\nvar defaultOptions = require('../defaultOptions');\r\n\r\nvar restrict = {\r\n defaults: {\r\n enabled: false,\r\n endOnly: false,\r\n restriction: null,\r\n elementRect: null\r\n },\r\n\r\n setOffset: function setOffset(_ref) {\r\n var rect = _ref.rect,\r\n startOffset = _ref.startOffset,\r\n options = _ref.options;\r\n\r\n var elementRect = options && options.elementRect;\r\n var offset = {};\r\n\r\n if (rect && elementRect) {\r\n offset.left = startOffset.left - rect.width * elementRect.left;\r\n offset.top = startOffset.top - rect.height * elementRect.top;\r\n\r\n offset.right = startOffset.right - rect.width * (1 - elementRect.right);\r\n offset.bottom = startOffset.bottom - rect.height * (1 - elementRect.bottom);\r\n } else {\r\n offset.left = offset.top = offset.right = offset.bottom = 0;\r\n }\r\n\r\n return offset;\r\n },\r\n\r\n set: function set(_ref2) {\r\n var modifiedCoords = _ref2.modifiedCoords,\r\n interaction = _ref2.interaction,\r\n status = _ref2.status,\r\n options = _ref2.options;\r\n\r\n if (!options) {\r\n return status;\r\n }\r\n\r\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\r\n\r\n var restriction = getRestrictionRect(options.restriction, interaction, page);\r\n\r\n if (!restriction) {\r\n return status;\r\n }\r\n\r\n status.dx = 0;\r\n status.dy = 0;\r\n status.locked = false;\r\n\r\n var rect = restriction;\r\n var modifiedX = page.x;\r\n var modifiedY = page.y;\r\n\r\n var offset = interaction.modifierOffsets.restrict;\r\n\r\n // object is assumed to have\r\n // x, y, width, height or\r\n // left, top, right, bottom\r\n if ('x' in restriction && 'y' in restriction) {\r\n modifiedX = Math.max(Math.min(rect.x + rect.width - offset.right, page.x), rect.x + offset.left);\r\n modifiedY = Math.max(Math.min(rect.y + rect.height - offset.bottom, page.y), rect.y + offset.top);\r\n } else {\r\n modifiedX = Math.max(Math.min(rect.right - offset.right, page.x), rect.left + offset.left);\r\n modifiedY = Math.max(Math.min(rect.bottom - offset.bottom, page.y), rect.top + offset.top);\r\n }\r\n\r\n status.dx = modifiedX - page.x;\r\n status.dy = modifiedY - page.y;\r\n\r\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\r\n status.locked = !!(status.dx || status.dy);\r\n\r\n status.modifiedX = modifiedX;\r\n status.modifiedY = modifiedY;\r\n },\r\n\r\n modifyCoords: function modifyCoords(_ref3) {\r\n var page = _ref3.page,\r\n client = _ref3.client,\r\n status = _ref3.status,\r\n phase = _ref3.phase,\r\n options = _ref3.options;\r\n\r\n var elementRect = options && options.elementRect;\r\n\r\n if (options && options.enabled && !(phase === 'start' && elementRect && status.locked)) {\r\n\r\n if (status.locked) {\r\n page.x += status.dx;\r\n page.y += status.dy;\r\n client.x += status.dx;\r\n client.y += status.dy;\r\n\r\n return {\r\n dx: status.dx,\r\n dy: status.dy\r\n };\r\n }\r\n }\r\n },\r\n\r\n getRestrictionRect: getRestrictionRect\r\n};\r\n\r\nfunction getRestrictionRect(value, interaction, page) {\r\n if (utils.is.function(value)) {\r\n return utils.resolveRectLike(value, interaction.target, interaction.element, [page.x, page.y, interaction]);\r\n } else {\r\n return utils.resolveRectLike(value, interaction.target, interaction.element);\r\n }\r\n}\r\n\r\nmodifiers.restrict = restrict;\r\nmodifiers.names.push('restrict');\r\n\r\ndefaultOptions.perAction.restrict = restrict.defaults;\r\n\r\nmodule.exports = restrict;\r\n\r\n},{\"../defaultOptions\":18,\"../utils\":44,\"./base\":23}],25:[function(require,module,exports){\r\n'use strict';\r\n\r\n// This module adds the options.resize.restrictEdges setting which sets min and\r\n// max for the top, left, bottom and right edges of the target being resized.\r\n//\r\n// interact(target).resize({\r\n// edges: { top: true, left: true },\r\n// restrictEdges: {\r\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\r\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\r\n// },\r\n// });\r\n\r\nvar modifiers = require('./base');\r\nvar utils = require('../utils');\r\nvar rectUtils = require('../utils/rect');\r\nvar defaultOptions = require('../defaultOptions');\r\nvar resize = require('../actions/resize');\r\n\r\nvar _require = require('./restrict'),\r\n getRestrictionRect = _require.getRestrictionRect;\r\n\r\nvar noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity };\r\nvar noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity };\r\n\r\nvar restrictEdges = {\r\n defaults: {\r\n enabled: false,\r\n endOnly: false,\r\n min: null,\r\n max: null,\r\n offset: null\r\n },\r\n\r\n setOffset: function setOffset(_ref) {\r\n var interaction = _ref.interaction,\r\n startOffset = _ref.startOffset,\r\n options = _ref.options;\r\n\r\n if (!options) {\r\n return utils.extend({}, startOffset);\r\n }\r\n\r\n var offset = getRestrictionRect(options.offset, interaction, interaction.startCoords.page);\r\n\r\n if (offset) {\r\n return {\r\n top: startOffset.top + offset.y,\r\n left: startOffset.left + offset.x,\r\n bottom: startOffset.bottom + offset.y,\r\n right: startOffset.right + offset.x\r\n };\r\n }\r\n\r\n return startOffset;\r\n },\r\n\r\n set: function set(_ref2) {\r\n var modifiedCoords = _ref2.modifiedCoords,\r\n interaction = _ref2.interaction,\r\n status = _ref2.status,\r\n offset = _ref2.offset,\r\n options = _ref2.options;\r\n\r\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\r\n\r\n if (!interaction.interacting() || !edges) {\r\n return;\r\n }\r\n\r\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\r\n var inner = rectUtils.xywhToTlbr(getRestrictionRect(options.inner, interaction, page)) || noInner;\r\n var outer = rectUtils.xywhToTlbr(getRestrictionRect(options.outer, interaction, page)) || noOuter;\r\n\r\n var modifiedX = page.x;\r\n var modifiedY = page.y;\r\n\r\n status.dx = 0;\r\n status.dy = 0;\r\n status.locked = false;\r\n\r\n if (edges.top) {\r\n modifiedY = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top);\r\n } else if (edges.bottom) {\r\n modifiedY = Math.max(Math.min(outer.bottom - offset.bottom, page.y), inner.bottom - offset.bottom);\r\n }\r\n if (edges.left) {\r\n modifiedX = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left);\r\n } else if (edges.right) {\r\n modifiedX = Math.max(Math.min(outer.right - offset.right, page.x), inner.right - offset.right);\r\n }\r\n\r\n status.dx = modifiedX - page.x;\r\n status.dy = modifiedY - page.y;\r\n\r\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\r\n status.locked = !!(status.dx || status.dy);\r\n\r\n status.modifiedX = modifiedX;\r\n status.modifiedY = modifiedY;\r\n },\r\n\r\n modifyCoords: function modifyCoords(_ref3) {\r\n var page = _ref3.page,\r\n client = _ref3.client,\r\n status = _ref3.status,\r\n phase = _ref3.phase,\r\n options = _ref3.options;\r\n\r\n if (options && options.enabled && !(phase === 'start' && status.locked)) {\r\n\r\n if (status.locked) {\r\n page.x += status.dx;\r\n page.y += status.dy;\r\n client.x += status.dx;\r\n client.y += status.dy;\r\n\r\n return {\r\n dx: status.dx,\r\n dy: status.dy\r\n };\r\n }\r\n }\r\n },\r\n\r\n noInner: noInner,\r\n noOuter: noOuter,\r\n getRestrictionRect: getRestrictionRect\r\n};\r\n\r\nmodifiers.restrictEdges = restrictEdges;\r\nmodifiers.names.push('restrictEdges');\r\n\r\ndefaultOptions.perAction.restrictEdges = restrictEdges.defaults;\r\nresize.defaults.restrictEdges = restrictEdges.defaults;\r\n\r\nmodule.exports = restrictEdges;\r\n\r\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrict\":24}],26:[function(require,module,exports){\r\n'use strict';\r\n\r\n// This module adds the options.resize.restrictSize setting which sets min and\r\n// max width and height for the target being resized.\r\n//\r\n// interact(target).resize({\r\n// edges: { top: true, left: true },\r\n// restrictSize: {\r\n// min: { width: -600, height: -600 },\r\n// max: { width: 600, height: 600 },\r\n// },\r\n// });\r\n\r\nvar modifiers = require('./base');\r\nvar restrictEdges = require('./restrictEdges');\r\nvar utils = require('../utils');\r\nvar rectUtils = require('../utils/rect');\r\nvar defaultOptions = require('../defaultOptions');\r\nvar resize = require('../actions/resize');\r\n\r\nvar noMin = { width: -Infinity, height: -Infinity };\r\nvar noMax = { width: +Infinity, height: +Infinity };\r\n\r\nvar restrictSize = {\r\n defaults: {\r\n enabled: false,\r\n endOnly: false,\r\n min: null,\r\n max: null\r\n },\r\n\r\n setOffset: function setOffset(_ref) {\r\n var interaction = _ref.interaction;\r\n\r\n return interaction.startOffset;\r\n },\r\n\r\n set: function set(arg) {\r\n var interaction = arg.interaction,\r\n options = arg.options;\r\n\r\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\r\n\r\n if (!interaction.interacting() || !edges) {\r\n return;\r\n }\r\n\r\n var rect = rectUtils.xywhToTlbr(interaction.resizeRects.inverted);\r\n\r\n var minSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.min, interaction)) || noMin;\r\n var maxSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.max, interaction)) || noMax;\r\n\r\n arg.options = {\r\n enabled: options.enabled,\r\n endOnly: options.endOnly,\r\n inner: utils.extend({}, restrictEdges.noInner),\r\n outer: utils.extend({}, restrictEdges.noOuter)\r\n };\r\n\r\n if (edges.top) {\r\n arg.options.inner.top = rect.bottom - minSize.height;\r\n arg.options.outer.top = rect.bottom - maxSize.height;\r\n } else if (edges.bottom) {\r\n arg.options.inner.bottom = rect.top + minSize.height;\r\n arg.options.outer.bottom = rect.top + maxSize.height;\r\n }\r\n if (edges.left) {\r\n arg.options.inner.left = rect.right - minSize.width;\r\n arg.options.outer.left = rect.right - maxSize.width;\r\n } else if (edges.right) {\r\n arg.options.inner.right = rect.left + minSize.width;\r\n arg.options.outer.right = rect.left + maxSize.width;\r\n }\r\n\r\n restrictEdges.set(arg);\r\n },\r\n\r\n modifyCoords: restrictEdges.modifyCoords\r\n};\r\n\r\nmodifiers.restrictSize = restrictSize;\r\nmodifiers.names.push('restrictSize');\r\n\r\ndefaultOptions.perAction.restrictSize = restrictSize.defaults;\r\nresize.defaults.restrictSize = restrictSize.defaults;\r\n\r\nmodule.exports = restrictSize;\r\n\r\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrictEdges\":25}],27:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar modifiers = require('./base');\r\nvar interact = require('../interact');\r\nvar utils = require('../utils');\r\nvar defaultOptions = require('../defaultOptions');\r\n\r\nvar snap = {\r\n defaults: {\r\n enabled: false,\r\n endOnly: false,\r\n range: Infinity,\r\n targets: null,\r\n offsets: null,\r\n\r\n relativePoints: null\r\n },\r\n\r\n setOffset: function setOffset(_ref) {\r\n var interaction = _ref.interaction,\r\n interactable = _ref.interactable,\r\n element = _ref.element,\r\n rect = _ref.rect,\r\n startOffset = _ref.startOffset,\r\n options = _ref.options;\r\n\r\n var offsets = [];\r\n var optionsOrigin = utils.rectToXY(utils.resolveRectLike(options.origin));\r\n var origin = optionsOrigin || utils.getOriginXY(interactable, element, interaction.prepared.name);\r\n options = options || interactable.options[interaction.prepared.name].snap || {};\r\n\r\n var snapOffset = void 0;\r\n\r\n if (options.offset === 'startCoords') {\r\n snapOffset = {\r\n x: interaction.startCoords.page.x - origin.x,\r\n y: interaction.startCoords.page.y - origin.y\r\n };\r\n } else {\r\n var offsetRect = utils.resolveRectLike(options.offset, interactable, element, [interaction]);\r\n\r\n snapOffset = utils.rectToXY(offsetRect) || { x: 0, y: 0 };\r\n }\r\n\r\n if (rect && options.relativePoints && options.relativePoints.length) {\r\n for (var _i = 0; _i < options.relativePoints.length; _i++) {\r\n var _ref3;\r\n\r\n _ref3 = options.relativePoints[_i];\r\n var _ref2 = _ref3;\r\n var relativeX = _ref2.x;\r\n var relativeY = _ref2.y;\r\n\r\n offsets.push({\r\n x: startOffset.left - rect.width * relativeX + snapOffset.x,\r\n y: startOffset.top - rect.height * relativeY + snapOffset.y\r\n });\r\n }\r\n } else {\r\n offsets.push(snapOffset);\r\n }\r\n\r\n return offsets;\r\n },\r\n\r\n set: function set(_ref4) {\r\n var interaction = _ref4.interaction,\r\n modifiedCoords = _ref4.modifiedCoords,\r\n status = _ref4.status,\r\n options = _ref4.options,\r\n offsets = _ref4.offset;\r\n\r\n var targets = [];\r\n var target = void 0;\r\n var page = void 0;\r\n var i = void 0;\r\n\r\n if (status.useStatusXY) {\r\n page = { x: status.x, y: status.y };\r\n } else {\r\n var origin = utils.getOriginXY(interaction.target, interaction.element, interaction.prepared.name);\r\n\r\n page = utils.extend({}, modifiedCoords);\r\n\r\n page.x -= origin.x;\r\n page.y -= origin.y;\r\n }\r\n\r\n status.realX = page.x;\r\n status.realY = page.y;\r\n\r\n var len = options.targets ? options.targets.length : 0;\r\n\r\n for (var _i2 = 0; _i2 < offsets.length; _i2++) {\r\n var _ref6;\r\n\r\n _ref6 = offsets[_i2];\r\n var _ref5 = _ref6;\r\n var offsetX = _ref5.x;\r\n var offsetY = _ref5.y;\r\n\r\n var relativeX = page.x - offsetX;\r\n var relativeY = page.y - offsetY;\r\n\r\n for (var _i3 = 0; _i3 < (options.targets || []).length; _i3++) {\r\n var _ref7;\r\n\r\n _ref7 = (options.targets || [])[_i3];\r\n var snapTarget = _ref7;\r\n\r\n if (utils.is.function(snapTarget)) {\r\n target = snapTarget(relativeX, relativeY, interaction);\r\n } else {\r\n target = snapTarget;\r\n }\r\n\r\n if (!target) {\r\n continue;\r\n }\r\n\r\n targets.push({\r\n x: utils.is.number(target.x) ? target.x + offsetX : relativeX,\r\n y: utils.is.number(target.y) ? target.y + offsetY : relativeY,\r\n\r\n range: utils.is.number(target.range) ? target.range : options.range\r\n });\r\n }\r\n }\r\n\r\n var closest = {\r\n target: null,\r\n inRange: false,\r\n distance: 0,\r\n range: 0,\r\n dx: 0,\r\n dy: 0\r\n };\r\n\r\n for (i = 0, len = targets.length; i < len; i++) {\r\n target = targets[i];\r\n\r\n var range = target.range;\r\n var dx = target.x - page.x;\r\n var dy = target.y - page.y;\r\n var distance = utils.hypot(dx, dy);\r\n var inRange = distance <= range;\r\n\r\n // Infinite targets count as being out of range\r\n // compared to non infinite ones that are in range\r\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\r\n inRange = false;\r\n }\r\n\r\n if (!closest.target || (inRange\r\n // is the closest target in range?\r\n ? closest.inRange && range !== Infinity\r\n // the pointer is relatively deeper in this target\r\n ? distance / range < closest.distance / closest.range\r\n // this target has Infinite range and the closest doesn't\r\n : range === Infinity && closest.range !== Infinity ||\r\n // OR this target is closer that the previous closest\r\n distance < closest.distance :\r\n // The other is not in range and the pointer is closer to this target\r\n !closest.inRange && distance < closest.distance)) {\r\n\r\n closest.target = target;\r\n closest.distance = distance;\r\n closest.range = range;\r\n closest.inRange = inRange;\r\n closest.dx = dx;\r\n closest.dy = dy;\r\n\r\n status.range = range;\r\n }\r\n }\r\n\r\n var snapChanged = void 0;\r\n\r\n if (closest.target) {\r\n snapChanged = status.modifiedX !== closest.target.x || status.modifiedY !== closest.target.y;\r\n\r\n status.modifiedX = closest.target.x;\r\n status.modifiedY = closest.target.y;\r\n } else {\r\n snapChanged = true;\r\n\r\n status.modifiedX = NaN;\r\n status.modifiedY = NaN;\r\n }\r\n\r\n status.dx = closest.dx;\r\n status.dy = closest.dy;\r\n\r\n status.changed = snapChanged || closest.inRange && !status.locked;\r\n status.locked = closest.inRange;\r\n },\r\n\r\n modifyCoords: function modifyCoords(_ref8) {\r\n var page = _ref8.page,\r\n client = _ref8.client,\r\n status = _ref8.status,\r\n phase = _ref8.phase,\r\n options = _ref8.options;\r\n\r\n var relativePoints = options && options.relativePoints;\r\n\r\n if (options && options.enabled && !(phase === 'start' && relativePoints && relativePoints.length)) {\r\n\r\n if (status.locked) {\r\n page.x += status.dx;\r\n page.y += status.dy;\r\n client.x += status.dx;\r\n client.y += status.dy;\r\n }\r\n\r\n return {\r\n range: status.range,\r\n locked: status.locked,\r\n x: status.modifiedX,\r\n y: status.modifiedY,\r\n realX: status.realX,\r\n realY: status.realY,\r\n dx: status.dx,\r\n dy: status.dy\r\n };\r\n }\r\n }\r\n};\r\n\r\ninteract.createSnapGrid = function (grid) {\r\n return function (x, y) {\r\n var limits = grid.limits || {\r\n left: -Infinity,\r\n right: Infinity,\r\n top: -Infinity,\r\n bottom: Infinity\r\n };\r\n var offsetX = 0;\r\n var offsetY = 0;\r\n\r\n if (utils.is.object(grid.offset)) {\r\n offsetX = grid.offset.x;\r\n offsetY = grid.offset.y;\r\n }\r\n\r\n var gridx = Math.round((x - offsetX) / grid.x);\r\n var gridy = Math.round((y - offsetY) / grid.y);\r\n\r\n var newX = Math.max(limits.left, Math.min(limits.right, gridx * grid.x + offsetX));\r\n var newY = Math.max(limits.top, Math.min(limits.bottom, gridy * grid.y + offsetY));\r\n\r\n return {\r\n x: newX,\r\n y: newY,\r\n range: grid.range\r\n };\r\n };\r\n};\r\n\r\nmodifiers.snap = snap;\r\nmodifiers.names.push('snap');\r\n\r\ndefaultOptions.perAction.snap = snap.defaults;\r\n\r\nmodule.exports = snap;\r\n\r\n},{\"../defaultOptions\":18,\"../interact\":21,\"../utils\":44,\"./base\":23}],28:[function(require,module,exports){\r\n'use strict';\r\n\r\n// This module allows snapping of the size of targets during resize\r\n// interactions.\r\n\r\nvar modifiers = require('./base');\r\nvar snap = require('./snap');\r\nvar defaultOptions = require('../defaultOptions');\r\nvar resize = require('../actions/resize');\r\nvar utils = require('../utils/');\r\n\r\nvar snapSize = {\r\n defaults: {\r\n enabled: false,\r\n endOnly: false,\r\n range: Infinity,\r\n targets: null,\r\n offsets: null\r\n },\r\n\r\n setOffset: function setOffset(arg) {\r\n var interaction = arg.interaction,\r\n options = arg.options;\r\n\r\n var edges = interaction.prepared.edges;\r\n\r\n if (!edges) {\r\n return;\r\n }\r\n\r\n arg.options = {\r\n relativePoints: [{\r\n x: edges.left ? 0 : 1,\r\n y: edges.top ? 0 : 1\r\n }],\r\n origin: { x: 0, y: 0 },\r\n offset: 'self',\r\n range: options.range\r\n };\r\n\r\n var offsets = snap.setOffset(arg);\r\n arg.options = options;\r\n\r\n return offsets;\r\n },\r\n\r\n set: function set(arg) {\r\n var interaction = arg.interaction,\r\n options = arg.options,\r\n offset = arg.offset,\r\n modifiedCoords = arg.modifiedCoords;\r\n\r\n var page = utils.extend({}, modifiedCoords);\r\n var relativeX = page.x - offset[0].x;\r\n var relativeY = page.y - offset[0].y;\r\n\r\n arg.options = utils.extend({}, options);\r\n arg.options.targets = [];\r\n\r\n for (var _i = 0; _i < (options.targets || []).length; _i++) {\r\n var _ref;\r\n\r\n _ref = (options.targets || [])[_i];\r\n var snapTarget = _ref;\r\n\r\n var target = void 0;\r\n\r\n if (utils.is.function(snapTarget)) {\r\n target = snapTarget(relativeX, relativeY, interaction);\r\n } else {\r\n target = snapTarget;\r\n }\r\n\r\n if (!target) {\r\n continue;\r\n }\r\n\r\n if ('width' in target && 'height' in target) {\r\n target.x = target.width;\r\n target.y = target.height;\r\n }\r\n\r\n arg.options.targets.push(target);\r\n }\r\n\r\n snap.set(arg);\r\n },\r\n\r\n modifyCoords: function modifyCoords(arg) {\r\n var options = arg.options;\r\n\r\n\r\n arg.options = utils.extend({}, options);\r\n arg.options.enabled = options.enabled;\r\n arg.options.relativePoints = [null];\r\n\r\n snap.modifyCoords(arg);\r\n }\r\n};\r\n\r\nmodifiers.snapSize = snapSize;\r\nmodifiers.names.push('snapSize');\r\n\r\ndefaultOptions.perAction.snapSize = snapSize.defaults;\r\nresize.defaults.snapSize = snapSize.defaults;\r\n\r\nmodule.exports = snapSize;\r\n\r\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils/\":44,\"./base\":23,\"./snap\":27}],29:[function(require,module,exports){\r\n'use strict';\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\nvar pointerUtils = require('../utils/pointerUtils');\r\n\r\nmodule.exports = function () {\r\n /** */\r\n function PointerEvent(type, pointer, event, eventTarget, interaction) {\r\n _classCallCheck(this, PointerEvent);\r\n\r\n pointerUtils.pointerExtend(this, event);\r\n\r\n if (event !== pointer) {\r\n pointerUtils.pointerExtend(this, pointer);\r\n }\r\n\r\n this.interaction = interaction;\r\n\r\n this.timeStamp = new Date().getTime();\r\n this.originalEvent = event;\r\n this.type = type;\r\n this.pointerId = pointerUtils.getPointerId(pointer);\r\n this.pointerType = pointerUtils.getPointerType(pointer);\r\n this.target = eventTarget;\r\n this.currentTarget = null;\r\n\r\n if (type === 'tap') {\r\n var pointerIndex = interaction.getPointerIndex(pointer);\r\n this.dt = this.timeStamp - interaction.downTimes[pointerIndex];\r\n\r\n var interval = this.timeStamp - interaction.tapTime;\r\n\r\n this.double = !!(interaction.prevTap && interaction.prevTap.type !== 'doubletap' && interaction.prevTap.target === this.target && interval < 500);\r\n } else if (type === 'doubletap') {\r\n this.dt = pointer.timeStamp - interaction.tapTime;\r\n }\r\n }\r\n\r\n PointerEvent.prototype.subtractOrigin = function subtractOrigin(_ref) {\r\n var originX = _ref.x,\r\n originY = _ref.y;\r\n\r\n this.pageX -= originX;\r\n this.pageY -= originY;\r\n this.clientX -= originX;\r\n this.clientY -= originY;\r\n\r\n return this;\r\n };\r\n\r\n PointerEvent.prototype.addOrigin = function addOrigin(_ref2) {\r\n var originX = _ref2.x,\r\n originY = _ref2.y;\r\n\r\n this.pageX += originX;\r\n this.pageY += originY;\r\n this.clientX += originX;\r\n this.clientY += originY;\r\n\r\n return this;\r\n };\r\n\r\n /** */\r\n\r\n\r\n PointerEvent.prototype.preventDefault = function preventDefault() {\r\n this.originalEvent.preventDefault();\r\n };\r\n\r\n /** */\r\n\r\n\r\n PointerEvent.prototype.stopPropagation = function stopPropagation() {\r\n this.propagationStopped = true;\r\n };\r\n\r\n /** */\r\n\r\n\r\n PointerEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\r\n this.immediatePropagationStopped = this.propagationStopped = true;\r\n };\r\n\r\n return PointerEvent;\r\n}();\r\n\r\n},{\"../utils/pointerUtils\":49}],30:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar PointerEvent = require('./PointerEvent');\r\nvar Interaction = require('../Interaction');\r\nvar utils = require('../utils');\r\nvar defaults = require('../defaultOptions');\r\nvar signals = require('../utils/Signals').new();\r\n\r\nvar simpleSignals = ['down', 'up', 'cancel'];\r\nvar simpleEvents = ['down', 'up', 'cancel'];\r\n\r\nvar pointerEvents = {\r\n PointerEvent: PointerEvent,\r\n fire: fire,\r\n collectEventTargets: collectEventTargets,\r\n signals: signals,\r\n defaults: {\r\n holdDuration: 600,\r\n ignoreFrom: null,\r\n allowFrom: null,\r\n origin: { x: 0, y: 0 }\r\n },\r\n types: ['down', 'move', 'up', 'cancel', 'tap', 'doubletap', 'hold']\r\n};\r\n\r\nfunction fire(arg) {\r\n var interaction = arg.interaction,\r\n pointer = arg.pointer,\r\n event = arg.event,\r\n eventTarget = arg.eventTarget,\r\n _arg$type = arg.type,\r\n type = _arg$type === undefined ? arg.pointerEvent.type : _arg$type,\r\n _arg$targets = arg.targets,\r\n targets = _arg$targets === undefined ? collectEventTargets(arg) : _arg$targets,\r\n _arg$pointerEvent = arg.pointerEvent,\r\n pointerEvent = _arg$pointerEvent === undefined ? new PointerEvent(type, pointer, event, eventTarget, interaction) : _arg$pointerEvent;\r\n\r\n\r\n var signalArg = {\r\n interaction: interaction,\r\n pointer: pointer,\r\n event: event,\r\n eventTarget: eventTarget,\r\n targets: targets,\r\n type: type,\r\n pointerEvent: pointerEvent\r\n };\r\n\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n\r\n for (var prop in target.props || {}) {\r\n pointerEvent[prop] = target.props[prop];\r\n }\r\n\r\n var origin = utils.getOriginXY(target.eventable, target.element);\r\n\r\n pointerEvent.subtractOrigin(origin);\r\n pointerEvent.eventable = target.eventable;\r\n pointerEvent.currentTarget = target.element;\r\n\r\n target.eventable.fire(pointerEvent);\r\n\r\n pointerEvent.addOrigin(origin);\r\n\r\n if (pointerEvent.immediatePropagationStopped || pointerEvent.propagationStopped && i + 1 < targets.length && targets[i + 1].element !== pointerEvent.currentTarget) {\r\n break;\r\n }\r\n }\r\n\r\n signals.fire('fired', signalArg);\r\n\r\n if (type === 'tap') {\r\n // if pointerEvent should make a double tap, create and fire a doubletap\r\n // PointerEvent and use that as the prevTap\r\n var prevTap = pointerEvent.double ? fire({\r\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\r\n type: 'doubletap'\r\n }) : pointerEvent;\r\n\r\n interaction.prevTap = prevTap;\r\n interaction.tapTime = prevTap.timeStamp;\r\n }\r\n\r\n return pointerEvent;\r\n}\r\n\r\nfunction collectEventTargets(_ref) {\r\n var interaction = _ref.interaction,\r\n pointer = _ref.pointer,\r\n event = _ref.event,\r\n eventTarget = _ref.eventTarget,\r\n type = _ref.type;\r\n\r\n var pointerIndex = interaction.getPointerIndex(pointer);\r\n\r\n // do not fire a tap event if the pointer was moved before being lifted\r\n if (type === 'tap' && (interaction.pointerWasMoved\r\n // or if the pointerup target is different to the pointerdown target\r\n || !(interaction.downTargets[pointerIndex] && interaction.downTargets[pointerIndex] === eventTarget))) {\r\n return [];\r\n }\r\n\r\n var path = utils.getPath(eventTarget);\r\n var signalArg = {\r\n interaction: interaction,\r\n pointer: pointer,\r\n event: event,\r\n eventTarget: eventTarget,\r\n type: type,\r\n path: path,\r\n targets: [],\r\n element: null\r\n };\r\n\r\n for (var _i = 0; _i < path.length; _i++) {\r\n var _ref2;\r\n\r\n _ref2 = path[_i];\r\n var element = _ref2;\r\n\r\n signalArg.element = element;\r\n\r\n signals.fire('collect-targets', signalArg);\r\n }\r\n\r\n if (type === 'hold') {\r\n signalArg.targets = signalArg.targets.filter(function (target) {\r\n return target.eventable.options.holdDuration === interaction.holdTimers[pointerIndex].duration;\r\n });\r\n }\r\n\r\n return signalArg.targets;\r\n}\r\n\r\nInteraction.signals.on('update-pointer-down', function (_ref3) {\r\n var interaction = _ref3.interaction,\r\n pointerIndex = _ref3.pointerIndex;\r\n\r\n interaction.holdTimers[pointerIndex] = { duration: Infinity, timeout: null };\r\n});\r\n\r\nInteraction.signals.on('remove-pointer', function (_ref4) {\r\n var interaction = _ref4.interaction,\r\n pointerIndex = _ref4.pointerIndex;\r\n\r\n interaction.holdTimers.splice(pointerIndex, 1);\r\n});\r\n\r\nInteraction.signals.on('move', function (_ref5) {\r\n var interaction = _ref5.interaction,\r\n pointer = _ref5.pointer,\r\n event = _ref5.event,\r\n eventTarget = _ref5.eventTarget,\r\n duplicateMove = _ref5.duplicateMove;\r\n\r\n var pointerIndex = interaction.getPointerIndex(pointer);\r\n\r\n if (!duplicateMove && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\r\n if (interaction.pointerIsDown) {\r\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\r\n }\r\n\r\n fire({\r\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\r\n type: 'move'\r\n });\r\n }\r\n});\r\n\r\nInteraction.signals.on('down', function (_ref6) {\r\n var interaction = _ref6.interaction,\r\n pointer = _ref6.pointer,\r\n event = _ref6.event,\r\n eventTarget = _ref6.eventTarget,\r\n pointerIndex = _ref6.pointerIndex;\r\n\r\n var timer = interaction.holdTimers[pointerIndex];\r\n var path = utils.getPath(eventTarget);\r\n var signalArg = {\r\n interaction: interaction,\r\n pointer: pointer,\r\n event: event,\r\n eventTarget: eventTarget,\r\n type: 'hold',\r\n targets: [],\r\n path: path,\r\n element: null\r\n };\r\n\r\n for (var _i2 = 0; _i2 < path.length; _i2++) {\r\n var _ref7;\r\n\r\n _ref7 = path[_i2];\r\n var element = _ref7;\r\n\r\n signalArg.element = element;\r\n\r\n signals.fire('collect-targets', signalArg);\r\n }\r\n\r\n if (!signalArg.targets.length) {\r\n return;\r\n }\r\n\r\n var minDuration = Infinity;\r\n\r\n for (var _i3 = 0; _i3 < signalArg.targets.length; _i3++) {\r\n var _ref8;\r\n\r\n _ref8 = signalArg.targets[_i3];\r\n var target = _ref8;\r\n\r\n var holdDuration = target.eventable.options.holdDuration;\r\n\r\n if (holdDuration < minDuration) {\r\n minDuration = holdDuration;\r\n }\r\n }\r\n\r\n timer.duration = minDuration;\r\n timer.timeout = setTimeout(function () {\r\n fire({\r\n interaction: interaction,\r\n eventTarget: eventTarget,\r\n pointer: pointer,\r\n event: event,\r\n type: 'hold'\r\n });\r\n }, minDuration);\r\n});\r\n\r\nInteraction.signals.on('up', function (_ref9) {\r\n var interaction = _ref9.interaction,\r\n pointer = _ref9.pointer,\r\n event = _ref9.event,\r\n eventTarget = _ref9.eventTarget;\r\n\r\n if (!interaction.pointerWasMoved) {\r\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: 'tap' });\r\n }\r\n});\r\n\r\nvar _arr = ['up', 'cancel'];\r\nfor (var _i4 = 0; _i4 < _arr.length; _i4++) {\r\n var signalName = _arr[_i4];\r\n Interaction.signals.on(signalName, function (_ref11) {\r\n var interaction = _ref11.interaction,\r\n pointerIndex = _ref11.pointerIndex;\r\n\r\n if (interaction.holdTimers[pointerIndex]) {\r\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\r\n }\r\n });\r\n}\r\n\r\nfunction createSignalListener(type) {\r\n return function (_ref10) {\r\n var interaction = _ref10.interaction,\r\n pointer = _ref10.pointer,\r\n event = _ref10.event,\r\n eventTarget = _ref10.eventTarget;\r\n\r\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: type });\r\n };\r\n}\r\n\r\nfor (var i = 0; i < simpleSignals.length; i++) {\r\n Interaction.signals.on(simpleSignals[i], createSignalListener(simpleEvents[i]));\r\n}\r\n\r\nInteraction.signals.on('new', function (interaction) {\r\n interaction.prevTap = null; // the most recent tap event on this interaction\r\n interaction.tapTime = 0; // time of the most recent tap event\r\n interaction.holdTimers = []; // [{ duration, timeout }]\r\n});\r\n\r\ndefaults.pointerEvents = pointerEvents.defaults;\r\nmodule.exports = pointerEvents;\r\n\r\n},{\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/Signals\":34,\"./PointerEvent\":29}],31:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar pointerEvents = require('./base');\r\nvar Interaction = require('../Interaction');\r\n\r\npointerEvents.signals.on('new', onNew);\r\npointerEvents.signals.on('fired', onFired);\r\n\r\nvar _arr = ['move', 'up', 'cancel', 'endall'];\r\nfor (var _i = 0; _i < _arr.length; _i++) {\r\n var signal = _arr[_i];\r\n Interaction.signals.on(signal, endHoldRepeat);\r\n}\r\n\r\nfunction onNew(_ref) {\r\n var pointerEvent = _ref.pointerEvent;\r\n\r\n if (pointerEvent.type !== 'hold') {\r\n return;\r\n }\r\n\r\n pointerEvent.count = (pointerEvent.count || 0) + 1;\r\n}\r\n\r\nfunction onFired(_ref2) {\r\n var interaction = _ref2.interaction,\r\n pointerEvent = _ref2.pointerEvent,\r\n eventTarget = _ref2.eventTarget,\r\n targets = _ref2.targets;\r\n\r\n if (pointerEvent.type !== 'hold' || !targets.length) {\r\n return;\r\n }\r\n\r\n // get the repeat interval from the first eventable\r\n var interval = targets[0].eventable.options.holdRepeatInterval;\r\n\r\n // don't repeat if the interval is 0 or less\r\n if (interval <= 0) {\r\n return;\r\n }\r\n\r\n // set a timeout to fire the holdrepeat event\r\n interaction.holdIntervalHandle = setTimeout(function () {\r\n pointerEvents.fire({\r\n interaction: interaction,\r\n eventTarget: eventTarget,\r\n type: 'hold',\r\n pointer: pointerEvent,\r\n event: pointerEvent\r\n });\r\n }, interval);\r\n}\r\n\r\nfunction endHoldRepeat(_ref3) {\r\n var interaction = _ref3.interaction;\r\n\r\n // set the interaction's holdStopTime property\r\n // to stop further holdRepeat events\r\n if (interaction.holdIntervalHandle) {\r\n clearInterval(interaction.holdIntervalHandle);\r\n interaction.holdIntervalHandle = null;\r\n }\r\n}\r\n\r\n// don't repeat by default\r\npointerEvents.defaults.holdRepeatInterval = 0;\r\npointerEvents.types.push('holdrepeat');\r\n\r\nmodule.exports = {\r\n onNew: onNew,\r\n onFired: onFired,\r\n endHoldRepeat: endHoldRepeat\r\n};\r\n\r\n},{\"../Interaction\":5,\"./base\":30}],32:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar pointerEvents = require('./base');\r\nvar Interactable = require('../Interactable');\r\nvar is = require('../utils/is');\r\nvar scope = require('../scope');\r\nvar extend = require('../utils/extend');\r\n\r\nvar _require = require('../utils/arr'),\r\n merge = _require.merge;\r\n\r\npointerEvents.signals.on('collect-targets', function (_ref) {\r\n var targets = _ref.targets,\r\n element = _ref.element,\r\n type = _ref.type,\r\n eventTarget = _ref.eventTarget;\r\n\r\n scope.interactables.forEachMatch(element, function (interactable) {\r\n var eventable = interactable.events;\r\n var options = eventable.options;\r\n\r\n if (eventable[type] && is.element(element) && interactable.testIgnoreAllow(options, element, eventTarget)) {\r\n\r\n targets.push({\r\n element: element,\r\n eventable: eventable,\r\n props: { interactable: interactable }\r\n });\r\n }\r\n });\r\n});\r\n\r\nInteractable.signals.on('new', function (_ref2) {\r\n var interactable = _ref2.interactable;\r\n\r\n interactable.events.getRect = function (element) {\r\n return interactable.getRect(element);\r\n };\r\n});\r\n\r\nInteractable.signals.on('set', function (_ref3) {\r\n var interactable = _ref3.interactable,\r\n options = _ref3.options;\r\n\r\n extend(interactable.events.options, pointerEvents.defaults);\r\n extend(interactable.events.options, options);\r\n});\r\n\r\nmerge(Interactable.eventTypes, pointerEvents.types);\r\n\r\nInteractable.prototype.pointerEvents = function (options) {\r\n extend(this.events.options, options);\r\n\r\n return this;\r\n};\r\n\r\nvar __backCompatOption = Interactable.prototype._backCompatOption;\r\n\r\nInteractable.prototype._backCompatOption = function (optionName, newValue) {\r\n var ret = __backCompatOption.call(this, optionName, newValue);\r\n\r\n if (ret === this) {\r\n this.events.options[optionName] = newValue;\r\n }\r\n\r\n return ret;\r\n};\r\n\r\nInteractable.settingsMethods.push('pointerEvents');\r\n\r\n},{\"../Interactable\":4,\"../scope\":33,\"../utils/arr\":35,\"../utils/extend\":41,\"../utils/is\":46,\"./base\":30}],33:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar utils = require('./utils');\r\nvar events = require('./utils/events');\r\nvar signals = require('./utils/Signals').new();\r\n\r\nvar _require = require('./utils/window'),\r\n getWindow = _require.getWindow;\r\n\r\nvar scope = {\r\n signals: signals,\r\n events: events,\r\n utils: utils,\r\n\r\n // main document\r\n document: require('./utils/domObjects').document,\r\n // all documents being listened to\r\n documents: [],\r\n\r\n addDocument: function addDocument(doc, win) {\r\n // do nothing if document is already known\r\n if (utils.contains(scope.documents, doc)) {\r\n return false;\r\n }\r\n\r\n win = win || getWindow(doc);\r\n\r\n scope.documents.push(doc);\r\n events.documents.push(doc);\r\n\r\n // don't add an unload event for the main document\r\n // so that the page may be cached in browser history\r\n if (doc !== scope.document) {\r\n events.add(win, 'unload', scope.onWindowUnload);\r\n }\r\n\r\n signals.fire('add-document', { doc: doc, win: win });\r\n },\r\n\r\n removeDocument: function removeDocument(doc, win) {\r\n var index = scope.documents.indexOf(doc);\r\n\r\n win = win || getWindow(doc);\r\n\r\n events.remove(win, 'unload', scope.onWindowUnload);\r\n\r\n scope.documents.splice(index, 1);\r\n events.documents.splice(index, 1);\r\n\r\n signals.fire('remove-document', { win: win, doc: doc });\r\n },\r\n\r\n onWindowUnload: function onWindowUnload() {\r\n scope.removeDocument(this.document, this);\r\n }\r\n};\r\n\r\nmodule.exports = scope;\r\n\r\n},{\"./utils\":44,\"./utils/Signals\":34,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/window\":52}],34:[function(require,module,exports){\r\n\"use strict\";\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\nvar Signals = function () {\r\n function Signals() {\r\n _classCallCheck(this, Signals);\r\n\r\n this.listeners = {\r\n // signalName: [listeners],\r\n };\r\n }\r\n\r\n Signals.prototype.on = function on(name, listener) {\r\n if (!this.listeners[name]) {\r\n this.listeners[name] = [listener];\r\n return;\r\n }\r\n\r\n this.listeners[name].push(listener);\r\n };\r\n\r\n Signals.prototype.off = function off(name, listener) {\r\n if (!this.listeners[name]) {\r\n return;\r\n }\r\n\r\n var index = this.listeners[name].indexOf(listener);\r\n\r\n if (index !== -1) {\r\n this.listeners[name].splice(index, 1);\r\n }\r\n };\r\n\r\n Signals.prototype.fire = function fire(name, arg) {\r\n var targetListeners = this.listeners[name];\r\n\r\n if (!targetListeners) {\r\n return;\r\n }\r\n\r\n for (var _i = 0; _i < targetListeners.length; _i++) {\r\n var _ref;\r\n\r\n _ref = targetListeners[_i];\r\n var listener = _ref;\r\n\r\n if (listener(arg, name) === false) {\r\n return;\r\n }\r\n }\r\n };\r\n\r\n return Signals;\r\n}();\r\n\r\nSignals.new = function () {\r\n return new Signals();\r\n};\r\n\r\nmodule.exports = Signals;\r\n\r\n},{}],35:[function(require,module,exports){\r\n\"use strict\";\r\n\r\nfunction contains(array, target) {\r\n return array.indexOf(target) !== -1;\r\n}\r\n\r\nfunction merge(target, source) {\r\n for (var _i = 0; _i < source.length; _i++) {\r\n var _ref;\r\n\r\n _ref = source[_i];\r\n var item = _ref;\r\n\r\n target.push(item);\r\n }\r\n\r\n return target;\r\n}\r\n\r\nmodule.exports = {\r\n contains: contains,\r\n merge: merge\r\n};\r\n\r\n},{}],36:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _require = require('./window'),\r\n window = _require.window;\r\n\r\nvar is = require('./is');\r\nvar domObjects = require('./domObjects');\r\n\r\nvar Element = domObjects.Element;\r\nvar navigator = window.navigator;\r\n\r\nvar browser = {\r\n // Does the browser support touch input?\r\n supportsTouch: !!('ontouchstart' in window || is.function(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch),\r\n\r\n // Does the browser support PointerEvents\r\n supportsPointerEvent: !!domObjects.PointerEvent,\r\n\r\n isIOS: /iP(hone|od|ad)/.test(navigator.platform),\r\n\r\n // scrolling doesn't change the result of getClientRects on iOS 7\r\n isIOS7: /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\\d]/.test(navigator.appVersion),\r\n\r\n isIe9: /MSIE 9/.test(navigator.userAgent),\r\n\r\n // prefix matchesSelector\r\n prefixedMatchesSelector: 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector',\r\n\r\n pEventTypes: domObjects.PointerEvent ? domObjects.PointerEvent === window.MSPointerEvent ? {\r\n up: 'MSPointerUp',\r\n down: 'MSPointerDown',\r\n over: 'mouseover',\r\n out: 'mouseout',\r\n move: 'MSPointerMove',\r\n cancel: 'MSPointerCancel'\r\n } : {\r\n up: 'pointerup',\r\n down: 'pointerdown',\r\n over: 'pointerover',\r\n out: 'pointerout',\r\n move: 'pointermove',\r\n cancel: 'pointercancel'\r\n } : null,\r\n\r\n // because Webkit and Opera still use 'mousewheel' event type\r\n wheelEvent: 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\r\n\r\n};\r\n\r\n// Opera Mobile must be handled differently\r\nbrowser.isOperaMobile = navigator.appName === 'Opera' && browser.supportsTouch && navigator.userAgent.match('Presto');\r\n\r\nmodule.exports = browser;\r\n\r\n},{\"./domObjects\":38,\"./is\":46,\"./window\":52}],37:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar is = require('./is');\r\n\r\nmodule.exports = function clone(source) {\r\n var dest = {};\r\n for (var prop in source) {\r\n if (is.plainObject(source[prop])) {\r\n dest[prop] = clone(source[prop]);\r\n } else {\r\n dest[prop] = source[prop];\r\n }\r\n }\r\n return dest;\r\n};\r\n\r\n},{\"./is\":46}],38:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar domObjects = {};\r\nvar win = require('./window').window;\r\n\r\nfunction blank() {}\r\n\r\ndomObjects.document = win.document;\r\ndomObjects.DocumentFragment = win.DocumentFragment || blank;\r\ndomObjects.SVGElement = win.SVGElement || blank;\r\ndomObjects.SVGSVGElement = win.SVGSVGElement || blank;\r\ndomObjects.SVGElementInstance = win.SVGElementInstance || blank;\r\ndomObjects.Element = win.Element || blank;\r\ndomObjects.HTMLElement = win.HTMLElement || domObjects.Element;\r\n\r\ndomObjects.Event = win.Event;\r\ndomObjects.Touch = win.Touch || blank;\r\ndomObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent;\r\n\r\nmodule.exports = domObjects;\r\n\r\n},{\"./window\":52}],39:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar win = require('./window');\r\nvar browser = require('./browser');\r\nvar is = require('./is');\r\nvar domObjects = require('./domObjects');\r\n\r\nvar domUtils = {\r\n nodeContains: function nodeContains(parent, child) {\r\n while (child) {\r\n if (child === parent) {\r\n return true;\r\n }\r\n\r\n child = child.parentNode;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n closest: function closest(element, selector) {\r\n while (is.element(element)) {\r\n if (domUtils.matchesSelector(element, selector)) {\r\n return element;\r\n }\r\n\r\n element = domUtils.parentNode(element);\r\n }\r\n\r\n return null;\r\n },\r\n\r\n parentNode: function parentNode(node) {\r\n var parent = node.parentNode;\r\n\r\n if (is.docFrag(parent)) {\r\n // skip past #shado-root fragments\r\n while ((parent = parent.host) && is.docFrag(parent)) {\r\n continue;\r\n }\r\n\r\n return parent;\r\n }\r\n\r\n return parent;\r\n },\r\n\r\n matchesSelector: function matchesSelector(element, selector) {\r\n // remove /deep/ from selectors if shadowDOM polyfill is used\r\n if (win.window !== win.realWindow) {\r\n selector = selector.replace(/\\/deep\\//g, ' ');\r\n }\r\n\r\n return element[browser.prefixedMatchesSelector](selector);\r\n },\r\n\r\n // Test for the element that's \"above\" all other qualifiers\r\n indexOfDeepestElement: function indexOfDeepestElement(elements) {\r\n var deepestZoneParents = [];\r\n var dropzoneParents = [];\r\n var dropzone = void 0;\r\n var deepestZone = elements[0];\r\n var index = deepestZone ? 0 : -1;\r\n var parent = void 0;\r\n var child = void 0;\r\n var i = void 0;\r\n var n = void 0;\r\n\r\n for (i = 1; i < elements.length; i++) {\r\n dropzone = elements[i];\r\n\r\n // an element might belong to multiple selector dropzones\r\n if (!dropzone || dropzone === deepestZone) {\r\n continue;\r\n }\r\n\r\n if (!deepestZone) {\r\n deepestZone = dropzone;\r\n index = i;\r\n continue;\r\n }\r\n\r\n // check if the deepest or current are document.documentElement or document.rootElement\r\n // - if the current dropzone is, do nothing and continue\r\n if (dropzone.parentNode === dropzone.ownerDocument) {\r\n continue;\r\n }\r\n // - if deepest is, update with the current dropzone and continue to next\r\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\r\n deepestZone = dropzone;\r\n index = i;\r\n continue;\r\n }\r\n\r\n if (!deepestZoneParents.length) {\r\n parent = deepestZone;\r\n while (parent.parentNode && parent.parentNode !== parent.ownerDocument) {\r\n deepestZoneParents.unshift(parent);\r\n parent = parent.parentNode;\r\n }\r\n }\r\n\r\n // if this element is an svg element and the current deepest is\r\n // an HTMLElement\r\n if (deepestZone instanceof domObjects.HTMLElement && dropzone instanceof domObjects.SVGElement && !(dropzone instanceof domObjects.SVGSVGElement)) {\r\n\r\n if (dropzone === deepestZone.parentNode) {\r\n continue;\r\n }\r\n\r\n parent = dropzone.ownerSVGElement;\r\n } else {\r\n parent = dropzone;\r\n }\r\n\r\n dropzoneParents = [];\r\n\r\n while (parent.parentNode !== parent.ownerDocument) {\r\n dropzoneParents.unshift(parent);\r\n parent = parent.parentNode;\r\n }\r\n\r\n n = 0;\r\n\r\n // get (position of last common ancestor) + 1\r\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\r\n n++;\r\n }\r\n\r\n var parents = [dropzoneParents[n - 1], dropzoneParents[n], deepestZoneParents[n]];\r\n\r\n child = parents[0].lastChild;\r\n\r\n while (child) {\r\n if (child === parents[1]) {\r\n deepestZone = dropzone;\r\n index = i;\r\n deepestZoneParents = [];\r\n\r\n break;\r\n } else if (child === parents[2]) {\r\n break;\r\n }\r\n\r\n child = child.previousSibling;\r\n }\r\n }\r\n\r\n return index;\r\n },\r\n\r\n matchesUpTo: function matchesUpTo(element, selector, limit) {\r\n while (is.element(element)) {\r\n if (domUtils.matchesSelector(element, selector)) {\r\n return true;\r\n }\r\n\r\n element = domUtils.parentNode(element);\r\n\r\n if (element === limit) {\r\n return domUtils.matchesSelector(element, selector);\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n getActualElement: function getActualElement(element) {\r\n return element instanceof domObjects.SVGElementInstance ? element.correspondingUseElement : element;\r\n },\r\n\r\n getScrollXY: function getScrollXY(relevantWindow) {\r\n relevantWindow = relevantWindow || win.window;\r\n return {\r\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\r\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop\r\n };\r\n },\r\n\r\n getElementClientRect: function getElementClientRect(element) {\r\n var clientRect = element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];\r\n\r\n return clientRect && {\r\n left: clientRect.left,\r\n right: clientRect.right,\r\n top: clientRect.top,\r\n bottom: clientRect.bottom,\r\n width: clientRect.width || clientRect.right - clientRect.left,\r\n height: clientRect.height || clientRect.bottom - clientRect.top\r\n };\r\n },\r\n\r\n getElementRect: function getElementRect(element) {\r\n var clientRect = domUtils.getElementClientRect(element);\r\n\r\n if (!browser.isIOS7 && clientRect) {\r\n var scroll = domUtils.getScrollXY(win.getWindow(element));\r\n\r\n clientRect.left += scroll.x;\r\n clientRect.right += scroll.x;\r\n clientRect.top += scroll.y;\r\n clientRect.bottom += scroll.y;\r\n }\r\n\r\n return clientRect;\r\n },\r\n\r\n getPath: function getPath(element) {\r\n var path = [];\r\n\r\n while (element) {\r\n path.push(element);\r\n element = domUtils.parentNode(element);\r\n }\r\n\r\n return path;\r\n },\r\n\r\n trySelector: function trySelector(value) {\r\n if (!is.string(value)) {\r\n return false;\r\n }\r\n\r\n // an exception will be raised if it is invalid\r\n domObjects.document.querySelector(value);\r\n return true;\r\n }\r\n};\r\n\r\nmodule.exports = domUtils;\r\n\r\n},{\"./browser\":36,\"./domObjects\":38,\"./is\":46,\"./window\":52}],40:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar is = require('./is');\r\nvar domUtils = require('./domUtils');\r\nvar pointerUtils = require('./pointerUtils');\r\nvar pExtend = require('./pointerExtend');\r\n\r\nvar _require = require('./window'),\r\n window = _require.window;\r\n\r\nvar _require2 = require('./arr'),\r\n contains = _require2.contains;\r\n\r\nvar elements = [];\r\nvar targets = [];\r\n\r\n// {\r\n// type: {\r\n// selectors: ['selector', ...],\r\n// contexts : [document, ...],\r\n// listeners: [[listener, capture, passive], ...]\r\n// }\r\n// }\r\nvar delegatedEvents = {};\r\nvar documents = [];\r\n\r\nvar supportsOptions = function () {\r\n var supported = false;\r\n\r\n window.document.createElement('div').addEventListener('test', null, {\r\n get capture() {\r\n supported = true;\r\n }\r\n });\r\n\r\n return supported;\r\n}();\r\n\r\nfunction add(element, type, listener, optionalArg) {\r\n var options = getOptions(optionalArg);\r\n var elementIndex = elements.indexOf(element);\r\n var target = targets[elementIndex];\r\n\r\n if (!target) {\r\n target = {\r\n events: {},\r\n typeCount: 0\r\n };\r\n\r\n elementIndex = elements.push(element) - 1;\r\n targets.push(target);\r\n }\r\n\r\n if (!target.events[type]) {\r\n target.events[type] = [];\r\n target.typeCount++;\r\n }\r\n\r\n if (!contains(target.events[type], listener)) {\r\n element.addEventListener(type, listener, supportsOptions ? options : !!options.capture);\r\n target.events[type].push(listener);\r\n }\r\n}\r\n\r\nfunction remove(element, type, listener, optionalArg) {\r\n var options = getOptions(optionalArg);\r\n var elementIndex = elements.indexOf(element);\r\n var target = targets[elementIndex];\r\n\r\n if (!target || !target.events) {\r\n return;\r\n }\r\n\r\n if (type === 'all') {\r\n for (type in target.events) {\r\n if (target.events.hasOwnProperty(type)) {\r\n remove(element, type, 'all');\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if (target.events[type]) {\r\n var len = target.events[type].length;\r\n\r\n if (listener === 'all') {\r\n for (var i = 0; i < len; i++) {\r\n remove(element, type, target.events[type][i], options);\r\n }\r\n return;\r\n } else {\r\n for (var _i = 0; _i < len; _i++) {\r\n if (target.events[type][_i] === listener) {\r\n element.removeEventListener('on' + type, listener, supportsOptions ? options : !!options.capture);\r\n target.events[type].splice(_i, 1);\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (target.events[type] && target.events[type].length === 0) {\r\n target.events[type] = null;\r\n target.typeCount--;\r\n }\r\n }\r\n\r\n if (!target.typeCount) {\r\n targets.splice(elementIndex, 1);\r\n elements.splice(elementIndex, 1);\r\n }\r\n}\r\n\r\nfunction addDelegate(selector, context, type, listener, optionalArg) {\r\n var options = getOptions(optionalArg);\r\n if (!delegatedEvents[type]) {\r\n delegatedEvents[type] = {\r\n selectors: [],\r\n contexts: [],\r\n listeners: []\r\n };\r\n\r\n // add delegate listener functions\r\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\r\n var doc = documents[_i2];\r\n add(doc, type, delegateListener);\r\n add(doc, type, delegateUseCapture, true);\r\n }\r\n }\r\n\r\n var delegated = delegatedEvents[type];\r\n var index = void 0;\r\n\r\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\r\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\r\n break;\r\n }\r\n }\r\n\r\n if (index === -1) {\r\n index = delegated.selectors.length;\r\n\r\n delegated.selectors.push(selector);\r\n delegated.contexts.push(context);\r\n delegated.listeners.push([]);\r\n }\r\n\r\n // keep listener and capture and passive flags\r\n delegated.listeners[index].push([listener, !!options.capture, options.passive]);\r\n}\r\n\r\nfunction removeDelegate(selector, context, type, listener, optionalArg) {\r\n var options = getOptions(optionalArg);\r\n var delegated = delegatedEvents[type];\r\n var matchFound = false;\r\n var index = void 0;\r\n\r\n if (!delegated) {\r\n return;\r\n }\r\n\r\n // count from last index of delegated to 0\r\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\r\n // look for matching selector and context Node\r\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\r\n\r\n var listeners = delegated.listeners[index];\r\n\r\n // each item of the listeners array is an array: [function, capture, passive]\r\n for (var i = listeners.length - 1; i >= 0; i--) {\r\n var _listeners$i = listeners[i],\r\n fn = _listeners$i[0],\r\n capture = _listeners$i[1],\r\n passive = _listeners$i[2];\r\n\r\n // check if the listener functions and capture and passive flags match\r\n\r\n if (fn === listener && capture === !!options.capture && passive === options.passive) {\r\n // remove the listener from the array of listeners\r\n listeners.splice(i, 1);\r\n\r\n // if all listeners for this interactable have been removed\r\n // remove the interactable from the delegated arrays\r\n if (!listeners.length) {\r\n delegated.selectors.splice(index, 1);\r\n delegated.contexts.splice(index, 1);\r\n delegated.listeners.splice(index, 1);\r\n\r\n // remove delegate function from context\r\n remove(context, type, delegateListener);\r\n remove(context, type, delegateUseCapture, true);\r\n\r\n // remove the arrays if they are empty\r\n if (!delegated.selectors.length) {\r\n delegatedEvents[type] = null;\r\n }\r\n }\r\n\r\n // only remove one listener\r\n matchFound = true;\r\n break;\r\n }\r\n }\r\n\r\n if (matchFound) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// bound to the interactable context when a DOM event\r\n// listener is added to a selector interactable\r\nfunction delegateListener(event, optionalArg) {\r\n var options = getOptions(optionalArg);\r\n var fakeEvent = {};\r\n var delegated = delegatedEvents[event.type];\r\n\r\n var _pointerUtils$getEven = pointerUtils.getEventTargets(event),\r\n eventTarget = _pointerUtils$getEven[0];\r\n\r\n var element = eventTarget;\r\n\r\n // duplicate the event so that currentTarget can be changed\r\n pExtend(fakeEvent, event);\r\n\r\n fakeEvent.originalEvent = event;\r\n fakeEvent.preventDefault = preventOriginalDefault;\r\n\r\n // climb up document tree looking for selector matches\r\n while (is.element(element)) {\r\n for (var i = 0; i < delegated.selectors.length; i++) {\r\n var selector = delegated.selectors[i];\r\n var context = delegated.contexts[i];\r\n\r\n if (domUtils.matchesSelector(element, selector) && domUtils.nodeContains(context, eventTarget) && domUtils.nodeContains(context, element)) {\r\n\r\n var listeners = delegated.listeners[i];\r\n\r\n fakeEvent.currentTarget = element;\r\n\r\n for (var j = 0; j < listeners.length; j++) {\r\n var _listeners$j = listeners[j],\r\n fn = _listeners$j[0],\r\n capture = _listeners$j[1],\r\n passive = _listeners$j[2];\r\n\r\n\r\n if (capture === !!options.capture && passive === options.passive) {\r\n fn(fakeEvent);\r\n }\r\n }\r\n }\r\n }\r\n\r\n element = domUtils.parentNode(element);\r\n }\r\n}\r\n\r\nfunction delegateUseCapture(event) {\r\n return delegateListener.call(this, event, true);\r\n}\r\n\r\nfunction preventOriginalDefault() {\r\n this.originalEvent.preventDefault();\r\n}\r\n\r\nfunction getOptions(param) {\r\n return is.object(param) ? param : { capture: param };\r\n}\r\n\r\nmodule.exports = {\r\n add: add,\r\n remove: remove,\r\n\r\n addDelegate: addDelegate,\r\n removeDelegate: removeDelegate,\r\n\r\n delegateListener: delegateListener,\r\n delegateUseCapture: delegateUseCapture,\r\n delegatedEvents: delegatedEvents,\r\n documents: documents,\r\n\r\n supportsOptions: supportsOptions,\r\n\r\n _elements: elements,\r\n _targets: targets\r\n};\r\n\r\n},{\"./arr\":35,\"./domUtils\":39,\"./is\":46,\"./pointerExtend\":48,\"./pointerUtils\":49,\"./window\":52}],41:[function(require,module,exports){\r\n\"use strict\";\r\n\r\nmodule.exports = function extend(dest, source) {\r\n for (var prop in source) {\r\n dest[prop] = source[prop];\r\n }\r\n return dest;\r\n};\r\n\r\n},{}],42:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _require = require('./rect'),\r\n resolveRectLike = _require.resolveRectLike,\r\n rectToXY = _require.rectToXY;\r\n\r\nmodule.exports = function (target, element, action) {\r\n var actionOptions = target.options[action];\r\n var actionOrigin = actionOptions && actionOptions.origin;\r\n var origin = actionOrigin || target.options.origin;\r\n\r\n var originRect = resolveRectLike(origin, target, element, [target && element]);\r\n\r\n return rectToXY(originRect) || { x: 0, y: 0 };\r\n};\r\n\r\n},{\"./rect\":51}],43:[function(require,module,exports){\r\n\"use strict\";\r\n\r\nmodule.exports = function (x, y) {\r\n return Math.sqrt(x * x + y * y);\r\n};\r\n\r\n},{}],44:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar extend = require('./extend');\r\nvar win = require('./window');\r\n\r\nvar utils = {\r\n warnOnce: function warnOnce(method, message) {\r\n var warned = false;\r\n\r\n return function () {\r\n if (!warned) {\r\n win.window.console.warn(message);\r\n warned = true;\r\n }\r\n\r\n return method.apply(this, arguments);\r\n };\r\n },\r\n\r\n // http://stackoverflow.com/a/5634528/2280888\r\n _getQBezierValue: function _getQBezierValue(t, p1, p2, p3) {\r\n var iT = 1 - t;\r\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;\r\n },\r\n\r\n getQuadraticCurvePoint: function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {\r\n return {\r\n x: utils._getQBezierValue(position, startX, cpX, endX),\r\n y: utils._getQBezierValue(position, startY, cpY, endY)\r\n };\r\n },\r\n\r\n // http://gizma.com/easing/\r\n easeOutQuad: function easeOutQuad(t, b, c, d) {\r\n t /= d;\r\n return -c * t * (t - 2) + b;\r\n },\r\n\r\n copyAction: function copyAction(dest, src) {\r\n dest.name = src.name;\r\n dest.axis = src.axis;\r\n dest.edges = src.edges;\r\n\r\n return dest;\r\n },\r\n\r\n is: require('./is'),\r\n extend: extend,\r\n hypot: require('./hypot'),\r\n getOriginXY: require('./getOriginXY')\r\n};\r\n\r\nextend(utils, require('./arr'));\r\nextend(utils, require('./domUtils'));\r\nextend(utils, require('./pointerUtils'));\r\nextend(utils, require('./rect'));\r\n\r\nmodule.exports = utils;\r\n\r\n},{\"./arr\":35,\"./domUtils\":39,\"./extend\":41,\"./getOriginXY\":42,\"./hypot\":43,\"./is\":46,\"./pointerUtils\":49,\"./rect\":51,\"./window\":52}],45:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar scope = require('../scope');\r\nvar utils = require('./index');\r\n\r\nvar finder = {\r\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'],\r\n\r\n search: function search(pointer, eventType, eventTarget) {\r\n var pointerType = utils.getPointerType(pointer);\r\n var pointerId = utils.getPointerId(pointer);\r\n var details = { pointer: pointer, pointerId: pointerId, pointerType: pointerType, eventType: eventType, eventTarget: eventTarget };\r\n\r\n for (var _i = 0; _i < finder.methodOrder.length; _i++) {\r\n var _ref;\r\n\r\n _ref = finder.methodOrder[_i];\r\n var method = _ref;\r\n\r\n var interaction = finder[method](details);\r\n\r\n if (interaction) {\r\n return interaction;\r\n }\r\n }\r\n },\r\n\r\n // try to resume simulation with a new pointer\r\n simulationResume: function simulationResume(_ref2) {\r\n var pointerType = _ref2.pointerType,\r\n eventType = _ref2.eventType,\r\n eventTarget = _ref2.eventTarget;\r\n\r\n if (!/down|start/i.test(eventType)) {\r\n return null;\r\n }\r\n\r\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\r\n var _ref3;\r\n\r\n _ref3 = scope.interactions[_i2];\r\n var interaction = _ref3;\r\n\r\n var element = eventTarget;\r\n\r\n if (interaction.simulation && interaction.simulation.allowResume && interaction.pointerType === pointerType) {\r\n while (element) {\r\n // if the element is the interaction element\r\n if (element === interaction.element) {\r\n return interaction;\r\n }\r\n element = utils.parentNode(element);\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n // if it's a mouse or pen interaction\r\n mouseOrPen: function mouseOrPen(_ref4) {\r\n var pointerId = _ref4.pointerId,\r\n pointerType = _ref4.pointerType,\r\n eventType = _ref4.eventType;\r\n\r\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\r\n return null;\r\n }\r\n\r\n var firstNonActive = void 0;\r\n\r\n for (var _i3 = 0; _i3 < scope.interactions.length; _i3++) {\r\n var _ref5;\r\n\r\n _ref5 = scope.interactions[_i3];\r\n var interaction = _ref5;\r\n\r\n if (interaction.pointerType === pointerType) {\r\n // if it's a down event, skip interactions with running simulations\r\n if (interaction.simulation && !utils.contains(interaction.pointerIds, pointerId)) {\r\n continue;\r\n }\r\n\r\n // if the interaction is active, return it immediately\r\n if (interaction.interacting()) {\r\n return interaction;\r\n }\r\n // otherwise save it and look for another active interaction\r\n else if (!firstNonActive) {\r\n firstNonActive = interaction;\r\n }\r\n }\r\n }\r\n\r\n // if no active mouse interaction was found use the first inactive mouse\r\n // interaction\r\n if (firstNonActive) {\r\n return firstNonActive;\r\n }\r\n\r\n // find any mouse or pen interaction.\r\n // ignore the interaction if the eventType is a *down, and a simulation\r\n // is active\r\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\r\n var _ref6;\r\n\r\n _ref6 = scope.interactions[_i4];\r\n var _interaction = _ref6;\r\n\r\n if (_interaction.pointerType === pointerType && !(/down/i.test(eventType) && _interaction.simulation)) {\r\n return _interaction;\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n // get interaction that has this pointer\r\n hasPointer: function hasPointer(_ref7) {\r\n var pointerId = _ref7.pointerId;\r\n\r\n for (var _i5 = 0; _i5 < scope.interactions.length; _i5++) {\r\n var _ref8;\r\n\r\n _ref8 = scope.interactions[_i5];\r\n var interaction = _ref8;\r\n\r\n if (utils.contains(interaction.pointerIds, pointerId)) {\r\n return interaction;\r\n }\r\n }\r\n },\r\n\r\n // get first idle interaction with a matching pointerType\r\n idle: function idle(_ref9) {\r\n var pointerType = _ref9.pointerType;\r\n\r\n for (var _i6 = 0; _i6 < scope.interactions.length; _i6++) {\r\n var _ref10;\r\n\r\n _ref10 = scope.interactions[_i6];\r\n var interaction = _ref10;\r\n\r\n // if there's already a pointer held down\r\n if (interaction.pointerIds.length === 1) {\r\n var target = interaction.target;\r\n // don't add this pointer if there is a target interactable and it\r\n // isn't gesturable\r\n if (target && !target.options.gesture.enabled) {\r\n continue;\r\n }\r\n }\r\n // maximum of 2 pointers per interaction\r\n else if (interaction.pointerIds.length >= 2) {\r\n continue;\r\n }\r\n\r\n if (!interaction.interacting() && pointerType === interaction.pointerType) {\r\n return interaction;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n};\r\n\r\nmodule.exports = finder;\r\n\r\n},{\"../scope\":33,\"./index\":44}],46:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\r\n\r\nvar win = require('./window');\r\nvar isWindow = require('./isWindow');\r\n\r\nvar is = {\r\n array: function array() {},\r\n\r\n window: function window(thing) {\r\n return thing === win.window || isWindow(thing);\r\n },\r\n\r\n docFrag: function docFrag(thing) {\r\n return is.object(thing) && thing.nodeType === 11;\r\n },\r\n\r\n object: function object(thing) {\r\n return !!thing && (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) === 'object';\r\n },\r\n\r\n function: function _function(thing) {\r\n return typeof thing === 'function';\r\n },\r\n\r\n number: function number(thing) {\r\n return typeof thing === 'number';\r\n },\r\n\r\n bool: function bool(thing) {\r\n return typeof thing === 'boolean';\r\n },\r\n\r\n string: function string(thing) {\r\n return typeof thing === 'string';\r\n },\r\n\r\n element: function element(thing) {\r\n if (!thing || (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) !== 'object') {\r\n return false;\r\n }\r\n\r\n var _window = win.getWindow(thing) || win.window;\r\n\r\n return (/object|function/.test(_typeof(_window.Element)) ? thing instanceof _window.Element //DOM2\r\n : thing.nodeType === 1 && typeof thing.nodeName === 'string'\r\n );\r\n },\r\n\r\n plainObject: function plainObject(thing) {\r\n return is.object(thing) && thing.constructor.name === 'Object';\r\n }\r\n};\r\n\r\nis.array = function (thing) {\r\n return is.object(thing) && typeof thing.length !== 'undefined' && is.function(thing.splice);\r\n};\r\n\r\nmodule.exports = is;\r\n\r\n},{\"./isWindow\":47,\"./window\":52}],47:[function(require,module,exports){\r\n\"use strict\";\r\n\r\nmodule.exports = function (thing) {\r\n return !!(thing && thing.Window) && thing instanceof thing.Window;\r\n};\r\n\r\n},{}],48:[function(require,module,exports){\r\n'use strict';\r\n\r\nfunction pointerExtend(dest, source) {\r\n for (var prop in source) {\r\n var prefixedPropREs = module.exports.prefixedPropREs;\r\n var deprecated = false;\r\n\r\n // skip deprecated prefixed properties\r\n for (var vendor in prefixedPropREs) {\r\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\r\n deprecated = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!deprecated && typeof source[prop] !== 'function') {\r\n dest[prop] = source[prop];\r\n }\r\n }\r\n return dest;\r\n}\r\n\r\npointerExtend.prefixedPropREs = {\r\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/\r\n};\r\n\r\nmodule.exports = pointerExtend;\r\n\r\n},{}],49:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar hypot = require('./hypot');\r\nvar browser = require('./browser');\r\nvar dom = require('./domObjects');\r\nvar domUtils = require('./domUtils');\r\nvar domObjects = require('./domObjects');\r\nvar is = require('./is');\r\nvar pointerExtend = require('./pointerExtend');\r\n\r\nvar pointerUtils = {\r\n copyCoords: function copyCoords(dest, src) {\r\n dest.page = dest.page || {};\r\n dest.page.x = src.page.x;\r\n dest.page.y = src.page.y;\r\n\r\n dest.client = dest.client || {};\r\n dest.client.x = src.client.x;\r\n dest.client.y = src.client.y;\r\n\r\n dest.timeStamp = src.timeStamp;\r\n },\r\n\r\n setCoordDeltas: function setCoordDeltas(targetObj, prev, cur) {\r\n targetObj.page.x = cur.page.x - prev.page.x;\r\n targetObj.page.y = cur.page.y - prev.page.y;\r\n targetObj.client.x = cur.client.x - prev.client.x;\r\n targetObj.client.y = cur.client.y - prev.client.y;\r\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp;\r\n\r\n // set pointer velocity\r\n var dt = Math.max(targetObj.timeStamp / 1000, 0.001);\r\n\r\n targetObj.page.speed = hypot(targetObj.page.x, targetObj.page.y) / dt;\r\n targetObj.page.vx = targetObj.page.x / dt;\r\n targetObj.page.vy = targetObj.page.y / dt;\r\n\r\n targetObj.client.speed = hypot(targetObj.client.x, targetObj.page.y) / dt;\r\n targetObj.client.vx = targetObj.client.x / dt;\r\n targetObj.client.vy = targetObj.client.y / dt;\r\n },\r\n\r\n isNativePointer: function isNativePointer(pointer) {\r\n return pointer instanceof dom.Event || pointer instanceof dom.Touch;\r\n },\r\n\r\n // Get specified X/Y coords for mouse or event.touches[0]\r\n getXY: function getXY(type, pointer, xy) {\r\n xy = xy || {};\r\n type = type || 'page';\r\n\r\n xy.x = pointer[type + 'X'];\r\n xy.y = pointer[type + 'Y'];\r\n\r\n return xy;\r\n },\r\n\r\n getPageXY: function getPageXY(pointer, page) {\r\n page = page || {};\r\n\r\n // Opera Mobile handles the viewport and scrolling oddly\r\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\r\n pointerUtils.getXY('screen', pointer, page);\r\n\r\n page.x += window.scrollX;\r\n page.y += window.scrollY;\r\n } else {\r\n pointerUtils.getXY('page', pointer, page);\r\n }\r\n\r\n return page;\r\n },\r\n\r\n getClientXY: function getClientXY(pointer, client) {\r\n client = client || {};\r\n\r\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\r\n // Opera Mobile handles the viewport and scrolling oddly\r\n pointerUtils.getXY('screen', pointer, client);\r\n } else {\r\n pointerUtils.getXY('client', pointer, client);\r\n }\r\n\r\n return client;\r\n },\r\n\r\n getPointerId: function getPointerId(pointer) {\r\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;\r\n },\r\n\r\n setCoords: function setCoords(targetObj, pointers, timeStamp) {\r\n var pointer = pointers.length > 1 ? pointerUtils.pointerAverage(pointers) : pointers[0];\r\n\r\n var tmpXY = {};\r\n\r\n pointerUtils.getPageXY(pointer, tmpXY);\r\n targetObj.page.x = tmpXY.x;\r\n targetObj.page.y = tmpXY.y;\r\n\r\n pointerUtils.getClientXY(pointer, tmpXY);\r\n targetObj.client.x = tmpXY.x;\r\n targetObj.client.y = tmpXY.y;\r\n\r\n targetObj.timeStamp = is.number(timeStamp) ? timeStamp : new Date().getTime();\r\n },\r\n\r\n pointerExtend: pointerExtend,\r\n\r\n getTouchPair: function getTouchPair(event) {\r\n var touches = [];\r\n\r\n // array of touches is supplied\r\n if (is.array(event)) {\r\n touches[0] = event[0];\r\n touches[1] = event[1];\r\n }\r\n // an event\r\n else {\r\n if (event.type === 'touchend') {\r\n if (event.touches.length === 1) {\r\n touches[0] = event.touches[0];\r\n touches[1] = event.changedTouches[0];\r\n } else if (event.touches.length === 0) {\r\n touches[0] = event.changedTouches[0];\r\n touches[1] = event.changedTouches[1];\r\n }\r\n } else {\r\n touches[0] = event.touches[0];\r\n touches[1] = event.touches[1];\r\n }\r\n }\r\n\r\n return touches;\r\n },\r\n\r\n pointerAverage: function pointerAverage(pointers) {\r\n var average = {\r\n pageX: 0,\r\n pageY: 0,\r\n clientX: 0,\r\n clientY: 0,\r\n screenX: 0,\r\n screenY: 0\r\n };\r\n\r\n for (var _i = 0; _i < pointers.length; _i++) {\r\n var _ref;\r\n\r\n _ref = pointers[_i];\r\n var pointer = _ref;\r\n\r\n for (var _prop in average) {\r\n average[_prop] += pointer[_prop];\r\n }\r\n }\r\n for (var prop in average) {\r\n average[prop] /= pointers.length;\r\n }\r\n\r\n return average;\r\n },\r\n\r\n touchBBox: function touchBBox(event) {\r\n if (!event.length && !(event.touches && event.touches.length > 1)) {\r\n return;\r\n }\r\n\r\n var touches = pointerUtils.getTouchPair(event);\r\n var minX = Math.min(touches[0].pageX, touches[1].pageX);\r\n var minY = Math.min(touches[0].pageY, touches[1].pageY);\r\n var maxX = Math.max(touches[0].pageX, touches[1].pageX);\r\n var maxY = Math.max(touches[0].pageY, touches[1].pageY);\r\n\r\n return {\r\n x: minX,\r\n y: minY,\r\n left: minX,\r\n top: minY,\r\n width: maxX - minX,\r\n height: maxY - minY\r\n };\r\n },\r\n\r\n touchDistance: function touchDistance(event, deltaSource) {\r\n var sourceX = deltaSource + 'X';\r\n var sourceY = deltaSource + 'Y';\r\n var touches = pointerUtils.getTouchPair(event);\r\n\r\n var dx = touches[0][sourceX] - touches[1][sourceX];\r\n var dy = touches[0][sourceY] - touches[1][sourceY];\r\n\r\n return hypot(dx, dy);\r\n },\r\n\r\n touchAngle: function touchAngle(event, prevAngle, deltaSource) {\r\n var sourceX = deltaSource + 'X';\r\n var sourceY = deltaSource + 'Y';\r\n var touches = pointerUtils.getTouchPair(event);\r\n var dx = touches[1][sourceX] - touches[0][sourceX];\r\n var dy = touches[1][sourceY] - touches[0][sourceY];\r\n var angle = 180 * Math.atan2(dy, dx) / Math.PI;\r\n\r\n return angle;\r\n },\r\n\r\n getPointerType: function getPointerType(pointer) {\r\n return is.string(pointer.pointerType) ? pointer.pointerType : is.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\r\n // if the PointerEvent API isn't available, then the \"pointer\" must\r\n // be either a MouseEvent, TouchEvent, or Touch object\r\n : /touch/.test(pointer.type) || pointer instanceof domObjects.Touch ? 'touch' : 'mouse';\r\n },\r\n\r\n // [ event.target, event.currentTarget ]\r\n getEventTargets: function getEventTargets(event) {\r\n var path = is.function(event.composedPath) ? event.composedPath() : event.path;\r\n\r\n return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];\r\n }\r\n};\r\n\r\nmodule.exports = pointerUtils;\r\n\r\n},{\"./browser\":36,\"./domObjects\":38,\"./domUtils\":39,\"./hypot\":43,\"./is\":46,\"./pointerExtend\":48}],50:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _require = require('./window'),\r\n window = _require.window;\r\n\r\nvar vendors = ['ms', 'moz', 'webkit', 'o'];\r\nvar lastTime = 0;\r\nvar request = void 0;\r\nvar cancel = void 0;\r\n\r\nfor (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {\r\n request = window[vendors[x] + 'RequestAnimationFrame'];\r\n cancel = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n}\r\n\r\nif (!request) {\r\n request = function request(callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n}\r\n\r\nif (!cancel) {\r\n cancel = function cancel(id) {\r\n clearTimeout(id);\r\n };\r\n}\r\n\r\nmodule.exports = {\r\n request: request,\r\n cancel: cancel\r\n};\r\n\r\n},{\"./window\":52}],51:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar extend = require('./extend');\r\nvar is = require('./is');\r\n\r\nvar _require = require('./domUtils'),\r\n closest = _require.closest,\r\n parentNode = _require.parentNode,\r\n getElementRect = _require.getElementRect;\r\n\r\nvar rectUtils = {\r\n getStringOptionResult: function getStringOptionResult(value, interactable, element) {\r\n if (!is.string(value)) {\r\n return null;\r\n }\r\n\r\n if (value === 'parent') {\r\n value = parentNode(element);\r\n } else if (value === 'self') {\r\n value = interactable.getRect(element);\r\n } else {\r\n value = closest(element, value);\r\n }\r\n\r\n return value;\r\n },\r\n\r\n resolveRectLike: function resolveRectLike(value, interactable, element, functionArgs) {\r\n value = rectUtils.getStringOptionResult(value, interactable, element) || value;\r\n\r\n if (is.function(value)) {\r\n value = value.apply(null, functionArgs);\r\n }\r\n\r\n if (is.element(value)) {\r\n value = getElementRect(value);\r\n }\r\n\r\n return value;\r\n },\r\n\r\n rectToXY: function rectToXY(rect) {\r\n return rect && {\r\n x: 'x' in rect ? rect.x : rect.left,\r\n y: 'y' in rect ? rect.y : rect.top\r\n };\r\n },\r\n\r\n xywhToTlbr: function xywhToTlbr(rect) {\r\n if (rect && !('left' in rect && 'top' in rect)) {\r\n rect = extend({}, rect);\r\n\r\n rect.left = rect.x || 0;\r\n rect.top = rect.y || 0;\r\n rect.right = rect.right || rect.left + rect.width;\r\n rect.bottom = rect.bottom || rect.top + rect.height;\r\n }\r\n\r\n return rect;\r\n },\r\n\r\n tlbrToXywh: function tlbrToXywh(rect) {\r\n if (rect && !('x' in rect && 'y' in rect)) {\r\n rect = extend({}, rect);\r\n\r\n rect.x = rect.left || 0;\r\n rect.top = rect.top || 0;\r\n rect.width = rect.width || rect.right - rect.x;\r\n rect.height = rect.height || rect.bottom - rect.y;\r\n }\r\n\r\n return rect;\r\n }\r\n};\r\n\r\nmodule.exports = rectUtils;\r\n\r\n},{\"./domUtils\":39,\"./extend\":41,\"./is\":46}],52:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar win = module.exports;\r\nvar isWindow = require('./isWindow');\r\n\r\nfunction init(window) {\r\n // get wrapped window if using Shadow DOM polyfill\r\n\r\n win.realWindow = window;\r\n\r\n // create a TextNode\r\n var el = window.document.createTextNode('');\r\n\r\n // check if it's wrapped by a polyfill\r\n if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {\r\n // use wrapped window\r\n window = window.wrap(window);\r\n }\r\n\r\n win.window = window;\r\n}\r\n\r\nif (typeof window === 'undefined') {\r\n win.window = undefined;\r\n win.realWindow = undefined;\r\n} else {\r\n init(window);\r\n}\r\n\r\nwin.getWindow = function getWindow(node) {\r\n if (isWindow(node)) {\r\n return node;\r\n }\r\n\r\n var rootNode = node.ownerDocument || node;\r\n\r\n return rootNode.defaultView || rootNode.parentWindow || win.window;\r\n};\r\n\r\nwin.init = init;\r\n\r\n},{\"./isWindow\":47}]},{},[1])(1)\r\n});\r\n\r\n\r\n\r\n"],"file":"interact.js"} \ No newline at end of file +{"version":3,"sources":["../../src/libs/interact.js"],"names":["f","exports","module","define","amd","g","window","global","self","interact","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","init","_classCallCheck","instance","Constructor","TypeError","extend","fireUntilImmediateStopped","event","listeners","_i","_ref","listener","immediatePropagationStopped","Eventable","options","prototype","fire","onEvent","type","propagationStopped","on","eventType","push","off","eventList","index","indexOf","splice","undefined","getOriginXY","defaults","signals","InteractEvent","interaction","action","phase","element","related","preEnd","arguments","target","deltaSource","origin","starting","ending","coords","startCoords","curCoords","prevEvent","page","client","x","y","ctrlKey","altKey","shiftKey","metaKey","button","buttons","currentTarget","relatedTarget","interactable","t0","downTimes","signalArg","iEvent","pageX","pageY","clientX","clientY","x0","y0","clientX0","clientY0","timeStamp","dt","pointerDelta","duration","speed","velocityX","vx","velocityY","vy","swipe","getSwipe","angle","Math","atan2","PI","overlap","left","up","right","down","velocity","preventDefault","stopImmediatePropagation","stopPropagation","dx","dy","clone","is","events","actions","scope","_require","getElementRect","nodeContains","trySelector","matchesSelector","_require2","getWindow","_require3","contains","_require4","wheelEvent","interactables","Interactable","_context","context","document","_win","_doc","win","addDocument","set","setOnEvents","phases","onAction","onstart","onmove","onend","oninertiastart","setPerAction","option","object","perAction","enabled","bool","getRect","string","querySelector","rectChecker","checker","_backCompatOption","optionName","newValue","names","inContext","ownerDocument","_onOffMultiple","method","search","trim","split","array","_i2","_ref2","prop","eventTypes","addDelegate","add","removeDelegate","remove","base","perActions","actionName","methodDict","methodName","_i3","settingsMethods","_ref3","setting","unset","delegatedEvents","delegated","selectors","contexts","delegateListener","delegateUseCapture","_i4","interactions","_ref4","interacting","_ending","stop","indexOfElement","get","interactableGet","dontCheckInContext","ret","forEachMatch","callback","_i5","_ref5","utils","browser","domObjects","finder","methodNames","prevTouchTime","Interaction","pointerType","prepared","name","axis","edges","pointers","pointerIds","downTargets","prevCoords","downEvent","downPointer","_eventTarget","_curEventTarget","pointerIsDown","pointerWasMoved","_interacting","pointerDown","pointer","eventTarget","pointerIndex","updatePointer","start","copyAction","pointerMove","simulation","setCoords","duplicateMove","hypot","pointerMoveTolerance","getPointerIndex","duplicate","interactingBeforeMove","setCoordDeltas","doMove","copyCoords","_dontFireMove","pointerUp","curEventTarget","test","end","removePointer","currentAction","getPointerId","id","pointerId","_updateEventTargets","doOnInteractions","getPointerType","_utils$getEventTarget","getEventTargets","matches","supportsTouch","Date","getTime","changedTouches","changedTouch","invalidPointer","supportsPointerEvent","_interaction","_pointer","_interaction2","endAll","docEvents","pEventTypes","PointerEvent","move","cancel","mousedown","mousemove","mouseup","touchstart","touchmove","touchend","touchcancel","blur","onDocSignal","signalName","doc","eventMethod","_eventType","isIOS","passive","_ref6","pointerExtend","endAllInteractions","firePrepared","newEvent","defaultOptions","drag","mouseButtons","snap","restrict","inertia","autoScroll","startAxis","lockAxis","dragOptions","getCursor","abs","draggable","ondragstart","ondragend","merge","drop","accept","dynamicDrop","activeDrops","dropzones","elements","rects","dropEvents","setActiveDrops","dragEvent","getDropEvents","activate","fireActiveDrops","draggableElement","dropResult","getDrop","dropTarget","dropzone","dropElement","fireDropEvents","collectDrops","drops","current","dropElements","querySelectorAll","_ref7","currentElement","prevElement","dragElement","possibleDrops","validDrops","j","rect","dropCheck","dropIndex","indexOfDeepestElement","pointerEvent","enter","leave","deactivate","tmpl","prevDropElement","prevDropTarget","dragLeave","prevDropzone","dragEnter","dragmove","ondrop","ondropactivate","ondropdeactivate","ondragenter","ondragleave","ondropmove","number","max","min","dropped","dropOverlap","getPageXY","horizontal","vertical","top","bottom","dragRect","cx","width","cy","height","overlapArea","overlapRatio","_ref8","_ref9","gesture","ds","startDistance","prevDistance","distance","startAngle","prevAngle","scale","Infinity","isNaN","gesturable","ongesturestart","ongestureend","touches","touchDistance","box","touchBBox","touchAngle","da","prevScale","defaultMargin","resize","square","preserveAspectRatio","margin","NaN","invert","resizeOptions","resizeEdges","edge","checkResizeEdge","axes","cursors","isIe9","xy","topleft","bottomright","topright","bottomleft","cursorKey","edgeNames","startRect","linkedEdges","_linkedEdges","resizeStartAspectRatio","resizeRects","inverted","previous","delta","deltaRect","invertible","originalEdges","startAspectRatio","swap","resizable","onresizestart","onresizeend","value","interactableElement","matchesUpTo","resizeAxes","raf","domUtils","container","isScrolling","prevTime","request","scroll","now","scrollBy","scrollLeft","scrollTop","check","onInteractionMove","innerWidth","innerHeight","getElementClientRect","warnOnce","getAction","defaultActionChecker","actionChecker","ignoreFrom","allowFrom","testIgnore","testAllow","testIgnoreAllow","styleCursor","autoStart","withinInteractionLimit","maxInteractions","manualStart","maxPerElement","setActionDefaults","validateAction","actionInfo","getActionInfo","prepare","arg","validateSelector","matchElements","len","match","matchElement","pushMatches","parentNode","documentElement","style","cursor","maxActions","activeInteractions","targetCount","targetElementCount","otherAction","absX","absY","targetOptions","currentAxis","getDraggable","checkStartAxis","thisAxis","hold","delay","autoStartHoldTimer","getHoldDuration","setTimeout","clearTimeout","resistance","minSpeed","endSpeed","allowResume","smoothEndDuration","modifiers","animationFrame","inertiaStatus","active","smoothEnd","startEvent","upCoords","xe","ye","sx","sy","vx0","vys","lambda_v0","one_ve_v0","boundInertiaFrame","inertiaFrame","apply","boundSmoothEndFrame","smoothEndFrame","status","resumeEvent","resetStatuses","modifierStatuses","inertiaOptions","statuses","pointerSpeed","modifierResult","inertiaPossible","modifierArg","pageCoords","requireEndOnly","setAll","shouldMove","locked","vy0","v0","calcInertia","modifiedXe","modifiedYe","lambda","inertiaDur","log","te","updateInertiaCoords","progress","exp","quadPoint","getQuadraticCurvePoint","easeOutQuad","pageUp","clientUp","globalEvents","isSet","debug","getPointerAverage","pointerAverage","getTouchBBox","getTouchDistance","getTouchAngle","closest","removeDocument","checkAndPreventDefault","supportsPassive","onInteractionEvent","_arr","eventSignal","dragstart","preventNativeDrag","setOffsets","startOffset","modifierName","modifierOffsets","setOffset","result","changed","modifiedCoords","modifier","shouldDo","offset","modifiedX","modifiedY","beforeMove","setXY","modifyCoords","endOnly","restriction","elementRect","useStatusXY","getRestrictionRect","resolveRectLike","rectUtils","noInner","noOuter","restrictEdges","inner","xywhToTlbr","outer","noMin","noMax","restrictSize","minSize","tlbrToXywh","maxSize","range","targets","offsets","relativePoints","optionsOrigin","rectToXY","snapOffset","offsetRect","relativeX","relativeY","realX","realY","offsetX","offsetY","snapTarget","inRange","snapChanged","createSnapGrid","grid","limits","gridx","round","gridy","newX","newY","snapSize","pointerUtils","originalEvent","interval","tapTime","prevTap","subtractOrigin","originX","originY","addOrigin","simpleSignals","simpleEvents","pointerEvents","collectEventTargets","holdDuration","types","_arg$type","_arg$targets","_arg$pointerEvent","props","eventable","path","getPath","filter","holdTimers","timeout","timer","minDuration","_ref11","createSignalListener","_ref10","onNew","onFired","signal","endHoldRepeat","count","holdRepeatInterval","holdIntervalHandle","clearInterval","__backCompatOption","documents","onWindowUnload","Signals","targetListeners","source","item","Element","navigator","DocumentTouch","platform","isIOS7","appVersion","userAgent","prefixedMatchesSelector","MSPointerEvent","over","out","isOperaMobile","appName","dest","plainObject","blank","DocumentFragment","SVGElement","SVGSVGElement","SVGElementInstance","HTMLElement","Event","Touch","parent","child","selector","node","docFrag","host","realWindow","replace","deepestZoneParents","dropzoneParents","deepestZone","unshift","ownerSVGElement","parents","lastChild","previousSibling","limit","getActualElement","correspondingUseElement","getScrollXY","relevantWindow","scrollX","scrollY","clientRect","getBoundingClientRect","getClientRects","pExtend","supportsOptions","supported","createElement","addEventListener","capture","optionalArg","getOptions","elementIndex","typeCount","hasOwnProperty","removeEventListener","matchFound","_listeners$i","fn","fakeEvent","_pointerUtils$getEven","preventOriginalDefault","_listeners$j","param","_elements","_targets","actionOptions","actionOrigin","originRect","sqrt","message","warned","console","warn","_getQBezierValue","p1","p2","p3","iT","startX","startY","cpX","cpY","endX","endY","position","b","c","d","src","methodOrder","details","simulationResume","mouseOrPen","firstNonActive","hasPointer","idle","_i6","_typeof","Symbol","iterator","obj","constructor","isWindow","thing","nodeType","_function","_window","nodeName","Window","prefixedPropREs","deprecated","vendor","webkit","dom","targetObj","prev","cur","isNativePointer","getXY","getClientXY","identifier","tmpXY","getTouchPair","average","screenX","screenY","_prop","minX","minY","maxX","maxY","sourceX","sourceY","composedPath","vendors","lastTime","requestAnimationFrame","currTime","timeToCall","getStringOptionResult","functionArgs","el","createTextNode","wrap","rootNode","defaultView","parentWindow"],"mappings":"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","sourcesContent":["/**\n * interact.js v1.3.4\n *\n * Copyright (c) 2012-2018 Taye Adeyemi \n * Released under the MIT License.\n * https://raw.github.com/taye/interact.js/master/LICENSE\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 6 && arguments[6] !== undefined ? arguments[6] : false;\n\n _classCallCheck(this, InteractEvent);\n\n var target = interaction.target;\n var deltaSource = (target && target.options || defaults).deltaSource;\n var origin = getOriginXY(target, element, action);\n var starting = phase === 'start';\n var ending = phase === 'end';\n var coords = starting ? interaction.startCoords : interaction.curCoords;\n var prevEvent = interaction.prevEvent;\n\n element = element || interaction.element;\n\n var page = extend({}, coords.page);\n var client = extend({}, coords.client);\n\n page.x -= origin.x;\n page.y -= origin.y;\n\n client.x -= origin.x;\n client.y -= origin.y;\n\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.shiftKey = event.shiftKey;\n this.metaKey = event.metaKey;\n this.button = event.button;\n this.buttons = event.buttons;\n this.target = element;\n this.currentTarget = element;\n this.relatedTarget = related || null;\n this.preEnd = preEnd;\n this.type = action + (phase || '');\n this.interaction = interaction;\n this.interactable = target;\n\n this.t0 = starting ? interaction.downTimes[interaction.downTimes.length - 1] : prevEvent.t0;\n\n var signalArg = {\n interaction: interaction,\n event: event,\n action: action,\n phase: phase,\n element: element,\n related: related,\n page: page,\n client: client,\n coords: coords,\n starting: starting,\n ending: ending,\n deltaSource: deltaSource,\n iEvent: this\n };\n\n signals.fire('set-xy', signalArg);\n\n if (ending) {\n // use previous coords when ending\n this.pageX = prevEvent.pageX;\n this.pageY = prevEvent.pageY;\n this.clientX = prevEvent.clientX;\n this.clientY = prevEvent.clientY;\n } else {\n this.pageX = page.x;\n this.pageY = page.y;\n this.clientX = client.x;\n this.clientY = client.y;\n }\n\n this.x0 = interaction.startCoords.page.x - origin.x;\n this.y0 = interaction.startCoords.page.y - origin.y;\n this.clientX0 = interaction.startCoords.client.x - origin.x;\n this.clientY0 = interaction.startCoords.client.y - origin.y;\n\n signals.fire('set-delta', signalArg);\n\n this.timeStamp = coords.timeStamp;\n this.dt = interaction.pointerDelta.timeStamp;\n this.duration = this.timeStamp - this.t0;\n\n // speed and velocity in pixels per second\n this.speed = interaction.pointerDelta[deltaSource].speed;\n this.velocityX = interaction.pointerDelta[deltaSource].vx;\n this.velocityY = interaction.pointerDelta[deltaSource].vy;\n\n this.swipe = ending || phase === 'inertiastart' ? this.getSwipe() : null;\n\n signals.fire('new', signalArg);\n }\n\n InteractEvent.prototype.getSwipe = function getSwipe() {\n var interaction = this.interaction;\n\n if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {\n return null;\n }\n\n var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI;\n var overlap = 22.5;\n\n if (angle < 0) {\n angle += 360;\n }\n\n var left = 135 - overlap <= angle && angle < 225 + overlap;\n var up = 225 - overlap <= angle && angle < 315 + overlap;\n\n var right = !left && (315 - overlap <= angle || angle < 45 + overlap);\n var down = !up && 45 - overlap <= angle && angle < 135 + overlap;\n\n return {\n up: up,\n down: down,\n left: left,\n right: right,\n angle: angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY\n }\n };\n };\n\n InteractEvent.prototype.preventDefault = function preventDefault() {};\n\n /** */\n\n\n InteractEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n /** */\n\n\n InteractEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n return InteractEvent;\n}();\n\nsignals.on('set-delta', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction,\n starting = _ref.starting,\n deltaSource = _ref.deltaSource;\n\n var prevEvent = starting ? iEvent : interaction.prevEvent;\n\n if (deltaSource === 'client') {\n iEvent.dx = iEvent.clientX - prevEvent.clientX;\n iEvent.dy = iEvent.clientY - prevEvent.clientY;\n } else {\n iEvent.dx = iEvent.pageX - prevEvent.pageX;\n iEvent.dy = iEvent.pageY - prevEvent.pageY;\n }\n});\n\nInteractEvent.signals = signals;\n\nmodule.exports = InteractEvent;\n\n},{\"./defaultOptions\":18,\"./utils/Signals\":34,\"./utils/extend\":41,\"./utils/getOriginXY\":42}],4:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar clone = require('./utils/clone');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar extend = require('./utils/extend');\nvar actions = require('./actions/base');\nvar scope = require('./scope');\nvar Eventable = require('./Eventable');\nvar defaults = require('./defaultOptions');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/domUtils'),\n getElementRect = _require.getElementRect,\n nodeContains = _require.nodeContains,\n trySelector = _require.trySelector,\n matchesSelector = _require.matchesSelector;\n\nvar _require2 = require('./utils/window'),\n getWindow = _require2.getWindow;\n\nvar _require3 = require('./utils/arr'),\n contains = _require3.contains;\n\nvar _require4 = require('./utils/browser'),\n wheelEvent = _require4.wheelEvent;\n\n// all set interactables\n\n\nscope.interactables = [];\n\nvar Interactable = function () {\n /** */\n function Interactable(target, options) {\n _classCallCheck(this, Interactable);\n\n options = options || {};\n\n this.target = target;\n this.events = new Eventable();\n this._context = options.context || scope.document;\n this._win = getWindow(trySelector(target) ? this._context : target);\n this._doc = this._win.document;\n\n signals.fire('new', {\n target: target,\n options: options,\n interactable: this,\n win: this._win\n });\n\n scope.addDocument(this._doc, this._win);\n\n scope.interactables.push(this);\n\n this.set(options);\n }\n\n Interactable.prototype.setOnEvents = function setOnEvents(action, phases) {\n var onAction = 'on' + action;\n\n if (is.function(phases.onstart)) {\n this.events[onAction + 'start'] = phases.onstart;\n }\n if (is.function(phases.onmove)) {\n this.events[onAction + 'move'] = phases.onmove;\n }\n if (is.function(phases.onend)) {\n this.events[onAction + 'end'] = phases.onend;\n }\n if (is.function(phases.oninertiastart)) {\n this.events[onAction + 'inertiastart'] = phases.oninertiastart;\n }\n\n return this;\n };\n\n Interactable.prototype.setPerAction = function setPerAction(action, options) {\n // for all the default per-action options\n for (var option in options) {\n // if this option exists for this action\n if (option in defaults[action]) {\n // if the option in the options arg is an object value\n if (is.object(options[option])) {\n // duplicate the object and merge\n this.options[action][option] = clone(this.options[action][option] || {});\n extend(this.options[action][option], options[option]);\n\n if (is.object(defaults.perAction[option]) && 'enabled' in defaults.perAction[option]) {\n this.options[action][option].enabled = options[option].enabled === false ? false : true;\n }\n } else if (is.bool(options[option]) && is.object(defaults.perAction[option])) {\n this.options[action][option].enabled = options[option];\n } else if (options[option] !== undefined) {\n // or if it's not undefined, do a plain assignment\n this.options[action][option] = options[option];\n }\n }\n }\n };\n\n /**\n * The default function to get an Interactables bounding rect. Can be\n * overridden using {@link Interactable.rectChecker}.\n *\n * @param {Element} [element] The element to measure.\n * @return {object} The object's bounding rectangle.\n */\n\n\n Interactable.prototype.getRect = function getRect(element) {\n element = element || this.target;\n\n if (is.string(this.target) && !is.element(element)) {\n element = this._context.querySelector(this.target);\n }\n\n return getElementRect(element);\n };\n\n /**\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n * @param {function} [checker] A function which returns this Interactable's\n * bounding rectangle. See {@link Interactable.getRect}\n * @return {function | object} The checker function or this Interactable\n */\n\n\n Interactable.prototype.rectChecker = function rectChecker(checker) {\n if (is.function(checker)) {\n this.getRect = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.getRect;\n\n return this;\n }\n\n return this.getRect;\n };\n\n Interactable.prototype._backCompatOption = function _backCompatOption(optionName, newValue) {\n if (trySelector(newValue) || is.object(newValue)) {\n this.options[optionName] = newValue;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var action = _ref;\n\n this.options[action][optionName] = newValue;\n }\n\n return this;\n }\n\n return this.options[optionName];\n };\n\n /**\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\n * or any CSS selector\n *\n * @return {object} The current origin or this Interactable\n */\n\n\n Interactable.prototype.origin = function origin(newValue) {\n return this._backCompatOption('origin', newValue);\n };\n\n /**\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n * @param {string} [newValue] Use 'client' if you will be scrolling while\n * interacting; Use 'page' if you want autoScroll to work\n * @return {string | object} The current deltaSource or this Interactable\n */\n\n\n Interactable.prototype.deltaSource = function deltaSource(newValue) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue;\n\n return this;\n }\n\n return this.options.deltaSource;\n };\n\n /**\n * Gets the selector context Node of the Interactable. The default is\n * `window.document`.\n *\n * @return {Node} The context Node of this Interactable\n */\n\n\n Interactable.prototype.context = function context() {\n return this._context;\n };\n\n Interactable.prototype.inContext = function inContext(element) {\n return this._context === element.ownerDocument || nodeContains(this._context, element);\n };\n\n /**\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\n * Interactable\n * @return {Interactable} this Interactable\n */\n\n\n Interactable.prototype.fire = function fire(iEvent) {\n this.events.fire(iEvent);\n\n return this;\n };\n\n Interactable.prototype._onOffMultiple = function _onOffMultiple(method, eventType, listener, options) {\n if (is.string(eventType) && eventType.search(' ') !== -1) {\n eventType = eventType.trim().split(/ +/);\n }\n\n if (is.array(eventType)) {\n for (var _i2 = 0; _i2 < eventType.length; _i2++) {\n var _ref2;\n\n _ref2 = eventType[_i2];\n var type = _ref2;\n\n this[method](type, listener, options);\n }\n\n return true;\n }\n\n if (is.object(eventType)) {\n for (var prop in eventType) {\n this[method](prop, eventType[prop], listener);\n }\n\n return true;\n }\n };\n\n /**\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\n *\n * @param {string | array | object} eventType The types of events to listen\n * for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] options object or useCapture flag\n * for addEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.on = function on(eventType, listener, options) {\n if (this._onOffMultiple('on', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.on(eventType, listener);\n }\n // delegated event for selector\n else if (is.string(this.target)) {\n events.addDelegate(this.target, this._context, eventType, listener, options);\n } else {\n events.add(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Removes an InteractEvent, pointerEvent or DOM event listener\n *\n * @param {string | array | object} eventType The types of events that were\n * listened for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} [options] options object or useCapture flag for\n * removeEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.off = function off(eventType, listener, options) {\n if (this._onOffMultiple('off', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n // if it is an action event type\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.off(eventType, listener);\n }\n // delegated event\n else if (is.string(this.target)) {\n events.removeDelegate(this.target, this._context, eventType, listener, options);\n }\n // remove listener from this Interatable's element\n else {\n events.remove(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Reset the options of this Interactable\n *\n * @param {object} options The new settings to apply\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.set = function set(options) {\n if (!is.object(options)) {\n options = {};\n }\n\n this.options = clone(defaults.base);\n\n var perActions = clone(defaults.perAction);\n\n for (var actionName in actions.methodDict) {\n var methodName = actions.methodDict[actionName];\n\n this.options[actionName] = clone(defaults[actionName]);\n\n this.setPerAction(actionName, perActions);\n\n this[methodName](options[actionName]);\n }\n\n for (var _i3 = 0; _i3 < Interactable.settingsMethods.length; _i3++) {\n var _ref3;\n\n _ref3 = Interactable.settingsMethods[_i3];\n var setting = _ref3;\n\n this.options[setting] = defaults.base[setting];\n\n if (setting in options) {\n this[setting](options[setting]);\n }\n }\n\n signals.fire('set', {\n options: options,\n interactable: this\n });\n\n return this;\n };\n\n /**\n * Remove this interactable from the list of interactables and remove it's\n * action capabilities and event listeners\n *\n * @return {interact}\n */\n\n\n Interactable.prototype.unset = function unset() {\n events.remove(this.target, 'all');\n\n if (is.string(this.target)) {\n // remove delegated events\n for (var type in events.delegatedEvents) {\n var delegated = events.delegatedEvents[type];\n\n if (delegated.selectors[0] === this.target && delegated.contexts[0] === this._context) {\n\n delegated.selectors.splice(0, 1);\n delegated.contexts.splice(0, 1);\n delegated.listeners.splice(0, 1);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegated[type] = null;\n }\n }\n\n events.remove(this._context, type, events.delegateListener);\n events.remove(this._context, type, events.delegateUseCapture, true);\n }\n } else {\n events.remove(this, 'all');\n }\n\n signals.fire('unset', { interactable: this });\n\n scope.interactables.splice(scope.interactables.indexOf(this), 1);\n\n // Stop related interactions when an Interactable is unset\n for (var _i4 = 0; _i4 < (scope.interactions || []).length; _i4++) {\n var _ref4;\n\n _ref4 = (scope.interactions || [])[_i4];\n var interaction = _ref4;\n\n if (interaction.target === this && interaction.interacting() && !interaction._ending) {\n interaction.stop();\n }\n }\n\n return scope.interact;\n };\n\n return Interactable;\n}();\n\nscope.interactables.indexOfElement = function indexOfElement(target, context) {\n context = context || scope.document;\n\n for (var i = 0; i < this.length; i++) {\n var interactable = this[i];\n\n if (interactable.target === target && interactable._context === context) {\n return i;\n }\n }\n return -1;\n};\n\nscope.interactables.get = function interactableGet(element, options, dontCheckInContext) {\n var ret = this[this.indexOfElement(element, options && options.context)];\n\n return ret && (is.string(element) || dontCheckInContext || ret.inContext(element)) ? ret : null;\n};\n\nscope.interactables.forEachMatch = function (element, callback) {\n for (var _i5 = 0; _i5 < this.length; _i5++) {\n var _ref5;\n\n _ref5 = this[_i5];\n var interactable = _ref5;\n\n var ret = void 0;\n\n if ((is.string(interactable.target)\n // target is a selector and the element matches\n ? is.element(element) && matchesSelector(element, interactable.target) :\n // target is the element\n element === interactable.target) &&\n // the element is in context\n interactable.inContext(element)) {\n ret = callback(interactable);\n }\n\n if (ret !== undefined) {\n return ret;\n }\n }\n};\n\n// all interact.js eventTypes\nInteractable.eventTypes = scope.eventTypes = [];\n\nInteractable.signals = signals;\n\nInteractable.settingsMethods = ['deltaSource', 'origin', 'preventDefault', 'rectChecker'];\n\nmodule.exports = Interactable;\n\n},{\"./Eventable\":2,\"./actions/base\":6,\"./defaultOptions\":18,\"./scope\":33,\"./utils/Signals\":34,\"./utils/arr\":35,\"./utils/browser\":36,\"./utils/clone\":37,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/extend\":41,\"./utils/is\":46,\"./utils/window\":52}],5:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar scope = require('./scope');\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\nvar domObjects = require('./utils/domObjects');\nvar finder = require('./utils/interactionFinder');\nvar signals = require('./utils/Signals').new();\n\nvar listeners = {};\nvar methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer'];\n\n// for ignoring browser's simulated mouse events\nvar prevTouchTime = 0;\n\n// all active and idle interactions\nscope.interactions = [];\n\nvar Interaction = function () {\n /** */\n function Interaction(_ref) {\n var pointerType = _ref.pointerType;\n\n _classCallCheck(this, Interaction);\n\n this.target = null; // current interactable being interacted with\n this.element = null; // the target element of the interactable\n\n this.prepared = { // action that's ready to be fired on next move event\n name: null,\n axis: null,\n edges: null\n };\n\n // keep track of added pointers\n this.pointers = [];\n this.pointerIds = [];\n this.downTargets = [];\n this.downTimes = [];\n\n // Previous native pointer move event coordinates\n this.prevCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n // current native pointer move event coordinates\n this.curCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Starting InteractEvent pointer coordinates\n this.startCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Change in coordinates and time of the pointer\n this.pointerDelta = {\n page: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n client: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n timeStamp: 0\n };\n\n this.downEvent = null; // pointerdown/mousedown/touchstart event\n this.downPointer = {};\n\n this._eventTarget = null;\n this._curEventTarget = null;\n\n this.prevEvent = null; // previous action event\n\n this.pointerIsDown = false;\n this.pointerWasMoved = false;\n this._interacting = false;\n this._ending = false;\n\n this.pointerType = pointerType;\n\n signals.fire('new', this);\n\n scope.interactions.push(this);\n }\n\n Interaction.prototype.pointerDown = function pointerDown(pointer, event, eventTarget) {\n var pointerIndex = this.updatePointer(pointer, event, true);\n\n signals.fire('down', {\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n pointerIndex: pointerIndex,\n interaction: this\n });\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable({\n * // disable the default drag start by down->move\n * manualStart: true\n * })\n * // start dragging after the user holds the pointer down\n * .on('hold', function (event) {\n * var interaction = event.interaction;\n *\n * if (!interaction.interacting()) {\n * interaction.start({ name: 'drag' },\n * event.interactable,\n * event.currentTarget);\n * }\n * });\n * ```\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n * @param {object} action The action to be performed - drag, resize, etc.\n * @param {Interactable} target The Interactable to target\n * @param {Element} element The DOM Element to target\n * @return {object} interact\n */\n\n\n Interaction.prototype.start = function start(action, target, element) {\n if (this.interacting() || !this.pointerIsDown || this.pointerIds.length < (action.name === 'gesture' ? 2 : 1)) {\n return;\n }\n\n // if this interaction had been removed after stopping\n // add it back\n if (scope.interactions.indexOf(this) === -1) {\n scope.interactions.push(this);\n }\n\n utils.copyAction(this.prepared, action);\n this.target = target;\n this.element = element;\n\n signals.fire('action-start', {\n interaction: this,\n event: this.downEvent\n });\n };\n\n Interaction.prototype.pointerMove = function pointerMove(pointer, event, eventTarget) {\n if (!this.simulation) {\n this.updatePointer(pointer);\n utils.setCoords(this.curCoords, this.pointers);\n }\n\n var duplicateMove = this.curCoords.page.x === this.prevCoords.page.x && this.curCoords.page.y === this.prevCoords.page.y && this.curCoords.client.x === this.prevCoords.client.x && this.curCoords.client.y === this.prevCoords.client.y;\n\n var dx = void 0;\n var dy = void 0;\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.curCoords.client.x - this.startCoords.client.x;\n dy = this.curCoords.client.y - this.startCoords.client.y;\n\n this.pointerWasMoved = utils.hypot(dx, dy) > Interaction.pointerMoveTolerance;\n }\n\n var signalArg = {\n pointer: pointer,\n pointerIndex: this.getPointerIndex(pointer),\n event: event,\n eventTarget: eventTarget,\n dx: dx,\n dy: dy,\n duplicate: duplicateMove,\n interaction: this,\n interactingBeforeMove: this.interacting()\n };\n\n if (!duplicateMove) {\n // set pointer coordinate, time changes and speeds\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n }\n\n signals.fire('move', signalArg);\n\n if (!duplicateMove) {\n // if interacting, fire an 'action-move' signal etc\n if (this.interacting()) {\n this.doMove(signalArg);\n }\n\n if (this.pointerWasMoved) {\n utils.copyCoords(this.prevCoords, this.curCoords);\n }\n }\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('dragmove', function (event) {\n * if (someCondition) {\n * // change the snap settings\n * event.interactable.draggable({ snap: { targets: [] }});\n * // fire another move event with re-calculated snap\n * event.interaction.doMove();\n * }\n * });\n * ```\n *\n * Force a move of the current action at the same coordinates. Useful if\n * snap/restrict has been changed and you want a movement with the new\n * settings.\n */\n\n\n Interaction.prototype.doMove = function doMove(signalArg) {\n signalArg = utils.extend({\n pointer: this.pointers[0],\n event: this.prevEvent,\n eventTarget: this._eventTarget,\n interaction: this\n }, signalArg || {});\n\n signals.fire('before-action-move', signalArg);\n\n if (!this._dontFireMove) {\n signals.fire('action-move', signalArg);\n }\n\n this._dontFireMove = false;\n };\n\n // End interact move events and stop auto-scroll unless simulation is running\n\n\n Interaction.prototype.pointerUp = function pointerUp(pointer, event, eventTarget, curEventTarget) {\n var pointerIndex = this.getPointerIndex(pointer);\n\n signals.fire(/cancel$/i.test(event.type) ? 'cancel' : 'up', {\n pointer: pointer,\n pointerIndex: pointerIndex,\n event: event,\n eventTarget: eventTarget,\n curEventTarget: curEventTarget,\n interaction: this\n });\n\n if (!this.simulation) {\n this.end(event);\n }\n\n this.pointerIsDown = false;\n this.removePointer(pointer, event);\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('move', function (event) {\n * if (event.pageX > 1000) {\n * // end the current action\n * event.interaction.end();\n * // stop all further listeners from being called\n * event.stopImmediatePropagation();\n * }\n * });\n * ```\n *\n * Stop the current action and fire an end event. Inertial movement does\n * not happen.\n *\n * @param {PointerEvent} [event]\n */\n\n\n Interaction.prototype.end = function end(event) {\n this._ending = true;\n\n event = event || this.prevEvent;\n\n if (this.interacting()) {\n signals.fire('action-end', {\n event: event,\n interaction: this\n });\n }\n\n this.stop();\n this._ending = false;\n };\n\n Interaction.prototype.currentAction = function currentAction() {\n return this._interacting ? this.prepared.name : null;\n };\n\n Interaction.prototype.interacting = function interacting() {\n return this._interacting;\n };\n\n /** */\n\n\n Interaction.prototype.stop = function stop() {\n signals.fire('stop', { interaction: this });\n\n if (this._interacting) {\n signals.fire('stop-active', { interaction: this });\n signals.fire('stop-' + this.prepared.name, { interaction: this });\n }\n\n this.target = this.element = null;\n\n this._interacting = false;\n this.prepared.name = this.prevEvent = null;\n };\n\n Interaction.prototype.getPointerIndex = function getPointerIndex(pointer) {\n // mouse and pen interactions may have only one pointer\n if (this.pointerType === 'mouse' || this.pointerType === 'pen') {\n return 0;\n }\n\n return this.pointerIds.indexOf(utils.getPointerId(pointer));\n };\n\n Interaction.prototype.updatePointer = function updatePointer(pointer, event) {\n var down = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : event && /(down|start)$/i.test(event.type);\n\n var id = utils.getPointerId(pointer);\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n index = this.pointerIds.length;\n this.pointerIds[index] = id;\n }\n\n if (down) {\n signals.fire('update-pointer-down', {\n pointer: pointer,\n event: event,\n down: down,\n pointerId: id,\n pointerIndex: index,\n interaction: this\n });\n }\n\n this.pointers[index] = pointer;\n\n return index;\n };\n\n Interaction.prototype.removePointer = function removePointer(pointer, event) {\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n return;\n }\n\n signals.fire('remove-pointer', {\n pointer: pointer,\n event: event,\n pointerIndex: index,\n interaction: this\n });\n\n this.pointers.splice(index, 1);\n this.pointerIds.splice(index, 1);\n this.downTargets.splice(index, 1);\n this.downTimes.splice(index, 1);\n };\n\n Interaction.prototype._updateEventTargets = function _updateEventTargets(target, currentTarget) {\n this._eventTarget = target;\n this._curEventTarget = currentTarget;\n };\n\n return Interaction;\n}();\n\nfor (var _i = 0; _i < methodNames.length; _i++) {\n var method = methodNames[_i];\n listeners[method] = doOnInteractions(method);\n}\n\nfunction doOnInteractions(method) {\n return function (event) {\n var pointerType = utils.getPointerType(event);\n\n var _utils$getEventTarget = utils.getEventTargets(event),\n eventTarget = _utils$getEventTarget[0],\n curEventTarget = _utils$getEventTarget[1];\n\n var matches = []; // [ [pointer, interaction], ...]\n\n if (browser.supportsTouch && /touch/.test(event.type)) {\n prevTouchTime = new Date().getTime();\n\n for (var _i2 = 0; _i2 < event.changedTouches.length; _i2++) {\n var _ref2;\n\n _ref2 = event.changedTouches[_i2];\n var changedTouch = _ref2;\n\n var pointer = changedTouch;\n var interaction = finder.search(pointer, event.type, eventTarget);\n\n matches.push([pointer, interaction || new Interaction({ pointerType: pointerType })]);\n }\n } else {\n var invalidPointer = false;\n\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (var i = 0; i < scope.interactions.length && !invalidPointer; i++) {\n invalidPointer = scope.interactions[i].pointerType !== 'mouse' && scope.interactions[i].pointerIsDown;\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n invalidPointer = invalidPointer || new Date().getTime() - prevTouchTime < 500\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\n || event.timeStamp === 0;\n }\n\n if (!invalidPointer) {\n var _interaction = finder.search(event, event.type, eventTarget);\n\n if (!_interaction) {\n _interaction = new Interaction({ pointerType: pointerType });\n }\n\n matches.push([event, _interaction]);\n }\n }\n\n for (var _i3 = 0; _i3 < matches.length; _i3++) {\n var _ref3 = matches[_i3];\n var _pointer = _ref3[0];\n var _interaction2 = _ref3[1];\n\n _interaction2._updateEventTargets(eventTarget, curEventTarget);\n _interaction2[method](_pointer, event, eventTarget, curEventTarget);\n }\n };\n}\n\nfunction endAll(event) {\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref4;\n\n _ref4 = scope.interactions[_i4];\n var interaction = _ref4;\n\n interaction.end(event);\n signals.fire('endall', { event: event, interaction: interaction });\n }\n}\n\nvar docEvents = {/* 'eventType': listenerFunc */};\nvar pEventTypes = browser.pEventTypes;\n\nif (domObjects.PointerEvent) {\n docEvents[pEventTypes.down] = listeners.pointerDown;\n docEvents[pEventTypes.move] = listeners.pointerMove;\n docEvents[pEventTypes.up] = listeners.pointerUp;\n docEvents[pEventTypes.cancel] = listeners.pointerUp;\n} else {\n docEvents.mousedown = listeners.pointerDown;\n docEvents.mousemove = listeners.pointerMove;\n docEvents.mouseup = listeners.pointerUp;\n\n docEvents.touchstart = listeners.pointerDown;\n docEvents.touchmove = listeners.pointerMove;\n docEvents.touchend = listeners.pointerUp;\n docEvents.touchcancel = listeners.pointerUp;\n}\n\ndocEvents.blur = endAll;\n\nfunction onDocSignal(_ref5, signalName) {\n var doc = _ref5.doc;\n\n var eventMethod = signalName.indexOf('add') === 0 ? events.add : events.remove;\n\n // delegate event listener\n for (var eventType in scope.delegatedEvents) {\n eventMethod(doc, eventType, events.delegateListener);\n eventMethod(doc, eventType, events.delegateUseCapture, true);\n }\n\n for (var _eventType in docEvents) {\n eventMethod(doc, _eventType, docEvents[_eventType], browser.isIOS ? { passive: false } : undefined);\n }\n}\n\nsignals.on('update-pointer-down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n pointerId = _ref6.pointerId,\n pointerIndex = _ref6.pointerIndex,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n down = _ref6.down;\n\n interaction.pointerIds[pointerIndex] = pointerId;\n interaction.pointers[pointerIndex] = pointer;\n\n if (down) {\n interaction.pointerIsDown = true;\n }\n\n if (!interaction.interacting()) {\n utils.setCoords(interaction.startCoords, interaction.pointers);\n\n utils.copyCoords(interaction.curCoords, interaction.startCoords);\n utils.copyCoords(interaction.prevCoords, interaction.startCoords);\n\n interaction.downEvent = event;\n interaction.downTimes[pointerIndex] = interaction.curCoords.timeStamp;\n interaction.downTargets[pointerIndex] = eventTarget || event && utils.getEventTargets(event)[0];\n interaction.pointerWasMoved = false;\n\n utils.pointerExtend(interaction.downPointer, pointer);\n }\n});\n\nscope.signals.on('add-document', onDocSignal);\nscope.signals.on('remove-document', onDocSignal);\n\nInteraction.pointerMoveTolerance = 1;\nInteraction.doOnInteractions = doOnInteractions;\nInteraction.endAll = endAll;\nInteraction.signals = signals;\nInteraction.docEvents = docEvents;\n\nscope.endAllInteractions = endAll;\n\nmodule.exports = Interaction;\n\n},{\"./scope\":33,\"./utils\":44,\"./utils/Signals\":34,\"./utils/browser\":36,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/interactionFinder\":45}],6:[function(require,module,exports){\n'use strict';\n\nvar Interaction = require('../Interaction');\nvar InteractEvent = require('../InteractEvent');\n\nvar actions = {\n firePrepared: firePrepared,\n names: [],\n methodDict: {}\n};\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n interaction._interacting = true;\n firePrepared(interaction, event, 'start');\n});\n\nInteraction.signals.on('action-move', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event,\n preEnd = _ref2.preEnd;\n\n firePrepared(interaction, event, 'move', preEnd);\n\n // if the action was ended in a listener\n if (!interaction.interacting()) {\n return false;\n }\n});\n\nInteraction.signals.on('action-end', function (_ref3) {\n var interaction = _ref3.interaction,\n event = _ref3.event;\n\n firePrepared(interaction, event, 'end');\n});\n\nfunction firePrepared(interaction, event, phase, preEnd) {\n var actionName = interaction.prepared.name;\n\n var newEvent = new InteractEvent(interaction, event, actionName, phase, interaction.element, null, preEnd);\n\n interaction.target.fire(newEvent);\n interaction.prevEvent = newEvent;\n}\n\nmodule.exports = actions;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5}],7:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drag = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n startAxis: 'xy',\n lockAxis: 'xy'\n },\n\n checker: function checker(pointer, event, interactable) {\n var dragOptions = interactable.options.drag;\n\n return dragOptions.enabled ? { name: 'drag', axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis } : null;\n },\n\n getCursor: function getCursor() {\n return 'move';\n }\n};\n\nInteraction.signals.on('before-action-move', function (_ref) {\n var interaction = _ref.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n interaction.curCoords.page.y = interaction.startCoords.page.y;\n interaction.curCoords.client.y = interaction.startCoords.client.y;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vx);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vx);\n interaction.pointerDelta.client.vy = 0;\n interaction.pointerDelta.page.vy = 0;\n } else if (axis === 'y') {\n interaction.curCoords.page.x = interaction.startCoords.page.x;\n interaction.curCoords.client.x = interaction.startCoords.client.x;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vy);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vy);\n interaction.pointerDelta.client.vx = 0;\n interaction.pointerDelta.page.vx = 0;\n }\n});\n\n// dragmove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'dragmove') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n iEvent.pageY = interaction.startCoords.page.y;\n iEvent.clientY = interaction.startCoords.client.y;\n iEvent.dy = 0;\n } else if (axis === 'y') {\n iEvent.pageX = interaction.startCoords.page.x;\n iEvent.clientX = interaction.startCoords.client.x;\n iEvent.dx = 0;\n }\n});\n\n/**\n * ```js\n * interact(element).draggable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // the axis in which the first movement must be\n * // for the drag sequence to start\n * // 'xy' by default - any direction\n * startAxis: 'x' || 'y' || 'xy',\n *\n * // 'xy' by default - don't restrict to one axis (move in any direction)\n * // 'x' or 'y' to restrict movement to either axis\n * // 'start' to restrict movement to the axis the drag started in\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\n *\n * // max number of drags that can happen concurrently\n * // with elements of this Interactable. Infinity by default\n * max: Infinity,\n *\n * // max number of drags that can target the same element+Interactable\n * // 1 by default\n * maxPerElement: 2\n * });\n *\n * var isDraggable = interact('element').draggable(); // true\n * ```\n *\n * Get or set whether drag actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on drag events (object makes the Interactable\n * draggable)\n * @return {boolean | Interactable} boolean indicating if this can be the\n * target of drag events, or this Interctable\n */\nInteractable.prototype.draggable = function (options) {\n if (utils.is.object(options)) {\n this.options.drag.enabled = options.enabled === false ? false : true;\n this.setPerAction('drag', options);\n this.setOnEvents('drag', options);\n\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\n this.options.drag.lockAxis = options.lockAxis;\n }\n if (/^(xy|x|y)$/.test(options.startAxis)) {\n this.options.drag.startAxis = options.startAxis;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drag.enabled = options;\n\n if (!options) {\n this.ondragstart = this.ondragstart = this.ondragend = null;\n }\n\n return this;\n }\n\n return this.options.drag;\n};\n\nactions.drag = drag;\nactions.names.push('drag');\nutils.merge(Interactable.eventTypes, ['dragstart', 'dragmove', 'draginertiastart', 'draginertiaresume', 'dragend']);\nactions.methodDict.drag = 'draggable';\n\ndefaultOptions.drag = drag.defaults;\n\nmodule.exports = drag;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],8:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar scope = require('../scope');\n/** @lends module:interact */\nvar interact = require('../interact');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drop = {\n defaults: {\n enabled: false,\n accept: null,\n overlap: 'pointer'\n }\n};\n\nvar dynamicDrop = false;\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // reset active dropzones\n interaction.activeDrops.dropzones = [];\n interaction.activeDrops.elements = [];\n interaction.activeDrops.rects = [];\n\n interaction.dropEvents = null;\n\n if (!interaction.dynamicDrop) {\n setActiveDrops(interaction.activeDrops, interaction.element);\n }\n\n var dragEvent = interaction.prevEvent;\n var dropEvents = getDropEvents(interaction, event, dragEvent);\n\n if (dropEvents.activate) {\n fireActiveDrops(interaction.activeDrops, dropEvents.activate);\n }\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var interaction = _ref2.interaction,\n iEvent = _ref2.iEvent,\n event = _ref2.event;\n\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {\n return;\n }\n\n var draggableElement = interaction.element;\n var dragEvent = iEvent;\n var dropResult = getDrop(dragEvent, event, draggableElement);\n\n interaction.dropTarget = dropResult.dropzone;\n interaction.dropElement = dropResult.element;\n\n interaction.dropEvents = getDropEvents(interaction, event, dragEvent);\n});\n\nInteraction.signals.on('action-move', function (_ref3) {\n var interaction = _ref3.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n fireDropEvents(interaction, interaction.dropEvents);\n});\n\nInteraction.signals.on('action-end', function (_ref4) {\n var interaction = _ref4.interaction;\n\n if (interaction.prepared.name === 'drag') {\n fireDropEvents(interaction, interaction.dropEvents);\n }\n});\n\nInteraction.signals.on('stop-drag', function (_ref5) {\n var interaction = _ref5.interaction;\n\n interaction.activeDrops = {\n dropzones: null,\n elements: null,\n rects: null\n };\n\n interaction.dropEvents = null;\n});\n\nfunction collectDrops(activeDrops, element) {\n var drops = [];\n var elements = [];\n\n // collect all dropzones and their elements which qualify for a drop\n for (var _i = 0; _i < scope.interactables.length; _i++) {\n var _ref6;\n\n _ref6 = scope.interactables[_i];\n var current = _ref6;\n\n if (!current.options.drop.enabled) {\n continue;\n }\n\n var accept = current.options.drop.accept;\n\n // test the draggable element against the dropzone's accept setting\n if (utils.is.element(accept) && accept !== element || utils.is.string(accept) && !utils.matchesSelector(element, accept)) {\n\n continue;\n }\n\n // query for new elements if necessary\n var dropElements = utils.is.string(current.target) ? current._context.querySelectorAll(current.target) : [current.target];\n\n for (var _i2 = 0; _i2 < dropElements.length; _i2++) {\n var _ref7;\n\n _ref7 = dropElements[_i2];\n var currentElement = _ref7;\n\n if (currentElement !== element) {\n drops.push(current);\n elements.push(currentElement);\n }\n }\n }\n\n return {\n elements: elements,\n dropzones: drops\n };\n}\n\nfunction fireActiveDrops(activeDrops, event) {\n var prevElement = void 0;\n\n // loop through all active dropzones and trigger event\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n var current = activeDrops.dropzones[i];\n var currentElement = activeDrops.elements[i];\n\n // prevent trigger of duplicate events on same element\n if (currentElement !== prevElement) {\n // set current element as event target\n event.target = currentElement;\n current.fire(event);\n }\n prevElement = currentElement;\n }\n}\n\n// Collect a new set of possible drops and save them in activeDrops.\n// setActiveDrops should always be called when a drag has just started or a\n// drag event happens while dynamicDrop is true\nfunction setActiveDrops(activeDrops, dragElement) {\n // get dropzones and their elements that could receive the draggable\n var possibleDrops = collectDrops(activeDrops, dragElement);\n\n activeDrops.dropzones = possibleDrops.dropzones;\n activeDrops.elements = possibleDrops.elements;\n activeDrops.rects = [];\n\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n activeDrops.rects[i] = activeDrops.dropzones[i].getRect(activeDrops.elements[i]);\n }\n}\n\nfunction getDrop(dragEvent, event, dragElement) {\n var interaction = dragEvent.interaction;\n var validDrops = [];\n\n if (dynamicDrop) {\n setActiveDrops(interaction.activeDrops, dragElement);\n }\n\n // collect all dropzones and their elements which qualify for a drop\n for (var j = 0; j < interaction.activeDrops.dropzones.length; j++) {\n var current = interaction.activeDrops.dropzones[j];\n var currentElement = interaction.activeDrops.elements[j];\n var rect = interaction.activeDrops.rects[j];\n\n validDrops.push(current.dropCheck(dragEvent, event, interaction.target, dragElement, currentElement, rect) ? currentElement : null);\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n var dropIndex = utils.indexOfDeepestElement(validDrops);\n\n return {\n dropzone: interaction.activeDrops.dropzones[dropIndex] || null,\n element: interaction.activeDrops.elements[dropIndex] || null\n };\n}\n\nfunction getDropEvents(interaction, pointerEvent, dragEvent) {\n var dropEvents = {\n enter: null,\n leave: null,\n activate: null,\n deactivate: null,\n move: null,\n drop: null\n };\n\n var tmpl = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp\n };\n\n if (interaction.dropElement !== interaction.prevDropElement) {\n // if there was a prevDropTarget, create a dragleave event\n if (interaction.prevDropTarget) {\n dropEvents.leave = utils.extend({ type: 'dragleave' }, tmpl);\n\n dragEvent.dragLeave = dropEvents.leave.target = interaction.prevDropElement;\n dragEvent.prevDropzone = dropEvents.leave.dropzone = interaction.prevDropTarget;\n }\n // if the dropTarget is not null, create a dragenter event\n if (interaction.dropTarget) {\n dropEvents.enter = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp,\n type: 'dragenter'\n };\n\n dragEvent.dragEnter = interaction.dropElement;\n dragEvent.dropzone = interaction.dropTarget;\n }\n }\n\n if (dragEvent.type === 'dragend' && interaction.dropTarget) {\n dropEvents.drop = utils.extend({ type: 'drop' }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n dragEvent.relatedTarget = interaction.dropElement;\n }\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = utils.extend({ type: 'dropactivate' }, tmpl);\n\n dropEvents.activate.target = null;\n dropEvents.activate.dropzone = null;\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = utils.extend({ type: 'dropdeactivate' }, tmpl);\n\n dropEvents.deactivate.target = null;\n dropEvents.deactivate.dropzone = null;\n }\n if (dragEvent.type === 'dragmove' && interaction.dropTarget) {\n dropEvents.move = utils.extend({\n dragmove: dragEvent,\n type: 'dropmove'\n }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n }\n\n return dropEvents;\n}\n\nfunction fireDropEvents(interaction, dropEvents) {\n var activeDrops = interaction.activeDrops,\n prevDropTarget = interaction.prevDropTarget,\n dropTarget = interaction.dropTarget,\n dropElement = interaction.dropElement;\n\n\n if (dropEvents.leave) {\n prevDropTarget.fire(dropEvents.leave);\n }\n if (dropEvents.move) {\n dropTarget.fire(dropEvents.move);\n }\n if (dropEvents.enter) {\n dropTarget.fire(dropEvents.enter);\n }\n if (dropEvents.drop) {\n dropTarget.fire(dropEvents.drop);\n }\n if (dropEvents.deactivate) {\n fireActiveDrops(activeDrops, dropEvents.deactivate);\n }\n\n interaction.prevDropTarget = dropTarget;\n interaction.prevDropElement = dropElement;\n}\n\n/**\n * ```js\n * interact(target)\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\n * event, // TouchEvent/PointerEvent/MouseEvent\n * dropped, // bool result of the default checker\n * dropzone, // dropzone Interactable\n * dropElement, // dropzone elemnt\n * draggable, // draggable Interactable\n * draggableElement) {// draggable element\n *\n * return dropped && event.target.hasAttribute('allow-drop');\n * }\n * ```\n *\n * ```js\n * interact('.drop').dropzone({\n * accept: '.can-drop' || document.getElementById('single-drop'),\n * overlap: 'pointer' || 'center' || zeroToOne\n * }\n * ```\n *\n * Returns or sets whether draggables can be dropped onto this target to\n * trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS\n * selector or element. The value can be:\n *\n * - **an Element** - only that element can be dropped into this dropzone.\n * - **a string**, - the element being dragged must match it as a CSS selector.\n * - **`null`** - accept options is cleared - it accepts any element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed\n * values are:\n *\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\n * over the dropzone\n *\n * Use the `checker` option to specify a function to check if a dragged element\n * is over this Interactable.\n *\n * @param {boolean | object | null} [options] The new options to be set.\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.dropzone = function (options) {\n if (utils.is.object(options)) {\n this.options.drop.enabled = options.enabled === false ? false : true;\n\n if (utils.is.function(options.ondrop)) {\n this.events.ondrop = options.ondrop;\n }\n if (utils.is.function(options.ondropactivate)) {\n this.events.ondropactivate = options.ondropactivate;\n }\n if (utils.is.function(options.ondropdeactivate)) {\n this.events.ondropdeactivate = options.ondropdeactivate;\n }\n if (utils.is.function(options.ondragenter)) {\n this.events.ondragenter = options.ondragenter;\n }\n if (utils.is.function(options.ondragleave)) {\n this.events.ondragleave = options.ondragleave;\n }\n if (utils.is.function(options.ondropmove)) {\n this.events.ondropmove = options.ondropmove;\n }\n\n if (/^(pointer|center)$/.test(options.overlap)) {\n this.options.drop.overlap = options.overlap;\n } else if (utils.is.number(options.overlap)) {\n this.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);\n }\n if ('accept' in options) {\n this.options.drop.accept = options.accept;\n }\n if ('checker' in options) {\n this.options.drop.checker = options.checker;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drop.enabled = options;\n\n if (!options) {\n this.ondragenter = this.ondragleave = this.ondrop = this.ondropactivate = this.ondropdeactivate = null;\n }\n\n return this;\n }\n\n return this.options.drop;\n};\n\nInteractable.prototype.dropCheck = function (dragEvent, event, draggable, draggableElement, dropElement, rect) {\n var dropped = false;\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || this.getRect(dropElement))) {\n return this.options.drop.checker ? this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement) : false;\n }\n\n var dropOverlap = this.options.drop.overlap;\n\n if (dropOverlap === 'pointer') {\n var origin = utils.getOriginXY(draggable, draggableElement, 'drag');\n var page = utils.getPageXY(dragEvent);\n\n page.x += origin.x;\n page.y += origin.y;\n\n var horizontal = page.x > rect.left && page.x < rect.right;\n var vertical = page.y > rect.top && page.y < rect.bottom;\n\n dropped = horizontal && vertical;\n }\n\n var dragRect = draggable.getRect(draggableElement);\n\n if (dragRect && dropOverlap === 'center') {\n var cx = dragRect.left + dragRect.width / 2;\n var cy = dragRect.top + dragRect.height / 2;\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;\n }\n\n if (dragRect && utils.is.number(dropOverlap)) {\n var overlapArea = Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top));\n\n var overlapRatio = overlapArea / (dragRect.width * dragRect.height);\n\n dropped = overlapRatio >= dropOverlap;\n }\n\n if (this.options.drop.checker) {\n dropped = this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement);\n }\n\n return dropped;\n};\n\nInteractable.signals.on('unset', function (_ref8) {\n var interactable = _ref8.interactable;\n\n interactable.dropzone(false);\n});\n\nInteractable.settingsMethods.push('dropChecker');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.dropTarget = null; // the dropzone a drag target might be dropped into\n interaction.dropElement = null; // the element at the time of checking\n interaction.prevDropTarget = null; // the dropzone that was recently dragged away from\n interaction.prevDropElement = null; // the element at the time of checking\n interaction.dropEvents = null; // the dropEvents related to the current drag event\n\n interaction.activeDrops = {\n dropzones: [], // the dropzones that are mentioned below\n elements: [], // elements of dropzones that accept the target draggable\n rects: [] // the rects of the elements mentioned above\n };\n});\n\nInteraction.signals.on('stop', function (_ref9) {\n var interaction = _ref9.interaction;\n\n interaction.dropTarget = interaction.dropElement = interaction.prevDropTarget = interaction.prevDropElement = null;\n});\n\n/**\n * Returns or sets whether the dimensions of dropzone elements are calculated\n * on every dragmove or only on dragstart for the default dropChecker\n *\n * @param {boolean} [newValue] True to check on each move. False to check only\n * before start\n * @return {boolean | interact} The current setting or interact\n */\ninteract.dynamicDrop = function (newValue) {\n if (utils.is.bool(newValue)) {\n //if (dragging && dynamicDrop !== newValue && !newValue) {\n //calcRects(dropzones);\n //}\n\n dynamicDrop = newValue;\n\n return interact;\n }\n return dynamicDrop;\n};\n\nutils.merge(Interactable.eventTypes, ['dragenter', 'dragleave', 'dropactivate', 'dropdeactivate', 'dropmove', 'drop']);\nactions.methodDict.drop = 'dropzone';\n\ndefaultOptions.drop = drop.defaults;\n\nmodule.exports = drop;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"./base\":6}],9:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar gesture = {\n defaults: {\n enabled: false,\n origin: null,\n restrict: null\n },\n\n checker: function checker(pointer, event, interactable, element, interaction) {\n if (interaction.pointerIds.length >= 2) {\n return { name: 'gesture' };\n }\n\n return null;\n },\n\n getCursor: function getCursor() {\n return '';\n }\n};\n\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'gesturestart') {\n return;\n }\n iEvent.ds = 0;\n\n interaction.gesture.startDistance = interaction.gesture.prevDistance = iEvent.distance;\n interaction.gesture.startAngle = interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.scale = 1;\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'gesturemove') {\n return;\n }\n\n iEvent.ds = iEvent.scale - interaction.gesture.scale;\n\n interaction.target.fire(iEvent);\n\n interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.prevDistance = iEvent.distance;\n\n if (iEvent.scale !== Infinity && iEvent.scale !== null && iEvent.scale !== undefined && !isNaN(iEvent.scale)) {\n\n interaction.gesture.scale = iEvent.scale;\n }\n});\n\n/**\n * ```js\n * interact(element).gesturable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // limit multiple gestures.\n * // See the explanation in {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isGestureable = interact(element).gesturable();\n * ```\n *\n * Gets or sets whether multitouch gestures can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on gesture events (makes the Interactable gesturable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of gesture events, or this Interactable\n */\nInteractable.prototype.gesturable = function (options) {\n if (utils.is.object(options)) {\n this.options.gesture.enabled = options.enabled === false ? false : true;\n this.setPerAction('gesture', options);\n this.setOnEvents('gesture', options);\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.gesture.enabled = options;\n\n if (!options) {\n this.ongesturestart = this.ongesturestart = this.ongestureend = null;\n }\n\n return this;\n }\n\n return this.options.gesture;\n};\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action,\n event = _ref3.event,\n starting = _ref3.starting,\n ending = _ref3.ending,\n deltaSource = _ref3.deltaSource;\n\n if (action !== 'gesture') {\n return;\n }\n\n var pointers = interaction.pointers;\n\n iEvent.touches = [pointers[0], pointers[1]];\n\n if (starting) {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = 1;\n iEvent.ds = 0;\n iEvent.angle = utils.touchAngle(pointers, undefined, deltaSource);\n iEvent.da = 0;\n } else if (ending || event instanceof InteractEvent) {\n iEvent.distance = interaction.prevEvent.distance;\n iEvent.box = interaction.prevEvent.box;\n iEvent.scale = interaction.prevEvent.scale;\n iEvent.ds = iEvent.scale - 1;\n iEvent.angle = interaction.prevEvent.angle;\n iEvent.da = iEvent.angle - interaction.gesture.startAngle;\n } else {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance;\n iEvent.angle = utils.touchAngle(pointers, interaction.gesture.prevAngle, deltaSource);\n\n iEvent.ds = iEvent.scale - interaction.gesture.prevScale;\n iEvent.da = iEvent.angle - interaction.gesture.prevAngle;\n }\n});\n\nInteraction.signals.on('new', function (interaction) {\n interaction.gesture = {\n start: { x: 0, y: 0 },\n\n startDistance: 0, // distance between two touches of touchStart\n prevDistance: 0,\n distance: 0,\n\n scale: 1, // gesture.distance / gesture.startDistance\n\n startAngle: 0, // angle of line joining two touches\n prevAngle: 0 // angle of the previous gesture event\n };\n});\n\nactions.gesture = gesture;\nactions.names.push('gesture');\nutils.merge(Interactable.eventTypes, ['gesturestart', 'gesturemove', 'gestureend']);\nactions.methodDict.gesture = 'gesturable';\n\ndefaultOptions.gesture = gesture.defaults;\n\nmodule.exports = gesture;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],10:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar browser = require('../utils/browser');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\n// Less Precision with touch input\nvar defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10;\n\nvar resize = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none'\n },\n\n checker: function checker(pointer, event, interactable, element, interaction, rect) {\n if (!rect) {\n return null;\n }\n\n var page = utils.extend({}, interaction.curCoords.page);\n var options = interactable.options;\n\n if (options.resize.enabled) {\n var resizeOptions = options.resize;\n var resizeEdges = { left: false, right: false, top: false, bottom: false };\n\n // if using resize.edges\n if (utils.is.object(resizeOptions.edges)) {\n for (var edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(edge, resizeOptions.edges[edge], page, interaction._eventTarget, element, rect, resizeOptions.margin || defaultMargin);\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right;\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;\n\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\n return {\n name: 'resize',\n edges: resizeEdges\n };\n }\n } else {\n var right = options.resize.axis !== 'y' && page.x > rect.right - defaultMargin;\n var bottom = options.resize.axis !== 'x' && page.y > rect.bottom - defaultMargin;\n\n if (right || bottom) {\n return {\n name: 'resize',\n axes: (right ? 'x' : '') + (bottom ? 'y' : '')\n };\n }\n }\n }\n\n return null;\n },\n\n cursors: browser.isIe9 ? {\n x: 'e-resize',\n y: 's-resize',\n xy: 'se-resize',\n\n top: 'n-resize',\n left: 'w-resize',\n bottom: 's-resize',\n right: 'e-resize',\n topleft: 'se-resize',\n bottomright: 'se-resize',\n topright: 'ne-resize',\n bottomleft: 'ne-resize'\n } : {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'nwse-resize',\n\n top: 'ns-resize',\n left: 'ew-resize',\n bottom: 'ns-resize',\n right: 'ew-resize',\n topleft: 'nwse-resize',\n bottomright: 'nwse-resize',\n topright: 'nesw-resize',\n bottomleft: 'nesw-resize'\n },\n\n getCursor: function getCursor(action) {\n if (action.axis) {\n return resize.cursors[action.name + action.axis];\n } else if (action.edges) {\n var cursorKey = '';\n var edgeNames = ['top', 'bottom', 'left', 'right'];\n\n for (var i = 0; i < 4; i++) {\n if (action.edges[edgeNames[i]]) {\n cursorKey += edgeNames[i];\n }\n }\n\n return resize.cursors[cursorKey];\n }\n }\n};\n\n// resizestart\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'resizestart' || !interaction.prepared.edges) {\n return;\n }\n\n var startRect = interaction.target.getRect(interaction.element);\n var resizeOptions = interaction.target.options.resize;\n\n /*\n * When using the `resizable.square` or `resizable.preserveAspectRatio` options, resizing from one edge\n * will affect another. E.g. with `resizable.square`, resizing to make the right edge larger will make\n * the bottom edge larger by the same amount. We call these 'linked' edges. Any linked edges will depend\n * on the active edges and the edge being interacted with.\n */\n if (resizeOptions.square || resizeOptions.preserveAspectRatio) {\n var linkedEdges = utils.extend({}, interaction.prepared.edges);\n\n linkedEdges.top = linkedEdges.top || linkedEdges.left && !linkedEdges.bottom;\n linkedEdges.left = linkedEdges.left || linkedEdges.top && !linkedEdges.right;\n linkedEdges.bottom = linkedEdges.bottom || linkedEdges.right && !linkedEdges.top;\n linkedEdges.right = linkedEdges.right || linkedEdges.bottom && !linkedEdges.left;\n\n interaction.prepared._linkedEdges = linkedEdges;\n } else {\n interaction.prepared._linkedEdges = null;\n }\n\n // if using `resizable.preserveAspectRatio` option, record aspect ratio at the start of the resize\n if (resizeOptions.preserveAspectRatio) {\n interaction.resizeStartAspectRatio = startRect.width / startRect.height;\n }\n\n interaction.resizeRects = {\n start: startRect,\n current: utils.extend({}, startRect),\n inverted: utils.extend({}, startRect),\n previous: utils.extend({}, startRect),\n delta: {\n left: 0, right: 0, width: 0,\n top: 0, bottom: 0, height: 0\n }\n };\n\n iEvent.rect = interaction.resizeRects.inverted;\n iEvent.deltaRect = interaction.resizeRects.delta;\n});\n\n// resizemove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n phase = _ref2.phase,\n interaction = _ref2.interaction;\n\n if (phase !== 'move' || !interaction.prepared.edges) {\n return;\n }\n\n var resizeOptions = interaction.target.options.resize;\n var invert = resizeOptions.invert;\n var invertible = invert === 'reposition' || invert === 'negate';\n\n var edges = interaction.prepared.edges;\n\n var start = interaction.resizeRects.start;\n var current = interaction.resizeRects.current;\n var inverted = interaction.resizeRects.inverted;\n var delta = interaction.resizeRects.delta;\n var previous = utils.extend(interaction.resizeRects.previous, inverted);\n var originalEdges = edges;\n\n var dx = iEvent.dx;\n var dy = iEvent.dy;\n\n if (resizeOptions.preserveAspectRatio || resizeOptions.square) {\n // `resize.preserveAspectRatio` takes precedence over `resize.square`\n var startAspectRatio = resizeOptions.preserveAspectRatio ? interaction.resizeStartAspectRatio : 1;\n\n edges = interaction.prepared._linkedEdges;\n\n if (originalEdges.left && originalEdges.bottom || originalEdges.right && originalEdges.top) {\n dy = -dx / startAspectRatio;\n } else if (originalEdges.left || originalEdges.right) {\n dy = dx / startAspectRatio;\n } else if (originalEdges.top || originalEdges.bottom) {\n dx = dy * startAspectRatio;\n }\n }\n\n // update the 'current' rect without modifications\n if (edges.top) {\n current.top += dy;\n }\n if (edges.bottom) {\n current.bottom += dy;\n }\n if (edges.left) {\n current.left += dx;\n }\n if (edges.right) {\n current.right += dx;\n }\n\n if (invertible) {\n // if invertible, copy the current rect\n utils.extend(inverted, current);\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n var swap = void 0;\n\n if (inverted.top > inverted.bottom) {\n swap = inverted.top;\n\n inverted.top = inverted.bottom;\n inverted.bottom = swap;\n }\n if (inverted.left > inverted.right) {\n swap = inverted.left;\n\n inverted.left = inverted.right;\n inverted.right = swap;\n }\n }\n } else {\n // if not invertible, restrict to minimum of 0x0 rect\n inverted.top = Math.min(current.top, start.bottom);\n inverted.bottom = Math.max(current.bottom, start.top);\n inverted.left = Math.min(current.left, start.right);\n inverted.right = Math.max(current.right, start.left);\n }\n\n inverted.width = inverted.right - inverted.left;\n inverted.height = inverted.bottom - inverted.top;\n\n for (var edge in inverted) {\n delta[edge] = inverted[edge] - previous[edge];\n }\n\n iEvent.edges = interaction.prepared.edges;\n iEvent.rect = inverted;\n iEvent.deltaRect = delta;\n});\n\n/**\n * ```js\n * interact(element).resizable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * edges: {\n * top : true, // Use pointer coords to check for resize.\n * left : false, // Disable resizing from left edge.\n * bottom: '.resize-s',// Resize if pointer target matches selector\n * right : handleEl // Resize if pointer target is the given Element\n * },\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height are adjusted at a 1:1 ratio.\n * square: false,\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height maintain the aspect ratio they had when resizing started.\n * preserveAspectRatio: false,\n *\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\n * // 'negate' will allow the rect to have negative width/height\n * // 'reposition' will keep the width/height positive by swapping\n * // the top and bottom edges and/or swapping the left and right edges\n * invert: 'none' || 'negate' || 'reposition'\n *\n * // limit multiple resizes.\n * // See the explanation in the {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isResizeable = interact(element).resizable();\n * ```\n *\n * Gets or sets whether resize actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on resize events (object makes the Interactable\n * resizable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of resize elements, or this Interactable\n */\nInteractable.prototype.resizable = function (options) {\n if (utils.is.object(options)) {\n this.options.resize.enabled = options.enabled === false ? false : true;\n this.setPerAction('resize', options);\n this.setOnEvents('resize', options);\n\n if (/^x$|^y$|^xy$/.test(options.axis)) {\n this.options.resize.axis = options.axis;\n } else if (options.axis === null) {\n this.options.resize.axis = defaultOptions.resize.axis;\n }\n\n if (utils.is.bool(options.preserveAspectRatio)) {\n this.options.resize.preserveAspectRatio = options.preserveAspectRatio;\n } else if (utils.is.bool(options.square)) {\n this.options.resize.square = options.square;\n }\n\n return this;\n }\n if (utils.is.bool(options)) {\n this.options.resize.enabled = options;\n\n if (!options) {\n this.onresizestart = this.onresizestart = this.onresizeend = null;\n }\n\n return this;\n }\n return this.options.resize;\n};\n\nfunction checkResizeEdge(name, value, page, element, interactableElement, rect, margin) {\n // false, '', undefined, null\n if (!value) {\n return false;\n }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n var width = utils.is.number(rect.width) ? rect.width : rect.right - rect.left;\n var height = utils.is.number(rect.height) ? rect.height : rect.bottom - rect.top;\n\n if (width < 0) {\n if (name === 'left') {\n name = 'right';\n } else if (name === 'right') {\n name = 'left';\n }\n }\n if (height < 0) {\n if (name === 'top') {\n name = 'bottom';\n } else if (name === 'bottom') {\n name = 'top';\n }\n }\n\n if (name === 'left') {\n return page.x < (width >= 0 ? rect.left : rect.right) + margin;\n }\n if (name === 'top') {\n return page.y < (height >= 0 ? rect.top : rect.bottom) + margin;\n }\n\n if (name === 'right') {\n return page.x > (width >= 0 ? rect.right : rect.left) - margin;\n }\n if (name === 'bottom') {\n return page.y > (height >= 0 ? rect.bottom : rect.top) - margin;\n }\n }\n\n // the remaining checks require an element\n if (!utils.is.element(element)) {\n return false;\n }\n\n return utils.is.element(value)\n // the value is an element to use as a resize handle\n ? value === element\n // otherwise check if element matches value as selector\n : utils.matchesUpTo(element, value, interactableElement);\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.resizeAxes = 'xy';\n});\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action;\n\n if (action !== 'resize' || !interaction.resizeAxes) {\n return;\n }\n\n var options = interaction.target.options;\n\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n iEvent.dx = iEvent.dy;\n } else {\n iEvent.dy = iEvent.dx;\n }\n iEvent.axes = 'xy';\n } else {\n iEvent.axes = interaction.resizeAxes;\n\n if (interaction.resizeAxes === 'x') {\n iEvent.dy = 0;\n } else if (interaction.resizeAxes === 'y') {\n iEvent.dx = 0;\n }\n }\n});\n\nactions.resize = resize;\nactions.names.push('resize');\nutils.merge(Interactable.eventTypes, ['resizestart', 'resizemove', 'resizeinertiastart', 'resizeinertiaresume', 'resizeend']);\nactions.methodDict.resize = 'resizable';\n\ndefaultOptions.resize = resize.defaults;\n\nmodule.exports = resize;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/browser\":36,\"./base\":6}],11:[function(require,module,exports){\n'use strict';\n\nvar raf = require('./utils/raf');\nvar getWindow = require('./utils/window').getWindow;\nvar is = require('./utils/is');\nvar domUtils = require('./utils/domUtils');\nvar Interaction = require('./Interaction');\nvar defaultOptions = require('./defaultOptions');\n\nvar autoScroll = {\n defaults: {\n enabled: false,\n container: null, // the item that is scrolled (Window or HTMLElement)\n margin: 60,\n speed: 300 // the scroll speed in pixels per second\n },\n\n interaction: null,\n i: null, // the handle returned by window.setInterval\n x: 0, y: 0, // Direction each pulse is to scroll in\n\n isScrolling: false,\n prevTime: 0,\n\n start: function start(interaction) {\n autoScroll.isScrolling = true;\n raf.cancel(autoScroll.i);\n\n autoScroll.interaction = interaction;\n autoScroll.prevTime = new Date().getTime();\n autoScroll.i = raf.request(autoScroll.scroll);\n },\n\n stop: function stop() {\n autoScroll.isScrolling = false;\n raf.cancel(autoScroll.i);\n },\n\n // scroll the window by the values in scroll.x/y\n scroll: function scroll() {\n var options = autoScroll.interaction.target.options[autoScroll.interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(autoScroll.interaction.element);\n var now = new Date().getTime();\n // change in time in seconds\n var dt = (now - autoScroll.prevTime) / 1000;\n // displacement\n var s = options.speed * dt;\n\n if (s >= 1) {\n if (is.window(container)) {\n container.scrollBy(autoScroll.x * s, autoScroll.y * s);\n } else if (container) {\n container.scrollLeft += autoScroll.x * s;\n container.scrollTop += autoScroll.y * s;\n }\n\n autoScroll.prevTime = now;\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i);\n autoScroll.i = raf.request(autoScroll.scroll);\n }\n },\n check: function check(interactable, actionName) {\n var options = interactable.options;\n\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled;\n },\n onInteractionMove: function onInteractionMove(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer;\n\n if (!(interaction.interacting() && autoScroll.check(interaction.target, interaction.prepared.name))) {\n return;\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0;\n return;\n }\n\n var top = void 0;\n var right = void 0;\n var bottom = void 0;\n var left = void 0;\n\n var options = interaction.target.options[interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(interaction.element);\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin;\n top = pointer.clientY < autoScroll.margin;\n right = pointer.clientX > container.innerWidth - autoScroll.margin;\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin;\n } else {\n var rect = domUtils.getElementClientRect(container);\n\n left = pointer.clientX < rect.left + autoScroll.margin;\n top = pointer.clientY < rect.top + autoScroll.margin;\n right = pointer.clientX > rect.right - autoScroll.margin;\n bottom = pointer.clientY > rect.bottom - autoScroll.margin;\n }\n\n autoScroll.x = right ? 1 : left ? -1 : 0;\n autoScroll.y = bottom ? 1 : top ? -1 : 0;\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin;\n autoScroll.speed = options.speed;\n\n autoScroll.start(interaction);\n }\n }\n};\n\nInteraction.signals.on('stop-active', function () {\n autoScroll.stop();\n});\n\nInteraction.signals.on('action-move', autoScroll.onInteractionMove);\n\ndefaultOptions.perAction.autoScroll = autoScroll.defaults;\n\nmodule.exports = autoScroll;\n\n},{\"./Interaction\":5,\"./defaultOptions\":18,\"./utils/domUtils\":39,\"./utils/is\":46,\"./utils/raf\":50,\"./utils/window\":52}],12:[function(require,module,exports){\n'use strict';\n\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar actions = require('../actions/base');\nvar is = require('../utils/is');\nvar domUtils = require('../utils/domUtils');\n\nvar _require = require('../utils'),\n warnOnce = _require.warnOnce;\n\nInteractable.prototype.getAction = function (pointer, event, interaction, element) {\n var action = this.defaultActionChecker(pointer, event, interaction, element);\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction);\n }\n\n return action;\n};\n\n/**\n * ```js\n * interact(element, { ignoreFrom: document.getElementById('no-action') });\n * // or\n * interact(element).ignoreFrom('input, textarea, a');\n * ```\n * @deprecated\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\n * of it's parents match the given CSS selector or Element, no\n * drag/resize/gesture is started.\n *\n * Don't use this method. Instead set the `ignoreFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .draggable({\n * ignoreFrom: 'input, textarea, a[href]'',\n * })\n * .pointerEvents({\n * ignoreFrom: '[no-pointer]',\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to not ignore any elements\n * @return {string | Element | object} The current ignoreFrom value or this\n * Interactable\n */\nInteractable.prototype.ignoreFrom = warnOnce(function (newValue) {\n return this._backCompatOption('ignoreFrom', newValue);\n}, 'Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).');\n\n/**\n * ```js\n *\n * @deprecated\n * A drag/resize/gesture is started only If the target of the `mousedown`,\n * `pointerdown` or `touchstart` event or any of it's parents match the given\n * CSS selector or Element.\n *\n * Don't use this method. Instead set the `allowFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .resizable({\n * allowFrom: '.resize-handle',\n * .pointerEvents({\n * allowFrom: '.handle',,\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to allow from any element\n * @return {string | Element | object} The current allowFrom value or this\n * Interactable\n */\nInteractable.prototype.allowFrom = warnOnce(function (newValue) {\n return this._backCompatOption('allowFrom', newValue);\n}, 'Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).');\n\nInteractable.prototype.testIgnore = function (ignoreFrom, interactableElement, element) {\n if (!ignoreFrom || !is.element(element)) {\n return false;\n }\n\n if (is.string(ignoreFrom)) {\n return domUtils.matchesUpTo(element, ignoreFrom, interactableElement);\n } else if (is.element(ignoreFrom)) {\n return domUtils.nodeContains(ignoreFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testAllow = function (allowFrom, interactableElement, element) {\n if (!allowFrom) {\n return true;\n }\n\n if (!is.element(element)) {\n return false;\n }\n\n if (is.string(allowFrom)) {\n return domUtils.matchesUpTo(element, allowFrom, interactableElement);\n } else if (is.element(allowFrom)) {\n return domUtils.nodeContains(allowFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testIgnoreAllow = function (options, interactableElement, eventTarget) {\n return !this.testIgnore(options.ignoreFrom, interactableElement, eventTarget) && this.testAllow(options.allowFrom, interactableElement, eventTarget);\n};\n\n/**\n * ```js\n * interact('.resize-drag')\n * .resizable(true)\n * .draggable(true)\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n *\n * if (interact.matchesSelector(event.target, '.drag-handle') {\n * // force drag with handle target\n * action.name = drag;\n * }\n * else {\n * // resize from the top and right edges\n * action.name = 'resize';\n * action.edges = { top: true, right: true };\n * }\n *\n * return action;\n * });\n * ```\n *\n * Gets or sets the function used to check action to be performed on\n * pointerDown\n *\n * @param {function | null} [checker] A function which takes a pointer event,\n * defaultAction string, interactable, element and interaction as parameters\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\n * props.\n * @return {Function | Interactable} The checker function or this Interactable\n */\nInteractable.prototype.actionChecker = function (checker) {\n if (is.function(checker)) {\n this.options.actionChecker = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.actionChecker;\n\n return this;\n }\n\n return this.options.actionChecker;\n};\n\n/**\n * Returns or sets whether the the cursor should be changed depending on the\n * action that would be performed if the mouse were pressed and dragged.\n *\n * @param {boolean} [newValue]\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.styleCursor = function (newValue) {\n if (is.bool(newValue)) {\n this.options.styleCursor = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.styleCursor;\n\n return this;\n }\n\n return this.options.styleCursor;\n};\n\nInteractable.prototype.defaultActionChecker = function (pointer, event, interaction, element) {\n var rect = this.getRect(element);\n var buttons = event.buttons || {\n 0: 1,\n 1: 4,\n 3: 8,\n 4: 16\n }[event.button];\n var action = null;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var actionName = _ref;\n\n // check mouseButton setting if the pointer is down\n if (interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & this.options[actionName].mouseButtons) === 0) {\n continue;\n }\n\n action = actions[actionName].checker(pointer, event, this, element, interaction, rect);\n\n if (action) {\n return action;\n }\n }\n};\n\n},{\"../Interactable\":4,\"../actions/base\":6,\"../utils\":44,\"../utils/domUtils\":39,\"../utils/is\":46}],13:[function(require,module,exports){\n'use strict';\n\nvar interact = require('../interact');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar actions = require('../actions/base');\nvar defaultOptions = require('../defaultOptions');\nvar scope = require('../scope');\nvar utils = require('../utils');\nvar signals = require('../utils/Signals').new();\n\nrequire('./InteractableMethods');\n\nvar autoStart = {\n signals: signals,\n withinInteractionLimit: withinInteractionLimit,\n // Allow this many interactions to happen simultaneously\n maxInteractions: Infinity,\n defaults: {\n perAction: {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n allowFrom: null,\n ignoreFrom: null,\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons: 1\n }\n },\n setActionDefaults: function setActionDefaults(action) {\n utils.extend(action.defaults, autoStart.defaults.perAction);\n },\n validateAction: validateAction\n};\n\n// set cursor style on mousedown\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget;\n\n if (interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\n// set cursor style on mousemove\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n pointer = _ref2.pointer,\n event = _ref2.event,\n eventTarget = _ref2.eventTarget;\n\n if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\nInteraction.signals.on('move', function (arg) {\n var interaction = arg.interaction,\n event = arg.event;\n\n\n if (!interaction.pointerIsDown || interaction.interacting() || !interaction.pointerWasMoved || !interaction.prepared.name) {\n return;\n }\n\n signals.fire('before-start', arg);\n\n var target = interaction.target;\n\n if (interaction.prepared.name && target) {\n // check manualStart and interaction limit\n if (target.options[interaction.prepared.name].manualStart || !withinInteractionLimit(target, interaction.element, interaction.prepared)) {\n interaction.stop(event);\n } else {\n interaction.start(interaction.prepared, target, interaction.element);\n }\n }\n});\n\n// Check if the current target supports the action.\n// If so, return the validated action. Otherwise, return null\nfunction validateAction(action, interactable, element, eventTarget) {\n if (utils.is.object(action) && interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) && interactable.options[action.name].enabled && withinInteractionLimit(interactable, element, action)) {\n return action;\n }\n\n return null;\n}\n\nfunction validateSelector(interaction, pointer, event, matches, matchElements, eventTarget) {\n for (var i = 0, len = matches.length; i < len; i++) {\n var match = matches[i];\n var matchElement = matchElements[i];\n var action = validateAction(match.getAction(pointer, event, interaction, matchElement), match, matchElement, eventTarget);\n\n if (action) {\n return {\n action: action,\n target: match,\n element: matchElement\n };\n }\n }\n\n return {};\n}\n\nfunction getActionInfo(interaction, pointer, event, eventTarget) {\n var matches = [];\n var matchElements = [];\n\n var element = eventTarget;\n\n function pushMatches(interactable) {\n matches.push(interactable);\n matchElements.push(element);\n }\n\n while (utils.is.element(element)) {\n matches = [];\n matchElements = [];\n\n scope.interactables.forEachMatch(element, pushMatches);\n\n var actionInfo = validateSelector(interaction, pointer, event, matches, matchElements, eventTarget);\n\n if (actionInfo.action && !actionInfo.target.options[actionInfo.action.name].manualStart) {\n return actionInfo;\n }\n\n element = utils.parentNode(element);\n }\n\n return {};\n}\n\nfunction prepare(interaction, _ref3) {\n var action = _ref3.action,\n target = _ref3.target,\n element = _ref3.element;\n\n action = action || {};\n\n if (interaction.target && interaction.target.options.styleCursor) {\n interaction.target._doc.documentElement.style.cursor = '';\n }\n\n interaction.target = target;\n interaction.element = element;\n utils.copyAction(interaction.prepared, action);\n\n if (target && target.options.styleCursor) {\n var cursor = action ? actions[action.name].getCursor(action) : '';\n interaction.target._doc.documentElement.style.cursor = cursor;\n }\n\n signals.fire('prepared', { interaction: interaction });\n}\n\nInteraction.signals.on('stop', function (_ref4) {\n var interaction = _ref4.interaction;\n\n var target = interaction.target;\n\n if (target && target.options.styleCursor) {\n target._doc.documentElement.style.cursor = '';\n }\n});\n\nfunction withinInteractionLimit(interactable, element, action) {\n var options = interactable.options;\n var maxActions = options[action.name].max;\n var maxPerElement = options[action.name].maxPerElement;\n var activeInteractions = 0;\n var targetCount = 0;\n var targetElementCount = 0;\n\n // no actions if any of these values == 0\n if (!(maxActions && maxPerElement && autoStart.maxInteractions)) {\n return;\n }\n\n for (var _i = 0; _i < scope.interactions.length; _i++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i];\n var interaction = _ref5;\n\n var otherAction = interaction.prepared.name;\n\n if (!interaction.interacting()) {\n continue;\n }\n\n activeInteractions++;\n\n if (activeInteractions >= autoStart.maxInteractions) {\n return false;\n }\n\n if (interaction.target !== interactable) {\n continue;\n }\n\n targetCount += otherAction === action.name | 0;\n\n if (targetCount >= maxActions) {\n return false;\n }\n\n if (interaction.element === element) {\n targetElementCount++;\n\n if (otherAction !== action.name || targetElementCount >= maxPerElement) {\n return false;\n }\n }\n }\n\n return autoStart.maxInteractions > 0;\n}\n\n/**\n * Returns or sets the maximum number of concurrent interactions allowed. By\n * default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables and\n * elements, you need to enable it in the draggable, resizable and gesturable\n * `'max'` and `'maxPerElement'` options.\n *\n * @alias module:interact.maxInteractions\n *\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\n */\ninteract.maxInteractions = function (newValue) {\n if (utils.is.number(newValue)) {\n autoStart.maxInteractions = newValue;\n\n return interact;\n }\n\n return autoStart.maxInteractions;\n};\n\nInteractable.settingsMethods.push('styleCursor');\nInteractable.settingsMethods.push('actionChecker');\nInteractable.settingsMethods.push('ignoreFrom');\nInteractable.settingsMethods.push('allowFrom');\n\ndefaultOptions.base.actionChecker = null;\ndefaultOptions.base.styleCursor = true;\n\nutils.extend(defaultOptions.perAction, autoStart.defaults.perAction);\n\nmodule.exports = autoStart;\n\n},{\"../Interactable\":4,\"../Interaction\":5,\"../actions/base\":6,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"../utils/Signals\":34,\"./InteractableMethods\":12}],14:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar scope = require('../scope');\nvar is = require('../utils/is');\n\nvar _require = require('../utils/domUtils'),\n parentNode = _require.parentNode;\n\nautoStart.setActionDefaults(require('../actions/drag'));\n\nautoStart.signals.on('before-start', function (_ref) {\n var interaction = _ref.interaction,\n eventTarget = _ref.eventTarget,\n dx = _ref.dx,\n dy = _ref.dy;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // check if a drag is in the correct axis\n var absX = Math.abs(dx);\n var absY = Math.abs(dy);\n var targetOptions = interaction.target.options.drag;\n var startAxis = targetOptions.startAxis;\n var currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy';\n\n interaction.prepared.axis = targetOptions.lockAxis === 'start' ? currentAxis[0] // always lock to one axis even if currentAxis === 'xy'\n : targetOptions.lockAxis;\n\n // if the movement isn't in the startAxis of the interactable\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\n // cancel the prepared action\n interaction.prepared.name = null;\n\n // then try to get a drag from another ineractable\n var element = eventTarget;\n\n var getDraggable = function getDraggable(interactable) {\n if (interactable === interaction.target) {\n return;\n }\n\n var options = interaction.target.options.drag;\n\n if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n var action = interactable.getAction(interaction.downPointer, interaction.downEvent, interaction, element);\n\n if (action && action.name === 'drag' && checkStartAxis(currentAxis, interactable) && autoStart.validateAction(action, interactable, element, eventTarget)) {\n\n return interactable;\n }\n }\n };\n\n // check all interactables\n while (is.element(element)) {\n var interactable = scope.interactables.forEachMatch(element, getDraggable);\n\n if (interactable) {\n interaction.prepared.name = 'drag';\n interaction.target = interactable;\n interaction.element = element;\n break;\n }\n\n element = parentNode(element);\n }\n }\n});\n\nfunction checkStartAxis(startAxis, interactable) {\n if (!interactable) {\n return false;\n }\n\n var thisAxis = interactable.options.drag.startAxis;\n\n return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis;\n}\n\n},{\"../actions/drag\":7,\"../scope\":33,\"../utils/domUtils\":39,\"../utils/is\":46,\"./base\":13}],15:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/gesture'));\n\n},{\"../actions/gesture\":9,\"./base\":13}],16:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar Interaction = require('../Interaction');\n\nautoStart.defaults.perAction.hold = 0;\nautoStart.defaults.perAction.delay = 0;\n\nInteraction.signals.on('new', function (interaction) {\n interaction.autoStartHoldTimer = null;\n});\n\nautoStart.signals.on('prepared', function (_ref) {\n var interaction = _ref.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.autoStartHoldTimer = setTimeout(function () {\n interaction.start(interaction.prepared, interaction.target, interaction.element);\n }, hold);\n }\n});\n\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n duplicate = _ref2.duplicate;\n\n if (interaction.pointerWasMoved && !duplicate) {\n clearTimeout(interaction.autoStartHoldTimer);\n }\n});\n\n// prevent regular down->move autoStart\nautoStart.signals.on('before-start', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.prepared.name = null;\n }\n});\n\nfunction getHoldDuration(interaction) {\n var actionName = interaction.prepared && interaction.prepared.name;\n\n if (!actionName) {\n return null;\n }\n\n var options = interaction.target.options;\n\n return options[actionName].hold || options[actionName].delay;\n}\n\nmodule.exports = {\n getHoldDuration: getHoldDuration\n};\n\n},{\"../Interaction\":5,\"./base\":13}],17:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/resize'));\n\n},{\"../actions/resize\":10,\"./base\":13}],18:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n base: {\n accept: null,\n preventDefault: 'auto',\n deltaSource: 'page'\n },\n\n perAction: {\n origin: { x: 0, y: 0 },\n\n inertia: {\n enabled: false,\n resistance: 10, // the lambda in exponential decay\n minSpeed: 100, // target speed must be above this for inertia to start\n endSpeed: 10, // the speed at which inertia is slow enough to stop\n allowResume: true, // allow resuming an action in inertia phase\n smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia\n }\n }\n};\n\n},{}],19:[function(require,module,exports){\n'use strict';\n\n/* browser entry point */\n\n// inertia\nrequire('./inertia');\n\n// modifiers\nrequire('./modifiers/snap');\nrequire('./modifiers/restrict');\n\n// pointerEvents\nrequire('./pointerEvents/base');\nrequire('./pointerEvents/holdRepeat');\nrequire('./pointerEvents/interactableTargets');\n\n// autoStart hold\nrequire('./autoStart/hold');\n\n// actions\nrequire('./actions/gesture');\nrequire('./actions/resize');\nrequire('./actions/drag');\nrequire('./actions/drop');\n\n// load these modifiers after resize is loaded\nrequire('./modifiers/snapSize');\nrequire('./modifiers/restrictEdges');\nrequire('./modifiers/restrictSize');\n\n// autoStart actions\nrequire('./autoStart/gesture');\nrequire('./autoStart/resize');\nrequire('./autoStart/drag');\n\n// Interactable preventDefault setting\nrequire('./interactablePreventDefault.js');\n\n// autoScroll\nrequire('./autoScroll');\n\n// export interact\nmodule.exports = require('./interact');\n\n},{\"./actions/drag\":7,\"./actions/drop\":8,\"./actions/gesture\":9,\"./actions/resize\":10,\"./autoScroll\":11,\"./autoStart/drag\":14,\"./autoStart/gesture\":15,\"./autoStart/hold\":16,\"./autoStart/resize\":17,\"./inertia\":20,\"./interact\":21,\"./interactablePreventDefault.js\":22,\"./modifiers/restrict\":24,\"./modifiers/restrictEdges\":25,\"./modifiers/restrictSize\":26,\"./modifiers/snap\":27,\"./modifiers/snapSize\":28,\"./pointerEvents/base\":30,\"./pointerEvents/holdRepeat\":31,\"./pointerEvents/interactableTargets\":32}],20:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('./InteractEvent');\nvar Interaction = require('./Interaction');\nvar modifiers = require('./modifiers/base');\nvar utils = require('./utils');\nvar animationFrame = require('./utils/raf');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.inertiaStatus = {\n active: false,\n smoothEnd: false,\n allowResume: false,\n\n startEvent: null,\n upCoords: {},\n\n xe: 0, ye: 0,\n sx: 0, sy: 0,\n\n t0: 0,\n vx0: 0, vys: 0,\n duration: 0,\n\n lambda_v0: 0,\n one_ve_v0: 0,\n i: null\n };\n\n interaction.boundInertiaFrame = function () {\n return inertiaFrame.apply(interaction);\n };\n interaction.boundSmoothEndFrame = function () {\n return smoothEndFrame.apply(interaction);\n };\n});\n\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event,\n pointer = _ref.pointer,\n eventTarget = _ref.eventTarget;\n\n var status = interaction.inertiaStatus;\n\n // Check if the down event hits the current inertia target\n if (status.active) {\n var element = eventTarget;\n\n // climb up the DOM tree from the event target\n while (utils.is.element(element)) {\n\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n // stop inertia\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n\n // update pointers to the down event's coordinates\n interaction.updatePointer(pointer);\n utils.setCoords(interaction.curCoords, interaction.pointers);\n\n // fire appropriate signals\n var signalArg = { interaction: interaction };\n Interaction.signals.fire('before-action-move', signalArg);\n Interaction.signals.fire('action-resume', signalArg);\n\n // fire a reume event\n var resumeEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiaresume', interaction.element);\n\n interaction.target.fire(resumeEvent);\n interaction.prevEvent = resumeEvent;\n modifiers.resetStatuses(interaction.modifierStatuses);\n\n utils.copyCoords(interaction.prevCoords, interaction.curCoords);\n break;\n }\n\n element = utils.parentNode(element);\n }\n }\n});\n\nInteraction.signals.on('up', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event;\n\n var status = interaction.inertiaStatus;\n\n if (!interaction.interacting() || status.active) {\n return;\n }\n\n var target = interaction.target;\n var options = target && target.options;\n var inertiaOptions = options && interaction.prepared.name && options[interaction.prepared.name].inertia;\n\n var now = new Date().getTime();\n var statuses = {};\n var page = utils.extend({}, interaction.curCoords.page);\n var pointerSpeed = interaction.pointerDelta.client.speed;\n\n var smoothEnd = false;\n var modifierResult = void 0;\n\n // check if inertia should be started\n var inertiaPossible = inertiaOptions && inertiaOptions.enabled && interaction.prepared.name !== 'gesture' && event !== status.startEvent;\n\n var inertia = inertiaPossible && now - interaction.curCoords.timeStamp < 50 && pointerSpeed > inertiaOptions.minSpeed && pointerSpeed > inertiaOptions.endSpeed;\n\n var modifierArg = {\n interaction: interaction,\n pageCoords: page,\n statuses: statuses,\n preEnd: true,\n requireEndOnly: true\n };\n\n // smoothEnd\n if (inertiaPossible && !inertia) {\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n if (modifierResult.shouldMove && modifierResult.locked) {\n smoothEnd = true;\n }\n }\n\n if (!(inertia || smoothEnd)) {\n return;\n }\n\n utils.copyCoords(status.upCoords, interaction.curCoords);\n\n interaction.pointers[0] = status.startEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiastart', interaction.element);\n\n status.t0 = now;\n\n status.active = true;\n status.allowResume = inertiaOptions.allowResume;\n interaction.simulation = status;\n\n target.fire(status.startEvent);\n\n if (inertia) {\n status.vx0 = interaction.pointerDelta.client.vx;\n status.vy0 = interaction.pointerDelta.client.vy;\n status.v0 = pointerSpeed;\n\n calcInertia(interaction, status);\n\n utils.extend(page, interaction.curCoords.page);\n\n page.x += status.xe;\n page.y += status.ye;\n\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n status.modifiedXe += modifierResult.dx;\n status.modifiedYe += modifierResult.dy;\n\n status.i = animationFrame.request(interaction.boundInertiaFrame);\n } else {\n status.smoothEnd = true;\n status.xe = modifierResult.dx;\n status.ye = modifierResult.dy;\n\n status.sx = status.sy = 0;\n\n status.i = animationFrame.request(interaction.boundSmoothEndFrame);\n }\n});\n\nInteraction.signals.on('stop-active', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var status = interaction.inertiaStatus;\n\n if (status.active) {\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n }\n});\n\nfunction calcInertia(interaction, status) {\n var inertiaOptions = interaction.target.options[interaction.prepared.name].inertia;\n var lambda = inertiaOptions.resistance;\n var inertiaDur = -Math.log(inertiaOptions.endSpeed / status.v0) / lambda;\n\n status.x0 = interaction.prevEvent.pageX;\n status.y0 = interaction.prevEvent.pageY;\n status.t0 = status.startEvent.timeStamp / 1000;\n status.sx = status.sy = 0;\n\n status.modifiedXe = status.xe = (status.vx0 - inertiaDur) / lambda;\n status.modifiedYe = status.ye = (status.vy0 - inertiaDur) / lambda;\n status.te = inertiaDur;\n\n status.lambda_v0 = lambda / status.v0;\n status.one_ve_v0 = 1 - inertiaOptions.endSpeed / status.v0;\n}\n\nfunction inertiaFrame() {\n updateInertiaCoords(this);\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n\n var status = this.inertiaStatus;\n var options = this.target.options[this.prepared.name].inertia;\n var lambda = options.resistance;\n var t = new Date().getTime() / 1000 - status.t0;\n\n if (t < status.te) {\n\n var progress = 1 - (Math.exp(-lambda * t) - status.lambda_v0) / status.one_ve_v0;\n\n if (status.modifiedXe === status.xe && status.modifiedYe === status.ye) {\n status.sx = status.xe * progress;\n status.sy = status.ye * progress;\n } else {\n var quadPoint = utils.getQuadraticCurvePoint(0, 0, status.xe, status.ye, status.modifiedXe, status.modifiedYe, progress);\n\n status.sx = quadPoint.x;\n status.sy = quadPoint.y;\n }\n\n this.doMove();\n\n status.i = animationFrame.request(this.boundInertiaFrame);\n } else {\n status.sx = status.modifiedXe;\n status.sy = status.modifiedYe;\n\n this.doMove();\n this.end(status.startEvent);\n status.active = false;\n this.simulation = null;\n }\n\n utils.copyCoords(this.prevCoords, this.curCoords);\n}\n\nfunction smoothEndFrame() {\n updateInertiaCoords(this);\n\n var status = this.inertiaStatus;\n var t = new Date().getTime() - status.t0;\n var duration = this.target.options[this.prepared.name].inertia.smoothEndDuration;\n\n if (t < duration) {\n status.sx = utils.easeOutQuad(t, 0, status.xe, duration);\n status.sy = utils.easeOutQuad(t, 0, status.ye, duration);\n\n this.pointerMove(status.startEvent, status.startEvent);\n\n status.i = animationFrame.request(this.boundSmoothEndFrame);\n } else {\n status.sx = status.xe;\n status.sy = status.ye;\n\n this.pointerMove(status.startEvent, status.startEvent);\n this.end(status.startEvent);\n\n status.smoothEnd = status.active = false;\n this.simulation = null;\n }\n}\n\nfunction updateInertiaCoords(interaction) {\n var status = interaction.inertiaStatus;\n\n // return if inertia isn't running\n if (!status.active) {\n return;\n }\n\n var pageUp = status.upCoords.page;\n var clientUp = status.upCoords.client;\n\n utils.setCoords(interaction.curCoords, [{\n pageX: pageUp.x + status.sx,\n pageY: pageUp.y + status.sy,\n clientX: clientUp.x + status.sx,\n clientY: clientUp.y + status.sy\n }]);\n}\n\n},{\"./InteractEvent\":3,\"./Interaction\":5,\"./modifiers/base\":23,\"./utils\":44,\"./utils/raf\":50}],21:[function(require,module,exports){\n'use strict';\n\n/** @module interact */\n\nvar browser = require('./utils/browser');\nvar events = require('./utils/events');\nvar utils = require('./utils');\nvar scope = require('./scope');\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\n\nvar globalEvents = {};\n\n/**\n * ```js\n * interact('#draggable').draggable(true);\n *\n * var rectables = interact('rect');\n * rectables\n * .gesturable(true)\n * .on('gesturemove', function (event) {\n * // ...\n * });\n * ```\n *\n * The methods of this variable can be used to set elements as interactables\n * and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to configure\n * it.\n *\n * @global\n *\n * @param {Element | string} element The HTML or SVG Element to interact with\n * or CSS selector\n * @return {Interactable}\n */\nfunction interact(element, options) {\n var interactable = scope.interactables.get(element, options);\n\n if (!interactable) {\n interactable = new Interactable(element, options);\n interactable.events.global = globalEvents;\n }\n\n return interactable;\n}\n\n/**\n * Check if an element or selector has been set with the {@link interact}\n * function\n *\n * @alias module:interact.isSet\n *\n * @param {Element} element The Element being searched for\n * @return {boolean} Indicates if the element or CSS selector was previously\n * passed to interact\n*/\ninteract.isSet = function (element, options) {\n return scope.interactables.indexOfElement(element, options && options.context) !== -1;\n};\n\n/**\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\n *\n * @alias module:interact.on\n *\n * @param {string | array | object} type The types of events to listen for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] object or useCapture flag for\n * addEventListener\n * @return {object} interact\n */\ninteract.on = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i = 0; _i < type.length; _i++) {\n var _ref;\n\n _ref = type[_i];\n var eventType = _ref;\n\n interact.on(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.on(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (utils.contains(Interactable.eventTypes, type)) {\n // if this type of event was never bound\n if (!globalEvents[type]) {\n globalEvents[type] = [listener];\n } else {\n globalEvents[type].push(listener);\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n events.add(scope.document, type, listener, { options: options });\n }\n\n return interact;\n};\n\n/**\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n * @alias module:interact.off\n *\n * @param {string | array | object} type The types of events that were listened\n * for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} options [options] object or useCapture flag for\n * removeEventListener\n * @return {object} interact\n */\ninteract.off = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i2 = 0; _i2 < type.length; _i2++) {\n var _ref2;\n\n _ref2 = type[_i2];\n var eventType = _ref2;\n\n interact.off(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.off(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n if (!utils.contains(Interactable.eventTypes, type)) {\n events.remove(scope.document, type, listener, options);\n } else {\n var index = void 0;\n\n if (type in globalEvents && (index = globalEvents[type].indexOf(listener)) !== -1) {\n globalEvents[type].splice(index, 1);\n }\n }\n\n return interact;\n};\n\n/**\n * Returns an object which exposes internal data\n\n * @alias module:interact.debug\n *\n * @return {object} An object with properties that outline the current state\n * and expose internal functions and variables\n */\ninteract.debug = function () {\n return scope;\n};\n\n// expose the functions used to calculate multi-touch properties\ninteract.getPointerAverage = utils.pointerAverage;\ninteract.getTouchBBox = utils.touchBBox;\ninteract.getTouchDistance = utils.touchDistance;\ninteract.getTouchAngle = utils.touchAngle;\n\ninteract.getElementRect = utils.getElementRect;\ninteract.getElementClientRect = utils.getElementClientRect;\ninteract.matchesSelector = utils.matchesSelector;\ninteract.closest = utils.closest;\n\n/**\n * @alias module:interact.supportsTouch\n *\n * @return {boolean} Whether or not the browser supports touch input\n */\ninteract.supportsTouch = function () {\n return browser.supportsTouch;\n};\n\n/**\n * @alias module:interact.supportsPointerEvent\n *\n * @return {boolean} Whether or not the browser supports PointerEvents\n */\ninteract.supportsPointerEvent = function () {\n return browser.supportsPointerEvent;\n};\n\n/**\n * Cancels all interactions (end events are not fired)\n *\n * @alias module:interact.stop\n *\n * @param {Event} event An event on which to call preventDefault()\n * @return {object} interact\n */\ninteract.stop = function (event) {\n for (var i = scope.interactions.length - 1; i >= 0; i--) {\n scope.interactions[i].stop(event);\n }\n\n return interact;\n};\n\n/**\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n * @alias module:interact.pointerMoveTolerance\n *\n * @param {number} [newValue] The movement from the start position must be greater than this value\n * @return {interact | number}\n */\ninteract.pointerMoveTolerance = function (newValue) {\n if (utils.is.number(newValue)) {\n Interaction.pointerMoveTolerance = newValue;\n\n return interact;\n }\n\n return Interaction.pointerMoveTolerance;\n};\n\ninteract.addDocument = scope.addDocument;\ninteract.removeDocument = scope.removeDocument;\n\nscope.interact = interact;\n\nmodule.exports = interact;\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils\":44,\"./utils/browser\":36,\"./utils/events\":40}],22:[function(require,module,exports){\n'use strict';\n\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\nvar scope = require('./scope');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\n\nvar _require = require('./utils/domUtils'),\n nodeContains = _require.nodeContains,\n matchesSelector = _require.matchesSelector;\n\n/**\n * Returns or sets whether to prevent the browser's default behaviour in\n * response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n * @param {string} [newValue] `true`, `false` or `'auto'`\n * @return {string | Interactable} The current setting or this Interactable\n */\n\n\nInteractable.prototype.preventDefault = function (newValue) {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue;\n return this;\n }\n\n if (is.bool(newValue)) {\n this.options.preventDefault = newValue ? 'always' : 'never';\n return this;\n }\n\n return this.options.preventDefault;\n};\n\nInteractable.prototype.checkAndPreventDefault = function (event) {\n var setting = this.options.preventDefault;\n\n if (setting === 'never') {\n return;\n }\n\n if (setting === 'always') {\n event.preventDefault();\n return;\n }\n\n // setting === 'auto'\n\n // don't preventDefault of touch{start,move} events if the browser supports passive\n // events listeners. CSS touch-action and user-selecct should be used instead\n if (events.supportsPassive && /^touch(start|move)$/.test(event.type) && !browser.isIOS) {\n return;\n }\n\n // don't preventDefault of pointerdown events\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\n return;\n }\n\n // don't preventDefault on editable elements\n if (is.element(event.target) && matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {\n return;\n }\n\n event.preventDefault();\n};\n\nfunction onInteractionEvent(_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.target) {\n interaction.target.checkAndPreventDefault(event);\n }\n}\n\nvar _arr = ['down', 'move', 'up', 'cancel'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var eventSignal = _arr[_i];\n Interaction.signals.on(eventSignal, onInteractionEvent);\n}\n\n// prevent native HTML5 drag on interact.js target elements\nInteraction.docEvents.dragstart = function preventNativeDrag(event) {\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref2;\n\n _ref2 = scope.interactions[_i2];\n var interaction = _ref2;\n\n\n if (interaction.element && (interaction.element === event.target || nodeContains(interaction.element, event.target))) {\n\n interaction.target.checkAndPreventDefault(event);\n return;\n }\n }\n};\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils/browser\":36,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/is\":46}],23:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('../InteractEvent');\nvar Interaction = require('../Interaction');\nvar extend = require('../utils/extend');\n\nvar modifiers = {\n names: [],\n\n setOffsets: function setOffsets(arg) {\n var interaction = arg.interaction,\n page = arg.pageCoords;\n var target = interaction.target,\n element = interaction.element,\n startOffset = interaction.startOffset;\n\n var rect = target.getRect(element);\n\n if (rect) {\n startOffset.left = page.x - rect.left;\n startOffset.top = page.y - rect.top;\n\n startOffset.right = rect.right - page.x;\n startOffset.bottom = rect.bottom - page.y;\n\n if (!('width' in rect)) {\n rect.width = rect.right - rect.left;\n }\n if (!('height' in rect)) {\n rect.height = rect.bottom - rect.top;\n }\n } else {\n startOffset.left = startOffset.top = startOffset.right = startOffset.bottom = 0;\n }\n\n arg.rect = rect;\n arg.interactable = target;\n arg.element = element;\n\n for (var _i = 0; _i < modifiers.names.length; _i++) {\n var _ref;\n\n _ref = modifiers.names[_i];\n var modifierName = _ref;\n\n arg.options = target.options[interaction.prepared.name][modifierName];\n\n if (!arg.options) {\n continue;\n }\n\n interaction.modifierOffsets[modifierName] = modifiers[modifierName].setOffset(arg);\n }\n },\n\n setAll: function setAll(arg) {\n var interaction = arg.interaction,\n statuses = arg.statuses,\n preEnd = arg.preEnd,\n requireEndOnly = arg.requireEndOnly;\n\n var result = {\n dx: 0,\n dy: 0,\n changed: false,\n locked: false,\n shouldMove: true\n };\n\n arg.modifiedCoords = extend({}, arg.pageCoords);\n\n for (var _i2 = 0; _i2 < modifiers.names.length; _i2++) {\n var _ref2;\n\n _ref2 = modifiers.names[_i2];\n var modifierName = _ref2;\n\n var modifier = modifiers[modifierName];\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!shouldDo(options, preEnd, requireEndOnly)) {\n continue;\n }\n\n arg.status = arg.status = statuses[modifierName];\n arg.options = options;\n arg.offset = arg.interaction.modifierOffsets[modifierName];\n\n modifier.set(arg);\n\n if (arg.status.locked) {\n arg.modifiedCoords.x += arg.status.dx;\n arg.modifiedCoords.y += arg.status.dy;\n\n result.dx += arg.status.dx;\n result.dy += arg.status.dy;\n\n result.locked = true;\n }\n }\n\n // a move should be fired if:\n // - there are no modifiers enabled,\n // - no modifiers are \"locked\" i.e. have changed the pointer's coordinates, or\n // - the locked coords have changed since the last pointer move\n result.shouldMove = !arg.status || !result.locked || arg.status.changed;\n\n return result;\n },\n\n resetStatuses: function resetStatuses(statuses) {\n for (var _i3 = 0; _i3 < modifiers.names.length; _i3++) {\n var _ref3;\n\n _ref3 = modifiers.names[_i3];\n var modifierName = _ref3;\n\n var status = statuses[modifierName] || {};\n\n status.dx = status.dy = 0;\n status.modifiedX = status.modifiedY = NaN;\n status.locked = false;\n status.changed = true;\n\n statuses[modifierName] = status;\n }\n\n return statuses;\n },\n\n start: function start(_ref4, signalName) {\n var interaction = _ref4.interaction;\n\n var arg = {\n interaction: interaction,\n pageCoords: (signalName === 'action-resume' ? interaction.curCoords : interaction.startCoords).page,\n startOffset: interaction.startOffset,\n statuses: interaction.modifierStatuses,\n preEnd: false,\n requireEndOnly: false\n };\n\n modifiers.setOffsets(arg);\n modifiers.resetStatuses(arg.statuses);\n\n arg.pageCoords = extend({}, interaction.startCoords.page);\n interaction.modifierResult = modifiers.setAll(arg);\n },\n\n beforeMove: function beforeMove(_ref5) {\n var interaction = _ref5.interaction,\n preEnd = _ref5.preEnd,\n interactingBeforeMove = _ref5.interactingBeforeMove;\n\n var modifierResult = modifiers.setAll({\n interaction: interaction,\n preEnd: preEnd,\n pageCoords: interaction.curCoords.page,\n statuses: interaction.modifierStatuses,\n requireEndOnly: false\n });\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (!modifierResult.shouldMove && interactingBeforeMove) {\n interaction._dontFireMove = true;\n }\n\n interaction.modifierResult = modifierResult;\n },\n\n end: function end(_ref6) {\n var interaction = _ref6.interaction,\n event = _ref6.event;\n\n for (var _i4 = 0; _i4 < modifiers.names.length; _i4++) {\n var _ref7;\n\n _ref7 = modifiers.names[_i4];\n var modifierName = _ref7;\n\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n // if the endOnly option is true for any modifier\n if (shouldDo(options, true, true)) {\n // fire a move event at the modified coordinates\n interaction.doMove({ event: event, preEnd: true });\n break;\n }\n }\n },\n\n setXY: function setXY(arg) {\n var iEvent = arg.iEvent,\n interaction = arg.interaction;\n\n var modifierArg = extend({}, arg);\n\n for (var i = 0; i < modifiers.names.length; i++) {\n var modifierName = modifiers.names[i];\n modifierArg.options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!modifierArg.options) {\n continue;\n }\n\n var modifier = modifiers[modifierName];\n\n modifierArg.status = interaction.modifierStatuses[modifierName];\n\n iEvent[modifierName] = modifier.modifyCoords(modifierArg);\n }\n }\n};\n\nInteraction.signals.on('new', function (interaction) {\n interaction.startOffset = { left: 0, right: 0, top: 0, bottom: 0 };\n interaction.modifierOffsets = {};\n interaction.modifierStatuses = modifiers.resetStatuses({});\n interaction.modifierResult = null;\n});\n\nInteraction.signals.on('action-start', modifiers.start);\nInteraction.signals.on('action-resume', modifiers.start);\nInteraction.signals.on('before-action-move', modifiers.beforeMove);\nInteraction.signals.on('action-end', modifiers.end);\n\nInteractEvent.signals.on('set-xy', modifiers.setXY);\n\nfunction shouldDo(options, preEnd, requireEndOnly) {\n return options && options.enabled && (preEnd || !options.endOnly) && (!requireEndOnly || options.endOnly);\n}\n\nmodule.exports = modifiers;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5,\"../utils/extend\":41}],24:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar restrict = {\n defaults: {\n enabled: false,\n endOnly: false,\n restriction: null,\n elementRect: null\n },\n\n setOffset: function setOffset(_ref) {\n var rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var elementRect = options && options.elementRect;\n var offset = {};\n\n if (rect && elementRect) {\n offset.left = startOffset.left - rect.width * elementRect.left;\n offset.top = startOffset.top - rect.height * elementRect.top;\n\n offset.right = startOffset.right - rect.width * (1 - elementRect.right);\n offset.bottom = startOffset.bottom - rect.height * (1 - elementRect.bottom);\n } else {\n offset.left = offset.top = offset.right = offset.bottom = 0;\n }\n\n return offset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n options = _ref2.options;\n\n if (!options) {\n return status;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n\n var restriction = getRestrictionRect(options.restriction, interaction, page);\n\n if (!restriction) {\n return status;\n }\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n var rect = restriction;\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n var offset = interaction.modifierOffsets.restrict;\n\n // object is assumed to have\n // x, y, width, height or\n // left, top, right, bottom\n if ('x' in restriction && 'y' in restriction) {\n modifiedX = Math.max(Math.min(rect.x + rect.width - offset.right, page.x), rect.x + offset.left);\n modifiedY = Math.max(Math.min(rect.y + rect.height - offset.bottom, page.y), rect.y + offset.top);\n } else {\n modifiedX = Math.max(Math.min(rect.right - offset.right, page.x), rect.left + offset.left);\n modifiedY = Math.max(Math.min(rect.bottom - offset.bottom, page.y), rect.top + offset.top);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n var elementRect = options && options.elementRect;\n\n if (options && options.enabled && !(phase === 'start' && elementRect && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n getRestrictionRect: getRestrictionRect\n};\n\nfunction getRestrictionRect(value, interaction, page) {\n if (utils.is.function(value)) {\n return utils.resolveRectLike(value, interaction.target, interaction.element, [page.x, page.y, interaction]);\n } else {\n return utils.resolveRectLike(value, interaction.target, interaction.element);\n }\n}\n\nmodifiers.restrict = restrict;\nmodifiers.names.push('restrict');\n\ndefaultOptions.perAction.restrict = restrict.defaults;\n\nmodule.exports = restrict;\n\n},{\"../defaultOptions\":18,\"../utils\":44,\"./base\":23}],25:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictEdges setting which sets min and\n// max for the top, left, bottom and right edges of the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictEdges: {\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar _require = require('./restrict'),\n getRestrictionRect = _require.getRestrictionRect;\n\nvar noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity };\nvar noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity };\n\nvar restrictEdges = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null,\n offset: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n if (!options) {\n return utils.extend({}, startOffset);\n }\n\n var offset = getRestrictionRect(options.offset, interaction, interaction.startCoords.page);\n\n if (offset) {\n return {\n top: startOffset.top + offset.y,\n left: startOffset.left + offset.x,\n bottom: startOffset.bottom + offset.y,\n right: startOffset.right + offset.x\n };\n }\n\n return startOffset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n offset = _ref2.offset,\n options = _ref2.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n var inner = rectUtils.xywhToTlbr(getRestrictionRect(options.inner, interaction, page)) || noInner;\n var outer = rectUtils.xywhToTlbr(getRestrictionRect(options.outer, interaction, page)) || noOuter;\n\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n if (edges.top) {\n modifiedY = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top);\n } else if (edges.bottom) {\n modifiedY = Math.max(Math.min(outer.bottom - offset.bottom, page.y), inner.bottom - offset.bottom);\n }\n if (edges.left) {\n modifiedX = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left);\n } else if (edges.right) {\n modifiedX = Math.max(Math.min(outer.right - offset.right, page.x), inner.right - offset.right);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n if (options && options.enabled && !(phase === 'start' && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n noInner: noInner,\n noOuter: noOuter,\n getRestrictionRect: getRestrictionRect\n};\n\nmodifiers.restrictEdges = restrictEdges;\nmodifiers.names.push('restrictEdges');\n\ndefaultOptions.perAction.restrictEdges = restrictEdges.defaults;\nresize.defaults.restrictEdges = restrictEdges.defaults;\n\nmodule.exports = restrictEdges;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrict\":24}],26:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictSize setting which sets min and\n// max width and height for the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictSize: {\n// min: { width: -600, height: -600 },\n// max: { width: 600, height: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar restrictEdges = require('./restrictEdges');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar noMin = { width: -Infinity, height: -Infinity };\nvar noMax = { width: +Infinity, height: +Infinity };\n\nvar restrictSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction;\n\n return interaction.startOffset;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var rect = rectUtils.xywhToTlbr(interaction.resizeRects.inverted);\n\n var minSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.min, interaction)) || noMin;\n var maxSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.max, interaction)) || noMax;\n\n arg.options = {\n enabled: options.enabled,\n endOnly: options.endOnly,\n inner: utils.extend({}, restrictEdges.noInner),\n outer: utils.extend({}, restrictEdges.noOuter)\n };\n\n if (edges.top) {\n arg.options.inner.top = rect.bottom - minSize.height;\n arg.options.outer.top = rect.bottom - maxSize.height;\n } else if (edges.bottom) {\n arg.options.inner.bottom = rect.top + minSize.height;\n arg.options.outer.bottom = rect.top + maxSize.height;\n }\n if (edges.left) {\n arg.options.inner.left = rect.right - minSize.width;\n arg.options.outer.left = rect.right - maxSize.width;\n } else if (edges.right) {\n arg.options.inner.right = rect.left + minSize.width;\n arg.options.outer.right = rect.left + maxSize.width;\n }\n\n restrictEdges.set(arg);\n },\n\n modifyCoords: restrictEdges.modifyCoords\n};\n\nmodifiers.restrictSize = restrictSize;\nmodifiers.names.push('restrictSize');\n\ndefaultOptions.perAction.restrictSize = restrictSize.defaults;\nresize.defaults.restrictSize = restrictSize.defaults;\n\nmodule.exports = restrictSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrictEdges\":25}],27:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar interact = require('../interact');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar snap = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null,\n\n relativePoints: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n interactable = _ref.interactable,\n element = _ref.element,\n rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var offsets = [];\n var optionsOrigin = utils.rectToXY(utils.resolveRectLike(options.origin));\n var origin = optionsOrigin || utils.getOriginXY(interactable, element, interaction.prepared.name);\n options = options || interactable.options[interaction.prepared.name].snap || {};\n\n var snapOffset = void 0;\n\n if (options.offset === 'startCoords') {\n snapOffset = {\n x: interaction.startCoords.page.x - origin.x,\n y: interaction.startCoords.page.y - origin.y\n };\n } else {\n var offsetRect = utils.resolveRectLike(options.offset, interactable, element, [interaction]);\n\n snapOffset = utils.rectToXY(offsetRect) || { x: 0, y: 0 };\n }\n\n if (rect && options.relativePoints && options.relativePoints.length) {\n for (var _i = 0; _i < options.relativePoints.length; _i++) {\n var _ref3;\n\n _ref3 = options.relativePoints[_i];\n var _ref2 = _ref3;\n var relativeX = _ref2.x;\n var relativeY = _ref2.y;\n\n offsets.push({\n x: startOffset.left - rect.width * relativeX + snapOffset.x,\n y: startOffset.top - rect.height * relativeY + snapOffset.y\n });\n }\n } else {\n offsets.push(snapOffset);\n }\n\n return offsets;\n },\n\n set: function set(_ref4) {\n var interaction = _ref4.interaction,\n modifiedCoords = _ref4.modifiedCoords,\n status = _ref4.status,\n options = _ref4.options,\n offsets = _ref4.offset;\n\n var targets = [];\n var target = void 0;\n var page = void 0;\n var i = void 0;\n\n if (status.useStatusXY) {\n page = { x: status.x, y: status.y };\n } else {\n var origin = utils.getOriginXY(interaction.target, interaction.element, interaction.prepared.name);\n\n page = utils.extend({}, modifiedCoords);\n\n page.x -= origin.x;\n page.y -= origin.y;\n }\n\n status.realX = page.x;\n status.realY = page.y;\n\n var len = options.targets ? options.targets.length : 0;\n\n for (var _i2 = 0; _i2 < offsets.length; _i2++) {\n var _ref6;\n\n _ref6 = offsets[_i2];\n var _ref5 = _ref6;\n var offsetX = _ref5.x;\n var offsetY = _ref5.y;\n\n var relativeX = page.x - offsetX;\n var relativeY = page.y - offsetY;\n\n for (var _i3 = 0; _i3 < (options.targets || []).length; _i3++) {\n var _ref7;\n\n _ref7 = (options.targets || [])[_i3];\n var snapTarget = _ref7;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n targets.push({\n x: utils.is.number(target.x) ? target.x + offsetX : relativeX,\n y: utils.is.number(target.y) ? target.y + offsetY : relativeY,\n\n range: utils.is.number(target.range) ? target.range : options.range\n });\n }\n }\n\n var closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n dx: 0,\n dy: 0\n };\n\n for (i = 0, len = targets.length; i < len; i++) {\n target = targets[i];\n\n var range = target.range;\n var dx = target.x - page.x;\n var dy = target.y - page.y;\n var distance = utils.hypot(dx, dy);\n var inRange = distance <= range;\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false;\n }\n\n if (!closest.target || (inRange\n // is the closest target in range?\n ? closest.inRange && range !== Infinity\n // the pointer is relatively deeper in this target\n ? distance / range < closest.distance / closest.range\n // this target has Infinite range and the closest doesn't\n : range === Infinity && closest.range !== Infinity ||\n // OR this target is closer that the previous closest\n distance < closest.distance :\n // The other is not in range and the pointer is closer to this target\n !closest.inRange && distance < closest.distance)) {\n\n closest.target = target;\n closest.distance = distance;\n closest.range = range;\n closest.inRange = inRange;\n closest.dx = dx;\n closest.dy = dy;\n\n status.range = range;\n }\n }\n\n var snapChanged = void 0;\n\n if (closest.target) {\n snapChanged = status.modifiedX !== closest.target.x || status.modifiedY !== closest.target.y;\n\n status.modifiedX = closest.target.x;\n status.modifiedY = closest.target.y;\n } else {\n snapChanged = true;\n\n status.modifiedX = NaN;\n status.modifiedY = NaN;\n }\n\n status.dx = closest.dx;\n status.dy = closest.dy;\n\n status.changed = snapChanged || closest.inRange && !status.locked;\n status.locked = closest.inRange;\n },\n\n modifyCoords: function modifyCoords(_ref8) {\n var page = _ref8.page,\n client = _ref8.client,\n status = _ref8.status,\n phase = _ref8.phase,\n options = _ref8.options;\n\n var relativePoints = options && options.relativePoints;\n\n if (options && options.enabled && !(phase === 'start' && relativePoints && relativePoints.length)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n }\n\n return {\n range: status.range,\n locked: status.locked,\n x: status.modifiedX,\n y: status.modifiedY,\n realX: status.realX,\n realY: status.realY,\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n};\n\ninteract.createSnapGrid = function (grid) {\n return function (x, y) {\n var limits = grid.limits || {\n left: -Infinity,\n right: Infinity,\n top: -Infinity,\n bottom: Infinity\n };\n var offsetX = 0;\n var offsetY = 0;\n\n if (utils.is.object(grid.offset)) {\n offsetX = grid.offset.x;\n offsetY = grid.offset.y;\n }\n\n var gridx = Math.round((x - offsetX) / grid.x);\n var gridy = Math.round((y - offsetY) / grid.y);\n\n var newX = Math.max(limits.left, Math.min(limits.right, gridx * grid.x + offsetX));\n var newY = Math.max(limits.top, Math.min(limits.bottom, gridy * grid.y + offsetY));\n\n return {\n x: newX,\n y: newY,\n range: grid.range\n };\n };\n};\n\nmodifiers.snap = snap;\nmodifiers.names.push('snap');\n\ndefaultOptions.perAction.snap = snap.defaults;\n\nmodule.exports = snap;\n\n},{\"../defaultOptions\":18,\"../interact\":21,\"../utils\":44,\"./base\":23}],28:[function(require,module,exports){\n'use strict';\n\n// This module allows snapping of the size of targets during resize\n// interactions.\n\nvar modifiers = require('./base');\nvar snap = require('./snap');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\nvar utils = require('../utils/');\n\nvar snapSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null\n },\n\n setOffset: function setOffset(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.edges;\n\n if (!edges) {\n return;\n }\n\n arg.options = {\n relativePoints: [{\n x: edges.left ? 0 : 1,\n y: edges.top ? 0 : 1\n }],\n origin: { x: 0, y: 0 },\n offset: 'self',\n range: options.range\n };\n\n var offsets = snap.setOffset(arg);\n arg.options = options;\n\n return offsets;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options,\n offset = arg.offset,\n modifiedCoords = arg.modifiedCoords;\n\n var page = utils.extend({}, modifiedCoords);\n var relativeX = page.x - offset[0].x;\n var relativeY = page.y - offset[0].y;\n\n arg.options = utils.extend({}, options);\n arg.options.targets = [];\n\n for (var _i = 0; _i < (options.targets || []).length; _i++) {\n var _ref;\n\n _ref = (options.targets || [])[_i];\n var snapTarget = _ref;\n\n var target = void 0;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n if ('width' in target && 'height' in target) {\n target.x = target.width;\n target.y = target.height;\n }\n\n arg.options.targets.push(target);\n }\n\n snap.set(arg);\n },\n\n modifyCoords: function modifyCoords(arg) {\n var options = arg.options;\n\n\n arg.options = utils.extend({}, options);\n arg.options.enabled = options.enabled;\n arg.options.relativePoints = [null];\n\n snap.modifyCoords(arg);\n }\n};\n\nmodifiers.snapSize = snapSize;\nmodifiers.names.push('snapSize');\n\ndefaultOptions.perAction.snapSize = snapSize.defaults;\nresize.defaults.snapSize = snapSize.defaults;\n\nmodule.exports = snapSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils/\":44,\"./base\":23,\"./snap\":27}],29:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar pointerUtils = require('../utils/pointerUtils');\n\nmodule.exports = function () {\n /** */\n function PointerEvent(type, pointer, event, eventTarget, interaction) {\n _classCallCheck(this, PointerEvent);\n\n pointerUtils.pointerExtend(this, event);\n\n if (event !== pointer) {\n pointerUtils.pointerExtend(this, pointer);\n }\n\n this.interaction = interaction;\n\n this.timeStamp = new Date().getTime();\n this.originalEvent = event;\n this.type = type;\n this.pointerId = pointerUtils.getPointerId(pointer);\n this.pointerType = pointerUtils.getPointerType(pointer);\n this.target = eventTarget;\n this.currentTarget = null;\n\n if (type === 'tap') {\n var pointerIndex = interaction.getPointerIndex(pointer);\n this.dt = this.timeStamp - interaction.downTimes[pointerIndex];\n\n var interval = this.timeStamp - interaction.tapTime;\n\n this.double = !!(interaction.prevTap && interaction.prevTap.type !== 'doubletap' && interaction.prevTap.target === this.target && interval < 500);\n } else if (type === 'doubletap') {\n this.dt = pointer.timeStamp - interaction.tapTime;\n }\n }\n\n PointerEvent.prototype.subtractOrigin = function subtractOrigin(_ref) {\n var originX = _ref.x,\n originY = _ref.y;\n\n this.pageX -= originX;\n this.pageY -= originY;\n this.clientX -= originX;\n this.clientY -= originY;\n\n return this;\n };\n\n PointerEvent.prototype.addOrigin = function addOrigin(_ref2) {\n var originX = _ref2.x,\n originY = _ref2.y;\n\n this.pageX += originX;\n this.pageY += originY;\n this.clientX += originX;\n this.clientY += originY;\n\n return this;\n };\n\n /** */\n\n\n PointerEvent.prototype.preventDefault = function preventDefault() {\n this.originalEvent.preventDefault();\n };\n\n /** */\n\n\n PointerEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n /** */\n\n\n PointerEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n return PointerEvent;\n}();\n\n},{\"../utils/pointerUtils\":49}],30:[function(require,module,exports){\n'use strict';\n\nvar PointerEvent = require('./PointerEvent');\nvar Interaction = require('../Interaction');\nvar utils = require('../utils');\nvar defaults = require('../defaultOptions');\nvar signals = require('../utils/Signals').new();\n\nvar simpleSignals = ['down', 'up', 'cancel'];\nvar simpleEvents = ['down', 'up', 'cancel'];\n\nvar pointerEvents = {\n PointerEvent: PointerEvent,\n fire: fire,\n collectEventTargets: collectEventTargets,\n signals: signals,\n defaults: {\n holdDuration: 600,\n ignoreFrom: null,\n allowFrom: null,\n origin: { x: 0, y: 0 }\n },\n types: ['down', 'move', 'up', 'cancel', 'tap', 'doubletap', 'hold']\n};\n\nfunction fire(arg) {\n var interaction = arg.interaction,\n pointer = arg.pointer,\n event = arg.event,\n eventTarget = arg.eventTarget,\n _arg$type = arg.type,\n type = _arg$type === undefined ? arg.pointerEvent.type : _arg$type,\n _arg$targets = arg.targets,\n targets = _arg$targets === undefined ? collectEventTargets(arg) : _arg$targets,\n _arg$pointerEvent = arg.pointerEvent,\n pointerEvent = _arg$pointerEvent === undefined ? new PointerEvent(type, pointer, event, eventTarget, interaction) : _arg$pointerEvent;\n\n\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n targets: targets,\n type: type,\n pointerEvent: pointerEvent\n };\n\n for (var i = 0; i < targets.length; i++) {\n var target = targets[i];\n\n for (var prop in target.props || {}) {\n pointerEvent[prop] = target.props[prop];\n }\n\n var origin = utils.getOriginXY(target.eventable, target.element);\n\n pointerEvent.subtractOrigin(origin);\n pointerEvent.eventable = target.eventable;\n pointerEvent.currentTarget = target.element;\n\n target.eventable.fire(pointerEvent);\n\n pointerEvent.addOrigin(origin);\n\n if (pointerEvent.immediatePropagationStopped || pointerEvent.propagationStopped && i + 1 < targets.length && targets[i + 1].element !== pointerEvent.currentTarget) {\n break;\n }\n }\n\n signals.fire('fired', signalArg);\n\n if (type === 'tap') {\n // if pointerEvent should make a double tap, create and fire a doubletap\n // PointerEvent and use that as the prevTap\n var prevTap = pointerEvent.double ? fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'doubletap'\n }) : pointerEvent;\n\n interaction.prevTap = prevTap;\n interaction.tapTime = prevTap.timeStamp;\n }\n\n return pointerEvent;\n}\n\nfunction collectEventTargets(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget,\n type = _ref.type;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (type === 'tap' && (interaction.pointerWasMoved\n // or if the pointerup target is different to the pointerdown target\n || !(interaction.downTargets[pointerIndex] && interaction.downTargets[pointerIndex] === eventTarget))) {\n return [];\n }\n\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: type,\n path: path,\n targets: [],\n element: null\n };\n\n for (var _i = 0; _i < path.length; _i++) {\n var _ref2;\n\n _ref2 = path[_i];\n var element = _ref2;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (type === 'hold') {\n signalArg.targets = signalArg.targets.filter(function (target) {\n return target.eventable.options.holdDuration === interaction.holdTimers[pointerIndex].duration;\n });\n }\n\n return signalArg.targets;\n}\n\nInteraction.signals.on('update-pointer-down', function (_ref3) {\n var interaction = _ref3.interaction,\n pointerIndex = _ref3.pointerIndex;\n\n interaction.holdTimers[pointerIndex] = { duration: Infinity, timeout: null };\n});\n\nInteraction.signals.on('remove-pointer', function (_ref4) {\n var interaction = _ref4.interaction,\n pointerIndex = _ref4.pointerIndex;\n\n interaction.holdTimers.splice(pointerIndex, 1);\n});\n\nInteraction.signals.on('move', function (_ref5) {\n var interaction = _ref5.interaction,\n pointer = _ref5.pointer,\n event = _ref5.event,\n eventTarget = _ref5.eventTarget,\n duplicateMove = _ref5.duplicateMove;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n if (!duplicateMove && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\n if (interaction.pointerIsDown) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n\n fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'move'\n });\n }\n});\n\nInteraction.signals.on('down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n pointerIndex = _ref6.pointerIndex;\n\n var timer = interaction.holdTimers[pointerIndex];\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: 'hold',\n targets: [],\n path: path,\n element: null\n };\n\n for (var _i2 = 0; _i2 < path.length; _i2++) {\n var _ref7;\n\n _ref7 = path[_i2];\n var element = _ref7;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (!signalArg.targets.length) {\n return;\n }\n\n var minDuration = Infinity;\n\n for (var _i3 = 0; _i3 < signalArg.targets.length; _i3++) {\n var _ref8;\n\n _ref8 = signalArg.targets[_i3];\n var target = _ref8;\n\n var holdDuration = target.eventable.options.holdDuration;\n\n if (holdDuration < minDuration) {\n minDuration = holdDuration;\n }\n }\n\n timer.duration = minDuration;\n timer.timeout = setTimeout(function () {\n fire({\n interaction: interaction,\n eventTarget: eventTarget,\n pointer: pointer,\n event: event,\n type: 'hold'\n });\n }, minDuration);\n});\n\nInteraction.signals.on('up', function (_ref9) {\n var interaction = _ref9.interaction,\n pointer = _ref9.pointer,\n event = _ref9.event,\n eventTarget = _ref9.eventTarget;\n\n if (!interaction.pointerWasMoved) {\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: 'tap' });\n }\n});\n\nvar _arr = ['up', 'cancel'];\nfor (var _i4 = 0; _i4 < _arr.length; _i4++) {\n var signalName = _arr[_i4];\n Interaction.signals.on(signalName, function (_ref11) {\n var interaction = _ref11.interaction,\n pointerIndex = _ref11.pointerIndex;\n\n if (interaction.holdTimers[pointerIndex]) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n });\n}\n\nfunction createSignalListener(type) {\n return function (_ref10) {\n var interaction = _ref10.interaction,\n pointer = _ref10.pointer,\n event = _ref10.event,\n eventTarget = _ref10.eventTarget;\n\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: type });\n };\n}\n\nfor (var i = 0; i < simpleSignals.length; i++) {\n Interaction.signals.on(simpleSignals[i], createSignalListener(simpleEvents[i]));\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.prevTap = null; // the most recent tap event on this interaction\n interaction.tapTime = 0; // time of the most recent tap event\n interaction.holdTimers = []; // [{ duration, timeout }]\n});\n\ndefaults.pointerEvents = pointerEvents.defaults;\nmodule.exports = pointerEvents;\n\n},{\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/Signals\":34,\"./PointerEvent\":29}],31:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interaction = require('../Interaction');\n\npointerEvents.signals.on('new', onNew);\npointerEvents.signals.on('fired', onFired);\n\nvar _arr = ['move', 'up', 'cancel', 'endall'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var signal = _arr[_i];\n Interaction.signals.on(signal, endHoldRepeat);\n}\n\nfunction onNew(_ref) {\n var pointerEvent = _ref.pointerEvent;\n\n if (pointerEvent.type !== 'hold') {\n return;\n }\n\n pointerEvent.count = (pointerEvent.count || 0) + 1;\n}\n\nfunction onFired(_ref2) {\n var interaction = _ref2.interaction,\n pointerEvent = _ref2.pointerEvent,\n eventTarget = _ref2.eventTarget,\n targets = _ref2.targets;\n\n if (pointerEvent.type !== 'hold' || !targets.length) {\n return;\n }\n\n // get the repeat interval from the first eventable\n var interval = targets[0].eventable.options.holdRepeatInterval;\n\n // don't repeat if the interval is 0 or less\n if (interval <= 0) {\n return;\n }\n\n // set a timeout to fire the holdrepeat event\n interaction.holdIntervalHandle = setTimeout(function () {\n pointerEvents.fire({\n interaction: interaction,\n eventTarget: eventTarget,\n type: 'hold',\n pointer: pointerEvent,\n event: pointerEvent\n });\n }, interval);\n}\n\nfunction endHoldRepeat(_ref3) {\n var interaction = _ref3.interaction;\n\n // set the interaction's holdStopTime property\n // to stop further holdRepeat events\n if (interaction.holdIntervalHandle) {\n clearInterval(interaction.holdIntervalHandle);\n interaction.holdIntervalHandle = null;\n }\n}\n\n// don't repeat by default\npointerEvents.defaults.holdRepeatInterval = 0;\npointerEvents.types.push('holdrepeat');\n\nmodule.exports = {\n onNew: onNew,\n onFired: onFired,\n endHoldRepeat: endHoldRepeat\n};\n\n},{\"../Interaction\":5,\"./base\":30}],32:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interactable = require('../Interactable');\nvar is = require('../utils/is');\nvar scope = require('../scope');\nvar extend = require('../utils/extend');\n\nvar _require = require('../utils/arr'),\n merge = _require.merge;\n\npointerEvents.signals.on('collect-targets', function (_ref) {\n var targets = _ref.targets,\n element = _ref.element,\n type = _ref.type,\n eventTarget = _ref.eventTarget;\n\n scope.interactables.forEachMatch(element, function (interactable) {\n var eventable = interactable.events;\n var options = eventable.options;\n\n if (eventable[type] && is.element(element) && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n targets.push({\n element: element,\n eventable: eventable,\n props: { interactable: interactable }\n });\n }\n });\n});\n\nInteractable.signals.on('new', function (_ref2) {\n var interactable = _ref2.interactable;\n\n interactable.events.getRect = function (element) {\n return interactable.getRect(element);\n };\n});\n\nInteractable.signals.on('set', function (_ref3) {\n var interactable = _ref3.interactable,\n options = _ref3.options;\n\n extend(interactable.events.options, pointerEvents.defaults);\n extend(interactable.events.options, options);\n});\n\nmerge(Interactable.eventTypes, pointerEvents.types);\n\nInteractable.prototype.pointerEvents = function (options) {\n extend(this.events.options, options);\n\n return this;\n};\n\nvar __backCompatOption = Interactable.prototype._backCompatOption;\n\nInteractable.prototype._backCompatOption = function (optionName, newValue) {\n var ret = __backCompatOption.call(this, optionName, newValue);\n\n if (ret === this) {\n this.events.options[optionName] = newValue;\n }\n\n return ret;\n};\n\nInteractable.settingsMethods.push('pointerEvents');\n\n},{\"../Interactable\":4,\"../scope\":33,\"../utils/arr\":35,\"../utils/extend\":41,\"../utils/is\":46,\"./base\":30}],33:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/window'),\n getWindow = _require.getWindow;\n\nvar scope = {\n signals: signals,\n events: events,\n utils: utils,\n\n // main document\n document: require('./utils/domObjects').document,\n // all documents being listened to\n documents: [],\n\n addDocument: function addDocument(doc, win) {\n // do nothing if document is already known\n if (utils.contains(scope.documents, doc)) {\n return false;\n }\n\n win = win || getWindow(doc);\n\n scope.documents.push(doc);\n events.documents.push(doc);\n\n // don't add an unload event for the main document\n // so that the page may be cached in browser history\n if (doc !== scope.document) {\n events.add(win, 'unload', scope.onWindowUnload);\n }\n\n signals.fire('add-document', { doc: doc, win: win });\n },\n\n removeDocument: function removeDocument(doc, win) {\n var index = scope.documents.indexOf(doc);\n\n win = win || getWindow(doc);\n\n events.remove(win, 'unload', scope.onWindowUnload);\n\n scope.documents.splice(index, 1);\n events.documents.splice(index, 1);\n\n signals.fire('remove-document', { win: win, doc: doc });\n },\n\n onWindowUnload: function onWindowUnload() {\n scope.removeDocument(this.document, this);\n }\n};\n\nmodule.exports = scope;\n\n},{\"./utils\":44,\"./utils/Signals\":34,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/window\":52}],34:[function(require,module,exports){\n\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Signals = function () {\n function Signals() {\n _classCallCheck(this, Signals);\n\n this.listeners = {\n // signalName: [listeners],\n };\n }\n\n Signals.prototype.on = function on(name, listener) {\n if (!this.listeners[name]) {\n this.listeners[name] = [listener];\n return;\n }\n\n this.listeners[name].push(listener);\n };\n\n Signals.prototype.off = function off(name, listener) {\n if (!this.listeners[name]) {\n return;\n }\n\n var index = this.listeners[name].indexOf(listener);\n\n if (index !== -1) {\n this.listeners[name].splice(index, 1);\n }\n };\n\n Signals.prototype.fire = function fire(name, arg) {\n var targetListeners = this.listeners[name];\n\n if (!targetListeners) {\n return;\n }\n\n for (var _i = 0; _i < targetListeners.length; _i++) {\n var _ref;\n\n _ref = targetListeners[_i];\n var listener = _ref;\n\n if (listener(arg, name) === false) {\n return;\n }\n }\n };\n\n return Signals;\n}();\n\nSignals.new = function () {\n return new Signals();\n};\n\nmodule.exports = Signals;\n\n},{}],35:[function(require,module,exports){\n\"use strict\";\n\nfunction contains(array, target) {\n return array.indexOf(target) !== -1;\n}\n\nfunction merge(target, source) {\n for (var _i = 0; _i < source.length; _i++) {\n var _ref;\n\n _ref = source[_i];\n var item = _ref;\n\n target.push(item);\n }\n\n return target;\n}\n\nmodule.exports = {\n contains: contains,\n merge: merge\n};\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar Element = domObjects.Element;\nvar navigator = window.navigator;\n\nvar browser = {\n // Does the browser support touch input?\n supportsTouch: !!('ontouchstart' in window || is.function(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch),\n\n // Does the browser support PointerEvents\n supportsPointerEvent: !!domObjects.PointerEvent,\n\n isIOS: /iP(hone|od|ad)/.test(navigator.platform),\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n isIOS7: /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\\d]/.test(navigator.appVersion),\n\n isIe9: /MSIE 9/.test(navigator.userAgent),\n\n // prefix matchesSelector\n prefixedMatchesSelector: 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector',\n\n pEventTypes: domObjects.PointerEvent ? domObjects.PointerEvent === window.MSPointerEvent ? {\n up: 'MSPointerUp',\n down: 'MSPointerDown',\n over: 'mouseover',\n out: 'mouseout',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel'\n } : {\n up: 'pointerup',\n down: 'pointerdown',\n over: 'pointerover',\n out: 'pointerout',\n move: 'pointermove',\n cancel: 'pointercancel'\n } : null,\n\n // because Webkit and Opera still use 'mousewheel' event type\n wheelEvent: 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\n\n};\n\n// Opera Mobile must be handled differently\nbrowser.isOperaMobile = navigator.appName === 'Opera' && browser.supportsTouch && navigator.userAgent.match('Presto');\n\nmodule.exports = browser;\n\n},{\"./domObjects\":38,\"./is\":46,\"./window\":52}],37:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\n\nmodule.exports = function clone(source) {\n var dest = {};\n for (var prop in source) {\n if (is.plainObject(source[prop])) {\n dest[prop] = clone(source[prop]);\n } else {\n dest[prop] = source[prop];\n }\n }\n return dest;\n};\n\n},{\"./is\":46}],38:[function(require,module,exports){\n'use strict';\n\nvar domObjects = {};\nvar win = require('./window').window;\n\nfunction blank() {}\n\ndomObjects.document = win.document;\ndomObjects.DocumentFragment = win.DocumentFragment || blank;\ndomObjects.SVGElement = win.SVGElement || blank;\ndomObjects.SVGSVGElement = win.SVGSVGElement || blank;\ndomObjects.SVGElementInstance = win.SVGElementInstance || blank;\ndomObjects.Element = win.Element || blank;\ndomObjects.HTMLElement = win.HTMLElement || domObjects.Element;\n\ndomObjects.Event = win.Event;\ndomObjects.Touch = win.Touch || blank;\ndomObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent;\n\nmodule.exports = domObjects;\n\n},{\"./window\":52}],39:[function(require,module,exports){\n'use strict';\n\nvar win = require('./window');\nvar browser = require('./browser');\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar domUtils = {\n nodeContains: function nodeContains(parent, child) {\n while (child) {\n if (child === parent) {\n return true;\n }\n\n child = child.parentNode;\n }\n\n return false;\n },\n\n closest: function closest(element, selector) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return element;\n }\n\n element = domUtils.parentNode(element);\n }\n\n return null;\n },\n\n parentNode: function parentNode(node) {\n var parent = node.parentNode;\n\n if (is.docFrag(parent)) {\n // skip past #shado-root fragments\n while ((parent = parent.host) && is.docFrag(parent)) {\n continue;\n }\n\n return parent;\n }\n\n return parent;\n },\n\n matchesSelector: function matchesSelector(element, selector) {\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (win.window !== win.realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ');\n }\n\n return element[browser.prefixedMatchesSelector](selector);\n },\n\n // Test for the element that's \"above\" all other qualifiers\n indexOfDeepestElement: function indexOfDeepestElement(elements) {\n var deepestZoneParents = [];\n var dropzoneParents = [];\n var dropzone = void 0;\n var deepestZone = elements[0];\n var index = deepestZone ? 0 : -1;\n var parent = void 0;\n var child = void 0;\n var i = void 0;\n var n = void 0;\n\n for (i = 1; i < elements.length; i++) {\n dropzone = elements[i];\n\n // an element might belong to multiple selector dropzones\n if (!dropzone || dropzone === deepestZone) {\n continue;\n }\n\n if (!deepestZone) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n // check if the deepest or current are document.documentElement or document.rootElement\n // - if the current dropzone is, do nothing and continue\n if (dropzone.parentNode === dropzone.ownerDocument) {\n continue;\n }\n // - if deepest is, update with the current dropzone and continue to next\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n if (!deepestZoneParents.length) {\n parent = deepestZone;\n while (parent.parentNode && parent.parentNode !== parent.ownerDocument) {\n deepestZoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n }\n\n // if this element is an svg element and the current deepest is\n // an HTMLElement\n if (deepestZone instanceof domObjects.HTMLElement && dropzone instanceof domObjects.SVGElement && !(dropzone instanceof domObjects.SVGSVGElement)) {\n\n if (dropzone === deepestZone.parentNode) {\n continue;\n }\n\n parent = dropzone.ownerSVGElement;\n } else {\n parent = dropzone;\n }\n\n dropzoneParents = [];\n\n while (parent.parentNode !== parent.ownerDocument) {\n dropzoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n\n n = 0;\n\n // get (position of last common ancestor) + 1\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\n n++;\n }\n\n var parents = [dropzoneParents[n - 1], dropzoneParents[n], deepestZoneParents[n]];\n\n child = parents[0].lastChild;\n\n while (child) {\n if (child === parents[1]) {\n deepestZone = dropzone;\n index = i;\n deepestZoneParents = [];\n\n break;\n } else if (child === parents[2]) {\n break;\n }\n\n child = child.previousSibling;\n }\n }\n\n return index;\n },\n\n matchesUpTo: function matchesUpTo(element, selector, limit) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return true;\n }\n\n element = domUtils.parentNode(element);\n\n if (element === limit) {\n return domUtils.matchesSelector(element, selector);\n }\n }\n\n return false;\n },\n\n getActualElement: function getActualElement(element) {\n return element instanceof domObjects.SVGElementInstance ? element.correspondingUseElement : element;\n },\n\n getScrollXY: function getScrollXY(relevantWindow) {\n relevantWindow = relevantWindow || win.window;\n return {\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop\n };\n },\n\n getElementClientRect: function getElementClientRect(element) {\n var clientRect = element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];\n\n return clientRect && {\n left: clientRect.left,\n right: clientRect.right,\n top: clientRect.top,\n bottom: clientRect.bottom,\n width: clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top\n };\n },\n\n getElementRect: function getElementRect(element) {\n var clientRect = domUtils.getElementClientRect(element);\n\n if (!browser.isIOS7 && clientRect) {\n var scroll = domUtils.getScrollXY(win.getWindow(element));\n\n clientRect.left += scroll.x;\n clientRect.right += scroll.x;\n clientRect.top += scroll.y;\n clientRect.bottom += scroll.y;\n }\n\n return clientRect;\n },\n\n getPath: function getPath(element) {\n var path = [];\n\n while (element) {\n path.push(element);\n element = domUtils.parentNode(element);\n }\n\n return path;\n },\n\n trySelector: function trySelector(value) {\n if (!is.string(value)) {\n return false;\n }\n\n // an exception will be raised if it is invalid\n domObjects.document.querySelector(value);\n return true;\n }\n};\n\nmodule.exports = domUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./is\":46,\"./window\":52}],40:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\nvar domUtils = require('./domUtils');\nvar pointerUtils = require('./pointerUtils');\nvar pExtend = require('./pointerExtend');\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar _require2 = require('./arr'),\n contains = _require2.contains;\n\nvar elements = [];\nvar targets = [];\n\n// {\n// type: {\n// selectors: ['selector', ...],\n// contexts : [document, ...],\n// listeners: [[listener, capture, passive], ...]\n// }\n// }\nvar delegatedEvents = {};\nvar documents = [];\n\nvar supportsOptions = function () {\n var supported = false;\n\n window.document.createElement('div').addEventListener('test', null, {\n get capture() {\n supported = true;\n }\n });\n\n return supported;\n}();\n\nfunction add(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target) {\n target = {\n events: {},\n typeCount: 0\n };\n\n elementIndex = elements.push(element) - 1;\n targets.push(target);\n }\n\n if (!target.events[type]) {\n target.events[type] = [];\n target.typeCount++;\n }\n\n if (!contains(target.events[type], listener)) {\n element.addEventListener(type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].push(listener);\n }\n}\n\nfunction remove(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target || !target.events) {\n return;\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(element, type, 'all');\n }\n }\n return;\n }\n\n if (target.events[type]) {\n var len = target.events[type].length;\n\n if (listener === 'all') {\n for (var i = 0; i < len; i++) {\n remove(element, type, target.events[type][i], options);\n }\n return;\n } else {\n for (var _i = 0; _i < len; _i++) {\n if (target.events[type][_i] === listener) {\n element.removeEventListener('on' + type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].splice(_i, 1);\n\n break;\n }\n }\n }\n\n if (target.events[type] && target.events[type].length === 0) {\n target.events[type] = null;\n target.typeCount--;\n }\n }\n\n if (!target.typeCount) {\n targets.splice(elementIndex, 1);\n elements.splice(elementIndex, 1);\n }\n}\n\nfunction addDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n if (!delegatedEvents[type]) {\n delegatedEvents[type] = {\n selectors: [],\n contexts: [],\n listeners: []\n };\n\n // add delegate listener functions\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\n var doc = documents[_i2];\n add(doc, type, delegateListener);\n add(doc, type, delegateUseCapture, true);\n }\n }\n\n var delegated = delegatedEvents[type];\n var index = void 0;\n\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n break;\n }\n }\n\n if (index === -1) {\n index = delegated.selectors.length;\n\n delegated.selectors.push(selector);\n delegated.contexts.push(context);\n delegated.listeners.push([]);\n }\n\n // keep listener and capture and passive flags\n delegated.listeners[index].push([listener, !!options.capture, options.passive]);\n}\n\nfunction removeDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var delegated = delegatedEvents[type];\n var matchFound = false;\n var index = void 0;\n\n if (!delegated) {\n return;\n }\n\n // count from last index of delegated to 0\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n // look for matching selector and context Node\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n\n var listeners = delegated.listeners[index];\n\n // each item of the listeners array is an array: [function, capture, passive]\n for (var i = listeners.length - 1; i >= 0; i--) {\n var _listeners$i = listeners[i],\n fn = _listeners$i[0],\n capture = _listeners$i[1],\n passive = _listeners$i[2];\n\n // check if the listener functions and capture and passive flags match\n\n if (fn === listener && capture === !!options.capture && passive === options.passive) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1);\n\n // if all listeners for this interactable have been removed\n // remove the interactable from the delegated arrays\n if (!listeners.length) {\n delegated.selectors.splice(index, 1);\n delegated.contexts.splice(index, 1);\n delegated.listeners.splice(index, 1);\n\n // remove delegate function from context\n remove(context, type, delegateListener);\n remove(context, type, delegateUseCapture, true);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[type] = null;\n }\n }\n\n // only remove one listener\n matchFound = true;\n break;\n }\n }\n\n if (matchFound) {\n break;\n }\n }\n }\n}\n\n// bound to the interactable context when a DOM event\n// listener is added to a selector interactable\nfunction delegateListener(event, optionalArg) {\n var options = getOptions(optionalArg);\n var fakeEvent = {};\n var delegated = delegatedEvents[event.type];\n\n var _pointerUtils$getEven = pointerUtils.getEventTargets(event),\n eventTarget = _pointerUtils$getEven[0];\n\n var element = eventTarget;\n\n // duplicate the event so that currentTarget can be changed\n pExtend(fakeEvent, event);\n\n fakeEvent.originalEvent = event;\n fakeEvent.preventDefault = preventOriginalDefault;\n\n // climb up document tree looking for selector matches\n while (is.element(element)) {\n for (var i = 0; i < delegated.selectors.length; i++) {\n var selector = delegated.selectors[i];\n var context = delegated.contexts[i];\n\n if (domUtils.matchesSelector(element, selector) && domUtils.nodeContains(context, eventTarget) && domUtils.nodeContains(context, element)) {\n\n var listeners = delegated.listeners[i];\n\n fakeEvent.currentTarget = element;\n\n for (var j = 0; j < listeners.length; j++) {\n var _listeners$j = listeners[j],\n fn = _listeners$j[0],\n capture = _listeners$j[1],\n passive = _listeners$j[2];\n\n\n if (capture === !!options.capture && passive === options.passive) {\n fn(fakeEvent);\n }\n }\n }\n }\n\n element = domUtils.parentNode(element);\n }\n}\n\nfunction delegateUseCapture(event) {\n return delegateListener.call(this, event, true);\n}\n\nfunction preventOriginalDefault() {\n this.originalEvent.preventDefault();\n}\n\nfunction getOptions(param) {\n return is.object(param) ? param : { capture: param };\n}\n\nmodule.exports = {\n add: add,\n remove: remove,\n\n addDelegate: addDelegate,\n removeDelegate: removeDelegate,\n\n delegateListener: delegateListener,\n delegateUseCapture: delegateUseCapture,\n delegatedEvents: delegatedEvents,\n documents: documents,\n\n supportsOptions: supportsOptions,\n\n _elements: elements,\n _targets: targets\n};\n\n},{\"./arr\":35,\"./domUtils\":39,\"./is\":46,\"./pointerExtend\":48,\"./pointerUtils\":49,\"./window\":52}],41:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function extend(dest, source) {\n for (var prop in source) {\n dest[prop] = source[prop];\n }\n return dest;\n};\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./rect'),\n resolveRectLike = _require.resolveRectLike,\n rectToXY = _require.rectToXY;\n\nmodule.exports = function (target, element, action) {\n var actionOptions = target.options[action];\n var actionOrigin = actionOptions && actionOptions.origin;\n var origin = actionOrigin || target.options.origin;\n\n var originRect = resolveRectLike(origin, target, element, [target && element]);\n\n return rectToXY(originRect) || { x: 0, y: 0 };\n};\n\n},{\"./rect\":51}],43:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (x, y) {\n return Math.sqrt(x * x + y * y);\n};\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar win = require('./window');\n\nvar utils = {\n warnOnce: function warnOnce(method, message) {\n var warned = false;\n\n return function () {\n if (!warned) {\n win.window.console.warn(message);\n warned = true;\n }\n\n return method.apply(this, arguments);\n };\n },\n\n // http://stackoverflow.com/a/5634528/2280888\n _getQBezierValue: function _getQBezierValue(t, p1, p2, p3) {\n var iT = 1 - t;\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;\n },\n\n getQuadraticCurvePoint: function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {\n return {\n x: utils._getQBezierValue(position, startX, cpX, endX),\n y: utils._getQBezierValue(position, startY, cpY, endY)\n };\n },\n\n // http://gizma.com/easing/\n easeOutQuad: function easeOutQuad(t, b, c, d) {\n t /= d;\n return -c * t * (t - 2) + b;\n },\n\n copyAction: function copyAction(dest, src) {\n dest.name = src.name;\n dest.axis = src.axis;\n dest.edges = src.edges;\n\n return dest;\n },\n\n is: require('./is'),\n extend: extend,\n hypot: require('./hypot'),\n getOriginXY: require('./getOriginXY')\n};\n\nextend(utils, require('./arr'));\nextend(utils, require('./domUtils'));\nextend(utils, require('./pointerUtils'));\nextend(utils, require('./rect'));\n\nmodule.exports = utils;\n\n},{\"./arr\":35,\"./domUtils\":39,\"./extend\":41,\"./getOriginXY\":42,\"./hypot\":43,\"./is\":46,\"./pointerUtils\":49,\"./rect\":51,\"./window\":52}],45:[function(require,module,exports){\n'use strict';\n\nvar scope = require('../scope');\nvar utils = require('./index');\n\nvar finder = {\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'],\n\n search: function search(pointer, eventType, eventTarget) {\n var pointerType = utils.getPointerType(pointer);\n var pointerId = utils.getPointerId(pointer);\n var details = { pointer: pointer, pointerId: pointerId, pointerType: pointerType, eventType: eventType, eventTarget: eventTarget };\n\n for (var _i = 0; _i < finder.methodOrder.length; _i++) {\n var _ref;\n\n _ref = finder.methodOrder[_i];\n var method = _ref;\n\n var interaction = finder[method](details);\n\n if (interaction) {\n return interaction;\n }\n }\n },\n\n // try to resume simulation with a new pointer\n simulationResume: function simulationResume(_ref2) {\n var pointerType = _ref2.pointerType,\n eventType = _ref2.eventType,\n eventTarget = _ref2.eventTarget;\n\n if (!/down|start/i.test(eventType)) {\n return null;\n }\n\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref3;\n\n _ref3 = scope.interactions[_i2];\n var interaction = _ref3;\n\n var element = eventTarget;\n\n if (interaction.simulation && interaction.simulation.allowResume && interaction.pointerType === pointerType) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction;\n }\n element = utils.parentNode(element);\n }\n }\n }\n\n return null;\n },\n\n // if it's a mouse or pen interaction\n mouseOrPen: function mouseOrPen(_ref4) {\n var pointerId = _ref4.pointerId,\n pointerType = _ref4.pointerType,\n eventType = _ref4.eventType;\n\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\n return null;\n }\n\n var firstNonActive = void 0;\n\n for (var _i3 = 0; _i3 < scope.interactions.length; _i3++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i3];\n var interaction = _ref5;\n\n if (interaction.pointerType === pointerType) {\n // if it's a down event, skip interactions with running simulations\n if (interaction.simulation && !utils.contains(interaction.pointerIds, pointerId)) {\n continue;\n }\n\n // if the interaction is active, return it immediately\n if (interaction.interacting()) {\n return interaction;\n }\n // otherwise save it and look for another active interaction\n else if (!firstNonActive) {\n firstNonActive = interaction;\n }\n }\n }\n\n // if no active mouse interaction was found use the first inactive mouse\n // interaction\n if (firstNonActive) {\n return firstNonActive;\n }\n\n // find any mouse or pen interaction.\n // ignore the interaction if the eventType is a *down, and a simulation\n // is active\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref6;\n\n _ref6 = scope.interactions[_i4];\n var _interaction = _ref6;\n\n if (_interaction.pointerType === pointerType && !(/down/i.test(eventType) && _interaction.simulation)) {\n return _interaction;\n }\n }\n\n return null;\n },\n\n // get interaction that has this pointer\n hasPointer: function hasPointer(_ref7) {\n var pointerId = _ref7.pointerId;\n\n for (var _i5 = 0; _i5 < scope.interactions.length; _i5++) {\n var _ref8;\n\n _ref8 = scope.interactions[_i5];\n var interaction = _ref8;\n\n if (utils.contains(interaction.pointerIds, pointerId)) {\n return interaction;\n }\n }\n },\n\n // get first idle interaction with a matching pointerType\n idle: function idle(_ref9) {\n var pointerType = _ref9.pointerType;\n\n for (var _i6 = 0; _i6 < scope.interactions.length; _i6++) {\n var _ref10;\n\n _ref10 = scope.interactions[_i6];\n var interaction = _ref10;\n\n // if there's already a pointer held down\n if (interaction.pointerIds.length === 1) {\n var target = interaction.target;\n // don't add this pointer if there is a target interactable and it\n // isn't gesturable\n if (target && !target.options.gesture.enabled) {\n continue;\n }\n }\n // maximum of 2 pointers per interaction\n else if (interaction.pointerIds.length >= 2) {\n continue;\n }\n\n if (!interaction.interacting() && pointerType === interaction.pointerType) {\n return interaction;\n }\n }\n\n return null;\n }\n};\n\nmodule.exports = finder;\n\n},{\"../scope\":33,\"./index\":44}],46:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar win = require('./window');\nvar isWindow = require('./isWindow');\n\nvar is = {\n array: function array() {},\n\n window: function window(thing) {\n return thing === win.window || isWindow(thing);\n },\n\n docFrag: function docFrag(thing) {\n return is.object(thing) && thing.nodeType === 11;\n },\n\n object: function object(thing) {\n return !!thing && (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) === 'object';\n },\n\n function: function _function(thing) {\n return typeof thing === 'function';\n },\n\n number: function number(thing) {\n return typeof thing === 'number';\n },\n\n bool: function bool(thing) {\n return typeof thing === 'boolean';\n },\n\n string: function string(thing) {\n return typeof thing === 'string';\n },\n\n element: function element(thing) {\n if (!thing || (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) !== 'object') {\n return false;\n }\n\n var _window = win.getWindow(thing) || win.window;\n\n return (/object|function/.test(_typeof(_window.Element)) ? thing instanceof _window.Element //DOM2\n : thing.nodeType === 1 && typeof thing.nodeName === 'string'\n );\n },\n\n plainObject: function plainObject(thing) {\n return is.object(thing) && thing.constructor.name === 'Object';\n }\n};\n\nis.array = function (thing) {\n return is.object(thing) && typeof thing.length !== 'undefined' && is.function(thing.splice);\n};\n\nmodule.exports = is;\n\n},{\"./isWindow\":47,\"./window\":52}],47:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (thing) {\n return !!(thing && thing.Window) && thing instanceof thing.Window;\n};\n\n},{}],48:[function(require,module,exports){\n'use strict';\n\nfunction pointerExtend(dest, source) {\n for (var prop in source) {\n var prefixedPropREs = module.exports.prefixedPropREs;\n var deprecated = false;\n\n // skip deprecated prefixed properties\n for (var vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true;\n break;\n }\n }\n\n if (!deprecated && typeof source[prop] !== 'function') {\n dest[prop] = source[prop];\n }\n }\n return dest;\n}\n\npointerExtend.prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/\n};\n\nmodule.exports = pointerExtend;\n\n},{}],49:[function(require,module,exports){\n'use strict';\n\nvar hypot = require('./hypot');\nvar browser = require('./browser');\nvar dom = require('./domObjects');\nvar domUtils = require('./domUtils');\nvar domObjects = require('./domObjects');\nvar is = require('./is');\nvar pointerExtend = require('./pointerExtend');\n\nvar pointerUtils = {\n copyCoords: function copyCoords(dest, src) {\n dest.page = dest.page || {};\n dest.page.x = src.page.x;\n dest.page.y = src.page.y;\n\n dest.client = dest.client || {};\n dest.client.x = src.client.x;\n dest.client.y = src.client.y;\n\n dest.timeStamp = src.timeStamp;\n },\n\n setCoordDeltas: function setCoordDeltas(targetObj, prev, cur) {\n targetObj.page.x = cur.page.x - prev.page.x;\n targetObj.page.y = cur.page.y - prev.page.y;\n targetObj.client.x = cur.client.x - prev.client.x;\n targetObj.client.y = cur.client.y - prev.client.y;\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp;\n\n // set pointer velocity\n var dt = Math.max(targetObj.timeStamp / 1000, 0.001);\n\n targetObj.page.speed = hypot(targetObj.page.x, targetObj.page.y) / dt;\n targetObj.page.vx = targetObj.page.x / dt;\n targetObj.page.vy = targetObj.page.y / dt;\n\n targetObj.client.speed = hypot(targetObj.client.x, targetObj.page.y) / dt;\n targetObj.client.vx = targetObj.client.x / dt;\n targetObj.client.vy = targetObj.client.y / dt;\n },\n\n isNativePointer: function isNativePointer(pointer) {\n return pointer instanceof dom.Event || pointer instanceof dom.Touch;\n },\n\n // Get specified X/Y coords for mouse or event.touches[0]\n getXY: function getXY(type, pointer, xy) {\n xy = xy || {};\n type = type || 'page';\n\n xy.x = pointer[type + 'X'];\n xy.y = pointer[type + 'Y'];\n\n return xy;\n },\n\n getPageXY: function getPageXY(pointer, page) {\n page = page || {};\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n pointerUtils.getXY('screen', pointer, page);\n\n page.x += window.scrollX;\n page.y += window.scrollY;\n } else {\n pointerUtils.getXY('page', pointer, page);\n }\n\n return page;\n },\n\n getClientXY: function getClientXY(pointer, client) {\n client = client || {};\n\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n pointerUtils.getXY('screen', pointer, client);\n } else {\n pointerUtils.getXY('client', pointer, client);\n }\n\n return client;\n },\n\n getPointerId: function getPointerId(pointer) {\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;\n },\n\n setCoords: function setCoords(targetObj, pointers, timeStamp) {\n var pointer = pointers.length > 1 ? pointerUtils.pointerAverage(pointers) : pointers[0];\n\n var tmpXY = {};\n\n pointerUtils.getPageXY(pointer, tmpXY);\n targetObj.page.x = tmpXY.x;\n targetObj.page.y = tmpXY.y;\n\n pointerUtils.getClientXY(pointer, tmpXY);\n targetObj.client.x = tmpXY.x;\n targetObj.client.y = tmpXY.y;\n\n targetObj.timeStamp = is.number(timeStamp) ? timeStamp : new Date().getTime();\n },\n\n pointerExtend: pointerExtend,\n\n getTouchPair: function getTouchPair(event) {\n var touches = [];\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0];\n touches[1] = event[1];\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0];\n touches[1] = event.changedTouches[0];\n } else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0];\n touches[1] = event.changedTouches[1];\n }\n } else {\n touches[0] = event.touches[0];\n touches[1] = event.touches[1];\n }\n }\n\n return touches;\n },\n\n pointerAverage: function pointerAverage(pointers) {\n var average = {\n pageX: 0,\n pageY: 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0\n };\n\n for (var _i = 0; _i < pointers.length; _i++) {\n var _ref;\n\n _ref = pointers[_i];\n var pointer = _ref;\n\n for (var _prop in average) {\n average[_prop] += pointer[_prop];\n }\n }\n for (var prop in average) {\n average[prop] /= pointers.length;\n }\n\n return average;\n },\n\n touchBBox: function touchBBox(event) {\n if (!event.length && !(event.touches && event.touches.length > 1)) {\n return;\n }\n\n var touches = pointerUtils.getTouchPair(event);\n var minX = Math.min(touches[0].pageX, touches[1].pageX);\n var minY = Math.min(touches[0].pageY, touches[1].pageY);\n var maxX = Math.max(touches[0].pageX, touches[1].pageX);\n var maxY = Math.max(touches[0].pageY, touches[1].pageY);\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n },\n\n touchDistance: function touchDistance(event, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n\n var dx = touches[0][sourceX] - touches[1][sourceX];\n var dy = touches[0][sourceY] - touches[1][sourceY];\n\n return hypot(dx, dy);\n },\n\n touchAngle: function touchAngle(event, prevAngle, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n var dx = touches[1][sourceX] - touches[0][sourceX];\n var dy = touches[1][sourceY] - touches[0][sourceY];\n var angle = 180 * Math.atan2(dy, dx) / Math.PI;\n\n return angle;\n },\n\n getPointerType: function getPointerType(pointer) {\n return is.string(pointer.pointerType) ? pointer.pointerType : is.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\n // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n : /touch/.test(pointer.type) || pointer instanceof domObjects.Touch ? 'touch' : 'mouse';\n },\n\n // [ event.target, event.currentTarget ]\n getEventTargets: function getEventTargets(event) {\n var path = is.function(event.composedPath) ? event.composedPath() : event.path;\n\n return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];\n }\n};\n\nmodule.exports = pointerUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./domUtils\":39,\"./hypot\":43,\"./is\":46,\"./pointerExtend\":48}],50:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar vendors = ['ms', 'moz', 'webkit', 'o'];\nvar lastTime = 0;\nvar request = void 0;\nvar cancel = void 0;\n\nfor (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {\n request = window[vendors[x] + 'RequestAnimationFrame'];\n cancel = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n}\n\nif (!request) {\n request = function request(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nif (!cancel) {\n cancel = function cancel(id) {\n clearTimeout(id);\n };\n}\n\nmodule.exports = {\n request: request,\n cancel: cancel\n};\n\n},{\"./window\":52}],51:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar is = require('./is');\n\nvar _require = require('./domUtils'),\n closest = _require.closest,\n parentNode = _require.parentNode,\n getElementRect = _require.getElementRect;\n\nvar rectUtils = {\n getStringOptionResult: function getStringOptionResult(value, interactable, element) {\n if (!is.string(value)) {\n return null;\n }\n\n if (value === 'parent') {\n value = parentNode(element);\n } else if (value === 'self') {\n value = interactable.getRect(element);\n } else {\n value = closest(element, value);\n }\n\n return value;\n },\n\n resolveRectLike: function resolveRectLike(value, interactable, element, functionArgs) {\n value = rectUtils.getStringOptionResult(value, interactable, element) || value;\n\n if (is.function(value)) {\n value = value.apply(null, functionArgs);\n }\n\n if (is.element(value)) {\n value = getElementRect(value);\n }\n\n return value;\n },\n\n rectToXY: function rectToXY(rect) {\n return rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top\n };\n },\n\n xywhToTlbr: function xywhToTlbr(rect) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect);\n\n rect.left = rect.x || 0;\n rect.top = rect.y || 0;\n rect.right = rect.right || rect.left + rect.width;\n rect.bottom = rect.bottom || rect.top + rect.height;\n }\n\n return rect;\n },\n\n tlbrToXywh: function tlbrToXywh(rect) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect);\n\n rect.x = rect.left || 0;\n rect.top = rect.top || 0;\n rect.width = rect.width || rect.right - rect.x;\n rect.height = rect.height || rect.bottom - rect.y;\n }\n\n return rect;\n }\n};\n\nmodule.exports = rectUtils;\n\n},{\"./domUtils\":39,\"./extend\":41,\"./is\":46}],52:[function(require,module,exports){\n'use strict';\n\nvar win = module.exports;\nvar isWindow = require('./isWindow');\n\nfunction init(window) {\n // get wrapped window if using Shadow DOM polyfill\n\n win.realWindow = window;\n\n // create a TextNode\n var el = window.document.createTextNode('');\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {\n // use wrapped window\n window = window.wrap(window);\n }\n\n win.window = window;\n}\n\nif (typeof window === 'undefined') {\n win.window = undefined;\n win.realWindow = undefined;\n} else {\n init(window);\n}\n\nwin.getWindow = function getWindow(node) {\n if (isWindow(node)) {\n return node;\n }\n\n var rootNode = node.ownerDocument || node;\n\n return rootNode.defaultView || rootNode.parentWindow || win.window;\n};\n\nwin.init = init;\n\n},{\"./isWindow\":47}]},{},[1])(1)\n});\n\n\n\n"],"file":"interact.js"} \ No newline at end of file diff --git a/dist/module.js.map b/dist/module.js.map index 85c1ea4..6b5107c 100644 --- a/dist/module.js.map +++ b/dist/module.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/module.js"],"names":["ImageItCtrl"],"mappings":";;;;;;;;AAAQA,MAAAA,W,iBAAAA,W;;;2BAGNA,W","sourcesContent":["import {ImageItCtrl} from './imageit_ctrl';\r\n\r\nexport {\r\n ImageItCtrl as PanelCtrl\r\n};\r\n"],"file":"module.js"} \ No newline at end of file +{"version":3,"sources":["../src/module.js"],"names":["ImageItCtrl"],"mappings":";;;;;;;;AAAQA,MAAAA,W,iBAAAA,W;;;2BAGNA,W","sourcesContent":["import {ImageItCtrl} from './imageit_ctrl';\n\nexport {\n ImageItCtrl as PanelCtrl\n};\n"],"file":"module.js"} \ No newline at end of file diff --git a/dist/plugin.json b/dist/plugin.json index c1d7d67..c1f0e53 100644 --- a/dist/plugin.json +++ b/dist/plugin.json @@ -18,8 +18,8 @@ {"name": "MIT License", "url": "https://github.com/pierosavi/pierosavi-imageit-panel/blob/master/LICENSE"}, {"name": "3-clause BSD license", "url": "https://github.com/pierosavi/pierosavi-imageit-panel/blob/master/LICENSE_additional"} ], - "version": "0.1.2", - "updated": "2019-10-13" + "version": "0.1.3", + "updated": "2020-01-08" }, "dependencies": { diff --git a/package-lock.json b/package-lock.json index cbe3c05..fdb35d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pierosavi-imageit-panel", - "version": "0.1.2", + "version": "0.1.3", "lockfileVersion": 1, "requires": true, "dependencies": {