@visactor/vrender-components 0.22.0 → 0.22.1
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/cjs/axis/util.js +2 -1
- package/cjs/brush/type.js +1 -2
- package/cjs/constant.d.ts +2 -0
- package/cjs/constant.js +3 -2
- package/cjs/constant.js.map +1 -1
- package/cjs/data-zoom/data-zoom.js +7 -4
- package/cjs/data-zoom/data-zoom.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/scrollbar/scrollbar.js +3 -3
- package/cjs/scrollbar/scrollbar.js.map +1 -1
- package/dist/index.es.js +141 -81
- package/es/axis/util.js +2 -1
- package/es/brush/type.js +1 -2
- package/es/constant.d.ts +2 -0
- package/es/constant.js +5 -1
- package/es/constant.js.map +1 -1
- package/es/data-zoom/data-zoom.js +7 -4
- package/es/data-zoom/data-zoom.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/scrollbar/scrollbar.js +4 -4
- package/es/scrollbar/scrollbar.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scrollbar/scrollbar.ts"],"names":[],"mappings":";;;AAKA,yDAAiD;AACjD,6CAAkG;AAClG,uCAAiD;AAIjD,yCAAoD;AACpD,0CAA8C;AAW9C,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,iBAAQ;IAClB,QAAQ,EAAE,iBAAQ;CACnB,CAAC;AAEF,IAAA,iCAAsB,GAAE,CAAC;AAEzB,MAAa,SAAU,SAAQ,wBAAgD;IAmC7E,YAAY,UAA+B,EAAE,OAA0B;QACrE,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,SAAS,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;QAnChG,SAAI,GAAG,WAAW,CAAC;QAsPX,uBAAkB,GAAG,CAAC,CAAwB,EAAE,EAAE;YAGxD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC3B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;YAClF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;YACpC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1C,IAAI,kBAAkB,CAAC;YACvB,IAAI,SAAS,KAAK,UAAU,EAAE;gBAC5B,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC/C,MAAM,WAAW,GAAG,IAAA,cAAK,EAAC,SAAS,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAChE,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;aACnD;iBAAM;gBACL,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC/C,MAAM,WAAW,GAAG,IAAA,cAAK,EAAC,SAAS,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAChE,kBAAkB,GAAG,SAAS,GAAG,KAAK,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;aACnD;YAED,IAAI,CAAC,cAAc,CACjB,CAAC,kBAAkB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,kBAAkB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAChG,KAAK,CACN,CAAC;YAEF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACxC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;aAC9B;QACH,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,CAAwB,EAAE,EAAE;YAC1D,MAAM,EAAE,yBAAyB,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;YACnF,IAAI,yBAAyB,EAAE;gBAC7B,CAAC,CAAC,eAAe,EAAE,CAAC;aACrB;YACD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;YAC5D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,GAAG,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;gBAChC,GAAG,EAAE,IAAI,CAAC,OAAO;gBACjB,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YACH,IAAI,sBAAO,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC7B,sBAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/F,sBAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAChE;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAC1E;QACH,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,CAAM,EAAE,EAAE;YACvC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;YAC5D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAEnD,IAAI,kBAAkB,CAAC;YACvB,IAAI,UAAU,CAAC;YACf,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACvD,IAAI,SAAS,KAAK,UAAU,EAAE;gBAC5B,UAAU,GAAG,CAAC,CAAC;gBACf,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,kBAAkB,GAAG,KAAK,GAAG,MAAM,CAAC;aACrC;iBAAM;gBACL,UAAU,GAAG,CAAC,CAAC;gBACf,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,kBAAkB,GAAG,KAAK,GAAG,KAAK,CAAC;aACpC;YACD,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,CAAM,EAAE,EAAE;YACxC,MAAM,EAAE,yBAAyB,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;YACnF,IAAI,yBAAyB,EAAE;gBAC7B,CAAC,CAAC,eAAe,EAAE,CAAC;aACrB;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5G,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC5B,CAAC,CAAC;QAEM,kCAA6B,GACnC,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,oBAAoB;YAC3B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEtF,uBAAkB,GAAG,CAAC,CAAM,EAAE,EAAE;YACtC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;YAExG,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,KAAK,GAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC;YAEjH,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;gBAC9B,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,IAAA,mBAAU,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;aACvD,CAAC,CAAC;YACH,IAAI,sBAAO,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC7B,sBAAO,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClG,sBAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACrE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAC7E;QACH,CAAC,CAAC;IA/TF,CAAC;IAED,cAAc,CAAC,KAAuB,EAAE,MAAM,GAAG,IAAI;QACnD,MAAM,EACJ,SAAS,GAAG,YAAY,EACxB,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,KAAK,EAAE,QAAQ,EACf,QAAQ,GAAG,IAAI,EAChB,GAAG,IAAI,CAAC,SAAgC,CAAC;QAE1C,MAAM,eAAe,GAAG,IAAA,mBAAU,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,MAAM,EAAE;YAEV,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;gBAE9B,IAAI,SAAS,KAAK,YAAY,EAAE;oBAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,CACxB;wBACE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;wBACf,KAAK,EAAE,UAAU;qBAClB,EACD,IAAI,CACL,CAAC;iBACH;qBAAM;oBACL,IAAI,CAAC,OAAO,CAAC,aAAa,CACxB;wBACE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;wBACf,MAAM,EAAE,UAAU;qBACnB,EACD,IAAI,CACL,CAAC;iBACH;gBAED,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;oBACxC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;iBAC9B;aACF;SACF;QACA,IAAI,CAAC,SAAiC,CAAC,KAAK,GAAG,eAAe,CAAC;QAEhE,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,cAAc,CAAC,0BAAe,EAAE;gBACnC,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,eAAe;aACvB,CAAC,CAAC;SACJ;IACH,CAAC;IAED,cAAc;QACZ,OAAQ,IAAI,CAAC,SAAiC,CAAC,KAAK,CAAC;IACvD,CAAC;IAOS,UAAU;QAClB,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;YACtC,OAAO;SACR;QACD,MAAM,EAAE,SAAS,GAAG,UAAU,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;QAExF,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,gBAAgB,CACzB,aAAa,EACb,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAkB,CACzE,CAAC;SACH;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,oBAAqC,CAAC,CAAC;SAC1F;IACH,CAAC;IAES,MAAM;QACd,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,EACJ,SAAS,GAAG,YAAY,EACxB,KAAK,EACL,MAAM,EACN,KAAK,EACL,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAInB,SAAS,EACT,WAAW,EACX,OAAO,GAAG,CAAC,EACZ,GAAG,IAAI,CAAC,SAAgC,CAAC;QAE1C,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,EAAE,EAAE,OAAO,CAAW,CAAC;QAGrF,MAAM,IAAI,GAAG,KAAK,CAAC,mBAAmB,CACpC,gBAAgB,kBAEd,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,KAAK;YACL,MAAM,IACH,SAAS,GAEd,MAAM,CACE,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAGlB,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAA,mBAAU,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAG9B,IAAI,eAAsC,CAAC;QAC3C,IAAI,SAAS,KAAK,YAAY,EAAE;YAC9B,eAAe,GAAG;gBAChB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;gBACf,CAAC,EAAE,kBAAkB,CAAC,EAAE;gBACxB,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,kBAAkB,CAAC,MAAM;aAClC,CAAC;SACH;aAAM;YACL,eAAe,GAAG;gBAChB,CAAC,EAAE,kBAAkB,CAAC,EAAE;gBACxB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;gBACf,KAAK,EAAE,kBAAkB,CAAC,KAAK;gBAC/B,MAAM,EAAE,UAAU;aACnB,CAAC;SACH;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CACtC,QAAQ,8DAEH,eAAe,KAClB,YAAY,EAAE,IAAI,CAAC,6BAA6B,EAAE,KAC/C,WAAW,KACd,aAAa,EAAE,IAAA,yBAAgB,EAAC,OAAO,CAAC,EACxC,QAAQ,EAAE,WAAW,KAEvB,MAAM,CACE,CAAC;QACX,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG;YACnB,CAAC,EAAE,mBAAmB,CAAC,EAAE;YACzB,CAAC,EAAE,mBAAmB,CAAC,EAAE;SAC1B,CAAC;IACJ,CAAC;IAGD,qBAAqB;QACnB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;QAC7E,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,IAAA,yBAAgB,EAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG;YACnB,EAAE,EAAE,IAAI;YACR,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,KAAK,GAAG,KAAK;YACjB,EAAE,EAAE,MAAM,GAAG,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;YAC1C,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;SAC7C,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;QACxC,OAAO,YAAY,CAAC;IACtB,CAAC;IAGO,6BAA6B;QACnC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;QAEnE,IAAI,KAAK,EAAE;YACT,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACvD,OAAO,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;SACpD;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAGO,aAAa,CAAC,KAAuB;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;QAC5D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE/D,IAAI,SAAS,KAAK,YAAY,EAAE;YAC9B,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;SACvD;QACD,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC;SAC/B;QACD,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAgC,CAAC;QACjF,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAA,mBAAU,EAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QAEpC,OAAO,SAAS,KAAK,YAAY;YAC/B,CAAC,CAAC,IAAA,mBAAU,EAAC,CAAC,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,GAAG,UAAU,CAAC;YAC1E,CAAC,CAAC,IAAA,mBAAU,EAAC,CAAC,EAAE,GAAG,GAAG,GAAG,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;IAClF,CAAC;IAiHO,MAAM;QACZ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;;AAzWH,8BA0WC;AAvWQ,2BAAiB,GAAG;IACzB,SAAS,EAAE,YAAY;IACvB,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,EAAE;IACd,WAAW,EAAE;QACX,IAAI,EAAE,mBAAmB;KAC1B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,mBAAmB;KAC1B;IACD,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,IAAI;CACf,CAAC","file":"scrollbar.js","sourcesContent":["/**\n * @description 滚动条组件\n */\nimport type { IRectGraphicAttribute, FederatedPointerEvent, IGroup, IRect } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { vglobal } from '@visactor/vrender-core';\nimport { merge, normalizePadding, clamp, clampRange, debounce, throttle } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\n\nimport type { ScrollBarAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadScrollbarComponent } from './register';\nimport { SCROLLBAR_EVENT } from '../constant';\n\ntype ComponentBounds = {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n width: number;\n height: number;\n};\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nloadScrollbarComponent();\n\nexport class ScrollBar extends AbstractComponent<Required<ScrollBarAttributes>> {\n name = 'scrollbar';\n\n static defaultAttributes = {\n direction: 'horizontal',\n round: true,\n sliderSize: 20,\n sliderStyle: {\n fill: 'rgba(0, 0, 0, .5)'\n },\n railStyle: {\n fill: 'rgba(0, 0, 0, .0)'\n },\n padding: 2,\n scrollRange: [0, 1],\n delayType: 'throttle',\n delayTime: 0,\n realTime: true\n };\n\n private _container!: IGroup;\n // 滚动条滑块\n private _slider!: IRect;\n // 滚动条滑轨\n private _rail!: IRect;\n // 滑块可渲染的区域包围盒\n private _sliderRenderBounds!: ComponentBounds | null;\n // 滑块滑动的范围\n private _sliderLimitRange!: [number, number] | null;\n // 保留滑块上一次的位置\n private _prePos!: number;\n // TODO: 临时方案\n private _viewPosition!: { x: number; y: number };\n private _sliderSize!: number;\n\n constructor(attributes: ScrollBarAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, ScrollBar.defaultAttributes, attributes));\n }\n\n setScrollRange(range: [number, number], render = true) {\n const {\n direction = 'horizontal',\n limitRange = [0, 1],\n range: preRange,\n realTime = true\n } = this.attribute as ScrollBarAttributes;\n\n const currScrollRange = clampRange(range, limitRange[0], limitRange[1]);\n if (render) {\n // 更新图形\n const sliderPos = this._getSliderPos(currScrollRange);\n if (this._slider) {\n const sliderSize = sliderPos[1] - sliderPos[0];\n this._sliderSize = sliderSize;\n\n if (direction === 'horizontal') {\n this._slider.setAttributes(\n {\n x: sliderPos[0],\n width: sliderSize\n },\n true\n );\n } else {\n this._slider.setAttributes(\n {\n y: sliderPos[0],\n height: sliderSize\n },\n true\n );\n }\n\n if (this.stage && !this.stage.autoRender) {\n this.stage.renderNextFrame();\n }\n }\n }\n (this.attribute as ScrollBarAttributes).range = currScrollRange;\n // 发射 change 事件\n if (realTime) {\n this._dispatchEvent(SCROLLBAR_EVENT, {\n pre: preRange,\n value: currScrollRange\n });\n }\n }\n\n getScrollRange(): [number, number] {\n return (this.attribute as ScrollBarAttributes).range;\n }\n\n // public setLocation(point: PointLocationCfg) {\n // this.translateTo(point.x, point.y);\n // }\n\n // 绑定事件\n protected bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n const { delayType = 'throttle', delayTime = 0 } = this.attribute as ScrollBarAttributes;\n // TODO: wheel 事件支持\n if (this._rail) {\n this._rail.addEventListener(\n 'pointerdown',\n delayMap[delayType](this._onRailPointerDown, delayTime) as EventListener\n );\n }\n if (this._slider) {\n this._slider.addEventListener('pointerdown', this._onSliderPointerDown as EventListener);\n }\n }\n\n protected render() {\n this._reset();\n const {\n direction = 'horizontal',\n width,\n height,\n range,\n limitRange = [0, 1],\n // sliderSize = 20,\n // scrollValue = 0,\n // scrollRange = [0, 1],\n railStyle,\n sliderStyle,\n padding = 2\n } = this.attribute as ScrollBarAttributes;\n\n const group = this.createOrUpdateChild('scrollbar-container', {}, 'group') as IGroup;\n // 绘制轨道\n\n const rail = group.createOrUpdateChild(\n 'scrollbar-rail',\n {\n x: 0,\n y: 0,\n width,\n height,\n ...railStyle\n },\n 'rect'\n ) as IRect;\n this._rail = rail;\n\n // 滑块\n const sliderRenderBounds = this.getSliderRenderBounds();\n const sliderPos = this._getSliderPos(clampRange(range, limitRange[0], limitRange[1]));\n const sliderSize = sliderPos[1] - sliderPos[0];\n this._sliderSize = sliderSize;\n // const sliderRangePos = this._getScrollRange();\n\n let sliderAttribute: IRectGraphicAttribute;\n if (direction === 'horizontal') {\n sliderAttribute = {\n x: sliderPos[0],\n y: sliderRenderBounds.y1,\n width: sliderSize,\n height: sliderRenderBounds.height\n };\n } else {\n sliderAttribute = {\n x: sliderRenderBounds.x1,\n y: sliderPos[0],\n width: sliderRenderBounds.width,\n height: sliderSize\n };\n }\n\n const slider = group.createOrUpdateChild(\n 'slider',\n {\n ...sliderAttribute,\n cornerRadius: this._getDefaultSliderCornerRadius(),\n ...sliderStyle,\n boundsPadding: normalizePadding(padding),\n pickMode: 'imprecise'\n },\n 'rect'\n ) as IRect;\n this._slider = slider;\n this._container = group;\n\n const containerAABBBounds = this._container.AABBBounds;\n this._viewPosition = {\n x: containerAABBBounds.x1,\n y: containerAABBBounds.y1\n };\n }\n\n // 获取滑块渲染的包围盒区域\n getSliderRenderBounds() {\n if (this._sliderRenderBounds) {\n return this._sliderRenderBounds;\n }\n const { width, height, padding = 2 } = this.attribute as ScrollBarAttributes;\n const [top, right, bottom, left] = normalizePadding(padding);\n const renderBounds = {\n x1: left,\n y1: top,\n x2: width - right,\n y2: height - bottom,\n width: Math.max(0, width - (left + right)),\n height: Math.max(0, height - (top + bottom))\n };\n this._sliderRenderBounds = renderBounds;\n return renderBounds;\n }\n\n // 获取默认的滑块圆角\n private _getDefaultSliderCornerRadius() {\n const { direction, round } = this.attribute as ScrollBarAttributes;\n\n if (round) {\n const { width, height } = this.getSliderRenderBounds();\n return direction === 'horizontal' ? height : width;\n }\n\n return 0;\n }\n\n // 计算滑块在轨道的位置\n private _getSliderPos(range: [number, number]) {\n const { direction } = this.attribute as ScrollBarAttributes;\n const { width, height, x1, y1 } = this.getSliderRenderBounds();\n\n if (direction === 'horizontal') {\n return [width * range[0] + x1, width * range[1] + x1];\n }\n return [height * range[0] + y1, height * range[1] + y1];\n }\n\n private _getScrollRange() {\n if (this._sliderLimitRange) {\n return this._sliderLimitRange;\n }\n const { limitRange = [0, 1], direction } = this.attribute as ScrollBarAttributes;\n const [min, max] = clampRange(limitRange, 0, 1);\n const { width, height, x1, y1 } = this.getSliderRenderBounds();\n const sliderSize = this._sliderSize;\n\n return direction === 'horizontal'\n ? clampRange([x1 + min * width, x1 + max * width], x1, width - sliderSize)\n : clampRange([y1 + min * height, y1 + max * height], y1, height - sliderSize);\n }\n\n private _onRailPointerDown = (e: FederatedPointerEvent) => {\n // 将事件坐标转换为实际的滑块位置\n // TODO: 这里有问题,应该拿 viewX viewY,同时 graphic 要提供接口获取它的 相对 view 的坐标\n const { viewX, viewY } = e;\n const { direction, width, height, range } = this.attribute as ScrollBarAttributes;\n const sliderSize = this._sliderSize;\n const [min, max] = this._getScrollRange();\n let currentScrollValue;\n if (direction === 'vertical') {\n const relativeY = viewY - this._viewPosition.y;\n const currentYPos = clamp(relativeY - sliderSize / 2, min, max);\n currentScrollValue = relativeY / height;\n this._slider.setAttribute('y', currentYPos, true);\n } else {\n const relativeX = viewX - this._viewPosition.x;\n const currentXPos = clamp(relativeX - sliderSize / 2, min, max);\n currentScrollValue = relativeX / width;\n this._slider.setAttribute('x', currentXPos, true);\n }\n\n this.setScrollRange(\n [currentScrollValue - (range[1] - range[0]) / 2, currentScrollValue + (range[1] - range[0]) / 2],\n false\n );\n\n if (this.stage && !this.stage.autoRender) {\n this.stage.renderNextFrame();\n }\n };\n\n private _onSliderPointerDown = (e: FederatedPointerEvent) => {\n const { stopSliderDownPropagation = true } = this.attribute as ScrollBarAttributes;\n if (stopSliderDownPropagation) {\n e.stopPropagation();\n }\n const { direction } = this.attribute as ScrollBarAttributes;\n const { x, y } = this.stage.eventPointTransform(e);\n this._prePos = direction === 'horizontal' ? x : y;\n this._dispatchEvent('scrollDown', {\n pos: this._prePos,\n event: e\n });\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });\n vglobal.addEventListener('pointerup', this._onSliderPointerUp);\n } else {\n this.stage.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });\n this.stage.addEventListener('pointerup', this._onSliderPointerUp);\n this.stage.addEventListener('pointerupoutside', this._onSliderPointerUp);\n }\n };\n\n private _computeScrollValue = (e: any) => {\n const { direction } = this.attribute as ScrollBarAttributes;\n const { x, y } = this.stage.eventPointTransform(e);\n\n let currentScrollValue;\n let currentPos;\n let delta = 0;\n\n const { width, height } = this.getSliderRenderBounds();\n if (direction === 'vertical') {\n currentPos = y;\n delta = currentPos - this._prePos;\n currentScrollValue = delta / height;\n } else {\n currentPos = x;\n delta = currentPos - this._prePos;\n currentScrollValue = delta / width;\n }\n return [currentPos, currentScrollValue];\n };\n\n private _onSliderPointerMove = (e: any) => {\n const { stopSliderMovePropagation = true } = this.attribute as ScrollBarAttributes;\n if (stopSliderMovePropagation) {\n e.stopPropagation();\n }\n const preScrollRange = this.getScrollRange();\n const [currentPos, currentScrollValue] = this._computeScrollValue(e);\n this.setScrollRange([preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue], true);\n this._prePos = currentPos;\n };\n\n private _onSliderPointerMoveWithDelay =\n this.attribute.delayTime === 0\n ? this._onSliderPointerMove\n : delayMap[this.attribute.delayType](this._onSliderPointerMove, this.attribute.delayTime);\n\n private _onSliderPointerUp = (e: any) => {\n e.preventDefault();\n const { realTime = true, range: preRange, limitRange = [0, 1] } = this.attribute as ScrollBarAttributes;\n // 发射 change 事件\n const preScrollRange = this.getScrollRange();\n const [currentPos, currentScrollValue] = this._computeScrollValue(e);\n const range: [number, number] = [preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue];\n\n this._dispatchEvent('scrollUp', {\n pre: preRange,\n value: clampRange(range, limitRange[0], limitRange[1])\n });\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });\n vglobal.removeEventListener('pointerup', this._onSliderPointerUp);\n } else {\n this.stage.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });\n this.stage.removeEventListener('pointerup', this._onSliderPointerUp);\n this.stage.removeEventListener('pointerupoutside', this._onSliderPointerUp);\n }\n };\n\n private _reset() {\n this._sliderRenderBounds = null;\n this._sliderLimitRange = null;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scrollbar/scrollbar.ts"],"names":[],"mappings":"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","file":"scrollbar.js","sourcesContent":["/**\n * @description 滚动条组件\n */\nimport type { IRectGraphicAttribute, FederatedPointerEvent, IGroup, IRect } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { vglobal } from '@visactor/vrender-core';\nimport { merge, normalizePadding, clamp, clampRange, debounce, throttle } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\n\nimport type { ScrollBarAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadScrollbarComponent } from './register';\nimport { SCROLLBAR_START_EVENT, SCROLLBAR_EVENT, SCROLLBAR_END_EVENT } from '../constant';\n\ntype ComponentBounds = {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n width: number;\n height: number;\n};\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nloadScrollbarComponent();\n\nexport class ScrollBar extends AbstractComponent<Required<ScrollBarAttributes>> {\n name = 'scrollbar';\n\n static defaultAttributes = {\n direction: 'horizontal',\n round: true,\n sliderSize: 20,\n sliderStyle: {\n fill: 'rgba(0, 0, 0, .5)'\n },\n railStyle: {\n fill: 'rgba(0, 0, 0, .0)'\n },\n padding: 2,\n scrollRange: [0, 1],\n delayType: 'throttle',\n delayTime: 0,\n realTime: true\n };\n\n private _container!: IGroup;\n // 滚动条滑块\n private _slider!: IRect;\n // 滚动条滑轨\n private _rail!: IRect;\n // 滑块可渲染的区域包围盒\n private _sliderRenderBounds!: ComponentBounds | null;\n // 滑块滑动的范围\n private _sliderLimitRange!: [number, number] | null;\n // 保留滑块上一次的位置\n private _prePos!: number;\n // TODO: 临时方案\n private _viewPosition!: { x: number; y: number };\n private _sliderSize!: number;\n\n constructor(attributes: ScrollBarAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, ScrollBar.defaultAttributes, attributes));\n }\n\n setScrollRange(range: [number, number], render = true) {\n const {\n direction = 'horizontal',\n limitRange = [0, 1],\n range: preRange,\n realTime = true\n } = this.attribute as ScrollBarAttributes;\n\n const currScrollRange = clampRange(range, limitRange[0], limitRange[1]);\n if (render) {\n // 更新图形\n const sliderPos = this._getSliderPos(currScrollRange);\n if (this._slider) {\n const sliderSize = sliderPos[1] - sliderPos[0];\n this._sliderSize = sliderSize;\n\n if (direction === 'horizontal') {\n this._slider.setAttributes(\n {\n x: sliderPos[0],\n width: sliderSize\n },\n true\n );\n } else {\n this._slider.setAttributes(\n {\n y: sliderPos[0],\n height: sliderSize\n },\n true\n );\n }\n\n if (this.stage && !this.stage.autoRender) {\n this.stage.renderNextFrame();\n }\n }\n }\n (this.attribute as ScrollBarAttributes).range = currScrollRange;\n // 发射 change 事件\n if (realTime) {\n this._dispatchEvent(SCROLLBAR_EVENT, {\n pre: preRange,\n value: currScrollRange\n });\n }\n }\n\n getScrollRange(): [number, number] {\n return (this.attribute as ScrollBarAttributes).range;\n }\n\n // public setLocation(point: PointLocationCfg) {\n // this.translateTo(point.x, point.y);\n // }\n\n // 绑定事件\n protected bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n const { delayType = 'throttle', delayTime = 0 } = this.attribute as ScrollBarAttributes;\n // TODO: wheel 事件支持\n if (this._rail) {\n this._rail.addEventListener(\n 'pointerdown',\n delayMap[delayType](this._onRailPointerDown, delayTime) as EventListener\n );\n }\n if (this._slider) {\n this._slider.addEventListener('pointerdown', this._onSliderPointerDown as EventListener);\n }\n }\n\n protected render() {\n this._reset();\n const {\n direction = 'horizontal',\n width,\n height,\n range,\n limitRange = [0, 1],\n // sliderSize = 20,\n // scrollValue = 0,\n // scrollRange = [0, 1],\n railStyle,\n sliderStyle,\n padding = 2\n } = this.attribute as ScrollBarAttributes;\n\n const group = this.createOrUpdateChild('scrollbar-container', {}, 'group') as IGroup;\n // 绘制轨道\n\n const rail = group.createOrUpdateChild(\n 'scrollbar-rail',\n {\n x: 0,\n y: 0,\n width,\n height,\n ...railStyle\n },\n 'rect'\n ) as IRect;\n this._rail = rail;\n\n // 滑块\n const sliderRenderBounds = this.getSliderRenderBounds();\n const sliderPos = this._getSliderPos(clampRange(range, limitRange[0], limitRange[1]));\n const sliderSize = sliderPos[1] - sliderPos[0];\n this._sliderSize = sliderSize;\n // const sliderRangePos = this._getScrollRange();\n\n let sliderAttribute: IRectGraphicAttribute;\n if (direction === 'horizontal') {\n sliderAttribute = {\n x: sliderPos[0],\n y: sliderRenderBounds.y1,\n width: sliderSize,\n height: sliderRenderBounds.height\n };\n } else {\n sliderAttribute = {\n x: sliderRenderBounds.x1,\n y: sliderPos[0],\n width: sliderRenderBounds.width,\n height: sliderSize\n };\n }\n\n const slider = group.createOrUpdateChild(\n 'slider',\n {\n ...sliderAttribute,\n cornerRadius: this._getDefaultSliderCornerRadius(),\n ...sliderStyle,\n boundsPadding: normalizePadding(padding),\n pickMode: 'imprecise'\n },\n 'rect'\n ) as IRect;\n this._slider = slider;\n this._container = group;\n\n const containerAABBBounds = this._container.AABBBounds;\n this._viewPosition = {\n x: containerAABBBounds.x1,\n y: containerAABBBounds.y1\n };\n }\n\n // 获取滑块渲染的包围盒区域\n getSliderRenderBounds() {\n if (this._sliderRenderBounds) {\n return this._sliderRenderBounds;\n }\n const { width, height, padding = 2 } = this.attribute as ScrollBarAttributes;\n const [top, right, bottom, left] = normalizePadding(padding);\n const renderBounds = {\n x1: left,\n y1: top,\n x2: width - right,\n y2: height - bottom,\n width: Math.max(0, width - (left + right)),\n height: Math.max(0, height - (top + bottom))\n };\n this._sliderRenderBounds = renderBounds;\n return renderBounds;\n }\n\n // 获取默认的滑块圆角\n private _getDefaultSliderCornerRadius() {\n const { direction, round } = this.attribute as ScrollBarAttributes;\n\n if (round) {\n const { width, height } = this.getSliderRenderBounds();\n return direction === 'horizontal' ? height : width;\n }\n\n return 0;\n }\n\n // 计算滑块在轨道的位置\n private _getSliderPos(range: [number, number]) {\n const { direction } = this.attribute as ScrollBarAttributes;\n const { width, height, x1, y1 } = this.getSliderRenderBounds();\n\n if (direction === 'horizontal') {\n return [width * range[0] + x1, width * range[1] + x1];\n }\n return [height * range[0] + y1, height * range[1] + y1];\n }\n\n private _getScrollRange() {\n if (this._sliderLimitRange) {\n return this._sliderLimitRange;\n }\n const { limitRange = [0, 1], direction } = this.attribute as ScrollBarAttributes;\n const [min, max] = clampRange(limitRange, 0, 1);\n const { width, height, x1, y1 } = this.getSliderRenderBounds();\n const sliderSize = this._sliderSize;\n\n return direction === 'horizontal'\n ? clampRange([x1 + min * width, x1 + max * width], x1, width - sliderSize)\n : clampRange([y1 + min * height, y1 + max * height], y1, height - sliderSize);\n }\n\n private _onRailPointerDown = (e: FederatedPointerEvent) => {\n // 将事件坐标转换为实际的滑块位置\n // TODO: 这里有问题,应该拿 viewX viewY,同时 graphic 要提供接口获取它的 相对 view 的坐标\n const { viewX, viewY } = e;\n const { direction, width, height, range } = this.attribute as ScrollBarAttributes;\n const sliderSize = this._sliderSize;\n const [min, max] = this._getScrollRange();\n let currentScrollValue;\n if (direction === 'vertical') {\n const relativeY = viewY - this._viewPosition.y;\n const currentYPos = clamp(relativeY - sliderSize / 2, min, max);\n currentScrollValue = relativeY / height;\n this._slider.setAttribute('y', currentYPos, true);\n } else {\n const relativeX = viewX - this._viewPosition.x;\n const currentXPos = clamp(relativeX - sliderSize / 2, min, max);\n currentScrollValue = relativeX / width;\n this._slider.setAttribute('x', currentXPos, true);\n }\n\n this.setScrollRange(\n [currentScrollValue - (range[1] - range[0]) / 2, currentScrollValue + (range[1] - range[0]) / 2],\n false\n );\n\n if (this.stage && !this.stage.autoRender) {\n this.stage.renderNextFrame();\n }\n };\n\n private _onSliderPointerDown = (e: FederatedPointerEvent) => {\n const { stopSliderDownPropagation = true } = this.attribute as ScrollBarAttributes;\n if (stopSliderDownPropagation) {\n e.stopPropagation();\n }\n const { direction } = this.attribute as ScrollBarAttributes;\n const { x, y } = this.stage.eventPointTransform(e);\n this._prePos = direction === 'horizontal' ? x : y;\n this._dispatchEvent(SCROLLBAR_START_EVENT, {\n pos: this._prePos,\n event: e\n });\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });\n vglobal.addEventListener('pointerup', this._onSliderPointerUp);\n } else {\n this.stage.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });\n this.stage.addEventListener('pointerup', this._onSliderPointerUp);\n this.stage.addEventListener('pointerupoutside', this._onSliderPointerUp);\n }\n };\n\n private _computeScrollValue = (e: any) => {\n const { direction } = this.attribute as ScrollBarAttributes;\n const { x, y } = this.stage.eventPointTransform(e);\n\n let currentScrollValue;\n let currentPos;\n let delta = 0;\n\n const { width, height } = this.getSliderRenderBounds();\n if (direction === 'vertical') {\n currentPos = y;\n delta = currentPos - this._prePos;\n currentScrollValue = delta / height;\n } else {\n currentPos = x;\n delta = currentPos - this._prePos;\n currentScrollValue = delta / width;\n }\n return [currentPos, currentScrollValue];\n };\n\n private _onSliderPointerMove = (e: any) => {\n const { stopSliderMovePropagation = true } = this.attribute as ScrollBarAttributes;\n if (stopSliderMovePropagation) {\n e.stopPropagation();\n }\n const preScrollRange = this.getScrollRange();\n const [currentPos, currentScrollValue] = this._computeScrollValue(e);\n this.setScrollRange([preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue], true);\n this._prePos = currentPos;\n };\n\n private _onSliderPointerMoveWithDelay =\n this.attribute.delayTime === 0\n ? this._onSliderPointerMove\n : delayMap[this.attribute.delayType](this._onSliderPointerMove, this.attribute.delayTime);\n\n private _onSliderPointerUp = (e: any) => {\n e.preventDefault();\n const { range: preRange, limitRange = [0, 1] } = this.attribute as ScrollBarAttributes;\n // 发射 change 事件\n const preScrollRange = this.getScrollRange();\n const [currentPos, currentScrollValue] = this._computeScrollValue(e);\n const range: [number, number] = [preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue];\n\n this._dispatchEvent(SCROLLBAR_END_EVENT, {\n pre: preRange,\n value: clampRange(range, limitRange[0], limitRange[1])\n });\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });\n vglobal.removeEventListener('pointerup', this._onSliderPointerUp);\n } else {\n this.stage.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });\n this.stage.removeEventListener('pointerup', this._onSliderPointerUp);\n this.stage.removeEventListener('pointerupoutside', this._onSliderPointerUp);\n }\n };\n\n private _reset() {\n this._sliderRenderBounds = null;\n this._sliderLimitRange = null;\n }\n}\n"]}
|
package/dist/index.es.js
CHANGED
|
@@ -2037,10 +2037,10 @@ class CustomPath2D extends CurvePath {
|
|
|
2037
2037
|
x = current[5], y = current[6], controlX = current[3], controlY = current[4], this.bezierCurveTo(current[1] + l, current[2] + t, controlX + l, controlY + t, x + l, y + t);
|
|
2038
2038
|
break;
|
|
2039
2039
|
case "s":
|
|
2040
|
-
tempX = x + current[3], tempY = y + current[4], controlX = 2 * x - controlX, controlY = 2 * y - controlY, this.bezierCurveTo(controlX + l, controlY + t,
|
|
2040
|
+
tempX = x + current[3], tempY = y + current[4], null === previous[0].match(/[CcSs]/) ? (controlX = x, controlY = y) : (controlX = 2 * x - controlX, controlY = 2 * y - controlY), tempControlX = x + current[1], tempControlY = y + current[2], this.bezierCurveTo(controlX + l, controlY + t, tempControlX + l, tempControlY + t, tempX + l, tempY + t), controlX = tempControlX, controlY = tempControlY, x = tempX, y = tempY;
|
|
2041
2041
|
break;
|
|
2042
2042
|
case "S":
|
|
2043
|
-
tempX = current[3], tempY = current[4], controlX = 2 * x - controlX, controlY = 2 * y - controlY, this.bezierCurveTo(controlX + l, controlY + t,
|
|
2043
|
+
tempX = current[3], tempY = current[4], null === previous[0].match(/[CcSs]/) ? (controlX = x, controlY = y) : (controlX = 2 * x - controlX, controlY = 2 * y - controlY), tempControlX = current[1], tempControlY = current[2], this.bezierCurveTo(controlX + l, controlY + t, tempControlX + l, tempControlY + t, tempX + l, tempY + t), controlX = tempControlX, controlY = tempControlY, x = tempX, y = tempY;
|
|
2044
2044
|
break;
|
|
2045
2045
|
case "q":
|
|
2046
2046
|
tempX = x + current[3], tempY = y + current[4], controlX = x + current[1], controlY = y + current[2], this.quadraticCurveTo(controlX + l, controlY + t, tempX + l, tempY + t), x = tempX, y = tempY;
|
|
@@ -2268,7 +2268,7 @@ const DefaultStyle = Object.assign(Object.assign(Object.assign(Object.assign({
|
|
|
2268
2268
|
opacity: 1,
|
|
2269
2269
|
background: null,
|
|
2270
2270
|
autoAnimateTexture: !1,
|
|
2271
|
-
textureRatio:
|
|
2271
|
+
textureRatio: 1,
|
|
2272
2272
|
textureOptions: null,
|
|
2273
2273
|
backgroundOpacity: 1,
|
|
2274
2274
|
backgroundCornerRadius: 0,
|
|
@@ -2423,6 +2423,7 @@ const DefaultTextAttribute = Object.assign(Object.assign(Object.assign({}, Defau
|
|
|
2423
2423
|
keepDirIn3d: !0
|
|
2424
2424
|
});
|
|
2425
2425
|
const DefaultRichTextAttribute = Object.assign(Object.assign(Object.assign({}, DefaultAttribute), DefaultTextStyle), {
|
|
2426
|
+
upgradeAttrs: null,
|
|
2426
2427
|
editable: !1,
|
|
2427
2428
|
editOptions: null,
|
|
2428
2429
|
ascentDescentMode: "actual",
|
|
@@ -5466,7 +5467,7 @@ class Graphic extends Node {
|
|
|
5466
5467
|
null != onStart && animate.onStart(onStart), null != onFrame && animate.onFrame(onFrame), null != onEnd && animate.onEnd(onEnd), null != onRemove && animate.onRemove(onRemove), animate.interpolateFunc = params.interpolate;
|
|
5467
5468
|
}
|
|
5468
5469
|
return this.animates.set(animate.id, animate), animate.onRemove(() => {
|
|
5469
|
-
this.animates.delete(animate.id);
|
|
5470
|
+
animate.stop(), this.animates.delete(animate.id);
|
|
5470
5471
|
}), animate;
|
|
5471
5472
|
}
|
|
5472
5473
|
onAttributeUpdate(context) {
|
|
@@ -5531,9 +5532,10 @@ class Graphic extends Node {
|
|
|
5531
5532
|
this.hasState() && this.normalAttrs ? (this.currentStates = [], this.applyStateAttrs(this.normalAttrs, this.currentStates, hasAnimation, !0)) : this.currentStates = [], this.normalAttrs = null;
|
|
5532
5533
|
}
|
|
5533
5534
|
removeState(stateName, hasAnimation) {
|
|
5534
|
-
if (
|
|
5535
|
-
const
|
|
5536
|
-
|
|
5535
|
+
if (this.currentStates) {
|
|
5536
|
+
const filter = isArray(stateName) ? s => !stateName.includes(s) : s => s !== stateName,
|
|
5537
|
+
newStates = this.currentStates.filter(filter);
|
|
5538
|
+
newStates.length !== this.currentStates.length && this.useStates(newStates, hasAnimation);
|
|
5537
5539
|
}
|
|
5538
5540
|
}
|
|
5539
5541
|
toggleState(stateName, hasAnimation) {
|
|
@@ -5670,7 +5672,7 @@ class Graphic extends Node {
|
|
|
5670
5672
|
if (this.stage = stage, this.layer = layer, this.setStageToShadowRoot(stage, layer), this.animates && this.animates.size) {
|
|
5671
5673
|
const timeline = stage.getTimeline();
|
|
5672
5674
|
this.animates.forEach(a => {
|
|
5673
|
-
a.setTimeline(timeline);
|
|
5675
|
+
a.timeline === defaultTimeline && a.setTimeline(timeline);
|
|
5674
5676
|
});
|
|
5675
5677
|
}
|
|
5676
5678
|
this._onSetStage && this._onSetStage(this, stage, layer), application.graphicService.onSetStage(this, stage);
|
|
@@ -5774,7 +5776,7 @@ class Graphic extends Node {
|
|
|
5774
5776
|
return shadowRoot && (shadowRoot.shadowHost = this), this.shadowRoot = null != shadowRoot ? shadowRoot : application.graphicService.creator.shadowRoot(this), this.addUpdateBoundTag(), this.shadowRoot.setStage(this.stage, this.layer), this.shadowRoot;
|
|
5775
5777
|
}
|
|
5776
5778
|
detachShadow() {
|
|
5777
|
-
this.shadowRoot && (this.addUpdateBoundTag(), this.shadowRoot = null);
|
|
5779
|
+
this.shadowRoot && (this.addUpdateBoundTag(), this.shadowRoot.release(!0), this.shadowRoot = null);
|
|
5778
5780
|
}
|
|
5779
5781
|
toJson() {
|
|
5780
5782
|
return {
|
|
@@ -5826,7 +5828,7 @@ class Graphic extends Node {
|
|
|
5826
5828
|
});
|
|
5827
5829
|
}
|
|
5828
5830
|
release() {
|
|
5829
|
-
this.releaseStatus = "released", application.graphicService.onRelease(this);
|
|
5831
|
+
this.releaseStatus = "released", this.stopAnimates(), application.graphicService.onRelease(this);
|
|
5830
5832
|
}
|
|
5831
5833
|
_emitCustomEvent(type, context) {
|
|
5832
5834
|
var _a, _b;
|
|
@@ -6320,6 +6322,11 @@ class Group extends Graphic {
|
|
|
6320
6322
|
getNoWorkAnimateAttr() {
|
|
6321
6323
|
return Group.NOWORK_ANIMATE_ATTR;
|
|
6322
6324
|
}
|
|
6325
|
+
release(all) {
|
|
6326
|
+
all && this.forEachChildren(g => {
|
|
6327
|
+
g.release(all);
|
|
6328
|
+
}), super.release();
|
|
6329
|
+
}
|
|
6323
6330
|
}
|
|
6324
6331
|
Group.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
|
|
6325
6332
|
function createGroup(attributes) {
|
|
@@ -8366,6 +8373,20 @@ let Symbol$1 = class Symbol extends Graphic {
|
|
|
8366
8373
|
getParsedPath() {
|
|
8367
8374
|
return this.shouldUpdateShape() && (this.doUpdateParsedPath(), this.clearUpdateShapeTag()), this._parsedPath;
|
|
8368
8375
|
}
|
|
8376
|
+
getParsedPath2D() {
|
|
8377
|
+
let x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
8378
|
+
let y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
8379
|
+
let size = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
8380
|
+
let path = null;
|
|
8381
|
+
try {
|
|
8382
|
+
path = new Path2D();
|
|
8383
|
+
} catch (err) {
|
|
8384
|
+
return null;
|
|
8385
|
+
}
|
|
8386
|
+
const parsedPath = this.getParsedPath();
|
|
8387
|
+
if (!parsedPath) return null;
|
|
8388
|
+
parsedPath.draw(path, size, x, y);
|
|
8389
|
+
}
|
|
8369
8390
|
isValid() {
|
|
8370
8391
|
return super.isValid() && this._isValid();
|
|
8371
8392
|
}
|
|
@@ -8805,7 +8826,7 @@ class Paragraph {
|
|
|
8805
8826
|
this.width = width, "vertical" === this.direction && (this.widthOrigin = this.width, this.width = this.heightOrigin, this.height = this.widthOrigin);
|
|
8806
8827
|
}
|
|
8807
8828
|
drawBackground(ctx, top, ascent, deltaLeft, isLineFirst, textAlign, lineHeight) {
|
|
8808
|
-
if (!this.character.background || this.character.backgroundOpacity && !(this.character.backgroundOpacity > 0)) return;
|
|
8829
|
+
if ("" === this.text || "\n" === this.text || !this.character.background || this.character.backgroundOpacity && !(this.character.backgroundOpacity > 0)) return;
|
|
8809
8830
|
let baseline = top + ascent,
|
|
8810
8831
|
text = this.text,
|
|
8811
8832
|
left = this.left + deltaLeft;
|
|
@@ -8823,19 +8844,11 @@ class Paragraph {
|
|
|
8823
8844
|
}
|
|
8824
8845
|
}
|
|
8825
8846
|
}
|
|
8826
|
-
switch (this.character.script) {
|
|
8827
|
-
case "super":
|
|
8828
|
-
baseline -= this.ascent * (1 / 3);
|
|
8829
|
-
break;
|
|
8830
|
-
case "sub":
|
|
8831
|
-
baseline += this.descent / 2;
|
|
8832
|
-
}
|
|
8833
|
-
"vertical" === direction && (ctx.save(), ctx.rotateAbout(Math.PI / 2, left, baseline), ctx.translate(-this.heightOrigin || -this.lineHeight / 2, -this.descent / 2), ctx.translate(left, baseline), left = 0, baseline = 0);
|
|
8834
|
-
const fillStyle = ctx.fillStyle,
|
|
8835
|
-
globalAlpha = ctx.globalAlpha;
|
|
8836
|
-
ctx.fillStyle = this.character.background, void 0 !== this.character.backgroundOpacity && (ctx.globalAlpha = this.character.backgroundOpacity);
|
|
8837
8847
|
const lrtb = getFixedLRTB(left, left + (this.widthOrigin || this.width), top, top + lineHeight);
|
|
8838
|
-
|
|
8848
|
+
return Object.assign(Object.assign({}, lrtb), {
|
|
8849
|
+
fillStyle: this.character.background,
|
|
8850
|
+
globalAlpha: this.character.backgroundOpacity
|
|
8851
|
+
});
|
|
8839
8852
|
}
|
|
8840
8853
|
draw(ctx, top, ascent, deltaLeft, isLineFirst, textAlign, lineHeight) {
|
|
8841
8854
|
let baseline = top + ascent,
|
|
@@ -9109,8 +9122,19 @@ class Line {
|
|
|
9109
9122
|
paragraph.ellipsis = "hide", otherParagraphWidth += paragraph.width;
|
|
9110
9123
|
}
|
|
9111
9124
|
}
|
|
9125
|
+
let fillStyle = "",
|
|
9126
|
+
globalAlpha = -1,
|
|
9127
|
+
currBgList = [];
|
|
9128
|
+
const bgList = [currBgList];
|
|
9112
9129
|
this.paragraphs.forEach((paragraph, index) => {
|
|
9113
|
-
paragraph instanceof RichTextIcon
|
|
9130
|
+
if (paragraph instanceof RichTextIcon) return;
|
|
9131
|
+
const data = paragraph.drawBackground(ctx, y, this.ascent, x, 0 === index, this.textAlign, this.height);
|
|
9132
|
+
data && (fillStyle === data.fillStyle && globalAlpha === data.globalAlpha || (currBgList = [], bgList.push(currBgList), fillStyle = data.fillStyle, globalAlpha = data.globalAlpha), currBgList.push(data));
|
|
9133
|
+
}), bgList.forEach(bg => {
|
|
9134
|
+
if (0 === bg.length) return;
|
|
9135
|
+
const data = bg[0],
|
|
9136
|
+
end = bg[bg.length - 1];
|
|
9137
|
+
ctx.fillStyle = data.fillStyle, ctx.globalAlpha = data.globalAlpha, ctx.fillRect(data.left, data.top, end.right - data.left, end.bottom - data.top);
|
|
9114
9138
|
}), this.paragraphs.forEach((paragraph, index) => {
|
|
9115
9139
|
if (paragraph instanceof RichTextIcon) return paragraph.setAttributes({
|
|
9116
9140
|
x: x + paragraph._x,
|
|
@@ -9348,7 +9372,7 @@ class RichText extends Graphic {
|
|
|
9348
9372
|
case "right":
|
|
9349
9373
|
deltaX = -aabbBounds.width();
|
|
9350
9374
|
}
|
|
9351
|
-
return aabbBounds.translate(deltaX, deltaY), application.graphicService.updateTempAABBBounds(aabbBounds), null == attribute.forceBoundsHeight && null == attribute.forceBoundsWidth || application.graphicService.updateHTMLTextAABBBounds(attribute, richtextTheme, aabbBounds), application.graphicService.transformAABBBounds(attribute, aabbBounds, richtextTheme, !1, this), aabbBounds;
|
|
9375
|
+
return aabbBounds.translate(deltaX, deltaY), application.graphicService.updateTempAABBBounds(aabbBounds), null == attribute.forceBoundsHeight && null == attribute.forceBoundsWidth || application.graphicService.updateHTMLTextAABBBounds(attribute, richtextTheme, aabbBounds), application.graphicService.transformAABBBounds(attribute, aabbBounds, richtextTheme, !1, this), 0 === aabbBounds.width() && 0 === aabbBounds.height() && aabbBounds.clear(), aabbBounds;
|
|
9352
9376
|
}
|
|
9353
9377
|
needUpdateTags(keys) {
|
|
9354
9378
|
return super.needUpdateTags(keys, RICHTEXT_UPDATE_TAG_KEY);
|
|
@@ -9376,48 +9400,53 @@ class RichText extends Graphic {
|
|
|
9376
9400
|
}
|
|
9377
9401
|
combinedStyleToCharacter(config) {
|
|
9378
9402
|
const {
|
|
9379
|
-
|
|
9380
|
-
|
|
9381
|
-
|
|
9382
|
-
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9388
|
-
|
|
9389
|
-
|
|
9390
|
-
|
|
9391
|
-
|
|
9392
|
-
|
|
9393
|
-
|
|
9394
|
-
|
|
9395
|
-
|
|
9396
|
-
|
|
9397
|
-
|
|
9398
|
-
|
|
9399
|
-
|
|
9400
|
-
|
|
9401
|
-
|
|
9403
|
+
fill: fill,
|
|
9404
|
+
stroke: stroke,
|
|
9405
|
+
fontSize: fontSize,
|
|
9406
|
+
fontFamily: fontFamily,
|
|
9407
|
+
fontStyle: fontStyle,
|
|
9408
|
+
fontWeight: fontWeight,
|
|
9409
|
+
lineWidth: lineWidth,
|
|
9410
|
+
opacity: opacity,
|
|
9411
|
+
fillOpacity: fillOpacity,
|
|
9412
|
+
lineHeight: lineHeight,
|
|
9413
|
+
strokeOpacity: strokeOpacity,
|
|
9414
|
+
upgradeAttrs: upgradeAttrs
|
|
9415
|
+
} = this.attribute,
|
|
9416
|
+
out = Object.assign({
|
|
9417
|
+
fill: fill,
|
|
9418
|
+
stroke: stroke,
|
|
9419
|
+
fontSize: fontSize,
|
|
9420
|
+
fontFamily: fontFamily,
|
|
9421
|
+
fontStyle: fontStyle,
|
|
9422
|
+
fontWeight: fontWeight,
|
|
9423
|
+
lineWidth: lineWidth,
|
|
9424
|
+
opacity: opacity,
|
|
9425
|
+
fillOpacity: fillOpacity,
|
|
9426
|
+
strokeOpacity: strokeOpacity
|
|
9427
|
+
}, config);
|
|
9428
|
+
return (null == upgradeAttrs ? void 0 : upgradeAttrs.lineHeight) && (out.lineHeight = lineHeight), out;
|
|
9402
9429
|
}
|
|
9403
9430
|
doUpdateFrameCache(tc) {
|
|
9404
9431
|
var _a;
|
|
9405
9432
|
const {
|
|
9406
|
-
|
|
9407
|
-
|
|
9408
|
-
|
|
9409
|
-
|
|
9410
|
-
|
|
9411
|
-
|
|
9412
|
-
|
|
9413
|
-
|
|
9414
|
-
|
|
9415
|
-
|
|
9416
|
-
|
|
9417
|
-
|
|
9418
|
-
|
|
9419
|
-
|
|
9420
|
-
|
|
9433
|
+
maxWidth: maxWidth,
|
|
9434
|
+
maxHeight: maxHeight,
|
|
9435
|
+
width: width,
|
|
9436
|
+
height: height,
|
|
9437
|
+
ellipsis: ellipsis,
|
|
9438
|
+
wordBreak: wordBreak,
|
|
9439
|
+
verticalDirection: verticalDirection,
|
|
9440
|
+
textAlign: textAlign,
|
|
9441
|
+
textBaseline: textBaseline,
|
|
9442
|
+
layoutDirection: layoutDirection,
|
|
9443
|
+
singleLine: singleLine,
|
|
9444
|
+
disableAutoWrapLine: disableAutoWrapLine,
|
|
9445
|
+
editable: editable,
|
|
9446
|
+
ascentDescentMode: ascentDescentMode,
|
|
9447
|
+
upgradeAttrs: upgradeAttrs
|
|
9448
|
+
} = this.attribute,
|
|
9449
|
+
enableMultiBreakLine = upgradeAttrs && upgradeAttrs.multiBreakLine;
|
|
9421
9450
|
let {
|
|
9422
9451
|
textConfig: _tc = []
|
|
9423
9452
|
} = this.attribute;
|
|
@@ -9439,7 +9468,10 @@ class RichText extends Graphic {
|
|
|
9439
9468
|
const richTextConfig = this.combinedStyleToCharacter(textConfig[i]);
|
|
9440
9469
|
if (isNumber(richTextConfig.text) && (richTextConfig.text = `${richTextConfig.text}`), richTextConfig.text && richTextConfig.text.includes("\n")) {
|
|
9441
9470
|
const textParts = richTextConfig.text.split("\n");
|
|
9442
|
-
for (let j = 0; j < textParts.length; j++) paragraphs.push(new Paragraph(textParts[j],
|
|
9471
|
+
for (let j = 0; j < textParts.length; j++) if (0 === j) paragraphs.push(new Paragraph(textParts[j], !1, richTextConfig, ascentDescentMode));else if (textParts[j] || i === textConfig.length - 1) paragraphs.push(new Paragraph(textParts[j], !0, richTextConfig, ascentDescentMode));else {
|
|
9472
|
+
const nextRichTextConfig = this.combinedStyleToCharacter(textConfig[i + 1]);
|
|
9473
|
+
paragraphs.push(new Paragraph(textParts[j], !0, nextRichTextConfig, ascentDescentMode));
|
|
9474
|
+
}
|
|
9443
9475
|
} else richTextConfig.text && paragraphs.push(new Paragraph(richTextConfig.text, !1, richTextConfig, ascentDescentMode));
|
|
9444
9476
|
}
|
|
9445
9477
|
const maxWidthFinite = "number" == typeof maxWidth && Number.isFinite(maxWidth) && maxWidth > 0,
|
|
@@ -9448,7 +9480,7 @@ class RichText extends Graphic {
|
|
|
9448
9480
|
richTextHeightEnable = "number" == typeof height && Number.isFinite(height) && height > 0 && (!maxHeightFinite || height <= maxHeight),
|
|
9449
9481
|
frame = new Frame(0, 0, (richTextWidthEnable ? width : maxWidthFinite ? maxWidth : 0) || 0, (richTextHeightEnable ? height : maxHeightFinite ? maxHeight : 0) || 0, ellipsis, wordBreak, verticalDirection, textAlign, textBaseline, layoutDirection || "horizontal", !richTextWidthEnable && maxWidthFinite, !richTextHeightEnable && maxHeightFinite, singleLine || !1, null === (_a = this._frameCache) || void 0 === _a ? void 0 : _a.icons),
|
|
9450
9482
|
wrapper = new Wrapper(frame);
|
|
9451
|
-
if (wrapper.newLine =
|
|
9483
|
+
if (wrapper.newLine = enableMultiBreakLine, disableAutoWrapLine) {
|
|
9452
9484
|
let lineCount = 0,
|
|
9453
9485
|
skip = !1;
|
|
9454
9486
|
for (let i = 0; i < paragraphs.length; i++) {
|
|
@@ -9464,7 +9496,7 @@ class RichText extends Graphic {
|
|
|
9464
9496
|
l.calcOffset(offsetSize, !1);
|
|
9465
9497
|
});
|
|
9466
9498
|
}
|
|
9467
|
-
|
|
9499
|
+
enableMultiBreakLine && frame.lines.forEach(item => {
|
|
9468
9500
|
const lastParagraphs = item.paragraphs;
|
|
9469
9501
|
item.paragraphs = item.paragraphs.filter(p => "" !== p.text), 0 === item.paragraphs.length && lastParagraphs.length && (lastParagraphs[0].text = "\n", item.paragraphs.push(lastParagraphs[0]));
|
|
9470
9502
|
}), this._frameCache = frame;
|
|
@@ -10293,7 +10325,7 @@ function drawWave(ctx, ratio, boundsWidth, boundsHeight, textureOptions, offsetX
|
|
|
10293
10325
|
}
|
|
10294
10326
|
class DefaultBaseTextureRenderContribution {
|
|
10295
10327
|
constructor() {
|
|
10296
|
-
this.time = BaseRenderContributionTime.afterFillStroke, this.useStyle = !0, this.order = 10;
|
|
10328
|
+
this.time = BaseRenderContributionTime.afterFillStroke, this.useStyle = !0, this.order = 10, this._tempSymbolGraphic = null;
|
|
10297
10329
|
}
|
|
10298
10330
|
createCommonPattern(size, padding, color, targetContext, cb) {
|
|
10299
10331
|
const r = (size - 2 * padding) / 2,
|
|
@@ -10407,7 +10439,35 @@ class DefaultBaseTextureRenderContribution {
|
|
|
10407
10439
|
case "grid":
|
|
10408
10440
|
pattern = this.createGridPattern(textureSize, texturePadding, textureColor, context);
|
|
10409
10441
|
}
|
|
10410
|
-
if (
|
|
10442
|
+
if (textureOptions && textureOptions.dynamicTexture) {
|
|
10443
|
+
context.save(), context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute), context.clip();
|
|
10444
|
+
const {
|
|
10445
|
+
gridConfig = {}
|
|
10446
|
+
} = textureOptions,
|
|
10447
|
+
b = graphic.AABBBounds,
|
|
10448
|
+
width = b.width(),
|
|
10449
|
+
height = b.height(),
|
|
10450
|
+
padding = texturePadding,
|
|
10451
|
+
cellSize = textureSize,
|
|
10452
|
+
gridColumns = gridConfig.columns ? gridConfig.columns : Math.ceil(width / cellSize),
|
|
10453
|
+
gridRows = gridConfig.rows ? gridConfig.rows : Math.ceil(height / cellSize),
|
|
10454
|
+
gutterColumn = gridConfig.gutterColumn ? gridConfig.gutterColumn : 2 * padding,
|
|
10455
|
+
gutterRow = gridConfig.gutterRow ? gridConfig.gutterRow : 2 * padding;
|
|
10456
|
+
this._tempSymbolGraphic || (this._tempSymbolGraphic = createSymbol({}));
|
|
10457
|
+
const sizeW = gridConfig.columns ? width / gridConfig.columns : cellSize,
|
|
10458
|
+
sizeH = gridConfig.rows ? height / gridConfig.rows : cellSize;
|
|
10459
|
+
this._tempSymbolGraphic.setAttributes({
|
|
10460
|
+
size: [sizeW - gutterColumn, sizeH - gutterRow],
|
|
10461
|
+
symbolType: texture
|
|
10462
|
+
});
|
|
10463
|
+
const parsedPath = this._tempSymbolGraphic.getParsedPath();
|
|
10464
|
+
for (let i = 0; i < gridRows; i++) for (let j = 0; j < gridColumns; j++) {
|
|
10465
|
+
const _x = x + cellSize / 2 + j * cellSize,
|
|
10466
|
+
_y = y + cellSize / 2 + i * cellSize;
|
|
10467
|
+
context.beginPath(), !1 === parsedPath.draw(context, Math.min(sizeW - gutterColumn, sizeH - gutterRow), _x, _y, 0) && context.closePath(), context.fillStyle = textureColor, textureOptions.dynamicTexture(context, i, j, gridRows, gridColumns, textureRatio, graphic);
|
|
10468
|
+
}
|
|
10469
|
+
context.restore();
|
|
10470
|
+
} else if (pattern) context.highPerformanceSave(), context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute), context.fillStyle = pattern, context.fill(), context.highPerformanceRestore();else if ("wave" === texture) {
|
|
10411
10471
|
context.save(), context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute), context.clip();
|
|
10412
10472
|
const b = graphic.AABBBounds;
|
|
10413
10473
|
drawWave(context, textureRatio, b.width(), b.height(), Object.assign(Object.assign({}, textureOptions || {}), {
|
|
@@ -14722,7 +14782,9 @@ const DEFAULT_HTML_TEXT_SPEC = {
|
|
|
14722
14782
|
height: 30,
|
|
14723
14783
|
style: {}
|
|
14724
14784
|
};
|
|
14785
|
+
const SCROLLBAR_START_EVENT = 'scrollDown';
|
|
14725
14786
|
const SCROLLBAR_EVENT = 'scrollDrag';
|
|
14787
|
+
const SCROLLBAR_END_EVENT = 'scrollUp';
|
|
14726
14788
|
|
|
14727
14789
|
const delayMap$2 = {
|
|
14728
14790
|
debounce: debounce,
|
|
@@ -14764,7 +14826,7 @@ class ScrollBar extends AbstractComponent {
|
|
|
14764
14826
|
const { direction } = this.attribute;
|
|
14765
14827
|
const { x, y } = this.stage.eventPointTransform(e);
|
|
14766
14828
|
this._prePos = direction === 'horizontal' ? x : y;
|
|
14767
|
-
this._dispatchEvent(
|
|
14829
|
+
this._dispatchEvent(SCROLLBAR_START_EVENT, {
|
|
14768
14830
|
pos: this._prePos,
|
|
14769
14831
|
event: e
|
|
14770
14832
|
});
|
|
@@ -14812,11 +14874,11 @@ class ScrollBar extends AbstractComponent {
|
|
|
14812
14874
|
: delayMap$2[this.attribute.delayType](this._onSliderPointerMove, this.attribute.delayTime);
|
|
14813
14875
|
this._onSliderPointerUp = (e) => {
|
|
14814
14876
|
e.preventDefault();
|
|
14815
|
-
const {
|
|
14877
|
+
const { range: preRange, limitRange = [0, 1] } = this.attribute;
|
|
14816
14878
|
const preScrollRange = this.getScrollRange();
|
|
14817
14879
|
const [currentPos, currentScrollValue] = this._computeScrollValue(e);
|
|
14818
14880
|
const range = [preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue];
|
|
14819
|
-
this._dispatchEvent(
|
|
14881
|
+
this._dispatchEvent(SCROLLBAR_END_EVENT, {
|
|
14820
14882
|
pre: preRange,
|
|
14821
14883
|
value: clampRange(range, limitRange[0], limitRange[1])
|
|
14822
14884
|
});
|
|
@@ -22877,14 +22939,11 @@ class DataZoom extends AbstractComponent {
|
|
|
22877
22939
|
}
|
|
22878
22940
|
this._activeState = false;
|
|
22879
22941
|
brushSelect && this.renderDragMask();
|
|
22880
|
-
|
|
22881
|
-
|
|
22882
|
-
this.
|
|
22883
|
-
|
|
22884
|
-
|
|
22885
|
-
tag: this._activeTag
|
|
22886
|
-
});
|
|
22887
|
-
}
|
|
22942
|
+
this._dispatchEvent('change', {
|
|
22943
|
+
start: this.state.start,
|
|
22944
|
+
end: this.state.end,
|
|
22945
|
+
tag: this._activeTag
|
|
22946
|
+
});
|
|
22888
22947
|
if (vglobal.env === 'browser') {
|
|
22889
22948
|
vglobal.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true });
|
|
22890
22949
|
vglobal.removeEventListener('pointerup', this._onHandlerPointerUp);
|
|
@@ -22968,7 +23027,8 @@ class DataZoom extends AbstractComponent {
|
|
|
22968
23027
|
shouldRender && this.setAttributes({ start, end });
|
|
22969
23028
|
}
|
|
22970
23029
|
eventPosToStagePos(e) {
|
|
22971
|
-
|
|
23030
|
+
var _a, _b;
|
|
23031
|
+
return (_b = (_a = this.stage) === null || _a === void 0 ? void 0 : _a.eventPointTransform(e)) !== null && _b !== void 0 ? _b : { x: 0, y: 0 };
|
|
22972
23032
|
}
|
|
22973
23033
|
_onHandlerPointerEnter(e) {
|
|
22974
23034
|
e.stopPropagation();
|
|
@@ -31255,6 +31315,6 @@ StoryLabelItem.defaultAttributes = {
|
|
|
31255
31315
|
theme: 'default'
|
|
31256
31316
|
};
|
|
31257
31317
|
|
|
31258
|
-
const version = "0.22.
|
|
31318
|
+
const version = "0.22.1";
|
|
31259
31319
|
|
|
31260
31320
|
export { AXIS_ELEMENT_NAME, AbstractComponent, ArcInfo, ArcLabel, ArcSegment, AxisStateValue, BasePlayer, Brush, CheckBox, CircleAxis, CircleAxisGrid, CircleCrosshair, ColorContinuousLegend, ContinuousPlayer, DEFAULT_ITEM_SPACE_COL, DEFAULT_ITEM_SPACE_ROW, DEFAULT_LABEL_SPACE, DEFAULT_PAGER_SPACE, DEFAULT_SHAPE_SIZE, DEFAULT_SHAPE_SPACE, DEFAULT_STATES$1 as DEFAULT_STATES, DEFAULT_TITLE_SPACE, DEFAULT_VALUE_SPACE, DataLabel, DataZoom, DataZoomActiveTag, DirectionEnum, DiscreteLegend, DiscretePlayer, EmptyTip, GroupTransition, IMarkAreaLabelPosition, IMarkCommonArcLabelPosition, IMarkLineLabelPosition, IMarkPointItemPosition, IOperateType, Indicator, LEGEND_ELEMENT_NAME, LabelBase, LegendEvent, LegendStateValue, LineAxis, LineAxisGrid, LineCrosshair, LineLabel, LinkPath, MarkArcArea, MarkArcLine, MarkArea, MarkLine, MarkPoint, Pager, PlayerEventEnum, PolygonCrosshair, PolygonSectorCrosshair, PopTip, Radio, RectCrosshair, RectLabel, SLIDER_ELEMENT_NAME, ScrollBar, SectorCrosshair, Segment, SizeContinuousLegend, Slider, StoryLabelItem, Switch, SymbolLabel, Tag, Timeline, Title, Tooltip, TopZIndex, VTag, WeatherBox, alignTextInLine, angle, angleLabelOrientAttribute, angleTo, cartesianTicks, clampRadian, computeOffsetForlimit, continuousTicks, contrastAccessibilityChecker, convertDomainToTickData, createTextGraphicByType, deltaXYToAngle, fuzzyEqualNumber, getAxisBreakSymbolAttrs, getCircleLabelPosition, getCirclePoints, getCircleVerticalVector, getElMap, getHorizontalPath, getMarksByName, getNoneGroupMarksByName, getPolarAngleLabelPosition, getPolygonPath, getSizeHandlerPath, getTextAlignAttrOfVerticalDir, getTextType, getVerticalCoord, getVerticalPath, hasOverlap, htmlAttributeTransform, initTextMeasure, isInRange, isPostiveXAxis, isRichText, isVisible, labelSmartInvert, length, limitShapeInBounds, linearDiscreteTicks, loadPoptip, loadScrollbar, measureTextSize, normalize, polarAngleAxisDiscreteTicks, polarTicks, reactAttributeTransform, registerArcDataLabel, registerLineDataLabel, registerMarkArcAreaAnimate, registerMarkArcLineAnimate, registerMarkAreaAnimate, registerMarkLineAnimate, registerMarkPointAnimate, registerRectDataLabel, registerSymbolDataLabel, removeRepeatPoint, richTextAttributeTransform, scale, scrollbarModule, setPoptipTheme, smartInvertStrategy, tan2AngleToAngle, textIntersect, ticks, traverseGroup, version };
|
package/es/axis/util.js
CHANGED
package/es/brush/type.js
CHANGED
|
@@ -4,5 +4,4 @@ export var IOperateType;
|
|
|
4
4
|
IOperateType.drawStart = "drawStart", IOperateType.drawEnd = "drawEnd", IOperateType.drawing = "drawing",
|
|
5
5
|
IOperateType.moving = "moving", IOperateType.moveStart = "moveStart", IOperateType.moveEnd = "moveEnd",
|
|
6
6
|
IOperateType.brushClear = "brushClear";
|
|
7
|
-
}(IOperateType || (IOperateType = {}));
|
|
8
|
-
//# sourceMappingURL=type.js.map
|
|
7
|
+
}(IOperateType || (IOperateType = {}));
|
package/es/constant.d.ts
CHANGED
package/es/constant.js
CHANGED
|
@@ -27,4 +27,8 @@ export const DEFAULT_HTML_TEXT_SPEC = {
|
|
|
27
27
|
style: {}
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
export const
|
|
30
|
+
export const SCROLLBAR_START_EVENT = "scrollDown";
|
|
31
|
+
|
|
32
|
+
export const SCROLLBAR_EVENT = "scrollDrag";
|
|
33
|
+
|
|
34
|
+
export const SCROLLBAR_END_EVENT = "scrollUp";
|
package/es/constant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAEnC,gKAAgK,CAAC;AAEnK,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,kDAAoC,CAAA;IACpC,6BAAe,CAAA;IACf,4CAA8B,CAAA;AAChC,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE;IAChC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE;IACzB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;IACtB,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC","file":"constant.js","sourcesContent":["export const POLAR_START_ANGLE = -0.5 * Math.PI;\nexport const POLAR_END_ANGLE = 1.5 * Math.PI;\n\nexport const DEFAULT_TEXT_FONT_FAMILY =\n // eslint-disable-next-line max-len\n 'PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol';\n\nexport const DEFAULT_TEXT_FONT_SIZE = 14;\n\nexport enum StateValue {\n selected = 'selected',\n selectedReverse = 'selected_reverse',\n hover = 'hover',\n hoverReverse = 'hover_reverse'\n}\n\nexport const DEFAULT_STATES = {\n [StateValue.selectedReverse]: {},\n [StateValue.selected]: {},\n [StateValue.hover]: {},\n [StateValue.hoverReverse]: {}\n};\n\nexport const DEFAULT_HTML_TEXT_SPEC = {\n container: '',\n width: 30,\n height: 30,\n style: {}\n};\n\nexport const SCROLLBAR_EVENT = 'scrollDrag';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAEnC,gKAAgK,CAAC;AAEnK,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,kDAAoC,CAAA;IACpC,6BAAe,CAAA;IACf,4CAA8B,CAAA;AAChC,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE;IAChC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE;IACzB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;IACtB,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAC5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC","file":"constant.js","sourcesContent":["export const POLAR_START_ANGLE = -0.5 * Math.PI;\nexport const POLAR_END_ANGLE = 1.5 * Math.PI;\n\nexport const DEFAULT_TEXT_FONT_FAMILY =\n // eslint-disable-next-line max-len\n 'PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol';\n\nexport const DEFAULT_TEXT_FONT_SIZE = 14;\n\nexport enum StateValue {\n selected = 'selected',\n selectedReverse = 'selected_reverse',\n hover = 'hover',\n hoverReverse = 'hover_reverse'\n}\n\nexport const DEFAULT_STATES = {\n [StateValue.selectedReverse]: {},\n [StateValue.selected]: {},\n [StateValue.hover]: {},\n [StateValue.hoverReverse]: {}\n};\n\nexport const DEFAULT_HTML_TEXT_SPEC = {\n container: '',\n width: 30,\n height: 30,\n style: {}\n};\n\nexport const SCROLLBAR_START_EVENT = 'scrollDown';\nexport const SCROLLBAR_EVENT = 'scrollDrag';\nexport const SCROLLBAR_END_EVENT = 'scrollUp';\n"]}
|
|
@@ -92,12 +92,11 @@ export class DataZoom extends AbstractComponent {
|
|
|
92
92
|
const pos = this.eventPosToStagePos(e);
|
|
93
93
|
this.backgroundDragZoom(this._activeCache.startPos, pos);
|
|
94
94
|
}
|
|
95
|
-
this._activeState = !1, brushSelect && this.renderDragMask(),
|
|
96
|
-
this._dispatchEvent("change", {
|
|
95
|
+
this._activeState = !1, brushSelect && this.renderDragMask(), this._dispatchEvent("change", {
|
|
97
96
|
start: this.state.start,
|
|
98
97
|
end: this.state.end,
|
|
99
98
|
tag: this._activeTag
|
|
100
|
-
})
|
|
99
|
+
}), "browser" === vglobal.env && (vglobal.removeEventListener("pointermove", this._onHandlerPointerMove, {
|
|
101
100
|
capture: !0
|
|
102
101
|
}), vglobal.removeEventListener("pointerup", this._onHandlerPointerUp)), this.removeEventListener("pointermove", this._onHandlerPointerMove, {
|
|
103
102
|
capture: !0
|
|
@@ -139,7 +138,11 @@ export class DataZoom extends AbstractComponent {
|
|
|
139
138
|
}));
|
|
140
139
|
}
|
|
141
140
|
eventPosToStagePos(e) {
|
|
142
|
-
|
|
141
|
+
var _a, _b;
|
|
142
|
+
return null !== (_b = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventPointTransform(e)) && void 0 !== _b ? _b : {
|
|
143
|
+
x: 0,
|
|
144
|
+
y: 0
|
|
145
|
+
};
|
|
143
146
|
}
|
|
144
147
|
_onHandlerPointerEnter(e) {
|
|
145
148
|
e.stopPropagation(), this._showText = !0, this.renderText();
|