@antv/l7-map 2.5.41 → 2.5.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/camera.js.map +1 -1
- package/es/earthmap.d.ts +0 -1
- package/es/earthmap.js +0 -26
- package/es/earthmap.js.map +1 -1
- package/es/handler/IHandler.js +1 -1
- package/es/handler/handler_manager.js +53 -33
- package/es/handler/handler_manager.js.map +1 -1
- package/es/handler/shim/drag_pan.js +9 -2
- package/es/handler/shim/drag_pan.js.map +1 -1
- package/es/handler/shim/touch_zoom_rotate.js +9 -2
- package/es/handler/shim/touch_zoom_rotate.js.map +1 -1
- package/es/hash.d.ts +1 -2
- package/es/hash.js +5 -4
- package/es/hash.js.map +1 -1
- package/es/interface.d.ts +1 -0
- package/es/interface.js +1 -1
- package/es/map.d.ts +4 -1
- package/es/map.js +33 -20
- package/es/map.js.map +1 -1
- package/es/util.d.ts +3 -3
- package/es/util.js +6 -5
- package/es/util.js.map +1 -1
- package/es/utils/dom.js +60 -26
- package/es/utils/dom.js.map +1 -1
- package/es/utils/performance.js +2 -1
- package/es/utils/performance.js.map +1 -1
- package/lib/camera.js.map +1 -1
- package/lib/earthmap.js +0 -26
- package/lib/earthmap.js.map +1 -1
- package/lib/geo/lng_lat.js +1 -1
- package/lib/geo/mercator.js +11 -7
- package/lib/geo/mercator.js.map +1 -1
- package/lib/geo/simple.js +11 -7
- package/lib/geo/simple.js.map +1 -1
- package/lib/geo/transform.js +6 -2
- package/lib/geo/transform.js.map +1 -1
- package/lib/handler/handler_manager.js +55 -33
- package/lib/handler/handler_manager.js.map +1 -1
- package/lib/handler/mouse/index.js +4 -4
- package/lib/handler/mouse/util.js +1 -1
- package/lib/handler/shim/drag_pan.js +10 -2
- package/lib/handler/shim/drag_pan.js.map +1 -1
- package/lib/handler/shim/touch_zoom_rotate.js +10 -2
- package/lib/handler/shim/touch_zoom_rotate.js.map +1 -1
- package/lib/handler/tap/single_tap_recognizer.js +1 -1
- package/lib/handler/tap/tap_recognizer.js +6 -2
- package/lib/handler/tap/tap_recognizer.js.map +1 -1
- package/lib/hash.js +9 -4
- package/lib/hash.js.map +1 -1
- package/lib/map.js +32 -19
- package/lib/map.js.map +1 -1
- package/lib/util.js +14 -9
- package/lib/util.js.map +1 -1
- package/lib/utils/dom.js +66 -26
- package/lib/utils/dom.js.map +1 -1
- package/lib/utils/performance.js +4 -1
- package/lib/utils/performance.js.map +1 -1
- package/package.json +3 -3
package/es/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/map.ts"],"names":["DOM","Camera","LngLat","LngLatBounds","Point","HandlerManager","Hash","renderframe","PerformanceUtils","TaskQueue","defaultMinZoom","defaultMaxZoom","defaultMinPitch","defaultMaxPitch","DefaultOptions","hash","zoom","center","pitch","bearing","interactive","minZoom","maxZoom","minPitch","maxPitch","scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch","bearingSnap","clickTolerance","pitchWithRotate","trackResize","renderWorldCopies","Map","options","update","event","resize","originalEvent","initContainer","handlers","window","addEventListener","onWindowOnline","onWindowResize","hashName","undefined","addTo","onHashChange","jumpTo","bounds","fitBounds","fitBoundsOptions","duration","eventData","dimensions","containerDimensions","width","height","transform","fireMoving","moving","stop","emit","Event","container","canvas","canvasContainer","lngLat","locationPoint","convert","point","pointLocation","getBounds","getMaxBounds","setMaxBounds","style","getZoom","setZoom","Error","getPitch","setPitch","frame","cancel","renderTaskQueue","clear","cb","add","id","remove","paintStartTimeStamp","time","run","document","getElementById","HTMLElement","classList","create","clientWidth","clientHeight","pixelRatio","DPR"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,GAAT,QAAoB,gBAApB;AAEA,OAAOC,MAAP,MAAmB,UAAnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,MAAP,MAAmC,eAAnC;AACA,OAAOC,YAAP,MAA+C,sBAA/C;AAEA,OAAOC,KAAP,MAAiC,aAAjC;AAEA,OAAOC,cAAP,MAA2B,2BAA3B;AASA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,SAASC,WAAT,QAA4B,QAA5B;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AACA,OAAOC,SAAP,MAAkC,oBAAlC;AAEA,IAAMC,cAAc,GAAG,CAAC,CAAxB;AACA,IAAMC,cAAc,GAAG,EAAvB;AAGA,IAAMC,eAAe,GAAG,CAAxB;AACA,IAAMC,eAAe,GAAG,EAAxB;AAEA,IAAMC,cAA2B,GAAG;AAClCC,EAAAA,IAAI,EAAE,KAD4B;AAElCC,EAAAA,IAAI,EAAE,CAAC,CAF2B;AAGlCC,EAAAA,MAAM,EAAE,CAAC,GAAD,EAAM,EAAN,CAH0B;AAIlCC,EAAAA,KAAK,EAAE,CAJ2B;AAKlCC,EAAAA,OAAO,EAAE,CALyB;AAMlCC,EAAAA,WAAW,EAAE,IANqB;AAOlCC,EAAAA,OAAO,EAAEX,cAPyB;AAQlCY,EAAAA,OAAO,EAAEX,cARyB;AASlCY,EAAAA,QAAQ,EAAEX,eATwB;AAUlCY,EAAAA,QAAQ,EAAEX,eAVwB;AAWlCY,EAAAA,UAAU,EAAE,IAXsB;AAYlCC,EAAAA,OAAO,EAAE,IAZyB;AAalCC,EAAAA,UAAU,EAAE,IAbsB;AAclCC,EAAAA,OAAO,EAAE,IAdyB;AAelCC,EAAAA,QAAQ,EAAE,IAfwB;AAgBlCC,EAAAA,eAAe,EAAE,IAhBiB;AAiBlCC,EAAAA,eAAe,EAAE,IAjBiB;AAkBlCC,EAAAA,UAAU,EAAE,IAlBsB;AAmBlCC,EAAAA,WAAW,EAAE,CAnBqB;AAoBlCC,EAAAA,cAAc,EAAE,CApBkB;AAqBlCC,EAAAA,eAAe,EAAE,IArBiB;AAsBlCC,EAAAA,WAAW,EAAE,IAtBqB;AAuBlCC,EAAAA,iBAAiB,EAAE;AAvBe,CAApC;AAyBA,WAAaC,GAAb;AAAA;;AAAA;;AAkBE,eAAYC,OAAZ,EAA2C;AAAA;;AAAA;;AACzC,8BAAM,OAAM,EAAN,EAAUzB,cAAV,EAA0ByB,OAA1B,CAAN;;AADyC;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,sEAJN,IAAI9B,SAAJ,EAIM;;AAAA;;AAAA,kEAFZ,IAEY;;AAAA;;AAAA,qEAwSlB,YAAM;AAC7B,YAAK+B,MAAL;AACD,KA1S0C;;AAAA,qEA4SlB,UAACC,KAAD,EAAkB;AACzC,UAAI,MAAKL,WAAT,EAAsB;AACpB,cAAKM,MAAL,CAAY;AAAEC,UAAAA,aAAa,EAAEF;AAAjB,SAAZ,EAAsCD,MAAtC;AACD;AACF,KAhT0C;;AAEzC,UAAKI,aAAL;;AACA,UAAKF,MAAL;;AACA,UAAKG,QAAL,GAAgB,IAAIxC,cAAJ,gCAAyB,MAAKkC,OAA9B,CAAhB;;AAOA,QAAI,OAAOO,MAAP,KAAkB,WAAtB,EAAmC;AACjCA,MAAAA,MAAM,CAACC,gBAAP,CAAwB,QAAxB,EAAkC,MAAKC,cAAvC,EAAuD,KAAvD;AACAF,MAAAA,MAAM,CAACC,gBAAP,CAAwB,QAAxB,EAAkC,MAAKE,cAAvC,EAAuD,KAAvD;AACAH,MAAAA,MAAM,CAACC,gBAAP,CAAwB,mBAAxB,EAA6C,MAAKE,cAAlD,EAAkE,KAAlE;AACD;;AAED,QAAMC,QAAQ,GACX,OAAOX,OAAO,CAACxB,IAAf,KAAwB,QAAxB,IAAoCwB,OAAO,CAACxB,IAA7C,IAAsDoC,SADxD;;AAEA,QAAIZ,OAAO,CAACxB,IAAZ,EAAkB;AAChB,YAAKA,IAAL,GAAY,IAAIT,IAAJ,CAAS4C,QAAT,EAAmBE,KAAnB,+BAAZ;AACD;;AAGD,QAAI,CAAC,MAAKrC,IAAN,IAAc,CAAC,MAAKA,IAAL,CAAUsC,YAAV,EAAnB,EAA6C;AAC3C,YAAKC,MAAL,CAAY;AACVrC,QAAAA,MAAM,EAAEsB,OAAO,CAACtB,MADN;AAEVD,QAAAA,IAAI,EAAEuB,OAAO,CAACvB,IAFJ;AAGVG,QAAAA,OAAO,EAAEoB,OAAO,CAACpB,OAHP;AAIVD,QAAAA,KAAK,EAAEqB,OAAO,CAACrB;AAJL,OAAZ;;AAOA,UAAIqB,OAAO,CAACgB,MAAZ,EAAoB;AAClB,cAAKb,MAAL;;AACA,cAAKc,SAAL,CACEjB,OAAO,CAACgB,MADV,EAEE,OAAM,EAAN,EAAUhB,OAAO,CAACkB,gBAAlB,EAAoC;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SAApC,CAFF;AAID;AACF;;AAvCwC;AAwC1C;;AA1DH;AAAA;AAAA,WA4DE,gBAAcC,SAAd,EAA+B;AAC7B,UAAMC,UAAU,GAAG,KAAKC,mBAAL,EAAnB;AACA,UAAMC,KAAK,GAAGF,UAAU,CAAC,CAAD,CAAxB;AACA,UAAMG,MAAM,GAAGH,UAAU,CAAC,CAAD,CAAzB;AAGA,WAAKI,SAAL,CAAetB,MAAf,CAAsBoB,KAAtB,EAA6BC,MAA7B;AACA,UAAME,UAAU,GAAG,CAAC,KAAKC,MAAzB;;AACA,UAAID,UAAJ,EAAgB;AACd,aAAKE,IAAL;AACA,aAAKC,IAAL,CAAU,WAAV,EAAuB,IAAIC,KAAJ,CAAU,WAAV,EAAuBV,SAAvB,CAAvB;AACA,aAAKS,IAAL,CAAU,MAAV,EAAkB,IAAIC,KAAJ,CAAU,MAAV,EAAkBV,SAAlB,CAAlB;AACD;;AAED,WAAKS,IAAL,CAAU,QAAV,EAAoB,IAAIC,KAAJ,CAAU,QAAV,EAAoBV,SAApB,CAApB;;AAEA,UAAIM,UAAJ,EAAgB;AACd,aAAKG,IAAL,CAAU,SAAV,EAAqB,IAAIC,KAAJ,CAAU,SAAV,EAAqBV,SAArB,CAArB;AACD;;AAED,aAAO,IAAP;AACD;AAjFH;AAAA;AAAA,WAmFE,wBAAsB;AACpB,aAAO,KAAKW,SAAZ;AACD;AArFH;AAAA;AAAA,WAuFE,qBAAmB;AACjB,aAAO,KAAKC,MAAZ;AACD;AAzFH;AAAA;AAAA,WA2FE,8BAA4B;AAC1B,aAAO,KAAKC,eAAZ;AACD;AA7FH;AAAA;AAAA,WA+FE,iBAAeC,MAAf,EAAmC;AACjC,aAAO,KAAKT,SAAL,CAAeU,aAAf,CAA6BxE,MAAM,CAACyE,OAAP,CAAeF,MAAf,CAA7B,CAAP;AACD;AAjGH;AAAA;AAAA,WAmGE,mBAAiBG,KAAjB,EAAmC;AACjC,aAAO,KAAKZ,SAAL,CAAea,aAAf,CAA6BzE,KAAK,CAACuE,OAAN,CAAcC,KAAd,CAA7B,CAAP;AACD;AArGH;AAAA;AAAA,WAuGE,qBAAiC;AAC/B,aAAO,KAAKZ,SAAL,CAAec,SAAf,EAAP;AACD;AAzGH;AAAA;AAAA,WA2GE,wBAA2C;AACzC,aAAO,KAAKd,SAAL,CAAee,YAAf,EAAP;AACD;AA7GH;AAAA;AAAA,WA+GE,sBAAoBxB,MAApB,EAA8C;AAC5C,WAAKS,SAAL,CAAegB,YAAf,CAA4B7E,YAAY,CAACwE,OAAb,CAAqBpB,MAArB,CAA5B;AACD;AAjHH;AAAA;AAAA,WAmHE,kBAAgB0B,KAAhB,EAA4B;AAC1B;AACD;AArHH;AAAA;AAAA,WAsHE,oBAAkB5D,OAAlB,EAAoC;AAClCA,MAAAA,OAAO,GACLA,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAK8B,SAAhC,GAA4CzC,cAA5C,GAA6DW,OAD/D;;AAEA,UAAIA,OAAO,IAAIX,cAAX,IAA6BW,OAAO,IAAI,KAAK2C,SAAL,CAAe1C,OAA3D,EAAoE;AAClE,aAAK0C,SAAL,CAAe3C,OAAf,GAAyBA,OAAzB;;AACA,YAAI,KAAK6D,OAAL,KAAiB7D,OAArB,EAA8B;AAC5B,eAAK8D,OAAL,CAAa9D,OAAb;AACD;;AAED,eAAO,IAAP;AACD,OAPD,MAOO;AACL,cAAM,IAAI+D,KAAJ,mCACuB1E,cADvB,yCAAN;AAGD;AACF;AArIH;AAAA;AAAA,WAuIE,sBAAoB;AAClB,aAAO,KAAKsD,SAAL,CAAe3C,OAAtB;AACD;AAzIH;AAAA;AAAA,WA2IE,oBAAkBC,OAAlB,EAAoC;AAClCA,MAAAA,OAAO,GACLA,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAK6B,SAAhC,GAA4CxC,cAA5C,GAA6DW,OAD/D;;AAGA,UAAIA,OAAO,IAAI,KAAK0C,SAAL,CAAe3C,OAA9B,EAAuC;AACrC,aAAK2C,SAAL,CAAe1C,OAAf,GAAyBA,OAAzB;;AACA,YAAI,KAAK4D,OAAL,KAAiB5D,OAArB,EAA8B;AAC5B,eAAK6D,OAAL,CAAa7D,OAAb;AACD;;AAED,eAAO,IAAP;AACD,OAPD,MAOO;AACL,cAAM,IAAI8D,KAAJ,CAAU,kDAAV,CAAN;AACD;AACF;AAzJH;AAAA;AAAA,WA0JE,sBAAoB;AAClB,aAAO,KAAKpB,SAAL,CAAe1C,OAAtB;AACD;AA5JH;AAAA;AAAA,WA8JE,qBAAmBC,QAAnB,EAAsC;AACpCA,MAAAA,QAAQ,GACNA,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK4B,SAAlC,GAA8CvC,eAA9C,GAAgEW,QADlE;;AAGA,UAAIA,QAAQ,GAAGX,eAAf,EAAgC;AAC9B,cAAM,IAAIwE,KAAJ,qDACyCxE,eADzC,EAAN;AAGD;;AAED,UAAIW,QAAQ,IAAIX,eAAZ,IAA+BW,QAAQ,IAAI,KAAKyC,SAAL,CAAexC,QAA9D,EAAwE;AACtE,aAAKwC,SAAL,CAAezC,QAAf,GAA0BA,QAA1B;;AACA,YAAI,KAAK8D,QAAL,KAAkB9D,QAAtB,EAAgC;AAC9B,eAAK+D,QAAL,CAAc/D,QAAd;AACD;;AAED,eAAO,IAAP;AACD,OAPD,MAOO;AACL,cAAM,IAAI6D,KAAJ,oCACwBxE,eADxB,0CAAN;AAGD;AACF;AApLH;AAAA;AAAA,WAsLE,uBAAqB;AACnB,aAAO,KAAKoD,SAAL,CAAezC,QAAtB;AACD;AAxLH;AAAA;AAAA,WA0LE,qBAAmBC,QAAnB,EAAsC;AACpCA,MAAAA,QAAQ,GACNA,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK2B,SAAlC,GAA8CtC,eAA9C,GAAgEW,QADlE;;AAGA,UAAIA,QAAQ,GAAGX,eAAf,EAAgC;AAC9B,cAAM,IAAIuE,KAAJ,kDACsCvE,eADtC,EAAN;AAGD;;AAED,UAAIW,QAAQ,IAAI,KAAKwC,SAAL,CAAezC,QAA/B,EAAyC;AACvC,aAAKyC,SAAL,CAAexC,QAAf,GAA0BA,QAA1B;;AACA,YAAI,KAAK6D,QAAL,KAAkB7D,QAAtB,EAAgC;AAC9B,eAAK8D,QAAL,CAAc9D,QAAd;AACD;;AAED,eAAO,IAAP;AACD,OAPD,MAOO;AACL,cAAM,IAAI4D,KAAJ,CAAU,oDAAV,CAAN;AACD;AACF;AA9MH;AAAA;AAAA,WAgNE,uBAAqB;AACnB,aAAO,KAAKpB,SAAL,CAAexC,QAAtB;AACD;AAlNH;AAAA;AAAA,WAoNE,gCAA8B;AAC5B,aAAO,KAAKwC,SAAL,CAAe3B,iBAAtB;AACD;AAtNH;AAAA;AAAA,WAwNE,8BAA4BA,iBAA5B,EAAyD;AACvD,WAAK2B,SAAL,CAAe3B,iBAAf,GAAmC,CAAC,CAACA,iBAArC;AACD;AA1NH;AAAA;AAAA,WA4NE,kBAAgB;AACd,UAAI,KAAKkD,KAAT,EAAgB;AACd,aAAKA,KAAL,CAAWC,MAAX;AACA,aAAKD,KAAL,GAAa,IAAb;AACD;;AACD,WAAKE,eAAL,CAAqBC,KAArB;AACD;AAlOH;AAAA;AAAA,WAoOE,4BAA0BC,EAA1B,EAAgD;AAC9C,WAAKnD,MAAL;AACA,aAAO,KAAKiD,eAAL,CAAqBG,GAArB,CAAyBD,EAAzB,CAAP;AACD;AAvOH;AAAA;AAAA,WAyOE,2BAAyBE,EAAzB,EAAqC;AACnC,aAAO,KAAKJ,eAAL,CAAqBK,MAArB,CAA4BD,EAA5B,CAAP;AACD;AA3OH;AAAA;AAAA,WA6OE,0BAAwB;AAAA;;AACtB,UAAI,CAAC,KAAKN,KAAV,EAAiB;AACf,aAAKA,KAAL,GAAahF,WAAW,CAAC,UAACwF,mBAAD,EAAiC;AACxDvF,UAAAA,gBAAgB,CAAC+E,KAAjB,CAAuBQ,mBAAvB;AACA,UAAA,MAAI,CAACR,KAAL,GAAa,IAAb;;AACA,UAAA,MAAI,CAAC/C,MAAL,CAAYuD,mBAAZ;AACD,SAJuB,CAAxB;AAKD;AACF;AArPH;AAAA;AAAA,WAuPE,gBAAcC,IAAd,EAA6B;AAAA;;AAC3B,UAAI,CAAC,KAAKT,KAAV,EAAiB;AACf,aAAKA,KAAL,GAAahF,WAAW,CAAC,UAACwF,mBAAD,EAAiC;AACxDvF,UAAAA,gBAAgB,CAAC+E,KAAjB,CAAuBQ,mBAAvB;AACA,UAAA,MAAI,CAACR,KAAL,GAAa,IAAb;;AACA,UAAA,MAAI,CAACE,eAAL,CAAqBQ,GAArB,CAAyBD,IAAzB;AACD,SAJuB,CAAxB;AAKD;AACF;AA/PH;AAAA;AAAA,WAiQE,yBAAwB;AACtB,UAAI,OAAO,KAAKzD,OAAL,CAAa+B,SAApB,KAAkC,QAAtC,EAAgD;AAC9C,aAAKA,SAAL,GAAiBxB,MAAM,CAACoD,QAAP,CAAgBC,cAAhB,CACf,KAAK5D,OAAL,CAAa+B,SADE,CAAjB;;AAGA,YAAI,CAAC,KAAKA,SAAV,EAAqB;AACnB,gBAAM,IAAIc,KAAJ,sBAAwB,KAAK7C,OAAL,CAAa+B,SAArC,kBAAN;AACD;AACF,OAPD,MAOO,IAAI,KAAK/B,OAAL,CAAa+B,SAAb,YAAkC8B,WAAtC,EAAmD;AACxD,aAAK9B,SAAL,GAAiB,KAAK/B,OAAL,CAAa+B,SAA9B;AACD,OAFM,MAEA;AACL,cAAM,IAAIc,KAAJ,CACJ,4DADI,CAAN;AAGD;;AAED,UAAMd,SAAS,GAAG,KAAKA,SAAvB;AACAA,MAAAA,SAAS,CAAC+B,SAAV,CAAoBT,GAApB,CAAwB,QAAxB;AAEA,UAAMpB,eAAe,GAAI,KAAKA,eAAL,GAAuBxE,GAAG,CAACsG,MAAJ,CAC9C,KAD8C,EAE9C,qBAF8C,EAG9ChC,SAH8C,CAAhD;;AAKA,UAAI,KAAK/B,OAAL,CAAanB,WAAjB,EAA8B;AAC5BoD,QAAAA,eAAe,CAAC6B,SAAhB,CAA0BT,GAA1B,CAA8B,gBAA9B;AACD;AASF;AApSH;AAAA;AAAA,WAsSE,+BAAgD;AAC9C,UAAI9B,KAAK,GAAG,CAAZ;AACA,UAAIC,MAAM,GAAG,CAAb;;AACA,UAAI,KAAKO,SAAT,EAAoB;AAClBR,QAAAA,KAAK,GAAG,KAAKQ,SAAL,CAAeiC,WAAf,IAA8B,GAAtC;AACAxC,QAAAA,MAAM,GAAG,KAAKO,SAAL,CAAekC,YAAf,IAA+B,GAAxC;AACD;;AACD,aAAO,CAAC1C,KAAD,EAAQC,MAAR,CAAP;AACD;AA9SH;AAAA;AAAA,WAgTE,sBAAqBD,KAArB,EAAoCC,MAApC,EAAoD;AAClD,UAAM0C,UAAU,GAAGzG,GAAG,CAAC0G,GAAJ,IAAW,CAA9B;AACA,WAAKnC,MAAL,CAAYT,KAAZ,GAAoB2C,UAAU,GAAG3C,KAAjC;AACA,WAAKS,MAAL,CAAYR,MAAZ,GAAqB0C,UAAU,GAAG1C,MAAlC;AAGA,WAAKQ,MAAL,CAAYU,KAAZ,CAAkBnB,KAAlB,aAA6BA,KAA7B;AACA,WAAKS,MAAL,CAAYU,KAAZ,CAAkBlB,MAAlB,aAA8BA,MAA9B;AACD;AAxTH;;AAAA;AAAA,EAAyB9D,MAAzB","sourcesContent":["import { DOM } from '@antv/l7-utils';\nimport { merge } from 'lodash';\nimport Camera from './camera';\nimport './css/l7.css';\nimport LngLat, { LngLatLike } from './geo/lng_lat';\nimport LngLatBounds, { LngLatBoundsLike } from './geo/lng_lat_bounds';\n// @ts-ignore\nimport Point, { PointLike } from './geo/point';\nimport BoxZoomHandler from './handler/box_zoom';\nimport HandlerManager from './handler/handler_manager';\nimport KeyboardHandler from './handler/keyboard';\n\nimport ScrollZoomHandler from './handler/scroll_zoom';\nimport DoubleClickZoomHandler from './handler/shim/dblclick_zoom';\nimport DragPanHandler from './handler/shim/drag_pan';\nimport DragRotateHandler from './handler/shim/drag_rotate';\nimport TouchZoomRotateHandler from './handler/shim/touch_zoom_rotate';\nimport { TouchPitchHandler } from './handler/touch';\nimport Hash from './hash';\nimport { IMapOptions } from './interface';\nimport { renderframe } from './util';\nimport { PerformanceUtils } from './utils/performance';\nimport TaskQueue, { TaskID } from './utils/task_queue';\ntype CallBack = (_: number) => void;\nconst defaultMinZoom = -2;\nconst defaultMaxZoom = 22;\n\n// the default values, but also the valid range\nconst defaultMinPitch = 0;\nconst defaultMaxPitch = 60;\n\nconst DefaultOptions: IMapOptions = {\n hash: false,\n zoom: -1,\n center: [112, 32],\n pitch: 0,\n bearing: 0,\n interactive: true,\n minZoom: defaultMinZoom,\n maxZoom: defaultMaxZoom,\n minPitch: defaultMinPitch,\n maxPitch: defaultMaxPitch,\n scrollZoom: true,\n boxZoom: true,\n dragRotate: true,\n dragPan: true,\n keyboard: true,\n doubleClickZoom: true,\n touchZoomRotate: true,\n touchPitch: true,\n bearingSnap: 7,\n clickTolerance: 3,\n pitchWithRotate: true,\n trackResize: true,\n renderWorldCopies: true,\n};\nexport class Map extends Camera {\n public doubleClickZoom: DoubleClickZoomHandler;\n public dragRotate: DragRotateHandler;\n public dragPan: DragPanHandler;\n public touchZoomRotate: TouchZoomRotateHandler;\n public scrollZoom: ScrollZoomHandler;\n public keyboard: KeyboardHandler;\n public touchPitch: TouchPitchHandler;\n public boxZoom: BoxZoomHandler;\n public handlers: HandlerManager;\n\n private container: HTMLElement;\n private canvas: HTMLCanvasElement;\n private canvasContainer: HTMLElement;\n private renderTaskQueue: TaskQueue = new TaskQueue();\n private frame: { cancel: () => void } | null;\n private trackResize: boolean = true;\n private hash: Hash | undefined;\n constructor(options: Partial<IMapOptions>) {\n super(merge({}, DefaultOptions, options));\n this.initContainer();\n this.resize();\n this.handlers = new HandlerManager(this, this.options);\n // this.on('move', () => this.update());\n // this.on('moveend', () => this.update());\n // this.on('zoom', () => {\n // console.log('zoom');\n // });\n\n if (typeof window !== 'undefined') {\n window.addEventListener('online', this.onWindowOnline, false);\n window.addEventListener('resize', this.onWindowResize, false);\n window.addEventListener('orientationchange', this.onWindowResize, false);\n }\n\n const hashName =\n (typeof options.hash === 'string' && options.hash) || undefined;\n if (options.hash) {\n this.hash = new Hash(hashName).addTo(this) as Hash;\n }\n\n // don't set position from options if set through hash\n if (!this.hash || !this.hash.onHashChange()) {\n this.jumpTo({\n center: options.center,\n zoom: options.zoom,\n bearing: options.bearing,\n pitch: options.pitch,\n });\n\n if (options.bounds) {\n this.resize();\n this.fitBounds(\n options.bounds,\n merge({}, options.fitBoundsOptions, { duration: 0 }),\n );\n }\n }\n }\n\n public resize(eventData?: any) {\n const dimensions = this.containerDimensions();\n const width = dimensions[0];\n const height = dimensions[1];\n\n // this.resizeCanvas(width, height);\n this.transform.resize(width, height);\n const fireMoving = !this.moving;\n if (fireMoving) {\n this.stop();\n this.emit('movestart', new Event('movestart', eventData));\n this.emit('move', new Event('move', eventData));\n }\n\n this.emit('resize', new Event('resize', eventData));\n\n if (fireMoving) {\n this.emit('moveend', new Event('moveend', eventData));\n }\n\n return this;\n }\n\n public getContainer() {\n return this.container;\n }\n\n public getCanvas() {\n return this.canvas;\n }\n\n public getCanvasContainer() {\n return this.canvasContainer;\n }\n\n public project(lngLat: LngLatLike) {\n return this.transform.locationPoint(LngLat.convert(lngLat));\n }\n\n public unproject(point: PointLike) {\n return this.transform.pointLocation(Point.convert(point));\n }\n\n public getBounds(): LngLatBounds {\n return this.transform.getBounds();\n }\n\n public getMaxBounds(): LngLatBounds | null {\n return this.transform.getMaxBounds();\n }\n\n public setMaxBounds(bounds: LngLatBoundsLike) {\n this.transform.setMaxBounds(LngLatBounds.convert(bounds));\n }\n\n public setStyle(style: any) {\n return;\n }\n public setMinZoom(minZoom?: number) {\n minZoom =\n minZoom === null || minZoom === undefined ? defaultMinZoom : minZoom;\n if (minZoom >= defaultMinZoom && minZoom <= this.transform.maxZoom) {\n this.transform.minZoom = minZoom;\n if (this.getZoom() < minZoom) {\n this.setZoom(minZoom);\n }\n\n return this;\n } else {\n throw new Error(\n `minZoom must be between ${defaultMinZoom} and the current maxZoom, inclusive`,\n );\n }\n }\n\n public getMinZoom() {\n return this.transform.minZoom;\n }\n\n public setMaxZoom(maxZoom?: number) {\n maxZoom =\n maxZoom === null || maxZoom === undefined ? defaultMaxZoom : maxZoom;\n\n if (maxZoom >= this.transform.minZoom) {\n this.transform.maxZoom = maxZoom;\n if (this.getZoom() > maxZoom) {\n this.setZoom(maxZoom);\n }\n\n return this;\n } else {\n throw new Error('maxZoom must be greater than the current minZoom');\n }\n }\n public getMaxZoom() {\n return this.transform.maxZoom;\n }\n\n public setMinPitch(minPitch?: number) {\n minPitch =\n minPitch === null || minPitch === undefined ? defaultMinPitch : minPitch;\n\n if (minPitch < defaultMinPitch) {\n throw new Error(\n `minPitch must be greater than or equal to ${defaultMinPitch}`,\n );\n }\n\n if (minPitch >= defaultMinPitch && minPitch <= this.transform.maxPitch) {\n this.transform.minPitch = minPitch;\n if (this.getPitch() < minPitch) {\n this.setPitch(minPitch);\n }\n\n return this;\n } else {\n throw new Error(\n `minPitch must be between ${defaultMinPitch} and the current maxPitch, inclusive`,\n );\n }\n }\n\n public getMinPitch() {\n return this.transform.minPitch;\n }\n\n public setMaxPitch(maxPitch?: number) {\n maxPitch =\n maxPitch === null || maxPitch === undefined ? defaultMaxPitch : maxPitch;\n\n if (maxPitch > defaultMaxPitch) {\n throw new Error(\n `maxPitch must be less than or equal to ${defaultMaxPitch}`,\n );\n }\n\n if (maxPitch >= this.transform.minPitch) {\n this.transform.maxPitch = maxPitch;\n if (this.getPitch() > maxPitch) {\n this.setPitch(maxPitch);\n }\n\n return this;\n } else {\n throw new Error('maxPitch must be greater than the current minPitch');\n }\n }\n\n public getMaxPitch() {\n return this.transform.maxPitch;\n }\n\n public getRenderWorldCopies() {\n return this.transform.renderWorldCopies;\n }\n\n public setRenderWorldCopies(renderWorldCopies?: boolean) {\n this.transform.renderWorldCopies = !!renderWorldCopies;\n }\n\n public remove() {\n if (this.frame) {\n this.frame.cancel();\n this.frame = null;\n }\n this.renderTaskQueue.clear();\n }\n\n public requestRenderFrame(cb: CallBack): TaskID {\n this.update();\n return this.renderTaskQueue.add(cb);\n }\n\n public cancelRenderFrame(id: TaskID) {\n return this.renderTaskQueue.remove(id);\n }\n\n public triggerRepaint() {\n if (!this.frame) {\n this.frame = renderframe((paintStartTimeStamp: number) => {\n PerformanceUtils.frame(paintStartTimeStamp);\n this.frame = null;\n this.update(paintStartTimeStamp);\n });\n }\n }\n\n public update(time?: number) {\n if (!this.frame) {\n this.frame = renderframe((paintStartTimeStamp: number) => {\n PerformanceUtils.frame(paintStartTimeStamp);\n this.frame = null;\n this.renderTaskQueue.run(time);\n });\n }\n }\n\n private initContainer() {\n if (typeof this.options.container === 'string') {\n this.container = window.document.getElementById(\n this.options.container,\n ) as HTMLElement;\n if (!this.container) {\n throw new Error(`Container '${this.options.container}' not found.`);\n }\n } else if (this.options.container instanceof HTMLElement) {\n this.container = this.options.container;\n } else {\n throw new Error(\n \"Invalid type: 'container' must be a String or HTMLElement.\",\n );\n }\n\n const container = this.container;\n container.classList.add('l7-map');\n\n const canvasContainer = (this.canvasContainer = DOM.create(\n 'div',\n 'l7-canvas-container',\n container,\n ));\n if (this.options.interactive) {\n canvasContainer.classList.add('l7-interactive');\n }\n\n // this.canvas = DOM.create(\n // 'canvas',\n // 'l7-canvas',\n // canvasContainer,\n // ) as HTMLCanvasElement;\n // this.canvas.setAttribute('tabindex', '-');\n // this.canvas.setAttribute('aria-label', 'Map');\n }\n\n private containerDimensions(): [number, number] {\n let width = 0;\n let height = 0;\n if (this.container) {\n width = this.container.clientWidth || 400;\n height = this.container.clientHeight || 300;\n }\n return [width, height];\n }\n\n private resizeCanvas(width: number, height: number) {\n const pixelRatio = DOM.DPR || 1;\n this.canvas.width = pixelRatio * width;\n this.canvas.height = pixelRatio * height;\n\n // Maintain the same canvas size, potentially downscaling it for HiDPI displays\n this.canvas.style.width = `${width}px`;\n this.canvas.style.height = `${height}px`;\n }\n\n private onWindowOnline = () => {\n this.update();\n };\n\n private onWindowResize = (event: Event) => {\n if (this.trackResize) {\n this.resize({ originalEvent: event }).update();\n }\n };\n}\n"],"file":"map.js"}
|
|
1
|
+
{"version":3,"sources":["../src/map.ts"],"names":["$window","DOM","isMini","Camera","LngLat","LngLatBounds","Point","HandlerManager","Hash","renderframe","PerformanceUtils","TaskQueue","defaultMinZoom","defaultMaxZoom","defaultMinPitch","defaultMaxPitch","DefaultOptions","hash","zoom","center","pitch","bearing","interactive","minZoom","maxZoom","minPitch","maxPitch","scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch","bearingSnap","clickTolerance","pitchWithRotate","trackResize","renderWorldCopies","Map","options","update","event","resize","originalEvent","initMiniContainer","initContainer","handlers","window","addEventListener","onWindowOnline","onWindowResize","hashName","undefined","addTo","onHashChange","jumpTo","bounds","fitBounds","fitBoundsOptions","duration","eventData","dimensions","containerDimensions","width","height","transform","fireMoving","moving","stop","emit","Event","container","canvas","canvasContainer","lngLat","locationPoint","convert","point","pointLocation","getBounds","getMaxBounds","setMaxBounds","style","getZoom","setZoom","Error","getPitch","setPitch","frame","cancel","renderTaskQueue","clear","cb","add","id","remove","paintStartTimeStamp","time","run","document","getElementById","HTMLElement","classList","create","clientWidth","clientHeight"],"mappings":"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","sourcesContent":["import { $window, DOM, isMini } from '@antv/l7-utils';\nimport { merge } from 'lodash';\nimport Camera from './camera';\nimport './css/l7.css';\nimport LngLat, { LngLatLike } from './geo/lng_lat';\nimport LngLatBounds, { LngLatBoundsLike } from './geo/lng_lat_bounds';\n// @ts-ignore\nimport Point, { PointLike } from './geo/point';\nimport BoxZoomHandler from './handler/box_zoom';\nimport HandlerManager from './handler/handler_manager';\nimport KeyboardHandler from './handler/keyboard';\n\nimport ScrollZoomHandler from './handler/scroll_zoom';\nimport DoubleClickZoomHandler from './handler/shim/dblclick_zoom';\nimport DragPanHandler from './handler/shim/drag_pan';\nimport DragRotateHandler from './handler/shim/drag_rotate';\nimport TouchZoomRotateHandler from './handler/shim/touch_zoom_rotate';\nimport { TouchPitchHandler } from './handler/touch';\nimport Hash from './hash';\nimport { IMapOptions } from './interface';\nimport { renderframe } from './util';\nimport { PerformanceUtils } from './utils/performance';\nimport TaskQueue, { TaskID } from './utils/task_queue';\ntype CallBack = (_: number) => void;\nconst defaultMinZoom = -2;\nconst defaultMaxZoom = 22;\n\n// the default values, but also the valid range\nconst defaultMinPitch = 0;\nconst defaultMaxPitch = 60;\n\nconst DefaultOptions: IMapOptions = {\n hash: false,\n zoom: -1,\n center: [112, 32],\n pitch: 0,\n bearing: 0,\n interactive: true,\n minZoom: defaultMinZoom,\n maxZoom: defaultMaxZoom,\n minPitch: defaultMinPitch,\n maxPitch: defaultMaxPitch,\n scrollZoom: true,\n boxZoom: true,\n dragRotate: true,\n dragPan: true,\n keyboard: true,\n doubleClickZoom: true,\n touchZoomRotate: true,\n touchPitch: true,\n bearingSnap: 7,\n clickTolerance: 3,\n pitchWithRotate: true,\n trackResize: true,\n renderWorldCopies: true,\n};\nexport class Map extends Camera {\n public doubleClickZoom: DoubleClickZoomHandler;\n public dragRotate: DragRotateHandler;\n public dragPan: DragPanHandler;\n public touchZoomRotate: TouchZoomRotateHandler;\n public scrollZoom: ScrollZoomHandler;\n public keyboard: KeyboardHandler;\n public touchPitch: TouchPitchHandler;\n public boxZoom: BoxZoomHandler;\n public handlers: HandlerManager;\n\n private container: HTMLElement;\n private canvas: HTMLCanvasElement;\n private canvasContainer: HTMLElement;\n private renderTaskQueue: TaskQueue = new TaskQueue();\n private frame: { cancel: () => void } | null;\n private trackResize: boolean = true;\n private hash: Hash | undefined;\n constructor(options: Partial<IMapOptions>) {\n super(merge({}, DefaultOptions, options));\n if (isMini) {\n this.initMiniContainer();\n } else {\n this.initContainer();\n }\n\n this.resize();\n this.handlers = new HandlerManager(this, this.options);\n\n if (typeof window !== 'undefined') {\n window.addEventListener('online', this.onWindowOnline, false);\n window.addEventListener('resize', this.onWindowResize, false);\n window.addEventListener('orientationchange', this.onWindowResize, false);\n }\n\n if (!isMini) {\n const hashName =\n (typeof options.hash === 'string' && options.hash) || undefined;\n if (options.hash) {\n this.hash = new Hash(hashName).addTo(this) as Hash;\n }\n }\n\n // don't set position from options if set through hash\n if (!this.hash || !this.hash.onHashChange()) {\n this.jumpTo({\n center: options.center,\n zoom: options.zoom,\n bearing: options.bearing,\n pitch: options.pitch,\n });\n\n if (options.bounds) {\n this.resize();\n this.fitBounds(\n options.bounds,\n merge({}, options.fitBoundsOptions, { duration: 0 }),\n );\n }\n }\n }\n\n public resize(eventData?: any) {\n const dimensions = this.containerDimensions();\n const width = dimensions[0];\n const height = dimensions[1];\n\n this.transform.resize(width, height);\n if (!isMini) {\n return this;\n }\n const fireMoving = !this.moving;\n if (fireMoving) {\n this.stop();\n this.emit('movestart', new $window.Event('movestart', eventData));\n this.emit('move', new $window.Event('move', eventData));\n }\n\n this.emit('resize', new $window.Event('resize', eventData));\n\n if (fireMoving) {\n this.emit('moveend', new $window.Event('moveend', eventData));\n }\n\n return this;\n }\n\n public getContainer() {\n return this.container;\n }\n\n public getCanvas() {\n return this.canvas;\n }\n\n public getCanvasContainer() {\n return this.canvasContainer;\n }\n\n public project(lngLat: LngLatLike) {\n return this.transform.locationPoint(LngLat.convert(lngLat));\n }\n\n public unproject(point: PointLike) {\n return this.transform.pointLocation(Point.convert(point));\n }\n\n public getBounds(): LngLatBounds {\n return this.transform.getBounds();\n }\n\n public getMaxBounds(): LngLatBounds | null {\n return this.transform.getMaxBounds();\n }\n\n public setMaxBounds(bounds: LngLatBoundsLike) {\n this.transform.setMaxBounds(LngLatBounds.convert(bounds));\n }\n\n public setStyle(style: any) {\n return;\n }\n public setMinZoom(minZoom?: number) {\n minZoom =\n minZoom === null || minZoom === undefined ? defaultMinZoom : minZoom;\n if (minZoom >= defaultMinZoom && minZoom <= this.transform.maxZoom) {\n this.transform.minZoom = minZoom;\n if (this.getZoom() < minZoom) {\n this.setZoom(minZoom);\n }\n\n return this;\n } else {\n throw new Error(\n `minZoom must be between ${defaultMinZoom} and the current maxZoom, inclusive`,\n );\n }\n }\n\n public getMinZoom() {\n return this.transform.minZoom;\n }\n\n public setMaxZoom(maxZoom?: number) {\n maxZoom =\n maxZoom === null || maxZoom === undefined ? defaultMaxZoom : maxZoom;\n\n if (maxZoom >= this.transform.minZoom) {\n this.transform.maxZoom = maxZoom;\n if (this.getZoom() > maxZoom) {\n this.setZoom(maxZoom);\n }\n\n return this;\n } else {\n throw new Error('maxZoom must be greater than the current minZoom');\n }\n }\n public getMaxZoom() {\n return this.transform.maxZoom;\n }\n\n public setMinPitch(minPitch?: number) {\n minPitch =\n minPitch === null || minPitch === undefined ? defaultMinPitch : minPitch;\n\n if (minPitch < defaultMinPitch) {\n throw new Error(\n `minPitch must be greater than or equal to ${defaultMinPitch}`,\n );\n }\n\n if (minPitch >= defaultMinPitch && minPitch <= this.transform.maxPitch) {\n this.transform.minPitch = minPitch;\n if (this.getPitch() < minPitch) {\n this.setPitch(minPitch);\n }\n\n return this;\n } else {\n throw new Error(\n `minPitch must be between ${defaultMinPitch} and the current maxPitch, inclusive`,\n );\n }\n }\n\n public getMinPitch() {\n return this.transform.minPitch;\n }\n\n public setMaxPitch(maxPitch?: number) {\n maxPitch =\n maxPitch === null || maxPitch === undefined ? defaultMaxPitch : maxPitch;\n\n if (maxPitch > defaultMaxPitch) {\n throw new Error(\n `maxPitch must be less than or equal to ${defaultMaxPitch}`,\n );\n }\n\n if (maxPitch >= this.transform.minPitch) {\n this.transform.maxPitch = maxPitch;\n if (this.getPitch() > maxPitch) {\n this.setPitch(maxPitch);\n }\n\n return this;\n } else {\n throw new Error('maxPitch must be greater than the current minPitch');\n }\n }\n\n public getMaxPitch() {\n return this.transform.maxPitch;\n }\n\n public getRenderWorldCopies() {\n return this.transform.renderWorldCopies;\n }\n\n public setRenderWorldCopies(renderWorldCopies?: boolean) {\n this.transform.renderWorldCopies = !!renderWorldCopies;\n }\n\n public remove() {\n if (this.frame) {\n this.frame.cancel();\n this.frame = null;\n }\n this.renderTaskQueue.clear();\n }\n\n public requestRenderFrame(cb: CallBack): TaskID {\n this.update();\n return this.renderTaskQueue.add(cb);\n }\n\n public cancelRenderFrame(id: TaskID) {\n return this.renderTaskQueue.remove(id);\n }\n\n public triggerRepaint() {\n if (!this.frame) {\n this.frame = renderframe((paintStartTimeStamp: number) => {\n PerformanceUtils.frame(paintStartTimeStamp);\n this.frame = null;\n this.update(paintStartTimeStamp);\n });\n }\n }\n\n public update(time?: number) {\n if (!this.frame) {\n this.frame = renderframe((paintStartTimeStamp: number) => {\n PerformanceUtils.frame(paintStartTimeStamp);\n this.frame = null;\n this.renderTaskQueue.run(time);\n });\n }\n }\n\n private initContainer() {\n if (typeof this.options.container === 'string') {\n this.container = window.document.getElementById(\n this.options.container,\n ) as HTMLElement;\n if (!this.container) {\n throw new Error(`Container '${this.options.container}' not found.`);\n }\n } else if (this.options.container instanceof HTMLElement) {\n this.container = this.options.container;\n } else {\n throw new Error(\n \"Invalid type: 'container' must be a String or HTMLElement.\",\n );\n }\n\n const container = this.container;\n container.classList.add('l7-map');\n\n const canvasContainer = (this.canvasContainer = DOM.create(\n 'div',\n 'l7-canvas-container',\n container,\n ));\n if (this.options.interactive) {\n canvasContainer.classList.add('l7-interactive');\n }\n }\n\n /**\n * 小程序环境构建容器\n */\n private initMiniContainer() {\n this.container = this.options.canvas as HTMLCanvasElement;\n this.canvasContainer = this.container;\n }\n\n private containerDimensions(): [number, number] {\n let width = 0;\n let height = 0;\n if (this.container) {\n if (isMini) {\n width = (this.container as HTMLCanvasElement).width;\n height = (this.container as HTMLCanvasElement).height;\n } else {\n width = this.container.clientWidth;\n height = this.container.clientHeight;\n }\n }\n return [width, height];\n }\n\n private onWindowOnline = () => {\n this.update();\n };\n\n private onWindowResize = (event: Event) => {\n if (this.trackResize) {\n this.resize({ originalEvent: event }).update();\n }\n };\n}\n"],"file":"map.js"}
|
package/es/util.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare function pick(src: {
|
|
|
12
12
|
}, properties: string[]): {
|
|
13
13
|
[key: string]: any;
|
|
14
14
|
};
|
|
15
|
-
export declare const now:
|
|
16
|
-
export declare const raf:
|
|
17
|
-
export declare const cancel:
|
|
15
|
+
export declare const now: any;
|
|
16
|
+
export declare const raf: any;
|
|
17
|
+
export declare const cancel: any;
|
|
18
18
|
export declare function renderframe(fn: (paintStartTimestamp: number) => void): ICancelable;
|
package/es/util.js
CHANGED
|
@@ -4,6 +4,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
4
4
|
|
|
5
5
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
6
6
|
|
|
7
|
+
import { $window, isMini } from '@antv/l7-utils';
|
|
7
8
|
import UnitBezier from '@mapbox/unitbezier';
|
|
8
9
|
var reducedMotionQuery;
|
|
9
10
|
export function wrap(n, min, max) {
|
|
@@ -25,12 +26,12 @@ export function bezier(p1x, p1y, p2x, p2y) {
|
|
|
25
26
|
}
|
|
26
27
|
export var ease = bezier(0.25, 0.1, 0.25, 1);
|
|
27
28
|
export function prefersReducedMotion() {
|
|
28
|
-
if (
|
|
29
|
+
if (isMini || !$window.matchMedia) {
|
|
29
30
|
return false;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
if (reducedMotionQuery == null) {
|
|
33
|
-
reducedMotionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
|
|
34
|
+
reducedMotionQuery = $window.matchMedia('(prefers-reduced-motion: reduce)');
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
return reducedMotionQuery.matches;
|
|
@@ -57,10 +58,10 @@ export function pick(src, properties) {
|
|
|
57
58
|
|
|
58
59
|
return result;
|
|
59
60
|
}
|
|
60
|
-
export var now = window.performance && window.performance.now ? window.performance.now.bind(window.performance) : Date.now.bind(Date);
|
|
61
|
-
export var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
|
|
61
|
+
export var now = isMini ? Date.now.bind(Date) : $window.performance && $window.performance.now ? $window.performance.now.bind($window.performance) : Date.now.bind(Date);
|
|
62
|
+
export var raf = $window.requestAnimationFrame || $window.mozRequestAnimationFrame || $window.webkitRequestAnimationFrame || $window.msRequestAnimationFrame;
|
|
62
63
|
|
|
63
|
-
var _cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;
|
|
64
|
+
var _cancel = $window.cancelAnimationFrame || $window.mozCancelAnimationFrame || $window.webkitCancelAnimationFrame || $window.msCancelAnimationFrame;
|
|
64
65
|
|
|
65
66
|
export { _cancel as cancel };
|
|
66
67
|
export function renderframe(fn) {
|
package/es/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/util.ts"],"names":["UnitBezier","reducedMotionQuery","wrap","n","min","max","d","w","clamp","Math","interpolate","a","b","t","bezier","p1x","p1y","p2x","p2y","bez","solve","ease","prefersReducedMotion","
|
|
1
|
+
{"version":3,"sources":["../src/util.ts"],"names":["$window","isMini","UnitBezier","reducedMotionQuery","wrap","n","min","max","d","w","clamp","Math","interpolate","a","b","t","bezier","p1x","p1y","p2x","p2y","bez","solve","ease","prefersReducedMotion","matchMedia","matches","pick","src","properties","result","name","now","Date","bind","performance","raf","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","cancel","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame","renderframe","fn","frame"],"mappings":"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","sourcesContent":["import { $window, isMini } from '@antv/l7-utils';\n// @ts-ignore\nimport UnitBezier from '@mapbox/unitbezier';\nlet reducedMotionQuery: MediaQueryList;\nexport interface ICancelable {\n cancel: () => void;\n}\nexport function wrap(n: number, min: number, max: number): number {\n const d = max - min;\n const w = ((((n - min) % d) + d) % d) + min;\n return w === min ? max : w;\n}\n\nexport function clamp(n: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, n));\n}\n\nexport function interpolate(a: number, b: number, t: number) {\n return a * (1 - t) + b * t;\n}\nexport function bezier(\n p1x: number,\n p1y: number,\n p2x: number,\n p2y: number,\n): (t: number) => number {\n const bez = new UnitBezier(p1x, p1y, p2x, p2y);\n return (t: number) => {\n return bez.solve(t);\n };\n}\n\nexport const ease = bezier(0.25, 0.1, 0.25, 1);\n\nexport function prefersReducedMotion(): boolean {\n // @ts-ignore\n if (isMini || !$window.matchMedia) {\n return false;\n }\n // Lazily initialize media query\n if (reducedMotionQuery == null) {\n // @ts-ignore\n reducedMotionQuery = $window.matchMedia('(prefers-reduced-motion: reduce)');\n }\n return reducedMotionQuery.matches;\n}\n\nexport function pick(\n src: { [key: string]: any },\n properties: string[],\n): { [key: string]: any } {\n const result: { [key: string]: any } = {};\n for (const name of properties) {\n if (name in src) {\n result[name] = src[name];\n }\n }\n return result;\n}\n\nexport const now = isMini\n ? Date.now.bind(Date)\n : $window.performance && $window.performance.now\n ? $window.performance.now.bind($window.performance)\n : Date.now.bind(Date);\n\nexport const raf =\n $window.requestAnimationFrame ||\n // @ts-ignore\n $window.mozRequestAnimationFrame ||\n // @ts-ignore\n $window.webkitRequestAnimationFrame ||\n // @ts-ignore\n $window.msRequestAnimationFrame;\n\nexport const cancel =\n $window.cancelAnimationFrame ||\n // @ts-ignore\n $window.mozCancelAnimationFrame ||\n // @ts-ignore\n $window.webkitCancelAnimationFrame ||\n // @ts-ignore\n $window.msCancelAnimationFrame;\n\nexport function renderframe(\n fn: (paintStartTimestamp: number) => void,\n): ICancelable {\n const frame = raf(fn);\n return { cancel: () => cancel(frame) };\n}\n"],"file":"util.js"}
|
package/es/utils/dom.js
CHANGED
|
@@ -4,12 +4,13 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
4
4
|
|
|
5
5
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
6
6
|
|
|
7
|
+
import { $window, isMini } from '@antv/l7-utils';
|
|
7
8
|
import Point from '../geo/point';
|
|
8
9
|
var DOM = {};
|
|
9
10
|
export default DOM;
|
|
10
11
|
|
|
11
12
|
DOM.create = function (tagName, className, container) {
|
|
12
|
-
var el = window.document.createElement(tagName);
|
|
13
|
+
var el = $window.document.createElement(tagName);
|
|
13
14
|
|
|
14
15
|
if (className !== undefined) {
|
|
15
16
|
el.className = className;
|
|
@@ -23,11 +24,11 @@ DOM.create = function (tagName, className, container) {
|
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
DOM.createNS = function (namespaceURI, tagName) {
|
|
26
|
-
var el = window.document.createElementNS(namespaceURI, tagName);
|
|
27
|
+
var el = $window.document.createElementNS(namespaceURI, tagName);
|
|
27
28
|
return el;
|
|
28
29
|
};
|
|
29
30
|
|
|
30
|
-
var docStyle = window.document && window.document.documentElement.style;
|
|
31
|
+
var docStyle = $window.document && $window.document.documentElement.style;
|
|
31
32
|
|
|
32
33
|
function testProp(props) {
|
|
33
34
|
if (!docStyle) {
|
|
@@ -84,8 +85,8 @@ try {
|
|
|
84
85
|
passiveSupported = true;
|
|
85
86
|
}
|
|
86
87
|
});
|
|
87
|
-
window.addEventListener('test', options, options);
|
|
88
|
-
window.removeEventListener('test', options, options);
|
|
88
|
+
$window.addEventListener('test', options, options);
|
|
89
|
+
$window.removeEventListener('test', options, options);
|
|
89
90
|
} catch (err) {
|
|
90
91
|
passiveSupported = false;
|
|
91
92
|
}
|
|
@@ -113,44 +114,77 @@ DOM.removeEventListener = function (target, type, callback) {
|
|
|
113
114
|
var suppressClick = function suppressClick(e) {
|
|
114
115
|
e.preventDefault();
|
|
115
116
|
e.stopPropagation();
|
|
116
|
-
window.removeEventListener('click', suppressClick, true);
|
|
117
|
+
$window.removeEventListener('click', suppressClick, true);
|
|
117
118
|
};
|
|
118
119
|
|
|
119
120
|
DOM.suppressClick = function () {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
if (isMini) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
$window.addEventListener('click', suppressClick, true);
|
|
126
|
+
setTimeout(function () {
|
|
127
|
+
$window.removeEventListener('click', suppressClick, true);
|
|
123
128
|
}, 0);
|
|
124
129
|
};
|
|
125
130
|
|
|
126
131
|
DOM.mousePos = function (el, e) {
|
|
127
|
-
|
|
128
|
-
|
|
132
|
+
if (!isMini) {
|
|
133
|
+
var rect = el.getBoundingClientRect();
|
|
134
|
+
return new Point(e.clientX - rect.left - el.clientLeft, e.clientY - rect.top - el.clientTop);
|
|
135
|
+
} else {
|
|
136
|
+
return new Point(e.clientX - el.left - 0, e.clientY - el.top - 0);
|
|
137
|
+
}
|
|
129
138
|
};
|
|
130
139
|
|
|
131
140
|
DOM.touchPos = function (el, touches) {
|
|
132
|
-
|
|
133
|
-
|
|
141
|
+
if (!isMini) {
|
|
142
|
+
var rect = el.getBoundingClientRect();
|
|
143
|
+
var points = [];
|
|
134
144
|
|
|
135
|
-
|
|
136
|
-
|
|
145
|
+
var _iterator2 = _createForOfIteratorHelper(touches),
|
|
146
|
+
_step2;
|
|
137
147
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
148
|
+
try {
|
|
149
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
150
|
+
var touche = _step2.value;
|
|
151
|
+
points.push(new Point(touche.clientX - rect.left - el.clientLeft, touche.clientY - rect.top - el.clientTop));
|
|
152
|
+
}
|
|
153
|
+
} catch (err) {
|
|
154
|
+
_iterator2.e(err);
|
|
155
|
+
} finally {
|
|
156
|
+
_iterator2.f();
|
|
142
157
|
}
|
|
143
|
-
} catch (err) {
|
|
144
|
-
_iterator2.e(err);
|
|
145
|
-
} finally {
|
|
146
|
-
_iterator2.f();
|
|
147
|
-
}
|
|
148
158
|
|
|
149
|
-
|
|
159
|
+
return points;
|
|
160
|
+
} else {
|
|
161
|
+
var _points = [];
|
|
162
|
+
|
|
163
|
+
var _iterator3 = _createForOfIteratorHelper(touches),
|
|
164
|
+
_step3;
|
|
165
|
+
|
|
166
|
+
try {
|
|
167
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
168
|
+
var _touche = _step3.value;
|
|
169
|
+
|
|
170
|
+
_points.push(new Point(_touche.clientX - el.left, _touche.clientY - el.top));
|
|
171
|
+
}
|
|
172
|
+
} catch (err) {
|
|
173
|
+
_iterator3.e(err);
|
|
174
|
+
} finally {
|
|
175
|
+
_iterator3.f();
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return _points;
|
|
179
|
+
}
|
|
150
180
|
};
|
|
151
181
|
|
|
152
182
|
DOM.mouseButton = function (e) {
|
|
153
|
-
if (
|
|
183
|
+
if (!isMini) {
|
|
184
|
+
return e.button;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (typeof $window.InstallTrigger !== 'undefined' && e.button === 2 && e.ctrlKey && $window.navigator.platform.toUpperCase().indexOf('MAC') >= 0) {
|
|
154
188
|
return 0;
|
|
155
189
|
}
|
|
156
190
|
|
package/es/utils/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/dom.ts"],"names":["Point","DOM","create","tagName","className","container","el","window","document","createElement","undefined","appendChild","createNS","namespaceURI","createElementNS","docStyle","documentElement","style","testProp","props","i","selectProp","userSelect","disableDrag","enableDrag","transformProp","setTransform","value","passiveSupported","options","Object","defineProperty","get","addEventListener","removeEventListener","err","target","type","callback","capture","suppressClick","e","preventDefault","stopPropagation","setTimeout","mousePos","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","touchPos","touches","points","touche","push","mouseButton","InstallTrigger","button","ctrlKey","navigator","platform","toUpperCase","indexOf","remove","node","parentNode","removeChild"],"mappings":";;;;;;AACA,OAAOA,KAAP,MAAkB,cAAlB;AAEA,IAAMC,GAEL,GAAG,EAFJ;AAGA,eAAeA,GAAf;;AAEAA,GAAG,CAACC,MAAJ,GAAa,UAACC,OAAD,EAAkBC,SAAlB,EAAsCC,SAAtC,EAAkE;AAC7E,MAAMC,EAAE,GAAGC,MAAM,CAACC,QAAP,CAAgBC,aAAhB,CAA8BN,OAA9B,CAAX;;AACA,MAAIC,SAAS,KAAKM,SAAlB,EAA6B;AAC3BJ,IAAAA,EAAE,CAACF,SAAH,GAAeA,SAAf;AACD;;AACD,MAAIC,SAAJ,EAAe;AACbA,IAAAA,SAAS,CAACM,WAAV,CAAsBL,EAAtB;AACD;;AACD,SAAOA,EAAP;AACD,CATD;;AAWAL,GAAG,CAACW,QAAJ,GAAe,UAACC,YAAD,EAAuBV,OAAvB,EAA2C;AACxD,MAAMG,EAAE,GAAGC,MAAM,CAACC,QAAP,CAAgBM,eAAhB,CAAgCD,YAAhC,EAA8CV,OAA9C,CAAX;AACA,SAAOG,EAAP;AACD,CAHD;;AAKA,IAAMS,QAAQ,GAAGR,MAAM,CAACC,QAAP,IAAmBD,MAAM,CAACC,QAAP,CAAgBQ,eAAhB,CAAgCC,KAApE;;AAEA,SAASC,QAAT,CAAkBC,KAAlB,EAA8B;AAC5B,MAAI,CAACJ,QAAL,EAAe;AACb,WAAOI,KAAK,CAAC,CAAD,CAAZ;AACD;;AAH2B,6CAIZA,KAJY;AAAA;;AAAA;AAI5B,wDAAuB;AAAA,UAAZC,CAAY;;AACrB,UAAIA,CAAC,IAAIL,QAAT,EAAmB;AACjB,eAAOK,CAAP;AACD;AACF;AAR2B;AAAA;AAAA;AAAA;AAAA;;AAS5B,SAAOD,KAAK,CAAC,CAAD,CAAZ;AACD;;AAED,IAAME,UAAU,GAAGH,QAAQ,CAAC,CAC1B,YAD0B,EAE1B,eAF0B,EAG1B,kBAH0B,EAI1B,cAJ0B,CAAD,CAA3B;AAMA,IAAII,UAAJ;;AAEArB,GAAG,CAACsB,WAAJ,GAAkB,YAAM;AACtB,MAAIR,QAAQ,IAAIM,UAAhB,EAA4B;AAC1BC,IAAAA,UAAU,GAAGP,QAAQ,CAACM,UAAD,CAArB;AACAN,IAAAA,QAAQ,CAACM,UAAD,CAAR,GAAuB,MAAvB;AACD;AACF,CALD;;AAOApB,GAAG,CAACuB,UAAJ,GAAiB,YAAM;AACrB,MAAIT,QAAQ,IAAIM,UAAhB,EAA4B;AAC1BN,IAAAA,QAAQ,CAACM,UAAD,CAAR,GAAuBC,UAAvB;AACD;AACF,CAJD;;AAMA,IAAMG,aAAa,GAAGP,QAAQ,CAAC,CAAC,WAAD,EAAc,iBAAd,CAAD,CAA9B;;AAEAjB,GAAG,CAACyB,YAAJ,GAAmB,UAACpB,EAAD,EAAkBqB,KAAlB,EAAoC;AAGrDrB,EAAAA,EAAE,CAACW,KAAH,CAASQ,aAAT,IAA0BE,KAA1B;AACD,CAJD;;AAOA,IAAIC,gBAAgB,GAAG,KAAvB;;AAEA,IAAI;AAGF,MAAMC,OAAO,GAAGC,MAAM,CAACC,cAAP,CAAsB,EAAtB,EAA0B,SAA1B,EAAqC;AACnDC,IAAAA,GADmD,iBAC7C;AAEJJ,MAAAA,gBAAgB,GAAG,IAAnB;AACD;AAJkD,GAArC,CAAhB;AAOArB,EAAAA,MAAM,CAAC0B,gBAAP,CAAwB,MAAxB,EAAgCJ,OAAhC,EAAyCA,OAAzC;AAEAtB,EAAAA,MAAM,CAAC2B,mBAAP,CAA2B,MAA3B,EAAmCL,OAAnC,EAA4CA,OAA5C;AACD,CAbD,CAaE,OAAOM,GAAP,EAAY;AACZP,EAAAA,gBAAgB,GAAG,KAAnB;AACD;;AAED3B,GAAG,CAACgC,gBAAJ,GAAuB,UACrBG,MADqB,EAErBC,IAFqB,EAGrBC,QAHqB,EAKlB;AAAA,MADHT,OACG,uEADiD,EACjD;;AACH,MAAI,aAAaA,OAAb,IAAwBD,gBAA5B,EAA8C;AAC5CQ,IAAAA,MAAM,CAACH,gBAAP,CAAwBI,IAAxB,EAA8BC,QAA9B,EAAwCT,OAAxC;AACD,GAFD,MAEO;AACLO,IAAAA,MAAM,CAACH,gBAAP,CAAwBI,IAAxB,EAA8BC,QAA9B,EAAwCT,OAAO,CAACU,OAAhD;AACD;AACF,CAXD;;AAaAtC,GAAG,CAACiC,mBAAJ,GAA0B,UACxBE,MADwB,EAExBC,IAFwB,EAGxBC,QAHwB,EAKrB;AAAA,MADHT,OACG,uEADiD,EACjD;;AACH,MAAI,aAAaA,OAAb,IAAwBD,gBAA5B,EAA8C;AAC5CQ,IAAAA,MAAM,CAACF,mBAAP,CAA2BG,IAA3B,EAAiCC,QAAjC,EAA2CT,OAA3C;AACD,GAFD,MAEO;AACLO,IAAAA,MAAM,CAACF,mBAAP,CAA2BG,IAA3B,EAAiCC,QAAjC,EAA2CT,OAAO,CAACU,OAAnD;AACD;AACF,CAXD;;AAcA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAAmB;AACvCA,EAAAA,CAAC,CAACC,cAAF;AACAD,EAAAA,CAAC,CAACE,eAAF;AACApC,EAAAA,MAAM,CAAC2B,mBAAP,CAA2B,OAA3B,EAAoCM,aAApC,EAAmD,IAAnD;AACD,CAJD;;AAMAvC,GAAG,CAACuC,aAAJ,GAAoB,YAAM;AACxBjC,EAAAA,MAAM,CAAC0B,gBAAP,CAAwB,OAAxB,EAAiCO,aAAjC,EAAgD,IAAhD;AACAjC,EAAAA,MAAM,CAACqC,UAAP,CAAkB,YAAM;AACtBrC,IAAAA,MAAM,CAAC2B,mBAAP,CAA2B,OAA3B,EAAoCM,aAApC,EAAmD,IAAnD;AACD,GAFD,EAEG,CAFH;AAGD,CALD;;AAOAvC,GAAG,CAAC4C,QAAJ,GAAe,UAACvC,EAAD,EAAkBmC,CAAlB,EAA4C;AACzD,MAAMK,IAAI,GAAGxC,EAAE,CAACyC,qBAAH,EAAb;AACA,SAAO,IAAI/C,KAAJ,CACLyC,CAAC,CAACO,OAAF,GAAYF,IAAI,CAACG,IAAjB,GAAwB3C,EAAE,CAAC4C,UADtB,EAELT,CAAC,CAACU,OAAF,GAAYL,IAAI,CAACM,GAAjB,GAAuB9C,EAAE,CAAC+C,SAFrB,CAAP;AAID,CAND;;AAQApD,GAAG,CAACqD,QAAJ,GAAe,UAAChD,EAAD,EAAkBiD,OAAlB,EAAuC;AACpD,MAAMT,IAAI,GAAGxC,EAAE,CAACyC,qBAAH,EAAb;AACA,MAAMS,MAAM,GAAG,EAAf;;AAFoD,8CAG/BD,OAH+B;AAAA;;AAAA;AAGpD,2DAA8B;AAAA,UAAnBE,MAAmB;AAC5BD,MAAAA,MAAM,CAACE,IAAP,CACE,IAAI1D,KAAJ,CACEyD,MAAM,CAACT,OAAP,GAAiBF,IAAI,CAACG,IAAtB,GAA6B3C,EAAE,CAAC4C,UADlC,EAEEO,MAAM,CAACN,OAAP,GAAiBL,IAAI,CAACM,GAAtB,GAA4B9C,EAAE,CAAC+C,SAFjC,CADF;AAMD;AAVmD;AAAA;AAAA;AAAA;AAAA;;AAWpD,SAAOG,MAAP;AACD,CAZD;;AAcAvD,GAAG,CAAC0D,WAAJ,GAAkB,UAAClB,CAAD,EAAmB;AACnC,MAEE,OAAOlC,MAAM,CAACqD,cAAd,KAAiC,WAAjC,IACAnB,CAAC,CAACoB,MAAF,KAAa,CADb,IAEApB,CAAC,CAACqB,OAFF,IAGAvD,MAAM,CAACwD,SAAP,CAAiBC,QAAjB,CAA0BC,WAA1B,GAAwCC,OAAxC,CAAgD,KAAhD,KAA0D,CAL5D,EAME;AAIA,WAAO,CAAP;AACD;;AACD,SAAOzB,CAAC,CAACoB,MAAT;AACD,CAdD;;AAgBA5D,GAAG,CAACkE,MAAJ,GAAa,UAACC,IAAD,EAAuB;AAClC,MAAIA,IAAI,CAACC,UAAT,EAAqB;AACnBD,IAAAA,IAAI,CAACC,UAAL,CAAgBC,WAAhB,CAA4BF,IAA5B;AACD;AACF,CAJD","sourcesContent":["// @ts-ignore\nimport Point from '../geo/point';\n\nconst DOM: {\n [key: string]: (...arg: any[]) => any;\n} = {};\nexport default DOM;\n\nDOM.create = (tagName: string, className?: string, container?: HTMLElement) => {\n const el = window.document.createElement(tagName);\n if (className !== undefined) {\n el.className = className;\n }\n if (container) {\n container.appendChild(el);\n }\n return el;\n};\n\nDOM.createNS = (namespaceURI: string, tagName: string) => {\n const el = window.document.createElementNS(namespaceURI, tagName);\n return el;\n};\n\nconst docStyle = window.document && window.document.documentElement.style;\n\nfunction testProp(props: any) {\n if (!docStyle) {\n return props[0];\n }\n for (const i of props) {\n if (i in docStyle) {\n return i;\n }\n }\n return props[0];\n}\n\nconst selectProp = testProp([\n 'userSelect',\n 'MozUserSelect',\n 'WebkitUserSelect',\n 'msUserSelect',\n]);\nlet userSelect: any;\n\nDOM.disableDrag = () => {\n if (docStyle && selectProp) {\n userSelect = docStyle[selectProp];\n docStyle[selectProp] = 'none';\n }\n};\n\nDOM.enableDrag = () => {\n if (docStyle && selectProp) {\n docStyle[selectProp] = userSelect;\n }\n};\n\nconst transformProp = testProp(['transform', 'WebkitTransform']);\n\nDOM.setTransform = (el: HTMLElement, value: string) => {\n // https://github.com/facebook/flow/issues/7754\n // $FlowFixMe\n el.style[transformProp] = value;\n};\n\n// Feature detection for {passive: false} support in add/removeEventListener.\nlet passiveSupported = false;\n\ntry {\n // https://github.com/facebook/flow/issues/285\n // $FlowFixMe\n const options = Object.defineProperty({}, 'passive', {\n get() {\n // eslint-disable-line\n passiveSupported = true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n} catch (err) {\n passiveSupported = false;\n}\n\nDOM.addEventListener = (\n target: any,\n type: any,\n callback: any,\n options: { passive?: boolean; capture?: boolean } = {},\n) => {\n if ('passive' in options && passiveSupported) {\n target.addEventListener(type, callback, options);\n } else {\n target.addEventListener(type, callback, options.capture);\n }\n};\n\nDOM.removeEventListener = (\n target: any,\n type: any,\n callback: any,\n options: { passive?: boolean; capture?: boolean } = {},\n) => {\n if ('passive' in options && passiveSupported) {\n target.removeEventListener(type, callback, options);\n } else {\n target.removeEventListener(type, callback, options.capture);\n }\n};\n\n// Suppress the next click, but only if it's immediate.\nconst suppressClick = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n window.removeEventListener('click', suppressClick, true);\n};\n\nDOM.suppressClick = () => {\n window.addEventListener('click', suppressClick, true);\n window.setTimeout(() => {\n window.removeEventListener('click', suppressClick, true);\n }, 0);\n};\n\nDOM.mousePos = (el: HTMLElement, e: MouseEvent | Touch) => {\n const rect = el.getBoundingClientRect();\n return new Point(\n e.clientX - rect.left - el.clientLeft,\n e.clientY - rect.top - el.clientTop,\n );\n};\n\nDOM.touchPos = (el: HTMLElement, touches: Touch[]) => {\n const rect = el.getBoundingClientRect();\n const points = [];\n for (const touche of touches) {\n points.push(\n new Point(\n touche.clientX - rect.left - el.clientLeft,\n touche.clientY - rect.top - el.clientTop,\n ),\n );\n }\n return points;\n};\n\nDOM.mouseButton = (e: MouseEvent) => {\n if (\n // @ts-ignore\n typeof window.InstallTrigger !== 'undefined' &&\n e.button === 2 &&\n e.ctrlKey &&\n window.navigator.platform.toUpperCase().indexOf('MAC') >= 0\n ) {\n // Fix for https://github.com/mapbox/mapbox-gl-js/issues/3131:\n // Firefox (detected by InstallTrigger) on Mac determines e.button = 2 when\n // using Control + left click\n return 0;\n }\n return e.button;\n};\n\nDOM.remove = (node: HTMLElement) => {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n};\n"],"file":"dom.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/dom.ts"],"names":["$window","isMini","Point","DOM","create","tagName","className","container","el","document","createElement","undefined","appendChild","createNS","namespaceURI","createElementNS","docStyle","documentElement","style","testProp","props","i","selectProp","userSelect","disableDrag","enableDrag","transformProp","setTransform","value","passiveSupported","options","Object","defineProperty","get","addEventListener","removeEventListener","err","target","type","callback","capture","suppressClick","e","preventDefault","stopPropagation","setTimeout","mousePos","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","touchPos","touches","points","touche","push","mouseButton","button","InstallTrigger","ctrlKey","navigator","platform","toUpperCase","indexOf","remove","node","parentNode","removeChild"],"mappings":";;;;;;AAAA,SAASA,OAAT,EAAkBC,MAAlB,QAAgC,gBAAhC;AAEA,OAAOC,KAAP,MAAkB,cAAlB;AAEA,IAAMC,GAEL,GAAG,EAFJ;AAGA,eAAeA,GAAf;;AAEAA,GAAG,CAACC,MAAJ,GAAa,UAACC,OAAD,EAAkBC,SAAlB,EAAsCC,SAAtC,EAAkE;AAC7E,MAAMC,EAAE,GAAGR,OAAO,CAACS,QAAR,CAAiBC,aAAjB,CAA+BL,OAA/B,CAAX;;AACA,MAAIC,SAAS,KAAKK,SAAlB,EAA6B;AAC3BH,IAAAA,EAAE,CAACF,SAAH,GAAeA,SAAf;AACD;;AACD,MAAIC,SAAJ,EAAe;AACbA,IAAAA,SAAS,CAACK,WAAV,CAAsBJ,EAAtB;AACD;;AACD,SAAOA,EAAP;AACD,CATD;;AAWAL,GAAG,CAACU,QAAJ,GAAe,UAACC,YAAD,EAAuBT,OAAvB,EAA2C;AACxD,MAAMG,EAAE,GAAGR,OAAO,CAACS,QAAR,CAAiBM,eAAjB,CACTD,YADS,EAETT,OAFS,CAAX;AAIA,SAAOG,EAAP;AACD,CAND;;AAQA,IAAMQ,QAAQ,GAAGhB,OAAO,CAACS,QAAR,IAAoBT,OAAO,CAACS,QAAR,CAAiBQ,eAAjB,CAAiCC,KAAtE;;AAEA,SAASC,QAAT,CAAkBC,KAAlB,EAA8B;AAC5B,MAAI,CAACJ,QAAL,EAAe;AACb,WAAOI,KAAK,CAAC,CAAD,CAAZ;AACD;;AAH2B,6CAIZA,KAJY;AAAA;;AAAA;AAI5B,wDAAuB;AAAA,UAAZC,CAAY;;AACrB,UAAIA,CAAC,IAAIL,QAAT,EAAmB;AACjB,eAAOK,CAAP;AACD;AACF;AAR2B;AAAA;AAAA;AAAA;AAAA;;AAS5B,SAAOD,KAAK,CAAC,CAAD,CAAZ;AACD;;AAED,IAAME,UAAU,GAAGH,QAAQ,CAAC,CAC1B,YAD0B,EAE1B,eAF0B,EAG1B,kBAH0B,EAI1B,cAJ0B,CAAD,CAA3B;AAMA,IAAII,UAAJ;;AAEApB,GAAG,CAACqB,WAAJ,GAAkB,YAAM;AACtB,MAAIR,QAAQ,IAAIM,UAAhB,EAA4B;AAC1BC,IAAAA,UAAU,GAAGP,QAAQ,CAACM,UAAD,CAArB;AACAN,IAAAA,QAAQ,CAACM,UAAD,CAAR,GAAuB,MAAvB;AACD;AACF,CALD;;AAOAnB,GAAG,CAACsB,UAAJ,GAAiB,YAAM;AACrB,MAAIT,QAAQ,IAAIM,UAAhB,EAA4B;AAC1BN,IAAAA,QAAQ,CAACM,UAAD,CAAR,GAAuBC,UAAvB;AACD;AACF,CAJD;;AAMA,IAAMG,aAAa,GAAGP,QAAQ,CAAC,CAAC,WAAD,EAAc,iBAAd,CAAD,CAA9B;;AAEAhB,GAAG,CAACwB,YAAJ,GAAmB,UAACnB,EAAD,EAAkBoB,KAAlB,EAAoC;AAGrDpB,EAAAA,EAAE,CAACU,KAAH,CAASQ,aAAT,IAA0BE,KAA1B;AACD,CAJD;;AAOA,IAAIC,gBAAgB,GAAG,KAAvB;;AAEA,IAAI;AAGF,MAAMC,OAAO,GAAGC,MAAM,CAACC,cAAP,CAAsB,EAAtB,EAA0B,SAA1B,EAAqC;AACnDC,IAAAA,GADmD,iBAC7C;AAEJJ,MAAAA,gBAAgB,GAAG,IAAnB;AACD;AAJkD,GAArC,CAAhB;AAOA7B,EAAAA,OAAO,CAACkC,gBAAR,CAAyB,MAAzB,EAAiCJ,OAAjC,EAA0CA,OAA1C;AAEA9B,EAAAA,OAAO,CAACmC,mBAAR,CAA4B,MAA5B,EAAoCL,OAApC,EAA6CA,OAA7C;AACD,CAbD,CAaE,OAAOM,GAAP,EAAY;AACZP,EAAAA,gBAAgB,GAAG,KAAnB;AACD;;AAED1B,GAAG,CAAC+B,gBAAJ,GAAuB,UACrBG,MADqB,EAErBC,IAFqB,EAGrBC,QAHqB,EAKlB;AAAA,MADHT,OACG,uEADiD,EACjD;;AACH,MAAI,aAAaA,OAAb,IAAwBD,gBAA5B,EAA8C;AAC5CQ,IAAAA,MAAM,CAACH,gBAAP,CAAwBI,IAAxB,EAA8BC,QAA9B,EAAwCT,OAAxC;AACD,GAFD,MAEO;AACLO,IAAAA,MAAM,CAACH,gBAAP,CAAwBI,IAAxB,EAA8BC,QAA9B,EAAwCT,OAAO,CAACU,OAAhD;AACD;AACF,CAXD;;AAaArC,GAAG,CAACgC,mBAAJ,GAA0B,UACxBE,MADwB,EAExBC,IAFwB,EAGxBC,QAHwB,EAKrB;AAAA,MADHT,OACG,uEADiD,EACjD;;AACH,MAAI,aAAaA,OAAb,IAAwBD,gBAA5B,EAA8C;AAC5CQ,IAAAA,MAAM,CAACF,mBAAP,CAA2BG,IAA3B,EAAiCC,QAAjC,EAA2CT,OAA3C;AACD,GAFD,MAEO;AACLO,IAAAA,MAAM,CAACF,mBAAP,CAA2BG,IAA3B,EAAiCC,QAAjC,EAA2CT,OAAO,CAACU,OAAnD;AACD;AACF,CAXD;;AAcA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAAmB;AACvCA,EAAAA,CAAC,CAACC,cAAF;AACAD,EAAAA,CAAC,CAACE,eAAF;AACA5C,EAAAA,OAAO,CAACmC,mBAAR,CAA4B,OAA5B,EAAqCM,aAArC,EAAoD,IAApD;AACD,CAJD;;AAMAtC,GAAG,CAACsC,aAAJ,GAAoB,YAAM;AACxB,MAAIxC,MAAJ,EAAY;AACV;AACD;;AACDD,EAAAA,OAAO,CAACkC,gBAAR,CAAyB,OAAzB,EAAkCO,aAAlC,EAAiD,IAAjD;AACAI,EAAAA,UAAU,CAAC,YAAM;AACf7C,IAAAA,OAAO,CAACmC,mBAAR,CAA4B,OAA5B,EAAqCM,aAArC,EAAoD,IAApD;AACD,GAFS,EAEP,CAFO,CAAV;AAGD,CARD;;AAUAtC,GAAG,CAAC2C,QAAJ,GAAe,UAACtC,EAAD,EAAkBkC,CAAlB,EAA4C;AAEzD,MAAI,CAACzC,MAAL,EAAa;AACX,QAAM8C,IAAI,GAAGvC,EAAE,CAACwC,qBAAH,EAAb;AACA,WAAO,IAAI9C,KAAJ,CACLwC,CAAC,CAACO,OAAF,GAAYF,IAAI,CAACG,IAAjB,GAAwB1C,EAAE,CAAC2C,UADtB,EAELT,CAAC,CAACU,OAAF,GAAYL,IAAI,CAACM,GAAjB,GAAuB7C,EAAE,CAAC8C,SAFrB,CAAP;AAID,GAND,MAMO;AACL,WAAO,IAAIpD,KAAJ,CAELwC,CAAC,CAACO,OAAF,GAAYzC,EAAE,CAAC0C,IAAf,GAAsB,CAFjB,EAILR,CAAC,CAACU,OAAF,GAAY5C,EAAE,CAAC6C,GAAf,GAAqB,CAJhB,CAAP;AAMD;AACF,CAhBD;;AAkBAlD,GAAG,CAACoD,QAAJ,GAAe,UAAC/C,EAAD,EAAkBgD,OAAlB,EAAuC;AAEpD,MAAI,CAACvD,MAAL,EAAa;AACX,QAAM8C,IAAI,GAAGvC,EAAE,CAACwC,qBAAH,EAAb;AACA,QAAMS,MAAM,GAAG,EAAf;;AAFW,gDAGUD,OAHV;AAAA;;AAAA;AAGX,6DAA8B;AAAA,YAAnBE,MAAmB;AAC5BD,QAAAA,MAAM,CAACE,IAAP,CACE,IAAIzD,KAAJ,CACEwD,MAAM,CAACT,OAAP,GAAiBF,IAAI,CAACG,IAAtB,GAA6B1C,EAAE,CAAC2C,UADlC,EAEEO,MAAM,CAACN,OAAP,GAAiBL,IAAI,CAACM,GAAtB,GAA4B7C,EAAE,CAAC8C,SAFjC,CADF;AAMD;AAVU;AAAA;AAAA;AAAA;AAAA;;AAWX,WAAOG,MAAP;AACD,GAZD,MAYO;AACL,QAAMA,OAAM,GAAG,EAAf;;AADK,gDAEgBD,OAFhB;AAAA;;AAAA;AAEL,6DAA8B;AAAA,YAAnBE,OAAmB;;AAC5BD,QAAAA,OAAM,CAACE,IAAP,CACE,IAAIzD,KAAJ,CAEEwD,OAAM,CAACT,OAAP,GAAiBzC,EAAE,CAAC0C,IAFtB,EAIEQ,OAAM,CAACN,OAAP,GAAiB5C,EAAE,CAAC6C,GAJtB,CADF;AAQD;AAXI;AAAA;AAAA;AAAA;AAAA;;AAYL,WAAOI,OAAP;AACD;AACF,CA5BD;;AA8BAtD,GAAG,CAACyD,WAAJ,GAAkB,UAAClB,CAAD,EAAmB;AACnC,MAAI,CAACzC,MAAL,EAAa;AACX,WAAOyC,CAAC,CAACmB,MAAT;AACD;;AACD,MAEE,OAAO7D,OAAO,CAAC8D,cAAf,KAAkC,WAAlC,IACApB,CAAC,CAACmB,MAAF,KAAa,CADb,IAEAnB,CAAC,CAACqB,OAFF,IAGA/D,OAAO,CAACgE,SAAR,CAAkBC,QAAlB,CAA2BC,WAA3B,GAAyCC,OAAzC,CAAiD,KAAjD,KAA2D,CAL7D,EAME;AAIA,WAAO,CAAP;AACD;;AACD,SAAOzB,CAAC,CAACmB,MAAT;AACD,CAjBD;;AAmBA1D,GAAG,CAACiE,MAAJ,GAAa,UAACC,IAAD,EAAuB;AAClC,MAAIA,IAAI,CAACC,UAAT,EAAqB;AACnBD,IAAAA,IAAI,CAACC,UAAL,CAAgBC,WAAhB,CAA4BF,IAA5B;AACD;AACF,CAJD","sourcesContent":["import { $window, isMini } from '@antv/l7-utils';\n// @ts-ignore\nimport Point from '../geo/point';\n\nconst DOM: {\n [key: string]: (...arg: any[]) => any;\n} = {};\nexport default DOM;\n\nDOM.create = (tagName: string, className?: string, container?: HTMLElement) => {\n const el = $window.document.createElement(tagName) as HTMLElement;\n if (className !== undefined) {\n el.className = className;\n }\n if (container) {\n container.appendChild(el);\n }\n return el;\n};\n\nDOM.createNS = (namespaceURI: string, tagName: string) => {\n const el = $window.document.createElementNS(\n namespaceURI,\n tagName,\n ) as HTMLElement;\n return el;\n};\n\nconst docStyle = $window.document && $window.document.documentElement.style;\n\nfunction testProp(props: any) {\n if (!docStyle) {\n return props[0];\n }\n for (const i of props) {\n if (i in docStyle) {\n return i;\n }\n }\n return props[0];\n}\n\nconst selectProp = testProp([\n 'userSelect',\n 'MozUserSelect',\n 'WebkitUserSelect',\n 'msUserSelect',\n]);\nlet userSelect: any;\n\nDOM.disableDrag = () => {\n if (docStyle && selectProp) {\n userSelect = docStyle[selectProp];\n docStyle[selectProp] = 'none';\n }\n};\n\nDOM.enableDrag = () => {\n if (docStyle && selectProp) {\n docStyle[selectProp] = userSelect;\n }\n};\n\nconst transformProp = testProp(['transform', 'WebkitTransform']);\n\nDOM.setTransform = (el: HTMLElement, value: string) => {\n // https://github.com/facebook/flow/issues/7754\n // $FlowFixMe\n el.style[transformProp] = value;\n};\n\n// Feature detection for {passive: false} support in add/removeEventListener.\nlet passiveSupported = false;\n\ntry {\n // https://github.com/facebook/flow/issues/285\n // $FlowFixMe\n const options = Object.defineProperty({}, 'passive', {\n get() {\n // eslint-disable-line\n passiveSupported = true;\n },\n });\n // @ts-ignore\n $window.addEventListener('test', options, options);\n // @ts-ignore\n $window.removeEventListener('test', options, options);\n} catch (err) {\n passiveSupported = false;\n}\n\nDOM.addEventListener = (\n target: any,\n type: any,\n callback: any,\n options: { passive?: boolean; capture?: boolean } = {},\n) => {\n if ('passive' in options && passiveSupported) {\n target.addEventListener(type, callback, options);\n } else {\n target.addEventListener(type, callback, options.capture);\n }\n};\n\nDOM.removeEventListener = (\n target: any,\n type: any,\n callback: any,\n options: { passive?: boolean; capture?: boolean } = {},\n) => {\n if ('passive' in options && passiveSupported) {\n target.removeEventListener(type, callback, options);\n } else {\n target.removeEventListener(type, callback, options.capture);\n }\n};\n\n// Suppress the next click, but only if it's immediate.\nconst suppressClick = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n $window.removeEventListener('click', suppressClick, true);\n};\n\nDOM.suppressClick = () => {\n if (isMini) {\n return;\n }\n $window.addEventListener('click', suppressClick, true);\n setTimeout(() => {\n $window.removeEventListener('click', suppressClick, true);\n }, 0);\n};\n\nDOM.mousePos = (el: HTMLElement, e: MouseEvent | Touch) => {\n // 暂时从 el 上获取 top/left, 后面需要动态获取\n if (!isMini) {\n const rect = el.getBoundingClientRect();\n return new Point(\n e.clientX - rect.left - el.clientLeft,\n e.clientY - rect.top - el.clientTop,\n );\n } else {\n return new Point(\n // @ts-ignore\n e.clientX - el.left - 0,\n // @ts-ignore\n e.clientY - el.top - 0,\n );\n }\n};\n\nDOM.touchPos = (el: HTMLElement, touches: Touch[]) => {\n // 暂时从 el 上获取 top/left, 后面需要动态获取\n if (!isMini) {\n const rect = el.getBoundingClientRect();\n const points = [];\n for (const touche of touches) {\n points.push(\n new Point(\n touche.clientX - rect.left - el.clientLeft,\n touche.clientY - rect.top - el.clientTop,\n ),\n );\n }\n return points;\n } else {\n const points = [];\n for (const touche of touches) {\n points.push(\n new Point(\n // @ts-ignore\n touche.clientX - el.left,\n // @ts-ignore\n touche.clientY - el.top,\n ),\n );\n }\n return points;\n }\n};\n\nDOM.mouseButton = (e: MouseEvent) => {\n if (!isMini) {\n return e.button;\n }\n if (\n // @ts-ignore\n typeof $window.InstallTrigger !== 'undefined' &&\n e.button === 2 &&\n e.ctrlKey &&\n $window.navigator.platform.toUpperCase().indexOf('MAC') >= 0\n ) {\n // Fix for https://github.com/mapbox/mapbox-gl-js/issues/3131:\n // Firefox (detected by InstallTrigger) on Mac determines e.button = 2 when\n // using Control + left click\n return 0;\n }\n return e.button;\n};\n\nDOM.remove = (node: HTMLElement) => {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n};\n"],"file":"dom.js"}
|
package/es/utils/performance.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { $window } from '@antv/l7-utils';
|
|
1
2
|
var lastFrameTime = null;
|
|
2
3
|
var frameTimes = [];
|
|
3
4
|
var minFramerateTarget = 30;
|
|
4
5
|
var frameTimeTarget = 1000 / minFramerateTarget;
|
|
5
|
-
var performance = window.performance;
|
|
6
|
+
var performance = $window.performance;
|
|
6
7
|
export var PerformanceMarkers = {
|
|
7
8
|
create: 'create',
|
|
8
9
|
load: 'load',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/performance.ts"],"names":["lastFrameTime","frameTimes","minFramerateTarget","frameTimeTarget","performance","
|
|
1
|
+
{"version":3,"sources":["../../src/utils/performance.ts"],"names":["$window","lastFrameTime","frameTimes","minFramerateTarget","frameTimeTarget","performance","PerformanceMarkers","create","load","fullLoad","PerformanceUtils","mark","marker","frame","timestamp","currTimestamp","frameTime","push","clearMetrics","clearMeasures","clearMarks","getPerformanceMetrics","loadTime","measure","duration","fullLoadTime","totalFrames","length","avgFrameTime","reduce","prev","curr","fps","droppedFrames","filter","acc","percentDroppedFrames"],"mappings":"AAAA,SAASA,OAAT,QAAwB,gBAAxB;AACA,IAAIC,aAA4B,GAAG,IAAnC;AACA,IAAIC,UAAoB,GAAG,EAA3B;AAEA,IAAMC,kBAAkB,GAAG,EAA3B;AACA,IAAMC,eAAe,GAAG,OAAOD,kBAA/B;AACA,IAAME,WAAW,GAAGL,OAAO,CAACK,WAA5B;AASA,OAAO,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,MAAM,EAAE,QADwB;AAEhCC,EAAAA,IAAI,EAAE,MAF0B;AAGhCC,EAAAA,QAAQ,EAAE;AAHsB,CAA3B;AAMP,OAAO,IAAMC,gBAAgB,GAAG;AAC9BC,EAAAA,IAD8B,gBACzBC,MADyB,EACT;AACnBP,IAAAA,WAAW,CAACM,IAAZ,CAAiBC,MAAjB;AACD,GAH6B;AAI9BC,EAAAA,KAJ8B,iBAIxBC,SAJwB,EAIL;AACvB,QAAMC,aAAa,GAAGD,SAAtB;;AACA,QAAIb,aAAa,IAAI,IAArB,EAA2B;AACzB,UAAMe,SAAS,GAAGD,aAAa,GAAGd,aAAlC;AACAC,MAAAA,UAAU,CAACe,IAAX,CAAgBD,SAAhB;AACD;;AACDf,IAAAA,aAAa,GAAGc,aAAhB;AACD,GAX6B;AAY9BG,EAAAA,YAZ8B,0BAYf;AACbjB,IAAAA,aAAa,GAAG,IAAhB;AACAC,IAAAA,UAAU,GAAG,EAAb;AACAG,IAAAA,WAAW,CAACc,aAAZ,CAA0B,UAA1B;AACAd,IAAAA,WAAW,CAACc,aAAZ,CAA0B,cAA1B;;AAGA,SAAK,IAAMP,MAAX,IAAqBN,kBAArB,EAAyC;AAEvCD,MAAAA,WAAW,CAACe,UAAZ,CAAuBd,kBAAkB,CAACM,MAAD,CAAzC;AACD;AACF,GAvB6B;AAwB9BS,EAAAA,qBAxB8B,mCAwBe;AAC3C,QAAMC,QAAQ,GAAGjB,WAAW,CAACkB,OAAZ,CACf,UADe,EAEfjB,kBAAkB,CAACC,MAFJ,EAGfD,kBAAkB,CAACE,IAHJ,EAKfgB,QALF;AAOA,QAAMC,YAAY,GAAGpB,WAAW,CAACkB,OAAZ,CACnB,cADmB,EAEnBjB,kBAAkB,CAACC,MAFA,EAGnBD,kBAAkB,CAACG,QAHA,EAKnBe,QALF;AAMA,QAAME,WAAW,GAAGxB,UAAU,CAACyB,MAA/B;AAEA,QAAMC,YAAY,GAChB1B,UAAU,CAAC2B,MAAX,CAAkB,UAACC,IAAD,EAAOC,IAAP;AAAA,aAAgBD,IAAI,GAAGC,IAAvB;AAAA,KAAlB,EAA+C,CAA/C,IAAoDL,WAApD,GAAkE,IADpE;AAEA,QAAMM,GAAG,GAAG,IAAIJ,YAAhB;AAGA,QAAMK,aAAa,GAAG/B,UAAU,CAC7BgC,MADmB,CACZ,UAAClB,SAAD;AAAA,aAAeA,SAAS,GAAGZ,eAA3B;AAAA,KADY,EAEnByB,MAFmB,CAEZ,UAACM,GAAD,EAAMJ,IAAN,EAAe;AACrB,aAAOI,GAAG,GAAG,CAACJ,IAAI,GAAG3B,eAAR,IAA2BA,eAAxC;AACD,KAJmB,EAIjB,CAJiB,CAAtB;AAKA,QAAMgC,oBAAoB,GACvBH,aAAa,IAAIP,WAAW,GAAGO,aAAlB,CAAd,GAAkD,GADpD;AAGA,WAAO;AACLX,MAAAA,QAAQ,EAARA,QADK;AAELG,MAAAA,YAAY,EAAZA,YAFK;AAGLO,MAAAA,GAAG,EAAHA,GAHK;AAILI,MAAAA,oBAAoB,EAApBA;AAJK,KAAP;AAMD;AA3D6B,CAAzB","sourcesContent":["import { $window } from '@antv/l7-utils';\nlet lastFrameTime: number | null = null;\nlet frameTimes: number[] = [];\n\nconst minFramerateTarget = 30;\nconst frameTimeTarget = 1000 / minFramerateTarget;\nconst performance = $window.performance;\n\nexport interface IPerformanceMetrics {\n loadTime: number;\n fullLoadTime: number;\n fps: number;\n percentDroppedFrames: number;\n}\n\nexport const PerformanceMarkers = {\n create: 'create',\n load: 'load',\n fullLoad: 'fullLoad',\n};\n\nexport const PerformanceUtils = {\n mark(marker: string) {\n performance.mark(marker);\n },\n frame(timestamp: number) {\n const currTimestamp = timestamp;\n if (lastFrameTime != null) {\n const frameTime = currTimestamp - lastFrameTime;\n frameTimes.push(frameTime);\n }\n lastFrameTime = currTimestamp;\n },\n clearMetrics() {\n lastFrameTime = null;\n frameTimes = [];\n performance.clearMeasures('loadTime');\n performance.clearMeasures('fullLoadTime');\n // @ts-ignore\n // tslint:disable-next-line:forin\n for (const marker in PerformanceMarkers) {\n // @ts-ignore\n performance.clearMarks(PerformanceMarkers[marker]);\n }\n },\n getPerformanceMetrics(): IPerformanceMetrics {\n const loadTime = performance.measure(\n 'loadTime',\n PerformanceMarkers.create,\n PerformanceMarkers.load,\n // @ts-ignore\n ).duration;\n\n const fullLoadTime = performance.measure(\n 'fullLoadTime',\n PerformanceMarkers.create,\n PerformanceMarkers.fullLoad,\n // @ts-ignore\n ).duration;\n const totalFrames = frameTimes.length;\n\n const avgFrameTime =\n frameTimes.reduce((prev, curr) => prev + curr, 0) / totalFrames / 1000;\n const fps = 1 / avgFrameTime;\n\n // count frames that missed our framerate target\n const droppedFrames = frameTimes\n .filter((frameTime) => frameTime > frameTimeTarget)\n .reduce((acc, curr) => {\n return acc + (curr - frameTimeTarget) / frameTimeTarget;\n }, 0);\n const percentDroppedFrames =\n (droppedFrames / (totalFrames + droppedFrames)) * 100;\n\n return {\n loadTime,\n fullLoadTime,\n fps,\n percentDroppedFrames,\n };\n },\n};\n"],"file":"performance.js"}
|