@mantou/gem 2.2.10 → 2.2.11
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/dist/gem.js +4 -4
- package/dist/gem.mjs +4 -4
- package/elements/base/gesture.d.ts +8 -0
- package/elements/base/gesture.d.ts.map +1 -1
- package/elements/base/gesture.js +89 -38
- package/elements/base/gesture.js.map +1 -1
- package/helper/theme.d.ts.map +1 -1
- package/helper/theme.js +12 -2
- package/helper/theme.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/elements/base/gesture.ts +105 -38
- package/src/helper/theme.ts +15 -2
- package/src/lib/version.ts +1 -1
- package/src/test/elements/gesture.test.ts +311 -0
- package/src/test/gem-element/decorators.test.ts +67 -0
- package/src/test/utils.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gesture.js","sourceRoot":"","sources":["../../src/elements/base/gesture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gesture.js","sourceRoot":"","sources":["../../src/elements/base/gesture.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA8BrD,wCAAwC;AACxC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,eAAe,GAAG,GAAG,CAAC,CAAC,QAAQ;AACrC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAShC,mGAAmG;AACnG,MAAM,UAAU,QAAQ,CACtB,UAAyB,EACzB,KAA+B,EAC/B,GAAkB,EAClB,YAA+C,EAC/C,YAA+C;IAE/C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;IACrF,IAAI,MAAM,GAAkB,GAAG,CAAC;IAChC,IAAI,QAAQ,GAAG,MAAM,CAAC;IACtB,IAAI,IAAuC,CAAC;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;YAAE,SAAS;QACrD,gCAAgC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzF,MAAM,GAAG;YACP,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK;YACvE,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK;YACvE,SAAS;SACV,CAAC;QACF,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACxC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC;YAC1E,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;gBAChD,QAAQ,GAAG,MAAM,CAAC;YACpB,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,oBAAoB,EAAE,CAAC;gBAC1E,yBAAyB;gBACzB,MAAM,GAAG,QAAQ,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,SAAS,IAAI,UAAU;YAAE,MAAM;IACrC,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAClD,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO;IAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACxC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO;IAC1C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClC,IAAI,QAAQ,GAAG,kBAAkB,IAAI,KAAK,GAAG,eAAe;QAAE,OAAO;IACrE,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACnG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,OAAO,CACd,CAAS,EACT,CAAS,EACT,CAAS,EACT,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAkB,EAC5C,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAkB,EAC5C,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAkB;IAE5C,+CAA+C;IAC/C,4DAA4D;IAC5D,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CACrH,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;CAQhB,CAAC;AAEF;;;;GAIG;IAEU,iBAAiB;4BAD7B,YAAY,CAAC,KAAK,CAAC;;;;sBACmB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAAlB,SAAQ,WAAU;;;;+BAC9C,OAAO;iCACP,OAAO;kCACP,OAAO;iCACP,OAAO;iCACP,OAAO;+BACP,OAAO;uCAEP,SAAS;oCAET,KAAK;wCA8LL,OAAO,EAAE;YAvMD,2JAAA,GAAG,6BAAH,GAAG,iFAA0B;YAC7B,iKAAA,KAAK,6BAAL,KAAK,qFAA4B;YACjC,oKAAA,MAAM,6BAAN,MAAM,uFAA6B;YACnC,iKAAA,KAAK,6BAAL,KAAK,qFAA4B;YACjC,iKAAA,KAAK,6BAAL,KAAK,qFAAwB;YAC7B,2JAAA,GAAG,6BAAH,GAAG,iFAAwB;YAEzB,mLAAA,WAAW,6BAAX,WAAW,iGAAS;YAExB,0KAAA,QAAQ,6BAAR,QAAQ,2FAAU;YA+LzB,uIAAA,KAAK,yBAAL,KAAK,6BAAL,KAAK,mGAUH;YAnNJ,6KAuNC;;;YAvNY,uDAAiB;;QACnB,GAAG,sDAA0B;QAC7B,KAAK,2GAA4B;QACjC,MAAM,8GAA6B;QACnC,KAAK,8GAA4B;QACjC,KAAK,6GAAwB;QAC7B,GAAG,2GAAwB;QAEzB,WAAW,iHAAS;QAExB,QAAQ,sHAAU;QAEzB,QAAQ,0DAAG,KAAK,EAAC,CAAC,qBAAqB;QACvC,iBAAiB,GAAG,KAAK,CAAC,CAAC,qBAAqB;QAChD,WAAW,GAAG,KAAK,CAAC;QACpB,WAAW,GAA2C,CAAC,CAAC;QAExD,cAAc,GAA8B,IAAI,GAAG,EAAE,CAAC;QAEtD,SAAS,GAAG,CAAC,SAAiB,EAAE,EAAE;YAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC,CAAC;QAEF,cAAc,GAAG,CAAC,SAAiB,EAAE,EAAE;YACrC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAiB,CAAC;QAC5D,CAAC,CAAC;QAEF,iBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE;YACxC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC5C,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACrB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACjC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,aAAa,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,IACE,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3C,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC7B,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3C,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;cACtD,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,aAAa,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,IACE,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC7B,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3C,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;cAClD,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,QAAQ,GAAG,CAAC,GAAiB,EAAE,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;oBACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAChC,CAAC,EAAE,GAAG,CAAC,CAAC;YACV,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,GAAG,CAAC,GAAiB,EAAE,EAAE;YAC9B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;YAC/E,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU;oBAAE,OAAO;gBACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC;gBACvD,oCAAoC;gBACpC,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBACtB,iDAAiD;gBACjD,gEAAgE;gBAChE,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;gBAC7C,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;gBAC7C,MAAM,IAAI,GAAG;oBACX,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;oBAC3C,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;oBAC3C,OAAO;oBACP,OAAO;oBACP,SAAS;oBACT,SAAS;oBACT,SAAS;oBACT,OAAO,EAAE,IAAI,CAAC,QAAQ;iBACvB,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEf,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAmB,CAAC;oBAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC;oBAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,CAAC,QAAQ,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CACpG,CAAC;oBACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAC9B,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAClF,CAAC;oBACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC1D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC1D,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,EAAE,CAAC,CAAC;oBAC1D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/G,CAAC;qBAAM,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;oBAC5B,sCAAsC;oBACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAChC,CAAC;gBAED,MAAM,QAAQ,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,IACE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ;oBAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ;oBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ;oBACtD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,EACtD,CAAC;oBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,UAAU,GAAG,CAAC,GAAiB,EAAE,EAAE;YACjC,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,iDAAiD;YACjD,MAAM,MAAM,GAAG,oBAAoB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QAEF,SAAS,GAAG,CAAC,GAAiB,EAAgC,EAAE;YAC9D,OAAO,QAAQ,CACb,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAC7B,GAAG,EACH,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,CACnB,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,GAAG,KAAK,EAAE,GAAiB,EAAE,EAAE;YACnC,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO;YAChD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,yEAAyE;YACzE,MAAM,KAAK,GACT,GAAG,CAAC,IAAI,KAAK,WAAW;gBACxB,CAAC,IAAI,CAAC,QAAQ;gBACd,CAAC,IAAI,CAAC,WAAW;gBACjB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACtB,kCAAkC;YAClC,IAAI,KAAK;gBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE7B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,CAAC;YAC7C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;YAED,mCAAmC;YACnC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9E,CAAC,CAAC;QAEF,eAAe,GAAG,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAEvD,YAAY,GAAG,CAAC,GAAe,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,iBAAiB;gBAAE,GAAG,CAAC,cAAc,EAAE,CAAC;QACnD,CAAC,CAAC;QAGF,KAAK,uDAAG,GAAG,EAAE;YACX,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe;YACnE,gCAAgC;YAChC,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACzD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC,EAAC;QAEF,oBAAoB;QACpB,QAAQ,8DAAkC,IAAI,GAAG,EAAE,EAAC;;;;SAtNzC,iBAAiB"}
|
package/helper/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAC/B,KAAK,CAAC,OAAO,CAAC,GAAG;KACd,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,OAAO,GACvC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAC1E,CAAC,GAAG,MAAM;CACf,CAAC;AAKJ,aAAa;AACb,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GACX,KAAK,CAAC,CAAC,CAAC,CAC5C;AAED,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GACX,KAAK,CAAC,CAAC,CAAC,CAC5C;AAwCD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,YAE/E;AAED,WAAW;AACX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,YAIzE;AAED,eAAe;AACf,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,qBAE3G;AAED;;;;;;;;;;;KAWK;AACL,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAC/B,KAAK,CAAC,OAAO,CAAC,GAAG;KACd,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,OAAO,GACvC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAC1E,CAAC,GAAG,MAAM;CACf,CAAC;AAKJ,aAAa;AACb,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GACX,KAAK,CAAC,CAAC,CAAC,CAC5C;AAED,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GACX,KAAK,CAAC,CAAC,CAAC,CAC5C;AAwCD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,YAE/E;AAED,WAAW;AACX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,YAIzE;AAED,eAAe;AACf,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,qBAE3G;AAED;;;;;;;;;;;KAWK;AACL,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,GA6BpC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GA1B7C,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,+BAC/C,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,MAG1D,GAAG,GAAG,EAAE,gGAA+B,UAsB4B,CAC9E"}
|
package/helper/theme.js
CHANGED
|
@@ -80,8 +80,18 @@ export function createDecoratorTheme(themeObj) {
|
|
|
80
80
|
return (_, { addInitializer, access }) => {
|
|
81
81
|
addInitializer(function () {
|
|
82
82
|
const theme = createThemeFromProps({ ...themeObj }, props);
|
|
83
|
-
|
|
84
|
-
this.
|
|
83
|
+
const style = theme[SheetToken].getStyle(this, true);
|
|
84
|
+
this.internals.sheets.push(style);
|
|
85
|
+
this.memo(() => {
|
|
86
|
+
const next = access.get(this).apply(this);
|
|
87
|
+
const rule = style.cssRules[0];
|
|
88
|
+
const eleTarget = this.shadowRoot
|
|
89
|
+
? rule
|
|
90
|
+
: style.element?.sheet?.cssRules[0]?.cssRules?.[0];
|
|
91
|
+
for (const key in props) {
|
|
92
|
+
eleTarget?.style.setProperty(props[key], next[key]);
|
|
93
|
+
}
|
|
94
|
+
}, getDep && (() => getDep(this)));
|
|
85
95
|
});
|
|
86
96
|
};
|
|
87
97
|
};
|
package/helper/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAS1E,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AACpC,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AAEpC,aAAa;AACb,MAAM,UAAU,aAAa,CAAI,KAAe;IAC9C,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAa,CAAC;AAC9C,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAI,KAAe;IAC9C,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAa,CAAC;AAC9C,CAAC;AAED,SAAS,oBAAoB,CAAoC,QAAW,EAAE,QAAgC,EAAE;IAC9G,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,WAAW,CAAI,QAAQ,CAAC,CAAC;IACvC,MAAM,KAAK,GAAQ,IAAI,KAAK,CAC1B,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,OAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EACpF;QACE,GAAG,CAAC,MAAW,EAAE,GAAW;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;gBACjE,IAAI,MAAM;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,QAAQ,CAAC;YAC3G,CAAC;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;KACF,CACF,CAAC;IACF,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEhC,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,gBAAgB,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBAClD,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YACpC,CAAC;YACD,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,UAAU,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,aAAa,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE;QAClB,aAAa,EAAE,CAAC;QAChB,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,KAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAoC,QAAW;IAC9E,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,WAAW;AACX,MAAM,UAAU,WAAW,CAAoC,QAAW;IACxE,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,eAAe;AACf,MAAM,UAAU,mBAAmB,CAAoC,KAAe,EAAE,QAAoB;IAC1G,OAAO,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;KAWK;AACL,MAAM,UAAU,oBAAoB,CAAoC,QAAW;IACjF,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,CACb,MAAkE,EAClE,EAAE;QAEF,OAAO,CAAC,CAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAO,EAAE,EAAE;YACjD,cAAc,CAAC;gBACb,MAAM,KAAK,GAAG,oBAAoB,CAAC,EAAE,GAAG,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC3D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "2.2.
|
|
1
|
+
export declare const version = "2.2.11";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '2.2.
|
|
1
|
+
export const version = '2.2.11';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -30,6 +30,76 @@ export interface RotateEventDetail {
|
|
|
30
30
|
rotate: number;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
// 甩动手感的经验参数,非 UIKit 的公开阈值;坐标单位为 CSS px。
|
|
34
|
+
const SWIPE_TIME_WINDOW = 100;
|
|
35
|
+
const SWIPE_MIN_SPEED = 0.3; // px/ms
|
|
36
|
+
const SWIPE_MIN_DISTANCE = 20;
|
|
37
|
+
const SWIPE_DIRECTION_SLOP = 10;
|
|
38
|
+
|
|
39
|
+
/** Viewport coordinates in CSS pixels and a monotonic timestamp in milliseconds. */
|
|
40
|
+
export interface GestureSample {
|
|
41
|
+
clientX: number;
|
|
42
|
+
clientY: number;
|
|
43
|
+
timeStamp: number;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Detect the final flick from chronological samples, including the release position and pause. */
|
|
47
|
+
export function getSwipe(
|
|
48
|
+
startEvent: GestureSample,
|
|
49
|
+
moves: readonly GestureSample[],
|
|
50
|
+
evt: GestureSample,
|
|
51
|
+
getMovementX?: (x: number, y: number) => number,
|
|
52
|
+
getMovementY?: (x: number, y: number) => number,
|
|
53
|
+
): SwipeEventDetail | undefined {
|
|
54
|
+
const targetTime = Math.max(startEvent.timeStamp, evt.timeStamp - SWIPE_TIME_WINDOW);
|
|
55
|
+
let sample: GestureSample = evt;
|
|
56
|
+
let furthest = sample;
|
|
57
|
+
let axis: 'clientX' | 'clientY' | undefined;
|
|
58
|
+
let sign = 0;
|
|
59
|
+
|
|
60
|
+
for (let i = moves.length - 1; i >= -1; i--) {
|
|
61
|
+
const previous = i < 0 ? startEvent : moves[i];
|
|
62
|
+
if (previous.timeStamp >= sample.timeStamp) continue;
|
|
63
|
+
// 以抬手时间为窗口终点,插值边界,避免事件采样频率影响速度。
|
|
64
|
+
const timeStamp = Math.max(targetTime, previous.timeStamp);
|
|
65
|
+
const ratio = (timeStamp - previous.timeStamp) / (sample.timeStamp - previous.timeStamp);
|
|
66
|
+
sample = {
|
|
67
|
+
clientX: previous.clientX + (sample.clientX - previous.clientX) * ratio,
|
|
68
|
+
clientY: previous.clientY + (sample.clientY - previous.clientY) * ratio,
|
|
69
|
+
timeStamp,
|
|
70
|
+
};
|
|
71
|
+
const dx = evt.clientX - sample.clientX;
|
|
72
|
+
const dy = evt.clientY - sample.clientY;
|
|
73
|
+
if (!axis && Math.max(Math.abs(dx), Math.abs(dy)) >= SWIPE_DIRECTION_SLOP) {
|
|
74
|
+
axis = Math.abs(dx) >= Math.abs(dy) ? 'clientX' : 'clientY';
|
|
75
|
+
sign = Math.sign(evt[axis] - sample[axis]);
|
|
76
|
+
}
|
|
77
|
+
if (axis) {
|
|
78
|
+
if ((furthest[axis] - sample[axis]) * sign >= 0) {
|
|
79
|
+
furthest = sample;
|
|
80
|
+
} else if ((sample[axis] - furthest[axis]) * sign >= SWIPE_DIRECTION_SLOP) {
|
|
81
|
+
// 明显回拉时只取最后一段,微抖不改变甩动方向。
|
|
82
|
+
sample = furthest;
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (timeStamp <= targetTime) break;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const duration = evt.timeStamp - sample.timeStamp;
|
|
90
|
+
if (duration <= 0) return;
|
|
91
|
+
const dx = evt.clientX - sample.clientX;
|
|
92
|
+
const dy = evt.clientY - sample.clientY;
|
|
93
|
+
const horizontal = Math.abs(dx) > Math.abs(dy);
|
|
94
|
+
if (Math.abs(dx) === Math.abs(dy)) return;
|
|
95
|
+
const movement = horizontal ? (getMovementX?.(dx, dy) ?? dx) : (getMovementY?.(dx, dy) ?? dy);
|
|
96
|
+
const distance = Math.abs(movement);
|
|
97
|
+
const speed = distance / duration;
|
|
98
|
+
if (distance < SWIPE_MIN_DISTANCE || speed < SWIPE_MIN_SPEED) return;
|
|
99
|
+
const direction = horizontal ? (movement > 0 ? 'right' : 'left') : movement > 0 ? 'bottom' : 'top';
|
|
100
|
+
return { direction, speed };
|
|
101
|
+
}
|
|
102
|
+
|
|
33
103
|
function angleAB(
|
|
34
104
|
a: number,
|
|
35
105
|
b: number,
|
|
@@ -75,6 +145,7 @@ export class GemGestureElement extends GemElement {
|
|
|
75
145
|
|
|
76
146
|
#pressed = false; // 触发 press 之后不触发其他事件
|
|
77
147
|
#gestureTriggered = false; // 会排除 touchAction 方向
|
|
148
|
+
#multiTouch = false;
|
|
78
149
|
#pressTimer: ReturnType<typeof setTimeout> | number = 0;
|
|
79
150
|
|
|
80
151
|
#startEventMap: Map<number, PointerEvent> = new Map();
|
|
@@ -88,7 +159,7 @@ export class GemGestureElement extends GemElement {
|
|
|
88
159
|
};
|
|
89
160
|
|
|
90
161
|
#getOtherLastMove = (pointerId: number) => {
|
|
91
|
-
for (const id of this.
|
|
162
|
+
for (const id of this.#startEventMap.keys()) {
|
|
92
163
|
if (id !== pointerId) {
|
|
93
164
|
const moves = this.#getMoves(id);
|
|
94
165
|
return moves[moves.length - 1] || this.#getStartEvent(id);
|
|
@@ -129,6 +200,7 @@ export class GemGestureElement extends GemElement {
|
|
|
129
200
|
};
|
|
130
201
|
|
|
131
202
|
#onStart = (evt: PointerEvent) => {
|
|
203
|
+
this.#multiTouch = this.#startEventMap.size > 0;
|
|
132
204
|
this.grabbing = true;
|
|
133
205
|
evt.stopPropagation();
|
|
134
206
|
this.setPointerCapture(evt.pointerId);
|
|
@@ -150,6 +222,7 @@ export class GemGestureElement extends GemElement {
|
|
|
150
222
|
if (this.hasPointerCapture(pointerId)) {
|
|
151
223
|
const moves = this.#getMoves(pointerId);
|
|
152
224
|
const startEvent = this.#getStartEvent(pointerId);
|
|
225
|
+
if (!startEvent) return;
|
|
153
226
|
const lastMove = moves[moves.length - 1] || startEvent;
|
|
154
227
|
// Firefox contextmenu after trigger
|
|
155
228
|
if (!lastMove) return;
|
|
@@ -170,7 +243,7 @@ export class GemGestureElement extends GemElement {
|
|
|
170
243
|
moves.push(move);
|
|
171
244
|
this.pan(move);
|
|
172
245
|
|
|
173
|
-
if (this.
|
|
246
|
+
if (this.#startEventMap.size !== 1) {
|
|
174
247
|
this.#gestureTriggered = true;
|
|
175
248
|
const secondaryPoint = this.#getOtherLastMove(pointerId) as PanEventDetail;
|
|
176
249
|
const moveLen = Math.sqrt(movementX ** 2 + movementY ** 2);
|
|
@@ -204,58 +277,52 @@ export class GemGestureElement extends GemElement {
|
|
|
204
277
|
#onMoveSet = (evt: PointerEvent) => {
|
|
205
278
|
evt.stopPropagation();
|
|
206
279
|
// https://bugs.webkit.org/show_bug.cgi?id=210454
|
|
207
|
-
|
|
208
|
-
|
|
280
|
+
const events = 'getCoalescedEvents' in evt ? evt.getCoalescedEvents() : [];
|
|
281
|
+
if (events.length) {
|
|
282
|
+
events.forEach((event) => this.#onMove(event));
|
|
209
283
|
} else {
|
|
210
284
|
this.#onMove(evt);
|
|
211
285
|
}
|
|
212
286
|
};
|
|
213
287
|
|
|
288
|
+
#getSwipe = (evt: PointerEvent): SwipeEventDetail | undefined => {
|
|
289
|
+
return getSwipe(
|
|
290
|
+
this.#getStartEvent(evt.pointerId),
|
|
291
|
+
this.#getMoves(evt.pointerId),
|
|
292
|
+
evt,
|
|
293
|
+
this.#getMovementX,
|
|
294
|
+
this.#getMovementY,
|
|
295
|
+
);
|
|
296
|
+
};
|
|
297
|
+
|
|
214
298
|
#onEnd = async (evt: PointerEvent) => {
|
|
215
299
|
evt.stopPropagation();
|
|
216
300
|
const { pointerId } = evt;
|
|
301
|
+
if (!this.#startEventMap.has(pointerId)) return;
|
|
217
302
|
clearTimeout(this.#pressTimer);
|
|
218
303
|
|
|
219
|
-
|
|
304
|
+
const moves = this.movesMap.get(pointerId);
|
|
305
|
+
// auto release: https://javascript.info/pointer-events#pointer-capturing
|
|
306
|
+
const swipe =
|
|
307
|
+
evt.type === 'pointerup' &&
|
|
308
|
+
!this.#pressed &&
|
|
309
|
+
!this.#multiTouch &&
|
|
310
|
+
this.hasPointerCapture(pointerId) &&
|
|
311
|
+
this.#getSwipe(evt);
|
|
312
|
+
// end 处理器需要先拿到本次甩动速度,才能决定回弹或继续滑动。
|
|
313
|
+
if (swipe) this.swipe(swipe);
|
|
314
|
+
|
|
315
|
+
this.#startEventMap.delete(pointerId);
|
|
316
|
+
const ended = this.#startEventMap.size === 0;
|
|
317
|
+
if (ended) {
|
|
220
318
|
this.grabbing = false;
|
|
221
319
|
this.#gestureTriggered = false;
|
|
222
320
|
this.end(evt);
|
|
223
321
|
}
|
|
224
322
|
|
|
225
|
-
//
|
|
226
|
-
if (!this.#pressed && this.hasPointerCapture(pointerId)) {
|
|
227
|
-
const moves = this.#getMoves(pointerId);
|
|
228
|
-
|
|
229
|
-
if (moves.length > 2) {
|
|
230
|
-
const { x, y, timeStamp, clientX, clientY } = moves[moves.length - 1];
|
|
231
|
-
const move2 = moves[moves.length - 3];
|
|
232
|
-
if (Math.abs(x) > 2) {
|
|
233
|
-
if (Math.abs(x) > Math.abs(y)) {
|
|
234
|
-
const speed = Math.abs(move2.clientX - clientX) / (timeStamp - move2.timeStamp);
|
|
235
|
-
if (x > 0) {
|
|
236
|
-
this.swipe({ direction: 'right', speed });
|
|
237
|
-
} else {
|
|
238
|
-
this.swipe({ direction: 'left', speed });
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
if (Math.abs(y) > 2) {
|
|
243
|
-
const speed = Math.abs(move2.clientY - clientY) / (timeStamp - move2.timeStamp);
|
|
244
|
-
if (Math.abs(y) > Math.abs(x)) {
|
|
245
|
-
if (y > 0) {
|
|
246
|
-
this.swipe({ direction: 'bottom', speed });
|
|
247
|
-
} else {
|
|
248
|
-
this.swipe({ direction: 'top', speed });
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
this.#startEventMap.delete(pointerId);
|
|
256
|
-
// 确保外部 end 事件处理器中可以读取到
|
|
323
|
+
// 确保外部 end 事件处理器中可以读取到,且不删除新手势的记录。
|
|
257
324
|
await Promise.resolve();
|
|
258
|
-
this.movesMap.delete(pointerId);
|
|
325
|
+
if (this.movesMap.get(pointerId) === moves) this.movesMap.delete(pointerId);
|
|
259
326
|
};
|
|
260
327
|
|
|
261
328
|
#preventDefault = (evt: Event) => evt.preventDefault();
|
package/src/helper/theme.ts
CHANGED
|
@@ -104,8 +104,21 @@ export function createDecoratorTheme<T extends Record<string, unknown>>(themeObj
|
|
|
104
104
|
return (_: any, { addInitializer, access }: Ctx) => {
|
|
105
105
|
addInitializer(function (this: E) {
|
|
106
106
|
const theme = createThemeFromProps({ ...themeObj }, props);
|
|
107
|
-
|
|
108
|
-
this.
|
|
107
|
+
const style = theme[SheetToken].getStyle(this, true);
|
|
108
|
+
this.internals.sheets.push(style);
|
|
109
|
+
this.memo(
|
|
110
|
+
() => {
|
|
111
|
+
const next = access.get(this).apply(this);
|
|
112
|
+
const rule = style.cssRules[0] as CSSStyleRule;
|
|
113
|
+
const eleTarget = this.shadowRoot
|
|
114
|
+
? rule
|
|
115
|
+
: ((style.element?.sheet?.cssRules[0] as CSSStyleRule)?.cssRules?.[0] as CSSStyleRule);
|
|
116
|
+
for (const key in props) {
|
|
117
|
+
eleTarget?.style.setProperty(props[key], next[key]);
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
getDep && (() => getDep(this) as any),
|
|
121
|
+
);
|
|
109
122
|
});
|
|
110
123
|
};
|
|
111
124
|
};
|
package/src/lib/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '2.2.
|
|
1
|
+
export const version = '2.2.11';
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import type { GemGestureElement, SwipeEventDetail } from '../../elements/gesture';
|
|
2
|
+
import { html } from '../../lib/element';
|
|
3
|
+
import { aTimeout, expect, fixture } from '../utils';
|
|
4
|
+
|
|
5
|
+
import '../../elements/gesture';
|
|
6
|
+
|
|
7
|
+
type Sample = [timeStamp: number, clientX: number, clientY?: number];
|
|
8
|
+
|
|
9
|
+
function pointer(type: string, [timeStamp, clientX, clientY = 0]: Sample, pointerId = 1) {
|
|
10
|
+
const event = new PointerEvent(type, {
|
|
11
|
+
bubbles: true,
|
|
12
|
+
pointerType: 'touch',
|
|
13
|
+
isPrimary: pointerId === 1,
|
|
14
|
+
pointerId,
|
|
15
|
+
clientX,
|
|
16
|
+
clientY,
|
|
17
|
+
});
|
|
18
|
+
// timeStamp 是只读属性,PointerEventInit 不接受它。
|
|
19
|
+
Object.defineProperty(event, 'timeStamp', { value: timeStamp });
|
|
20
|
+
return event;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async function setupGesture(touchAction = '') {
|
|
24
|
+
const el: GemGestureElement = await fixture(html`<gem-gesture touch-action=${touchAction}></gem-gesture>`);
|
|
25
|
+
const captured = new Set<number>();
|
|
26
|
+
el.setPointerCapture = (id) => captured.add(id);
|
|
27
|
+
el.releasePointerCapture = (id) => captured.delete(id);
|
|
28
|
+
el.hasPointerCapture = (id) => captured.has(id);
|
|
29
|
+
const swipes: SwipeEventDetail[] = [];
|
|
30
|
+
const events: string[] = [];
|
|
31
|
+
el.addEventListener('swipe', (evt: CustomEvent<SwipeEventDetail>) => {
|
|
32
|
+
swipes.push(evt.detail);
|
|
33
|
+
events.push('swipe');
|
|
34
|
+
});
|
|
35
|
+
el.addEventListener('end', () => events.push('end'));
|
|
36
|
+
const dispatch = (type: string, sample: Sample, id = 1) => el.dispatchEvent(pointer(type, sample, id));
|
|
37
|
+
return { el, swipes, events, dispatch };
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
describe('GemGestureElement swipe', () => {
|
|
41
|
+
for (const [direction, x, y] of [
|
|
42
|
+
['right', 60, 0],
|
|
43
|
+
['left', -60, 0],
|
|
44
|
+
['bottom', 0, 60],
|
|
45
|
+
['top', 0, -60],
|
|
46
|
+
] as const) {
|
|
47
|
+
it(`emits ${direction} with release speed before end`, async () => {
|
|
48
|
+
const { el, swipes, events, dispatch } = await setupGesture();
|
|
49
|
+
dispatch('pointerdown', [0, 100, 100]);
|
|
50
|
+
dispatch('pointermove', [50, 100 + x, 100 + y]);
|
|
51
|
+
let movesAtEnd = 0;
|
|
52
|
+
el.addEventListener('end', () => {
|
|
53
|
+
movesAtEnd = el.movesMap.get(1)!.length;
|
|
54
|
+
expect(el.grabbing).to.equal(false);
|
|
55
|
+
});
|
|
56
|
+
dispatch('pointerup', [60, 100 + x, 100 + y]);
|
|
57
|
+
await Promise.resolve();
|
|
58
|
+
expect(swipes).to.deep.equal([{ direction, speed: 1 }]);
|
|
59
|
+
expect(events).to.deep.equal(['swipe', 'end']);
|
|
60
|
+
expect(movesAtEnd).to.equal(1);
|
|
61
|
+
await Promise.resolve();
|
|
62
|
+
expect(el.movesMap.size).to.equal(0);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
for (const frequency of [30, 60, 120, 240]) {
|
|
67
|
+
it(`samples the same release velocity at ${frequency} Hz`, async () => {
|
|
68
|
+
const { swipes, dispatch } = await setupGesture();
|
|
69
|
+
dispatch('pointerdown', [0, 0]);
|
|
70
|
+
for (let time = 1000 / frequency; time < 250; time += 1000 / frequency) {
|
|
71
|
+
dispatch('pointermove', [time, time <= 100 ? time * 0.2 : 20 + (time - 100) * 0.8]);
|
|
72
|
+
}
|
|
73
|
+
dispatch('pointerup', [250, 140]);
|
|
74
|
+
await Promise.resolve();
|
|
75
|
+
expect(swipes).to.have.lengthOf(1);
|
|
76
|
+
expect(swipes[0].direction).to.equal('right');
|
|
77
|
+
expect(swipes[0].speed).to.be.closeTo(0.8, 0.000001);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
it('interpolates the window boundary instead of including stale movement', async () => {
|
|
82
|
+
const { swipes, dispatch } = await setupGesture();
|
|
83
|
+
dispatch('pointerdown', [0, 0]);
|
|
84
|
+
dispatch('pointermove', [50, 5]);
|
|
85
|
+
dispatch('pointermove', [150, 105]);
|
|
86
|
+
dispatch('pointerup', [180, 135]);
|
|
87
|
+
await Promise.resolve();
|
|
88
|
+
expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it('includes movement delivered only on pointerup', async () => {
|
|
92
|
+
const { swipes, dispatch } = await setupGesture();
|
|
93
|
+
dispatch('pointerdown', [0, 0]);
|
|
94
|
+
dispatch('pointerup', [50, 50]);
|
|
95
|
+
await Promise.resolve();
|
|
96
|
+
expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it('reduces velocity when the finger pauses briefly before release', async () => {
|
|
100
|
+
const { swipes, dispatch } = await setupGesture();
|
|
101
|
+
dispatch('pointerdown', [0, 0]);
|
|
102
|
+
dispatch('pointermove', [40, 40]);
|
|
103
|
+
dispatch('pointerup', [80, 40]);
|
|
104
|
+
await Promise.resolve();
|
|
105
|
+
expect(swipes).to.deep.equal([{ direction: 'right', speed: 0.5 }]);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
for (const [name, samples] of [
|
|
109
|
+
[
|
|
110
|
+
'slow drag',
|
|
111
|
+
[
|
|
112
|
+
[0, 0],
|
|
113
|
+
[150, 30],
|
|
114
|
+
[180, 35],
|
|
115
|
+
],
|
|
116
|
+
],
|
|
117
|
+
[
|
|
118
|
+
'tap jitter',
|
|
119
|
+
[
|
|
120
|
+
[0, 0],
|
|
121
|
+
[10, 8],
|
|
122
|
+
[20, 7],
|
|
123
|
+
],
|
|
124
|
+
],
|
|
125
|
+
[
|
|
126
|
+
'paused drag',
|
|
127
|
+
[
|
|
128
|
+
[0, 0],
|
|
129
|
+
[40, 80],
|
|
130
|
+
[140, 80],
|
|
131
|
+
],
|
|
132
|
+
],
|
|
133
|
+
[
|
|
134
|
+
'diagonal without a dominant axis',
|
|
135
|
+
[
|
|
136
|
+
[0, 0],
|
|
137
|
+
[40, 40, 40],
|
|
138
|
+
[50, 50, 50],
|
|
139
|
+
],
|
|
140
|
+
],
|
|
141
|
+
[
|
|
142
|
+
'zero duration',
|
|
143
|
+
[
|
|
144
|
+
[0, 0],
|
|
145
|
+
[0, 50],
|
|
146
|
+
[0, 80],
|
|
147
|
+
],
|
|
148
|
+
],
|
|
149
|
+
[
|
|
150
|
+
'short reversal',
|
|
151
|
+
[
|
|
152
|
+
[0, 0],
|
|
153
|
+
[30, 100],
|
|
154
|
+
[60, 85],
|
|
155
|
+
],
|
|
156
|
+
],
|
|
157
|
+
] satisfies [string, Sample[]][]) {
|
|
158
|
+
it(`does not swipe on ${name}`, async () => {
|
|
159
|
+
const { swipes, dispatch } = await setupGesture();
|
|
160
|
+
dispatch('pointerdown', samples[0]);
|
|
161
|
+
dispatch('pointermove', samples[1]);
|
|
162
|
+
dispatch('pointerup', samples[2]);
|
|
163
|
+
await Promise.resolve();
|
|
164
|
+
expect(swipes).to.deep.equal([]);
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
it('uses the final flick direction after reversing a drag', async () => {
|
|
169
|
+
const { swipes, dispatch } = await setupGesture();
|
|
170
|
+
dispatch('pointerdown', [0, 0]);
|
|
171
|
+
dispatch('pointermove', [40, 100]);
|
|
172
|
+
dispatch('pointermove', [60, 80]);
|
|
173
|
+
dispatch('pointerup', [80, 60]);
|
|
174
|
+
await Promise.resolve();
|
|
175
|
+
expect(swipes).to.deep.equal([{ direction: 'left', speed: 1 }]);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
it('ignores a small backwards jitter at release', async () => {
|
|
179
|
+
const { swipes, dispatch } = await setupGesture();
|
|
180
|
+
dispatch('pointerdown', [0, 0]);
|
|
181
|
+
dispatch('pointermove', [50, 60]);
|
|
182
|
+
dispatch('pointerup', [60, 58]);
|
|
183
|
+
await Promise.resolve();
|
|
184
|
+
expect(swipes).to.have.lengthOf(1);
|
|
185
|
+
expect(swipes[0].direction).to.equal('right');
|
|
186
|
+
expect(swipes[0].speed).to.be.closeTo(58 / 60, 0.000001);
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
for (const [touchAction, x, y] of [
|
|
190
|
+
['pan-x', 50, 0],
|
|
191
|
+
['pan-y', 0, 50],
|
|
192
|
+
['pan-right', 50, 0],
|
|
193
|
+
['pan-left', -50, 0],
|
|
194
|
+
['pan-down', 0, 50],
|
|
195
|
+
['pan-up', 0, -50],
|
|
196
|
+
] as const) {
|
|
197
|
+
it(`respects touch-action=${touchAction}`, async () => {
|
|
198
|
+
const { swipes, dispatch } = await setupGesture(touchAction);
|
|
199
|
+
dispatch('pointerdown', [0, 0]);
|
|
200
|
+
dispatch('pointermove', [40, x, y]);
|
|
201
|
+
dispatch('pointerup', [50, x, y]);
|
|
202
|
+
await Promise.resolve();
|
|
203
|
+
expect(swipes).to.deep.equal([]);
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
it('allows horizontal flicks with touch-action=pan-y', async () => {
|
|
208
|
+
const { swipes, dispatch } = await setupGesture('pan-y');
|
|
209
|
+
dispatch('pointerdown', [0, 0]);
|
|
210
|
+
dispatch('pointermove', [40, 50, 2]);
|
|
211
|
+
dispatch('pointerup', [50, 50, 2]);
|
|
212
|
+
await Promise.resolve();
|
|
213
|
+
expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
for (const type of ['pointercancel', 'pointerleave']) {
|
|
217
|
+
it(`does not swipe on ${type} or duplicate end events`, async () => {
|
|
218
|
+
const { swipes, events, dispatch } = await setupGesture();
|
|
219
|
+
dispatch('pointerdown', [0, 0]);
|
|
220
|
+
dispatch('pointermove', [40, 50]);
|
|
221
|
+
dispatch(type, [50, 50]);
|
|
222
|
+
dispatch('pointerup', [50, 50]);
|
|
223
|
+
await Promise.resolve();
|
|
224
|
+
expect(swipes).to.deep.equal([]);
|
|
225
|
+
expect(events).to.deep.equal(['end']);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
it('ignores end events from pointers outside the gesture', async () => {
|
|
230
|
+
const { el, events, dispatch } = await setupGesture();
|
|
231
|
+
dispatch('pointerdown', [0, 0]);
|
|
232
|
+
dispatch('pointerleave', [10, 0], 2);
|
|
233
|
+
expect(events).to.deep.equal([]);
|
|
234
|
+
expect(el.grabbing).to.equal(true);
|
|
235
|
+
dispatch('pointercancel', [20, 0]);
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
it('does not swipe after losing pointer capture', async () => {
|
|
239
|
+
const { el, swipes, dispatch } = await setupGesture();
|
|
240
|
+
dispatch('pointerdown', [0, 0]);
|
|
241
|
+
dispatch('pointermove', [40, 50]);
|
|
242
|
+
el.releasePointerCapture(1);
|
|
243
|
+
dispatch('pointerup', [50, 50]);
|
|
244
|
+
await Promise.resolve();
|
|
245
|
+
expect(swipes).to.deep.equal([]);
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
it('suppresses both fingers of a multitouch gesture and resets for the next gesture', async () => {
|
|
249
|
+
const { el, swipes, events, dispatch } = await setupGesture();
|
|
250
|
+
dispatch('pointerdown', [0, 0]);
|
|
251
|
+
dispatch('pointerdown', [10, 100], 2);
|
|
252
|
+
dispatch('pointermove', [30, 30]);
|
|
253
|
+
dispatch('pointerup', [40, 40]);
|
|
254
|
+
await Promise.resolve();
|
|
255
|
+
expect(el.grabbing).to.equal(true);
|
|
256
|
+
expect(events).to.deep.equal([]);
|
|
257
|
+
await Promise.resolve();
|
|
258
|
+
dispatch('pointermove', [60, 150], 2);
|
|
259
|
+
dispatch('pointerup', [80, 170], 2);
|
|
260
|
+
await Promise.resolve();
|
|
261
|
+
expect(swipes).to.deep.equal([]);
|
|
262
|
+
expect(events).to.deep.equal(['end']);
|
|
263
|
+
dispatch('pointerdown', [100, 0]);
|
|
264
|
+
dispatch('pointermove', [140, 50]);
|
|
265
|
+
dispatch('pointerup', [150, 50]);
|
|
266
|
+
await Promise.resolve();
|
|
267
|
+
expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
it('does not swipe after a long press', async () => {
|
|
271
|
+
const { el, swipes, dispatch } = await setupGesture();
|
|
272
|
+
const pressed = new Promise((resolve) => el.addEventListener('press', resolve, { once: true }));
|
|
273
|
+
dispatch('pointerdown', [0, 0]);
|
|
274
|
+
await pressed;
|
|
275
|
+
dispatch('pointermove', [300, 0]);
|
|
276
|
+
dispatch('pointermove', [340, 60]);
|
|
277
|
+
dispatch('pointerup', [350, 60]);
|
|
278
|
+
await Promise.resolve();
|
|
279
|
+
expect(swipes).to.deep.equal([]);
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
it('handles coalesced samples and the empty-list fallback', async () => {
|
|
283
|
+
const { el, swipes, dispatch } = await setupGesture();
|
|
284
|
+
dispatch('pointerdown', [0, 0]);
|
|
285
|
+
const coalesced = pointer('pointermove', [50, 50]);
|
|
286
|
+
Object.defineProperty(coalesced, 'getCoalescedEvents', {
|
|
287
|
+
value: () => [pointer('pointermove', [25, 25]), pointer('pointermove', [50, 50])],
|
|
288
|
+
});
|
|
289
|
+
el.dispatchEvent(coalesced);
|
|
290
|
+
const empty = pointer('pointermove', [75, 75]);
|
|
291
|
+
Object.defineProperty(empty, 'getCoalescedEvents', { value: () => [] });
|
|
292
|
+
el.dispatchEvent(empty);
|
|
293
|
+
expect(el.movesMap.get(1)).to.have.lengthOf(3);
|
|
294
|
+
dispatch('pointerup', [100, 100]);
|
|
295
|
+
await Promise.resolve();
|
|
296
|
+
expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
it('preserves a new gesture started by an end handler', async () => {
|
|
300
|
+
const { el, dispatch } = await setupGesture();
|
|
301
|
+
el.addEventListener('end', () => dispatch('pointerdown', [100, 0]), { once: true });
|
|
302
|
+
dispatch('pointerdown', [0, 0]);
|
|
303
|
+
dispatch('pointermove', [40, 50]);
|
|
304
|
+
dispatch('pointerup', [50, 50]);
|
|
305
|
+
await Promise.resolve();
|
|
306
|
+
await aTimeout();
|
|
307
|
+
expect(el.grabbing).to.equal(true);
|
|
308
|
+
expect(el.movesMap.has(1)).to.equal(true);
|
|
309
|
+
dispatch('pointercancel', [110, 0]);
|
|
310
|
+
});
|
|
311
|
+
});
|